From 4548c5045b3a5522ad14df7c939f0303c1e17587 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Sat, 11 Oct 2025 19:07:29 +0800
Subject: [PATCH] 配送费
---
oying-system/src/main/java/com/oying/modules/fee/service/OrderShippingFeesService.java | 59 +
oying-system/src/main/java/com/oying/modules/fee/domain/dto/CityLevelsQueryCriteria.java | 27
oying-system/src/main/java/com/oying/modules/fee/utils/enums/CityLevelEnum.java | 35
oying-system/src/main/java/com/oying/modules/fee/domain/dto/BaseFeesQueryCriteria.java | 28
oying-system/src/main/java/com/oying/modules/fee/domain/dto/TimeSurchargeRulesQueryCriteria.java | 21
oying-system/src/main/resources/mapper/fee/SpecialCategoriesMapper.xml | 31
oying-system/src/main/java/com/oying/modules/fee/domain/DistanceSurchargeRules.java | 62 +
oying-system/src/main/java/com/oying/modules/fee/rest/DistanceSurchargeRulesController.java | 73 +
oying-system/src/main/resources/mapper/fee/DistanceSurchargeRulesMapper.xml | 31
oying-system/src/main/java/com/oying/modules/fee/domain/dto/WeightSurchargeRulesQueryCriteria.java | 21
oying-system/src/main/java/com/oying/modules/fee/service/impl/OrderShippingFeesServiceImpl.java | 88 ++
oying-system/src/main/java/com/oying/modules/fee/service/BaseFeesService.java | 59 +
oying-system/src/main/java/com/oying/modules/fee/rest/WeightSurchargeRulesController.java | 73 +
oying-system/src/main/java/com/oying/modules/fee/service/SpecialCategoriesService.java | 59 +
oying-system/src/main/resources/mapper/fee/CityLevelsMapper.xml | 35
oying-system/src/main/java/com/oying/modules/fee/domain/SpecialCategories.java | 50 +
oying-system/src/main/java/com/oying/modules/fee/service/impl/CityLevelsServiceImpl.java | 78 +
oying-system/src/main/resources/mapper/fee/OrderShippingFeesMapper.xml | 60 +
oying-system/src/main/java/com/oying/modules/fee/domain/dto/OrderShippingFeesQueryCriteria.java | 40
oying-system/src/main/java/com/oying/modules/fee/mapper/CityLevelsMapper.java | 22
oying-system/src/main/java/com/oying/modules/fee/mapper/BaseFeesMapper.java | 22
oying-system/src/main/resources/mapper/fee/WeightSurchargeRulesMapper.xml | 30
oying-system/src/main/java/com/oying/modules/fee/domain/OrderShippingFees.java | 91 ++
oying-system/src/main/resources/mapper/fee/BaseFeesMapper.xml | 37
oying-system/src/main/java/com/oying/modules/fee/domain/CityLevels.java | 54 +
oying-system/src/main/java/com/oying/modules/fee/service/impl/BaseFeesServiceImpl.java | 80 +
oying-system/src/main/java/com/oying/modules/fee/rest/OrderShippingFeesController.java | 73 +
oying-system/src/main/java/com/oying/modules/fee/utils/enums/CategoryTypeEnum.java | 41
oying-system/src/main/java/com/oying/modules/fee/domain/dto/DistanceSurchargeRulesQueryCriteria.java | 21
oying-system/src/main/java/com/oying/modules/fee/mapper/TimeSurchargeRulesMapper.java | 22
oying-system/src/main/java/com/oying/modules/fee/mapper/DistanceSurchargeRulesMapper.java | 22
oying-system/src/main/java/com/oying/modules/fee/service/TimeSurchargeRulesService.java | 59 +
oying-system/src/main/java/com/oying/modules/fee/mapper/SpecialCategoriesMapper.java | 22
oying-system/src/main/java/com/oying/modules/fee/domain/TimeSurchargeRules.java | 64 +
oying-system/src/main/java/com/oying/modules/fee/mapper/WeightSurchargeRulesMapper.java | 22
oying-system/src/main/java/com/oying/modules/fee/service/WeightSurchargeRulesService.java | 59 +
oying-system/src/main/java/com/oying/modules/fee/rest/CityLevelsController.java | 73 +
oying-system/src/main/java/com/oying/modules/fee/rest/BaseFeesController.java | 73 +
oying-system/src/main/java/com/oying/modules/fee/service/impl/SpecialCategoriesServiceImpl.java | 77 +
oying-system/src/main/java/com/oying/modules/fee/mapper/OrderShippingFeesMapper.java | 22
oying-system/src/main/java/com/oying/modules/fee/domain/WeightSurchargeRules.java | 58 +
oying-system/src/main/java/com/oying/modules/fee/domain/dto/SpecialCategoriesQueryCriteria.java | 24
oying-system/src/main/java/com/oying/modules/fee/rest/SpecialCategoriesController.java | 73 +
oying-system/src/main/java/com/oying/modules/fee/service/impl/TimeSurchargeRulesServiceImpl.java | 80 +
oying-system/src/main/java/com/oying/modules/fee/service/impl/WeightSurchargeRulesServiceImpl.java | 79 +
oying-system/src/main/java/com/oying/modules/fee/service/CityLevelsService.java | 59 +
oying-system/src/main/java/com/oying/modules/fee/service/impl/DistanceSurchargeRulesServiceImpl.java | 80 +
oying-system/src/main/java/com/oying/modules/fee/service/DistanceSurchargeRulesService.java | 59 +
oying-system/src/main/java/com/oying/modules/fee/domain/BaseFees.java | 64 +
oying-system/src/main/java/com/oying/modules/fee/rest/TimeSurchargeRulesController.java | 73 +
oying-system/src/main/resources/mapper/fee/TimeSurchargeRulesMapper.xml | 31
51 files changed, 2,596 insertions(+), 0 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/BaseFees.java b/oying-system/src/main/java/com/oying/modules/fee/domain/BaseFees.java
new file mode 100644
index 0000000..88ec21c
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/BaseFees.java
@@ -0,0 +1,64 @@
+package com.oying.modules.fee.domain;
+
+import com.oying.modules.fee.utils.enums.CategoryTypeEnum;
+import lombok.Getter;
+import lombok.Setter;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-10-07
+**/
+@Getter
+@Setter
+@TableName("fee_base_fees")
+public class BaseFees implements Serializable {
+
+ @TableId(value = "fee_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "运费ID")
+ private Long feeId;
+
+ @NotBlank
+ @ApiModelProperty(value = "城市等级")
+ private String level;
+
+ @NotNull
+ @ApiModelProperty(value = "品类类型 (普通、特殊)")
+ private CategoryTypeEnum categoryType;
+
+ @NotNull
+ @ApiModelProperty(value = "基础运费金额")
+ private BigDecimal feeAmount;
+
+ @NotNull
+ @ApiModelProperty(value = "生效日期")
+ private Timestamp effectiveDate;
+
+ @ApiModelProperty(value = "创建者")
+ private String createBy;
+
+ @ApiModelProperty(value = "更新者")
+ private String updateBy;
+
+ @ApiModelProperty(value = "创建日期")
+ private Timestamp createTime;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(BaseFees source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/CityLevels.java b/oying-system/src/main/java/com/oying/modules/fee/domain/CityLevels.java
new file mode 100644
index 0000000..5431728
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/CityLevels.java
@@ -0,0 +1,54 @@
+package com.oying.modules.fee.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-10-07
+**/
+@Getter
+@Setter
+@TableName("fee_city_levels")
+public class CityLevels implements Serializable {
+
+ @TableId(value = "city_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "城市ID")
+ private Long cityId;
+
+ @NotBlank
+ @ApiModelProperty(value = "城市名称 (唯一)")
+ private String cityName;
+
+ @NotBlank
+ @ApiModelProperty(value = "城市等级 (C/D/E)")
+ private String level;
+
+ @ApiModelProperty(value = "创建者")
+ private String createBy;
+
+ @ApiModelProperty(value = "更新者")
+ private String updateBy;
+
+ @ApiModelProperty(value = "创建日期")
+ private Timestamp createTime;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(CityLevels source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/DistanceSurchargeRules.java b/oying-system/src/main/java/com/oying/modules/fee/domain/DistanceSurchargeRules.java
new file mode 100644
index 0000000..b5a866a
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/DistanceSurchargeRules.java
@@ -0,0 +1,62 @@
+package com.oying.modules.fee.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-10-07
+**/
+@Getter
+@Setter
+@TableName("fee_distance_surcharge_rules")
+public class DistanceSurchargeRules implements Serializable {
+
+ @TableId(value = "rule_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "规则ID")
+ private Long ruleId;
+
+ @NotNull
+ @ApiModelProperty(value = "最小距离 (公里)")
+ private BigDecimal minDistance;
+
+ @NotNull
+ @ApiModelProperty(value = "最大距离 (公里)")
+ private BigDecimal maxDistance;
+
+ @NotNull
+ @ApiModelProperty(value = "每公里加价金额")
+ private BigDecimal feePerKm;
+
+ @NotNull
+ @ApiModelProperty(value = "生效日期")
+ private Timestamp effectiveDate;
+
+ @ApiModelProperty(value = "创建者")
+ private String createBy;
+
+ @ApiModelProperty(value = "更新者")
+ private String updateBy;
+
+ @ApiModelProperty(value = "创建日期")
+ private Timestamp createTime;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(DistanceSurchargeRules source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/OrderShippingFees.java b/oying-system/src/main/java/com/oying/modules/fee/domain/OrderShippingFees.java
new file mode 100644
index 0000000..a1990aa
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/OrderShippingFees.java
@@ -0,0 +1,91 @@
+package com.oying.modules.fee.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-10-07
+**/
+@Getter
+@Setter
+@TableName("fee_order_shipping_fees")
+public class OrderShippingFees implements Serializable {
+
+ @TableId(value = "order_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "订单ID")
+ private Long orderId;
+
+ @ApiModelProperty(value = "订单编号")
+ private String orderNum;
+
+ @NotNull
+ @ApiModelProperty(value = "城市ID")
+ private Long cityId;
+
+ @ApiModelProperty(value = "城市名称")
+ private String cityName;
+
+ @ApiModelProperty(value = "品类ID ")
+ private Long categoryId;
+
+ @ApiModelProperty(value = "特殊品类名称")
+ private String categoryName;
+
+ @NotNull
+ @ApiModelProperty(value = "重量 (公斤)")
+ private BigDecimal weight;
+
+ @NotNull
+ @ApiModelProperty(value = "距离 (公里)")
+ private BigDecimal distance;
+
+ @NotNull
+ @ApiModelProperty(value = "下单时间")
+ private Timestamp orderTime;
+
+ @ApiModelProperty(value = "是否特殊条件")
+ private Integer isSpecialConditions;
+
+ @NotNull
+ @ApiModelProperty(value = "基础运费")
+ private BigDecimal baseFee;
+
+ @NotNull
+ @ApiModelProperty(value = "重量加价")
+ private BigDecimal weightSurcharge;
+
+ @NotNull
+ @ApiModelProperty(value = "距离加价")
+ private BigDecimal distanceSurcharge;
+
+ @NotNull
+ @ApiModelProperty(value = "时段加价")
+ private BigDecimal timeSurcharge;
+
+ @ApiModelProperty(value = "特殊条件加价")
+ private BigDecimal specialConditionSurcharge;
+
+ @NotNull
+ @ApiModelProperty(value = "总运费")
+ private BigDecimal totalFee;
+
+ @NotNull
+ @ApiModelProperty(value = "创建时间")
+ private Timestamp createdAt;
+
+ public void copy(OrderShippingFees source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/SpecialCategories.java b/oying-system/src/main/java/com/oying/modules/fee/domain/SpecialCategories.java
new file mode 100644
index 0000000..ed018a5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/SpecialCategories.java
@@ -0,0 +1,50 @@
+package com.oying.modules.fee.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-10-07
+**/
+@Getter
+@Setter
+@TableName("fee_special_categories")
+public class SpecialCategories implements Serializable {
+
+ @TableId(value = "category_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "品类ID")
+ private Long categoryId;
+
+ @NotBlank
+ @ApiModelProperty(value = "特殊品类名称(唯一)")
+ private String categoryName;
+
+ @ApiModelProperty(value = "创建者")
+ private String createBy;
+
+ @ApiModelProperty(value = "更新者")
+ private String updateBy;
+
+ @ApiModelProperty(value = "创建日期")
+ private Timestamp createTime;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(SpecialCategories source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/TimeSurchargeRules.java b/oying-system/src/main/java/com/oying/modules/fee/domain/TimeSurchargeRules.java
new file mode 100644
index 0000000..ccdc839
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/TimeSurchargeRules.java
@@ -0,0 +1,64 @@
+package com.oying.modules.fee.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-10-07
+**/
+@Getter
+@Setter
+@TableName("fee_time_surcharge_rules")
+public class TimeSurchargeRules implements Serializable {
+
+ @TableId(value = "time_rule_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "时段规则ID")
+ private Long timeRuleId;
+
+ @NotNull
+ @ApiModelProperty(value = "时段开始时间")
+ private Time startTime;
+
+ @NotNull
+ @ApiModelProperty(value = "时段结束时间")
+ private Time endTime;
+
+ @NotNull
+ @ApiModelProperty(value = "加价金额")
+ private BigDecimal surchargeAmount;
+
+ @NotNull
+ @ApiModelProperty(value = "生效日期")
+ private Timestamp effectiveDate;
+
+ @ApiModelProperty(value = "创建者")
+ private String createBy;
+
+ @ApiModelProperty(value = "更新者")
+ private String updateBy;
+
+ @ApiModelProperty(value = "创建日期")
+ private Timestamp createTime;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(TimeSurchargeRules source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/WeightSurchargeRules.java b/oying-system/src/main/java/com/oying/modules/fee/domain/WeightSurchargeRules.java
new file mode 100644
index 0000000..44a2e2a
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/WeightSurchargeRules.java
@@ -0,0 +1,58 @@
+package com.oying.modules.fee.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-10-07
+**/
+@Getter
+@Setter
+@TableName("fee_weight_surcharge_rules")
+public class WeightSurchargeRules implements Serializable {
+
+ @TableId(value = "weight_rule_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "重量规则ID")
+ private Long weightRuleId;
+
+ @NotNull
+ @ApiModelProperty(value = "基础重量 (公斤)")
+ private BigDecimal baseWeight;
+
+ @NotNull
+ @ApiModelProperty(value = "每公斤加价金额")
+ private BigDecimal feePerKg;
+
+ @NotNull
+ @ApiModelProperty(value = "生效日期")
+ private Timestamp effectiveDate;
+
+ @ApiModelProperty(value = "创建者")
+ private String createBy;
+
+ @ApiModelProperty(value = "更新者")
+ private String updateBy;
+
+ @ApiModelProperty(value = "创建日期")
+ private Timestamp createTime;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(WeightSurchargeRules source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/dto/BaseFeesQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/BaseFeesQueryCriteria.java
new file mode 100644
index 0000000..6224523
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/BaseFeesQueryCriteria.java
@@ -0,0 +1,28 @@
+package com.oying.modules.fee.domain.dto;
+
+import com.oying.modules.fee.utils.enums.CategoryTypeEnum;
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Data
+public class BaseFeesQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+
+ @ApiModelProperty(value = "城市等级")
+ private String level;
+
+ @ApiModelProperty(value = "品类类型 (普通、特殊)")
+ private CategoryTypeEnum categoryType;
+ private List<Timestamp> createTime;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/dto/CityLevelsQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/CityLevelsQueryCriteria.java
new file mode 100644
index 0000000..b36bcc8
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/CityLevelsQueryCriteria.java
@@ -0,0 +1,27 @@
+package com.oying.modules.fee.domain.dto;
+
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Data
+public class CityLevelsQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+
+ @ApiModelProperty(value = "城市名称 (唯一)")
+ private String cityName;
+
+ @ApiModelProperty(value = "城市等级 (C/D/E)")
+ private String level;
+ private List<Timestamp> createTime;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/dto/DistanceSurchargeRulesQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/DistanceSurchargeRulesQueryCriteria.java
new file mode 100644
index 0000000..c0e0dc5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/DistanceSurchargeRulesQueryCriteria.java
@@ -0,0 +1,21 @@
+package com.oying.modules.fee.domain.dto;
+
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Data
+public class DistanceSurchargeRulesQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+ private List<Timestamp> createTime;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/dto/OrderShippingFeesQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/OrderShippingFeesQueryCriteria.java
new file mode 100644
index 0000000..beae88d
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/OrderShippingFeesQueryCriteria.java
@@ -0,0 +1,40 @@
+package com.oying.modules.fee.domain.dto;
+
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Data
+public class OrderShippingFeesQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+
+ @ApiModelProperty(value = "订单编号")
+ private String orderNum;
+
+ @ApiModelProperty(value = "城市ID")
+ private Long cityId;
+
+ @ApiModelProperty(value = "城市名称")
+ private String cityName;
+
+ @ApiModelProperty(value = "品类ID ")
+ private Long categoryId;
+
+ @ApiModelProperty(value = "特殊品类名称")
+ private String categoryName;
+
+ @ApiModelProperty(value = "是否特殊条件")
+ private Integer isSpecialConditions;
+ private List<Timestamp> orderTime;
+ private List<Timestamp> createdAt;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/dto/SpecialCategoriesQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/SpecialCategoriesQueryCriteria.java
new file mode 100644
index 0000000..7ff724a
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/SpecialCategoriesQueryCriteria.java
@@ -0,0 +1,24 @@
+package com.oying.modules.fee.domain.dto;
+
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Data
+public class SpecialCategoriesQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+
+ @ApiModelProperty(value = "特殊品类名称(唯一)")
+ private String categoryName;
+ private List<Timestamp> createTime;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/dto/TimeSurchargeRulesQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/TimeSurchargeRulesQueryCriteria.java
new file mode 100644
index 0000000..ba8d827
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/TimeSurchargeRulesQueryCriteria.java
@@ -0,0 +1,21 @@
+package com.oying.modules.fee.domain.dto;
+
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Data
+public class TimeSurchargeRulesQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+ private List<Timestamp> createTime;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/domain/dto/WeightSurchargeRulesQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/WeightSurchargeRulesQueryCriteria.java
new file mode 100644
index 0000000..b215bd2
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/domain/dto/WeightSurchargeRulesQueryCriteria.java
@@ -0,0 +1,21 @@
+package com.oying.modules.fee.domain.dto;
+
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Data
+public class WeightSurchargeRulesQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+ private List<Timestamp> createTime;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/mapper/BaseFeesMapper.java b/oying-system/src/main/java/com/oying/modules/fee/mapper/BaseFeesMapper.java
new file mode 100644
index 0000000..f78d64f
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/mapper/BaseFeesMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.fee.mapper;
+
+import com.oying.modules.fee.domain.BaseFees;
+import com.oying.modules.fee.domain.dto.BaseFeesQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Mapper
+public interface BaseFeesMapper extends BaseMapper<BaseFees> {
+
+ IPage<BaseFees> findAll(@Param("criteria") BaseFeesQueryCriteria criteria, Page<Object> page);
+
+ List<BaseFees> findAll(@Param("criteria") BaseFeesQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/mapper/CityLevelsMapper.java b/oying-system/src/main/java/com/oying/modules/fee/mapper/CityLevelsMapper.java
new file mode 100644
index 0000000..703df92
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/mapper/CityLevelsMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.fee.mapper;
+
+import com.oying.modules.fee.domain.CityLevels;
+import com.oying.modules.fee.domain.dto.CityLevelsQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Mapper
+public interface CityLevelsMapper extends BaseMapper<CityLevels> {
+
+ IPage<CityLevels> findAll(@Param("criteria") CityLevelsQueryCriteria criteria, Page<Object> page);
+
+ List<CityLevels> findAll(@Param("criteria") CityLevelsQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/mapper/DistanceSurchargeRulesMapper.java b/oying-system/src/main/java/com/oying/modules/fee/mapper/DistanceSurchargeRulesMapper.java
new file mode 100644
index 0000000..fd77ca5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/mapper/DistanceSurchargeRulesMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.fee.mapper;
+
+import com.oying.modules.fee.domain.DistanceSurchargeRules;
+import com.oying.modules.fee.domain.dto.DistanceSurchargeRulesQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Mapper
+public interface DistanceSurchargeRulesMapper extends BaseMapper<DistanceSurchargeRules> {
+
+ IPage<DistanceSurchargeRules> findAll(@Param("criteria") DistanceSurchargeRulesQueryCriteria criteria, Page<Object> page);
+
+ List<DistanceSurchargeRules> findAll(@Param("criteria") DistanceSurchargeRulesQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/mapper/OrderShippingFeesMapper.java b/oying-system/src/main/java/com/oying/modules/fee/mapper/OrderShippingFeesMapper.java
new file mode 100644
index 0000000..f4f7f3c
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/mapper/OrderShippingFeesMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.fee.mapper;
+
+import com.oying.modules.fee.domain.OrderShippingFees;
+import com.oying.modules.fee.domain.dto.OrderShippingFeesQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Mapper
+public interface OrderShippingFeesMapper extends BaseMapper<OrderShippingFees> {
+
+ IPage<OrderShippingFees> findAll(@Param("criteria") OrderShippingFeesQueryCriteria criteria, Page<Object> page);
+
+ List<OrderShippingFees> findAll(@Param("criteria") OrderShippingFeesQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/mapper/SpecialCategoriesMapper.java b/oying-system/src/main/java/com/oying/modules/fee/mapper/SpecialCategoriesMapper.java
new file mode 100644
index 0000000..bd1c487
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/mapper/SpecialCategoriesMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.fee.mapper;
+
+import com.oying.modules.fee.domain.SpecialCategories;
+import com.oying.modules.fee.domain.dto.SpecialCategoriesQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Mapper
+public interface SpecialCategoriesMapper extends BaseMapper<SpecialCategories> {
+
+ IPage<SpecialCategories> findAll(@Param("criteria") SpecialCategoriesQueryCriteria criteria, Page<Object> page);
+
+ List<SpecialCategories> findAll(@Param("criteria") SpecialCategoriesQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/mapper/TimeSurchargeRulesMapper.java b/oying-system/src/main/java/com/oying/modules/fee/mapper/TimeSurchargeRulesMapper.java
new file mode 100644
index 0000000..5da1093
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/mapper/TimeSurchargeRulesMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.fee.mapper;
+
+import com.oying.modules.fee.domain.TimeSurchargeRules;
+import com.oying.modules.fee.domain.dto.TimeSurchargeRulesQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Mapper
+public interface TimeSurchargeRulesMapper extends BaseMapper<TimeSurchargeRules> {
+
+ IPage<TimeSurchargeRules> findAll(@Param("criteria") TimeSurchargeRulesQueryCriteria criteria, Page<Object> page);
+
+ List<TimeSurchargeRules> findAll(@Param("criteria") TimeSurchargeRulesQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/mapper/WeightSurchargeRulesMapper.java b/oying-system/src/main/java/com/oying/modules/fee/mapper/WeightSurchargeRulesMapper.java
new file mode 100644
index 0000000..9f8b4a9
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/mapper/WeightSurchargeRulesMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.fee.mapper;
+
+import com.oying.modules.fee.domain.WeightSurchargeRules;
+import com.oying.modules.fee.domain.dto.WeightSurchargeRulesQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@Mapper
+public interface WeightSurchargeRulesMapper extends BaseMapper<WeightSurchargeRules> {
+
+ IPage<WeightSurchargeRules> findAll(@Param("criteria") WeightSurchargeRulesQueryCriteria criteria, Page<Object> page);
+
+ List<WeightSurchargeRules> findAll(@Param("criteria") WeightSurchargeRulesQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/rest/BaseFeesController.java b/oying-system/src/main/java/com/oying/modules/fee/rest/BaseFeesController.java
new file mode 100644
index 0000000..129505d
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/rest/BaseFeesController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.fee.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.fee.domain.BaseFees;
+import com.oying.modules.fee.service.BaseFeesService;
+import com.oying.modules.fee.domain.dto.BaseFeesQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "基础运费")
+@RequestMapping("/api/baseFees")
+public class BaseFeesController {
+
+ private final BaseFeesService baseFeesService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('baseFees:list')")
+ public void exportBaseFees(HttpServletResponse response, BaseFeesQueryCriteria criteria) throws IOException {
+ baseFeesService.download(baseFeesService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询基础运费")
+ @PreAuthorize("@el.check('baseFees:list')")
+ public ResponseEntity<PageResult<BaseFees>> queryBaseFees(BaseFeesQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(baseFeesService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增基础运费")
+ @ApiOperation("新增基础运费")
+ @PreAuthorize("@el.check('baseFees:add')")
+ public ResponseEntity<Object> createBaseFees(@Validated @RequestBody BaseFees resources){
+ baseFeesService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改基础运费")
+ @ApiOperation("修改基础运费")
+ @PreAuthorize("@el.check('baseFees:edit')")
+ public ResponseEntity<Object> updateBaseFees(@Validated @RequestBody BaseFees resources){
+ baseFeesService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除基础运费")
+ @ApiOperation("删除基础运费")
+ @PreAuthorize("@el.check('baseFees:del')")
+ public ResponseEntity<Object> deleteBaseFees(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ baseFeesService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/rest/CityLevelsController.java b/oying-system/src/main/java/com/oying/modules/fee/rest/CityLevelsController.java
new file mode 100644
index 0000000..8f1aa80
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/rest/CityLevelsController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.fee.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.fee.domain.CityLevels;
+import com.oying.modules.fee.service.CityLevelsService;
+import com.oying.modules.fee.domain.dto.CityLevelsQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "城市等级")
+@RequestMapping("/api/cityLevels")
+public class CityLevelsController {
+
+ private final CityLevelsService cityLevelsService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('cityLevels:list')")
+ public void exportCityLevels(HttpServletResponse response, CityLevelsQueryCriteria criteria) throws IOException {
+ cityLevelsService.download(cityLevelsService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询城市等级")
+ @PreAuthorize("@el.check('cityLevels:list')")
+ public ResponseEntity<PageResult<CityLevels>> queryCityLevels(CityLevelsQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(cityLevelsService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增城市等级")
+ @ApiOperation("新增城市等级")
+ @PreAuthorize("@el.check('cityLevels:add')")
+ public ResponseEntity<Object> createCityLevels(@Validated @RequestBody CityLevels resources){
+ cityLevelsService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改城市等级")
+ @ApiOperation("修改城市等级")
+ @PreAuthorize("@el.check('cityLevels:edit')")
+ public ResponseEntity<Object> updateCityLevels(@Validated @RequestBody CityLevels resources){
+ cityLevelsService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除城市等级")
+ @ApiOperation("删除城市等级")
+ @PreAuthorize("@el.check('cityLevels:del')")
+ public ResponseEntity<Object> deleteCityLevels(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ cityLevelsService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/rest/DistanceSurchargeRulesController.java b/oying-system/src/main/java/com/oying/modules/fee/rest/DistanceSurchargeRulesController.java
new file mode 100644
index 0000000..af02204
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/rest/DistanceSurchargeRulesController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.fee.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.fee.domain.DistanceSurchargeRules;
+import com.oying.modules.fee.service.DistanceSurchargeRulesService;
+import com.oying.modules.fee.domain.dto.DistanceSurchargeRulesQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "距离加价规则")
+@RequestMapping("/api/distanceSurchargeRules")
+public class DistanceSurchargeRulesController {
+
+ private final DistanceSurchargeRulesService distanceSurchargeRulesService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('distanceSurchargeRules:list')")
+ public void exportDistanceSurchargeRules(HttpServletResponse response, DistanceSurchargeRulesQueryCriteria criteria) throws IOException {
+ distanceSurchargeRulesService.download(distanceSurchargeRulesService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询距离加价规则")
+ @PreAuthorize("@el.check('distanceSurchargeRules:list')")
+ public ResponseEntity<PageResult<DistanceSurchargeRules>> queryDistanceSurchargeRules(DistanceSurchargeRulesQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(distanceSurchargeRulesService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增距离加价规则")
+ @ApiOperation("新增距离加价规则")
+ @PreAuthorize("@el.check('distanceSurchargeRules:add')")
+ public ResponseEntity<Object> createDistanceSurchargeRules(@Validated @RequestBody DistanceSurchargeRules resources){
+ distanceSurchargeRulesService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改距离加价规则")
+ @ApiOperation("修改距离加价规则")
+ @PreAuthorize("@el.check('distanceSurchargeRules:edit')")
+ public ResponseEntity<Object> updateDistanceSurchargeRules(@Validated @RequestBody DistanceSurchargeRules resources){
+ distanceSurchargeRulesService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除距离加价规则")
+ @ApiOperation("删除距离加价规则")
+ @PreAuthorize("@el.check('distanceSurchargeRules:del')")
+ public ResponseEntity<Object> deleteDistanceSurchargeRules(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ distanceSurchargeRulesService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/rest/OrderShippingFeesController.java b/oying-system/src/main/java/com/oying/modules/fee/rest/OrderShippingFeesController.java
new file mode 100644
index 0000000..60cd873
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/rest/OrderShippingFeesController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.fee.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.fee.domain.OrderShippingFees;
+import com.oying.modules.fee.service.OrderShippingFeesService;
+import com.oying.modules.fee.domain.dto.OrderShippingFeesQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "运费订单")
+@RequestMapping("/api/orderShippingFees")
+public class OrderShippingFeesController {
+
+ private final OrderShippingFeesService orderShippingFeesService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('orderShippingFees:list')")
+ public void exportOrderShippingFees(HttpServletResponse response, OrderShippingFeesQueryCriteria criteria) throws IOException {
+ orderShippingFeesService.download(orderShippingFeesService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询运费订单")
+ @PreAuthorize("@el.check('orderShippingFees:list')")
+ public ResponseEntity<PageResult<OrderShippingFees>> queryOrderShippingFees(OrderShippingFeesQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(orderShippingFeesService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增运费订单")
+ @ApiOperation("新增运费订单")
+ @PreAuthorize("@el.check('orderShippingFees:add')")
+ public ResponseEntity<Object> createOrderShippingFees(@Validated @RequestBody OrderShippingFees resources){
+ orderShippingFeesService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改运费订单")
+ @ApiOperation("修改运费订单")
+ @PreAuthorize("@el.check('orderShippingFees:edit')")
+ public ResponseEntity<Object> updateOrderShippingFees(@Validated @RequestBody OrderShippingFees resources){
+ orderShippingFeesService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除运费订单")
+ @ApiOperation("删除运费订单")
+ @PreAuthorize("@el.check('orderShippingFees:del')")
+ public ResponseEntity<Object> deleteOrderShippingFees(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ orderShippingFeesService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/rest/SpecialCategoriesController.java b/oying-system/src/main/java/com/oying/modules/fee/rest/SpecialCategoriesController.java
new file mode 100644
index 0000000..ca5876e
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/rest/SpecialCategoriesController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.fee.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.fee.domain.SpecialCategories;
+import com.oying.modules.fee.service.SpecialCategoriesService;
+import com.oying.modules.fee.domain.dto.SpecialCategoriesQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "特殊品类")
+@RequestMapping("/api/specialCategories")
+public class SpecialCategoriesController {
+
+ private final SpecialCategoriesService specialCategoriesService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('specialCategories:list')")
+ public void exportSpecialCategories(HttpServletResponse response, SpecialCategoriesQueryCriteria criteria) throws IOException {
+ specialCategoriesService.download(specialCategoriesService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询特殊品类")
+ @PreAuthorize("@el.check('specialCategories:list')")
+ public ResponseEntity<PageResult<SpecialCategories>> querySpecialCategories(SpecialCategoriesQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(specialCategoriesService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增特殊品类")
+ @ApiOperation("新增特殊品类")
+ @PreAuthorize("@el.check('specialCategories:add')")
+ public ResponseEntity<Object> createSpecialCategories(@Validated @RequestBody SpecialCategories resources){
+ specialCategoriesService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改特殊品类")
+ @ApiOperation("修改特殊品类")
+ @PreAuthorize("@el.check('specialCategories:edit')")
+ public ResponseEntity<Object> updateSpecialCategories(@Validated @RequestBody SpecialCategories resources){
+ specialCategoriesService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除特殊品类")
+ @ApiOperation("删除特殊品类")
+ @PreAuthorize("@el.check('specialCategories:del')")
+ public ResponseEntity<Object> deleteSpecialCategories(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ specialCategoriesService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/rest/TimeSurchargeRulesController.java b/oying-system/src/main/java/com/oying/modules/fee/rest/TimeSurchargeRulesController.java
new file mode 100644
index 0000000..da86aa7
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/rest/TimeSurchargeRulesController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.fee.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.fee.domain.TimeSurchargeRules;
+import com.oying.modules.fee.service.TimeSurchargeRulesService;
+import com.oying.modules.fee.domain.dto.TimeSurchargeRulesQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "时段加价规则")
+@RequestMapping("/api/timeSurchargeRules")
+public class TimeSurchargeRulesController {
+
+ private final TimeSurchargeRulesService timeSurchargeRulesService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('timeSurchargeRules:list')")
+ public void exportTimeSurchargeRules(HttpServletResponse response, TimeSurchargeRulesQueryCriteria criteria) throws IOException {
+ timeSurchargeRulesService.download(timeSurchargeRulesService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询时段加价规则")
+ @PreAuthorize("@el.check('timeSurchargeRules:list')")
+ public ResponseEntity<PageResult<TimeSurchargeRules>> queryTimeSurchargeRules(TimeSurchargeRulesQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(timeSurchargeRulesService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增时段加价规则")
+ @ApiOperation("新增时段加价规则")
+ @PreAuthorize("@el.check('timeSurchargeRules:add')")
+ public ResponseEntity<Object> createTimeSurchargeRules(@Validated @RequestBody TimeSurchargeRules resources){
+ timeSurchargeRulesService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改时段加价规则")
+ @ApiOperation("修改时段加价规则")
+ @PreAuthorize("@el.check('timeSurchargeRules:edit')")
+ public ResponseEntity<Object> updateTimeSurchargeRules(@Validated @RequestBody TimeSurchargeRules resources){
+ timeSurchargeRulesService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除时段加价规则")
+ @ApiOperation("删除时段加价规则")
+ @PreAuthorize("@el.check('timeSurchargeRules:del')")
+ public ResponseEntity<Object> deleteTimeSurchargeRules(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ timeSurchargeRulesService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/rest/WeightSurchargeRulesController.java b/oying-system/src/main/java/com/oying/modules/fee/rest/WeightSurchargeRulesController.java
new file mode 100644
index 0000000..8dca3b5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/rest/WeightSurchargeRulesController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.fee.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.fee.domain.WeightSurchargeRules;
+import com.oying.modules.fee.service.WeightSurchargeRulesService;
+import com.oying.modules.fee.domain.dto.WeightSurchargeRulesQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author lixin
+* @date 2025-10-07
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "重量加价规则")
+@RequestMapping("/api/weightSurchargeRules")
+public class WeightSurchargeRulesController {
+
+ private final WeightSurchargeRulesService weightSurchargeRulesService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('weightSurchargeRules:list')")
+ public void exportWeightSurchargeRules(HttpServletResponse response, WeightSurchargeRulesQueryCriteria criteria) throws IOException {
+ weightSurchargeRulesService.download(weightSurchargeRulesService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询重量加价规则")
+ @PreAuthorize("@el.check('weightSurchargeRules:list')")
+ public ResponseEntity<PageResult<WeightSurchargeRules>> queryWeightSurchargeRules(WeightSurchargeRulesQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(weightSurchargeRulesService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增重量加价规则")
+ @ApiOperation("新增重量加价规则")
+ @PreAuthorize("@el.check('weightSurchargeRules:add')")
+ public ResponseEntity<Object> createWeightSurchargeRules(@Validated @RequestBody WeightSurchargeRules resources){
+ weightSurchargeRulesService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改重量加价规则")
+ @ApiOperation("修改重量加价规则")
+ @PreAuthorize("@el.check('weightSurchargeRules:edit')")
+ public ResponseEntity<Object> updateWeightSurchargeRules(@Validated @RequestBody WeightSurchargeRules resources){
+ weightSurchargeRulesService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除重量加价规则")
+ @ApiOperation("删除重量加价规则")
+ @PreAuthorize("@el.check('weightSurchargeRules:del')")
+ public ResponseEntity<Object> deleteWeightSurchargeRules(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ weightSurchargeRulesService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/BaseFeesService.java b/oying-system/src/main/java/com/oying/modules/fee/service/BaseFeesService.java
new file mode 100644
index 0000000..a8ff85a
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/BaseFeesService.java
@@ -0,0 +1,59 @@
+package com.oying.modules.fee.service;
+
+import com.oying.modules.fee.domain.BaseFees;
+import com.oying.modules.fee.domain.dto.BaseFeesQueryCriteria;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author lixin
+* @date 2025-10-07
+**/
+public interface BaseFeesService extends IService<BaseFees> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<BaseFees> queryAll(BaseFeesQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<BaseFeesDto>
+ */
+ List<BaseFees> queryAll(BaseFeesQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(BaseFees resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(BaseFees resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<BaseFees> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/CityLevelsService.java b/oying-system/src/main/java/com/oying/modules/fee/service/CityLevelsService.java
new file mode 100644
index 0000000..3fdd6ed
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/CityLevelsService.java
@@ -0,0 +1,59 @@
+package com.oying.modules.fee.service;
+
+import com.oying.modules.fee.domain.CityLevels;
+import com.oying.modules.fee.domain.dto.CityLevelsQueryCriteria;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author lixin
+* @date 2025-10-07
+**/
+public interface CityLevelsService extends IService<CityLevels> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<CityLevels> queryAll(CityLevelsQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<CityLevelsDto>
+ */
+ List<CityLevels> queryAll(CityLevelsQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(CityLevels resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(CityLevels resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<CityLevels> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/DistanceSurchargeRulesService.java b/oying-system/src/main/java/com/oying/modules/fee/service/DistanceSurchargeRulesService.java
new file mode 100644
index 0000000..8f8612b
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/DistanceSurchargeRulesService.java
@@ -0,0 +1,59 @@
+package com.oying.modules.fee.service;
+
+import com.oying.modules.fee.domain.DistanceSurchargeRules;
+import com.oying.modules.fee.domain.dto.DistanceSurchargeRulesQueryCriteria;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author lixin
+* @date 2025-10-07
+**/
+public interface DistanceSurchargeRulesService extends IService<DistanceSurchargeRules> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<DistanceSurchargeRules> queryAll(DistanceSurchargeRulesQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<DistanceSurchargeRulesDto>
+ */
+ List<DistanceSurchargeRules> queryAll(DistanceSurchargeRulesQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(DistanceSurchargeRules resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(DistanceSurchargeRules resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<DistanceSurchargeRules> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/OrderShippingFeesService.java b/oying-system/src/main/java/com/oying/modules/fee/service/OrderShippingFeesService.java
new file mode 100644
index 0000000..ec2e824
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/OrderShippingFeesService.java
@@ -0,0 +1,59 @@
+package com.oying.modules.fee.service;
+
+import com.oying.modules.fee.domain.OrderShippingFees;
+import com.oying.modules.fee.domain.dto.OrderShippingFeesQueryCriteria;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author lixin
+* @date 2025-10-07
+**/
+public interface OrderShippingFeesService extends IService<OrderShippingFees> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<OrderShippingFees> queryAll(OrderShippingFeesQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<OrderShippingFeesDto>
+ */
+ List<OrderShippingFees> queryAll(OrderShippingFeesQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(OrderShippingFees resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(OrderShippingFees resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<OrderShippingFees> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/SpecialCategoriesService.java b/oying-system/src/main/java/com/oying/modules/fee/service/SpecialCategoriesService.java
new file mode 100644
index 0000000..0eafa60
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/SpecialCategoriesService.java
@@ -0,0 +1,59 @@
+package com.oying.modules.fee.service;
+
+import com.oying.modules.fee.domain.SpecialCategories;
+import com.oying.modules.fee.domain.dto.SpecialCategoriesQueryCriteria;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author lixin
+* @date 2025-10-07
+**/
+public interface SpecialCategoriesService extends IService<SpecialCategories> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<SpecialCategories> queryAll(SpecialCategoriesQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<SpecialCategoriesDto>
+ */
+ List<SpecialCategories> queryAll(SpecialCategoriesQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(SpecialCategories resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(SpecialCategories resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<SpecialCategories> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/TimeSurchargeRulesService.java b/oying-system/src/main/java/com/oying/modules/fee/service/TimeSurchargeRulesService.java
new file mode 100644
index 0000000..13045eb
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/TimeSurchargeRulesService.java
@@ -0,0 +1,59 @@
+package com.oying.modules.fee.service;
+
+import com.oying.modules.fee.domain.TimeSurchargeRules;
+import com.oying.modules.fee.domain.dto.TimeSurchargeRulesQueryCriteria;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author lixin
+* @date 2025-10-07
+**/
+public interface TimeSurchargeRulesService extends IService<TimeSurchargeRules> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<TimeSurchargeRules> queryAll(TimeSurchargeRulesQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<TimeSurchargeRulesDto>
+ */
+ List<TimeSurchargeRules> queryAll(TimeSurchargeRulesQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(TimeSurchargeRules resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(TimeSurchargeRules resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<TimeSurchargeRules> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/WeightSurchargeRulesService.java b/oying-system/src/main/java/com/oying/modules/fee/service/WeightSurchargeRulesService.java
new file mode 100644
index 0000000..bf38963
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/WeightSurchargeRulesService.java
@@ -0,0 +1,59 @@
+package com.oying.modules.fee.service;
+
+import com.oying.modules.fee.domain.WeightSurchargeRules;
+import com.oying.modules.fee.domain.dto.WeightSurchargeRulesQueryCriteria;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author lixin
+* @date 2025-10-07
+**/
+public interface WeightSurchargeRulesService extends IService<WeightSurchargeRules> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<WeightSurchargeRules> queryAll(WeightSurchargeRulesQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<WeightSurchargeRulesDto>
+ */
+ List<WeightSurchargeRules> queryAll(WeightSurchargeRulesQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(WeightSurchargeRules resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(WeightSurchargeRules resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<WeightSurchargeRules> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/impl/BaseFeesServiceImpl.java b/oying-system/src/main/java/com/oying/modules/fee/service/impl/BaseFeesServiceImpl.java
new file mode 100644
index 0000000..5d23bd3
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/impl/BaseFeesServiceImpl.java
@@ -0,0 +1,80 @@
+package com.oying.modules.fee.service.impl;
+
+import com.oying.modules.fee.domain.BaseFees;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.fee.service.BaseFeesService;
+import com.oying.modules.fee.domain.dto.BaseFeesQueryCriteria;
+import com.oying.modules.fee.mapper.BaseFeesMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author lixin
+* @date 2025-10-07
+**/
+@Service
+@RequiredArgsConstructor
+public class BaseFeesServiceImpl extends ServiceImpl<BaseFeesMapper, BaseFees> implements BaseFeesService {
+
+ private final BaseFeesMapper baseFeesMapper;
+
+ @Override
+ public PageResult<BaseFees> queryAll(BaseFeesQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(baseFeesMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<BaseFees> queryAll(BaseFeesQueryCriteria criteria){
+ return baseFeesMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(BaseFees resources) {
+ baseFeesMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(BaseFees resources) {
+ BaseFees baseFees = getById(resources.getFeeId());
+ baseFees.copy(resources);
+ baseFeesMapper.updateById(baseFees);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ baseFeesMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<BaseFees> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (BaseFees baseFees : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("城市等级", baseFees.getLevel());
+ map.put("品类类型 (普通、特殊)", baseFees.getCategoryType());
+ map.put("基础运费金额", baseFees.getFeeAmount());
+ map.put("生效日期", baseFees.getEffectiveDate());
+ map.put("创建者", baseFees.getCreateBy());
+ map.put("更新者", baseFees.getUpdateBy());
+ map.put("创建日期", baseFees.getCreateTime());
+ map.put("更新时间", baseFees.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/impl/CityLevelsServiceImpl.java b/oying-system/src/main/java/com/oying/modules/fee/service/impl/CityLevelsServiceImpl.java
new file mode 100644
index 0000000..cf0d774
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/impl/CityLevelsServiceImpl.java
@@ -0,0 +1,78 @@
+package com.oying.modules.fee.service.impl;
+
+import com.oying.modules.fee.domain.CityLevels;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.fee.service.CityLevelsService;
+import com.oying.modules.fee.domain.dto.CityLevelsQueryCriteria;
+import com.oying.modules.fee.mapper.CityLevelsMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author lixin
+* @date 2025-10-07
+**/
+@Service
+@RequiredArgsConstructor
+public class CityLevelsServiceImpl extends ServiceImpl<CityLevelsMapper, CityLevels> implements CityLevelsService {
+
+ private final CityLevelsMapper cityLevelsMapper;
+
+ @Override
+ public PageResult<CityLevels> queryAll(CityLevelsQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(cityLevelsMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<CityLevels> queryAll(CityLevelsQueryCriteria criteria){
+ return cityLevelsMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(CityLevels resources) {
+ cityLevelsMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(CityLevels resources) {
+ CityLevels cityLevels = getById(resources.getCityId());
+ cityLevels.copy(resources);
+ cityLevelsMapper.updateById(cityLevels);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ cityLevelsMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<CityLevels> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (CityLevels cityLevels : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("城市名称 (唯一)", cityLevels.getCityName());
+ map.put("城市等级 (C/D/E)", cityLevels.getLevel());
+ map.put("创建者", cityLevels.getCreateBy());
+ map.put("更新者", cityLevels.getUpdateBy());
+ map.put("创建日期", cityLevels.getCreateTime());
+ map.put("更新时间", cityLevels.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/impl/DistanceSurchargeRulesServiceImpl.java b/oying-system/src/main/java/com/oying/modules/fee/service/impl/DistanceSurchargeRulesServiceImpl.java
new file mode 100644
index 0000000..b8768eb
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/impl/DistanceSurchargeRulesServiceImpl.java
@@ -0,0 +1,80 @@
+package com.oying.modules.fee.service.impl;
+
+import com.oying.modules.fee.domain.DistanceSurchargeRules;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.fee.service.DistanceSurchargeRulesService;
+import com.oying.modules.fee.domain.dto.DistanceSurchargeRulesQueryCriteria;
+import com.oying.modules.fee.mapper.DistanceSurchargeRulesMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author lixin
+* @date 2025-10-07
+**/
+@Service
+@RequiredArgsConstructor
+public class DistanceSurchargeRulesServiceImpl extends ServiceImpl<DistanceSurchargeRulesMapper, DistanceSurchargeRules> implements DistanceSurchargeRulesService {
+
+ private final DistanceSurchargeRulesMapper distanceSurchargeRulesMapper;
+
+ @Override
+ public PageResult<DistanceSurchargeRules> queryAll(DistanceSurchargeRulesQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(distanceSurchargeRulesMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<DistanceSurchargeRules> queryAll(DistanceSurchargeRulesQueryCriteria criteria){
+ return distanceSurchargeRulesMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(DistanceSurchargeRules resources) {
+ distanceSurchargeRulesMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(DistanceSurchargeRules resources) {
+ DistanceSurchargeRules distanceSurchargeRules = getById(resources.getRuleId());
+ distanceSurchargeRules.copy(resources);
+ distanceSurchargeRulesMapper.updateById(distanceSurchargeRules);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ distanceSurchargeRulesMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<DistanceSurchargeRules> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (DistanceSurchargeRules distanceSurchargeRules : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("最小距离 (公里)", distanceSurchargeRules.getMinDistance());
+ map.put("最大距离 (公里)", distanceSurchargeRules.getMaxDistance());
+ map.put("每公里加价金额", distanceSurchargeRules.getFeePerKm());
+ map.put("生效日期", distanceSurchargeRules.getEffectiveDate());
+ map.put("创建者", distanceSurchargeRules.getCreateBy());
+ map.put("更新者", distanceSurchargeRules.getUpdateBy());
+ map.put("创建日期", distanceSurchargeRules.getCreateTime());
+ map.put("更新时间", distanceSurchargeRules.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/impl/OrderShippingFeesServiceImpl.java b/oying-system/src/main/java/com/oying/modules/fee/service/impl/OrderShippingFeesServiceImpl.java
new file mode 100644
index 0000000..62ee626
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/impl/OrderShippingFeesServiceImpl.java
@@ -0,0 +1,88 @@
+package com.oying.modules.fee.service.impl;
+
+import com.oying.modules.fee.domain.OrderShippingFees;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.fee.service.OrderShippingFeesService;
+import com.oying.modules.fee.domain.dto.OrderShippingFeesQueryCriteria;
+import com.oying.modules.fee.mapper.OrderShippingFeesMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author lixin
+* @date 2025-10-07
+**/
+@Service
+@RequiredArgsConstructor
+public class OrderShippingFeesServiceImpl extends ServiceImpl<OrderShippingFeesMapper, OrderShippingFees> implements OrderShippingFeesService {
+
+ private final OrderShippingFeesMapper orderShippingFeesMapper;
+
+ @Override
+ public PageResult<OrderShippingFees> queryAll(OrderShippingFeesQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(orderShippingFeesMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<OrderShippingFees> queryAll(OrderShippingFeesQueryCriteria criteria){
+ return orderShippingFeesMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(OrderShippingFees resources) {
+ orderShippingFeesMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(OrderShippingFees resources) {
+ OrderShippingFees orderShippingFees = getById(resources.getOrderId());
+ orderShippingFees.copy(resources);
+ orderShippingFeesMapper.updateById(orderShippingFees);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ orderShippingFeesMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<OrderShippingFees> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (OrderShippingFees orderShippingFees : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("订单编号", orderShippingFees.getOrderNum());
+ map.put("城市ID", orderShippingFees.getCityId());
+ map.put("城市名称", orderShippingFees.getCityName());
+ map.put("品类ID ", orderShippingFees.getCategoryId());
+ map.put("特殊品类名称", orderShippingFees.getCategoryName());
+ map.put("重量 (公斤)", orderShippingFees.getWeight());
+ map.put("距离 (公里)", orderShippingFees.getDistance());
+ map.put("下单时间", orderShippingFees.getOrderTime());
+ map.put("是否特殊条件", orderShippingFees.getIsSpecialConditions());
+ map.put("基础运费", orderShippingFees.getBaseFee());
+ map.put("重量加价", orderShippingFees.getWeightSurcharge());
+ map.put("距离加价", orderShippingFees.getDistanceSurcharge());
+ map.put("时段加价", orderShippingFees.getTimeSurcharge());
+ map.put("特殊条件加价", orderShippingFees.getSpecialConditionSurcharge());
+ map.put("总运费", orderShippingFees.getTotalFee());
+ map.put("创建时间", orderShippingFees.getCreatedAt());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/impl/SpecialCategoriesServiceImpl.java b/oying-system/src/main/java/com/oying/modules/fee/service/impl/SpecialCategoriesServiceImpl.java
new file mode 100644
index 0000000..f0e7cbd
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/impl/SpecialCategoriesServiceImpl.java
@@ -0,0 +1,77 @@
+package com.oying.modules.fee.service.impl;
+
+import com.oying.modules.fee.domain.SpecialCategories;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.fee.service.SpecialCategoriesService;
+import com.oying.modules.fee.domain.dto.SpecialCategoriesQueryCriteria;
+import com.oying.modules.fee.mapper.SpecialCategoriesMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author lixin
+* @date 2025-10-07
+**/
+@Service
+@RequiredArgsConstructor
+public class SpecialCategoriesServiceImpl extends ServiceImpl<SpecialCategoriesMapper, SpecialCategories> implements SpecialCategoriesService {
+
+ private final SpecialCategoriesMapper specialCategoriesMapper;
+
+ @Override
+ public PageResult<SpecialCategories> queryAll(SpecialCategoriesQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(specialCategoriesMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<SpecialCategories> queryAll(SpecialCategoriesQueryCriteria criteria){
+ return specialCategoriesMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(SpecialCategories resources) {
+ specialCategoriesMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(SpecialCategories resources) {
+ SpecialCategories specialCategories = getById(resources.getCategoryId());
+ specialCategories.copy(resources);
+ specialCategoriesMapper.updateById(specialCategories);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ specialCategoriesMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<SpecialCategories> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (SpecialCategories specialCategories : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("特殊品类名称(唯一)", specialCategories.getCategoryName());
+ map.put("创建者", specialCategories.getCreateBy());
+ map.put("更新者", specialCategories.getUpdateBy());
+ map.put("创建日期", specialCategories.getCreateTime());
+ map.put("更新时间", specialCategories.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/impl/TimeSurchargeRulesServiceImpl.java b/oying-system/src/main/java/com/oying/modules/fee/service/impl/TimeSurchargeRulesServiceImpl.java
new file mode 100644
index 0000000..327f5cc
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/impl/TimeSurchargeRulesServiceImpl.java
@@ -0,0 +1,80 @@
+package com.oying.modules.fee.service.impl;
+
+import com.oying.modules.fee.domain.TimeSurchargeRules;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.fee.service.TimeSurchargeRulesService;
+import com.oying.modules.fee.domain.dto.TimeSurchargeRulesQueryCriteria;
+import com.oying.modules.fee.mapper.TimeSurchargeRulesMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author lixin
+* @date 2025-10-07
+**/
+@Service
+@RequiredArgsConstructor
+public class TimeSurchargeRulesServiceImpl extends ServiceImpl<TimeSurchargeRulesMapper, TimeSurchargeRules> implements TimeSurchargeRulesService {
+
+ private final TimeSurchargeRulesMapper timeSurchargeRulesMapper;
+
+ @Override
+ public PageResult<TimeSurchargeRules> queryAll(TimeSurchargeRulesQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(timeSurchargeRulesMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<TimeSurchargeRules> queryAll(TimeSurchargeRulesQueryCriteria criteria){
+ return timeSurchargeRulesMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(TimeSurchargeRules resources) {
+ timeSurchargeRulesMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(TimeSurchargeRules resources) {
+ TimeSurchargeRules timeSurchargeRules = getById(resources.getTimeRuleId());
+ timeSurchargeRules.copy(resources);
+ timeSurchargeRulesMapper.updateById(timeSurchargeRules);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ timeSurchargeRulesMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<TimeSurchargeRules> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (TimeSurchargeRules timeSurchargeRules : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("时段开始时间", timeSurchargeRules.getStartTime());
+ map.put("时段结束时间", timeSurchargeRules.getEndTime());
+ map.put("加价金额", timeSurchargeRules.getSurchargeAmount());
+ map.put("生效日期", timeSurchargeRules.getEffectiveDate());
+ map.put("创建者", timeSurchargeRules.getCreateBy());
+ map.put("更新者", timeSurchargeRules.getUpdateBy());
+ map.put("创建日期", timeSurchargeRules.getCreateTime());
+ map.put("更新时间", timeSurchargeRules.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/service/impl/WeightSurchargeRulesServiceImpl.java b/oying-system/src/main/java/com/oying/modules/fee/service/impl/WeightSurchargeRulesServiceImpl.java
new file mode 100644
index 0000000..67397bb
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/service/impl/WeightSurchargeRulesServiceImpl.java
@@ -0,0 +1,79 @@
+package com.oying.modules.fee.service.impl;
+
+import com.oying.modules.fee.domain.WeightSurchargeRules;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.fee.service.WeightSurchargeRulesService;
+import com.oying.modules.fee.domain.dto.WeightSurchargeRulesQueryCriteria;
+import com.oying.modules.fee.mapper.WeightSurchargeRulesMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author lixin
+* @date 2025-10-07
+**/
+@Service
+@RequiredArgsConstructor
+public class WeightSurchargeRulesServiceImpl extends ServiceImpl<WeightSurchargeRulesMapper, WeightSurchargeRules> implements WeightSurchargeRulesService {
+
+ private final WeightSurchargeRulesMapper weightSurchargeRulesMapper;
+
+ @Override
+ public PageResult<WeightSurchargeRules> queryAll(WeightSurchargeRulesQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(weightSurchargeRulesMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<WeightSurchargeRules> queryAll(WeightSurchargeRulesQueryCriteria criteria){
+ return weightSurchargeRulesMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(WeightSurchargeRules resources) {
+ weightSurchargeRulesMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(WeightSurchargeRules resources) {
+ WeightSurchargeRules weightSurchargeRules = getById(resources.getWeightRuleId());
+ weightSurchargeRules.copy(resources);
+ weightSurchargeRulesMapper.updateById(weightSurchargeRules);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ weightSurchargeRulesMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<WeightSurchargeRules> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (WeightSurchargeRules weightSurchargeRules : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("基础重量 (公斤)", weightSurchargeRules.getBaseWeight());
+ map.put("每公斤加价金额", weightSurchargeRules.getFeePerKg());
+ map.put("生效日期", weightSurchargeRules.getEffectiveDate());
+ map.put("创建者", weightSurchargeRules.getCreateBy());
+ map.put("更新者", weightSurchargeRules.getUpdateBy());
+ map.put("创建日期", weightSurchargeRules.getCreateTime());
+ map.put("更新时间", weightSurchargeRules.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/utils/enums/CategoryTypeEnum.java b/oying-system/src/main/java/com/oying/modules/fee/utils/enums/CategoryTypeEnum.java
new file mode 100644
index 0000000..04e8b6f
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/utils/enums/CategoryTypeEnum.java
@@ -0,0 +1,41 @@
+package com.oying.modules.fee.utils.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author xin
+ * @description
+ * @date 2025/10/7 22:59
+ */
+@Getter
+@AllArgsConstructor
+public enum CategoryTypeEnum {
+
+ NORMAL("normal", "普通品类"),
+ SPECIAL("special", "特殊品类"),
+
+ UNKNOWN("UNKNOWN", "未知枚举");
+
+ private final String key;
+
+ private final String value;
+
+ public static CategoryTypeEnum find(String val) {
+ for (CategoryTypeEnum value : CategoryTypeEnum.values()) {
+ if (val.equals(value.getKey())) {
+ return value;
+ }
+ }
+ return UNKNOWN;
+ }
+
+ public static String getValue(String val) {
+ for (CategoryTypeEnum value : CategoryTypeEnum.values()) {
+ if (val.equals(value.getKey())) {
+ return value.getValue();
+ }
+ }
+ return UNKNOWN.getValue();
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/fee/utils/enums/CityLevelEnum.java b/oying-system/src/main/java/com/oying/modules/fee/utils/enums/CityLevelEnum.java
new file mode 100644
index 0000000..5370b09
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/fee/utils/enums/CityLevelEnum.java
@@ -0,0 +1,35 @@
+package com.oying.modules.fee.utils.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum CityLevelEnum {
+
+ C("C", "C等级"),
+ D("D", "D等级"),
+ E("E", "E等级");
+
+ private final String key;
+
+ private final String value;
+
+ public static CityLevelEnum find(String val) {
+ for (CityLevelEnum value : CityLevelEnum.values()) {
+ if (val.equals(value.getKey())) {
+ return value;
+ }
+ }
+ return E;
+ }
+
+ public static String getValue(String val) {
+ for (CityLevelEnum value : CityLevelEnum.values()) {
+ if (val.equals(value.getKey())) {
+ return value.getValue();
+ }
+ }
+ return E.getValue();
+ }
+}
diff --git a/oying-system/src/main/resources/mapper/fee/BaseFeesMapper.xml b/oying-system/src/main/resources/mapper/fee/BaseFeesMapper.xml
new file mode 100644
index 0000000..7e1ffcf
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/fee/BaseFeesMapper.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.fee.mapper.BaseFeesMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.fee.domain.BaseFees">
+ <id column="fee_id" property="feeId"/>
+ <result column="level" property="level"/>
+ <result column="category_type" property="categoryType"/>
+ <result column="fee_amount" property="feeAmount"/>
+ <result column="effective_date" property="effectiveDate"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ fee_id, level, category_type, fee_amount, effective_date, create_by, update_by, create_time, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from fee_base_fees
+ <where>
+ <if test="criteria.level != null">
+ and level = #{criteria.level}
+ </if>
+ <if test="criteria.categoryType != null">
+ and category_type = #{criteria.categoryType}
+ </if>
+ <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+ AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+ </if>
+ </where>
+ order by fee_id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/fee/CityLevelsMapper.xml b/oying-system/src/main/resources/mapper/fee/CityLevelsMapper.xml
new file mode 100644
index 0000000..1c205e8
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/fee/CityLevelsMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.fee.mapper.CityLevelsMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.fee.domain.CityLevels">
+ <id column="city_id" property="cityId"/>
+ <result column="city_name" property="cityName"/>
+ <result column="level" property="level"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ city_id, city_name, level, create_by, update_by, create_time, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from fee_city_levels
+ <where>
+ <if test="criteria.cityName != null">
+ and city_name like concat('%',#{criteria.cityName},'%')
+ </if>
+ <if test="criteria.level != null">
+ and level = #{criteria.level}
+ </if>
+ <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+ AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+ </if>
+ </where>
+ order by city_id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/fee/DistanceSurchargeRulesMapper.xml b/oying-system/src/main/resources/mapper/fee/DistanceSurchargeRulesMapper.xml
new file mode 100644
index 0000000..f5ce86d
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/fee/DistanceSurchargeRulesMapper.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.fee.mapper.DistanceSurchargeRulesMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.fee.domain.DistanceSurchargeRules">
+ <id column="rule_id" property="ruleId"/>
+ <result column="min_distance" property="minDistance"/>
+ <result column="max_distance" property="maxDistance"/>
+ <result column="fee_per_km" property="feePerKm"/>
+ <result column="effective_date" property="effectiveDate"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ rule_id, min_distance, max_distance, fee_per_km, effective_date, create_by, update_by, create_time, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from fee_distance_surcharge_rules
+ <where>
+ <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+ AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+ </if>
+ </where>
+ order by rule_id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/fee/OrderShippingFeesMapper.xml b/oying-system/src/main/resources/mapper/fee/OrderShippingFeesMapper.xml
new file mode 100644
index 0000000..548f634
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/fee/OrderShippingFeesMapper.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.fee.mapper.OrderShippingFeesMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.fee.domain.OrderShippingFees">
+ <id column="order_id" property="orderId"/>
+ <result column="order_num" property="orderNum"/>
+ <result column="city_id" property="cityId"/>
+ <result column="city_name" property="cityName"/>
+ <result column="category_id" property="categoryId"/>
+ <result column="category_name" property="categoryName"/>
+ <result column="weight" property="weight"/>
+ <result column="distance" property="distance"/>
+ <result column="order_time" property="orderTime"/>
+ <result column="is_special_conditions" property="isSpecialConditions"/>
+ <result column="base_fee" property="baseFee"/>
+ <result column="weight_surcharge" property="weightSurcharge"/>
+ <result column="distance_surcharge" property="distanceSurcharge"/>
+ <result column="time_surcharge" property="timeSurcharge"/>
+ <result column="special_condition_surcharge" property="specialConditionSurcharge"/>
+ <result column="total_fee" property="totalFee"/>
+ <result column="created_at" property="createdAt"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ order_id, order_num, city_id, city_name, category_id, category_name, weight, distance, order_time, is_special_conditions, base_fee, weight_surcharge, distance_surcharge, time_surcharge, special_condition_surcharge, total_fee, created_at
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from fee_order_shipping_fees
+ <where>
+ <if test="criteria.orderNum != null">
+ and order_num like concat('%',#{criteria.orderNum},'%')
+ </if>
+ <if test="criteria.cityId != null">
+ and city_id = #{criteria.cityId}
+ </if>
+ <if test="criteria.cityName != null">
+ and city_name like concat('%',#{criteria.cityName},'%')
+ </if>
+ <if test="criteria.categoryId != null">
+ and category_id = #{criteria.categoryId}
+ </if>
+ <if test="criteria.categoryName != null">
+ and category_name like concat('%',#{criteria.categoryName},'%')
+ </if>
+ <if test="criteria.isSpecialConditions != null">
+ and is_special_conditions = #{criteria.isSpecialConditions}
+ </if>
+ <if test="criteria.orderTime != null and criteria.orderTime.size() > 0">
+ AND order_time BETWEEN #{criteria.orderTime[0]} AND #{criteria.orderTime[1]}
+ </if>
+ <if test="criteria.createdAt != null and criteria.createdAt.size() > 0">
+ AND created_at BETWEEN #{criteria.createdAt[0]} AND #{criteria.createdAt[1]}
+ </if>
+ </where>
+ order by order_id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/fee/SpecialCategoriesMapper.xml b/oying-system/src/main/resources/mapper/fee/SpecialCategoriesMapper.xml
new file mode 100644
index 0000000..09a99c4
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/fee/SpecialCategoriesMapper.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.fee.mapper.SpecialCategoriesMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.fee.domain.SpecialCategories">
+ <id column="category_id" property="categoryId"/>
+ <result column="category_name" property="categoryName"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ category_id, category_name, create_by, update_by, create_time, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from fee_special_categories
+ <where>
+ <if test="criteria.categoryName != null">
+ and category_name like concat('%',#{criteria.categoryName},'%')
+ </if>
+ <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+ AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+ </if>
+ </where>
+ order by category_id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/fee/TimeSurchargeRulesMapper.xml b/oying-system/src/main/resources/mapper/fee/TimeSurchargeRulesMapper.xml
new file mode 100644
index 0000000..2974f09
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/fee/TimeSurchargeRulesMapper.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.fee.mapper.TimeSurchargeRulesMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.fee.domain.TimeSurchargeRules">
+ <id column="time_rule_id" property="timeRuleId"/>
+ <result column="start_time" property="startTime"/>
+ <result column="end_time" property="endTime"/>
+ <result column="surcharge_amount" property="surchargeAmount"/>
+ <result column="effective_date" property="effectiveDate"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ time_rule_id, start_time, end_time, surcharge_amount, effective_date, create_by, update_by, create_time, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from fee_time_surcharge_rules
+ <where>
+ <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+ AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+ </if>
+ </where>
+ order by time_rule_id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/fee/WeightSurchargeRulesMapper.xml b/oying-system/src/main/resources/mapper/fee/WeightSurchargeRulesMapper.xml
new file mode 100644
index 0000000..59a3b0c
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/fee/WeightSurchargeRulesMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.fee.mapper.WeightSurchargeRulesMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.fee.domain.WeightSurchargeRules">
+ <id column="weight_rule_id" property="weightRuleId"/>
+ <result column="base_weight" property="baseWeight"/>
+ <result column="fee_per_kg" property="feePerKg"/>
+ <result column="effective_date" property="effectiveDate"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ weight_rule_id, base_weight, fee_per_kg, effective_date, create_by, update_by, create_time, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from fee_weight_surcharge_rules
+ <where>
+ <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+ AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+ </if>
+ </where>
+ order by weight_rule_id desc
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3