Browse Source

Merge remote-tracking branch 'origin/master'

Ben 11 months ago
parent
commit
90f0e96897
45 changed files with 590 additions and 27 deletions
  1. 3 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserPageReqVO.java
  2. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserRespVO.java
  3. 3 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserSaveReqVO.java
  4. 7 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralPageReqVO.java
  5. 7 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralRespVO.java
  6. 6 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralSaveReqVO.java
  7. 12 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ordercalc/vo/OrderCalcPageReqVO.java
  8. 13 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ordercalc/vo/OrderCalcRespVO.java
  9. 9 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ordercalc/vo/OrderCalcSaveReqVO.java
  10. 5 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionbrothers/vo/PartitionBrothersPageReqVO.java
  11. 7 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionbrothers/vo/PartitionBrothersRespVO.java
  12. 5 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionbrothers/vo/PartitionBrothersSaveReqVO.java
  13. 3 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitioncrash/vo/PartitionCrashPageReqVO.java
  14. 3 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitioncrash/vo/PartitionCrashRespVO.java
  15. 2 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitioncrash/vo/PartitionCrashSaveReqVO.java
  16. 6 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionson/vo/PartitionSonPageReqVO.java
  17. 7 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionson/vo/PartitionSonRespVO.java
  18. 6 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionson/vo/PartitionSonSaveReqVO.java
  19. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/sharepath/vo/SharePathPageReqVO.java
  20. 11 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/sharepath/vo/SharePathRespVO.java
  21. 4 1
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/sharepath/vo/SharePathSaveReqVO.java
  22. 2 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/duser/DuserDO.java
  23. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/integral/IntegralDO.java
  24. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/ordercalc/OrderCalcDO.java
  25. 3 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/partitionbrothers/PartitionBrothersDO.java
  26. 1 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/partitioncrash/PartitionCrashDO.java
  27. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/partitionson/PartitionSonDO.java
  28. 8 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/sharepath/SharePathDO.java
  29. 2 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/duser/DuserMapper.java
  30. 4 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/integral/IntegralMapper.java
  31. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ordercalc/OrderCalcMapper.java
  32. 2 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/partitionbrothers/PartitionBrothersMapper.java
  33. 2 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/partitioncrash/PartitionCrashMapper.java
  34. 2 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/partitionson/PartitionSonMapper.java
  35. 29 3
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/sharepath/SharePathMapper.java
  36. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/mq/message/order/DistriOrderMessage.java
  37. 3 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/duser/DuserServiceImpl.java
  38. 59 14
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ordercalc/OrderCalcServiceImpl.java
  39. 10 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/sharepath/SharePathServiceImpl.java
  40. 34 1
      feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/sharepath/SharePathMapper.xml
  41. 0 2
      feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/controller/admin/comment/vo/ProductCommentPageReqVO.java
  42. 3 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/aftersale/vo/AfterSalePageReqVO.java
  43. 1 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/mysql/aftersale/AfterSaleMapper.java
  44. 10 2
      feifan-module-mall/feifan-module-trade-biz/src/main/resources/mapper/order/BrokerageUserMapper.xml
  45. 268 0
      feifan-server/src/main/resources/application-pro.yaml

+ 3 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserPageReqVO.java

@@ -45,4 +45,7 @@ public class DuserPageReqVO extends PageParam {
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
 
+
+    @Schema(description = "用户名称", example = "张三")
+    private String nickName;
 }

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserRespVO.java

@@ -55,4 +55,8 @@ public class DuserRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "用户名称", example = "张三")
+    @ExcelProperty("用户名称")
+    private String nickName;
+
 }

+ 3 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserSaveReqVO.java

@@ -48,4 +48,7 @@ public class DuserSaveReqVO {
     @NotNull(message = "用户类型不能为空")
     private Long categoryId;
 
+    @Schema(description = "用户名称", example = "张三")
+    private String nickName;
+
 }

+ 7 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralPageReqVO.java

@@ -34,4 +34,11 @@ public class IntegralPageReqVO extends PageParam {
     @Schema(description = "最高可获取积分")
     private Integer highQuota;
 
+    @Schema(description = "用户名称", example = "赵六")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "赵六")
+    private String nickName;
+
+
 }

+ 7 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralRespVO.java

@@ -40,4 +40,11 @@ public class IntegralRespVO {
     @Schema(description = "最高可获取积分")
     @ExcelProperty("最高可获取积分")
     private Integer highQuota;
+    @Schema(description = "用户名称", example = "赵六")
+    @ExcelProperty("用户名称")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "赵六")
+    @ExcelProperty("用户昵称")
+    private String nickName;
 }

+ 6 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralSaveReqVO.java

@@ -32,4 +32,10 @@ public class IntegralSaveReqVO {
     private Integer highQuota;
 
 
+    @Schema(description = "用户名称", example = "赵六")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "赵六")
+    private String nickName;
+
 }

+ 12 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ordercalc/vo/OrderCalcPageReqVO.java

@@ -50,4 +50,16 @@ public class OrderCalcPageReqVO extends PageParam {
     @Schema(description = "计算百分比模板")
     private String percentTemplate;
 
+
+    @Schema(description = "用户昵称", example = "王五")
+    private String nickName;
+
+    @Schema(description = "下单人姓名", example = "赵六")
+    private String name;
+
+    @Schema(description = "订单ID", example = "21497")
+    private Long orderId;
+    @Schema(description = "购买数量", example = "10152")
+    private Integer productCount;
+
 }

+ 13 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ordercalc/vo/OrderCalcRespVO.java

@@ -58,5 +58,18 @@ public class OrderCalcRespVO {
     private LocalDateTime createTime;
     @Schema(description = "计算百分比模板")
     private String percentTemplate;
+    @Schema(description = "购买数量", example = "10152")
+    @ExcelProperty("购买数量")
+    private Integer productCount;
+    @Schema(description = "用户昵称", example = "王五")
+    @ExcelProperty("用户昵称")
+    private String nickName;
+    @Schema(description = "订单ID", example = "21497")
+    @ExcelProperty("订单ID")
+    private Long orderId;
+
+    @Schema(description = "下单人姓名", example = "赵六")
+    @ExcelProperty("下单人姓名")
+    private String name;
 
 }

+ 9 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ordercalc/vo/OrderCalcSaveReqVO.java

@@ -45,4 +45,13 @@ public class OrderCalcSaveReqVO {
     @Schema(description = "计算百分比模板")
     private String percentTemplate;
 
+    @Schema(description = "用户昵称", example = "王五")
+    private String nickName;
+    @Schema(description = "订单ID", example = "21497")
+    private Long orderId;
+    @Schema(description = "购买数量", example = "10152")
+    private Integer productCount;
+    @Schema(description = "下单人姓名", example = "赵六")
+    private String name;
+
 }

+ 5 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionbrothers/vo/PartitionBrothersPageReqVO.java

@@ -36,5 +36,10 @@ public class PartitionBrothersPageReqVO extends PageParam {
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
+    @Schema(description = "用户名称", example = "张三")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "赵六")
+    private String nickName;
 
 }

+ 7 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionbrothers/vo/PartitionBrothersRespVO.java

@@ -44,5 +44,12 @@ public class PartitionBrothersRespVO {
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
+    @Schema(description = "用户名称", example = "张三")
+    @ExcelProperty("用户名称")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "赵六")
+    @ExcelProperty("用户昵称")
+    private String nickName;
 
 }

+ 5 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionbrothers/vo/PartitionBrothersSaveReqVO.java

@@ -30,5 +30,10 @@ public class PartitionBrothersSaveReqVO {
 
     @Schema(description = "是否是大区 0为小区 1为大区")
     private Integer size;
+    @Schema(description = "用户名称", example = "张三")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "赵六")
+    private String nickName;
 
 }

+ 3 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitioncrash/vo/PartitionCrashPageReqVO.java

@@ -35,4 +35,7 @@ public class PartitionCrashPageReqVO extends PageParam {
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
 
+    @Schema(description = "用户昵称", example = "赵六")
+    private String nickName;
+
 }

+ 3 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitioncrash/vo/PartitionCrashRespVO.java

@@ -43,4 +43,7 @@ public class PartitionCrashRespVO {
     @Schema(description = "用户名称", example = "王五")
     @ExcelProperty("用户名称")
     private String userName;
+    @Schema(description = "用户昵称", example = "赵六")
+    @ExcelProperty("用户昵称")
+    private String nickName;
 }

+ 2 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitioncrash/vo/PartitionCrashSaveReqVO.java

@@ -28,4 +28,6 @@ public class PartitionCrashSaveReqVO {
     @Schema(description = "碰撞后额度")
     private Integer afterHitQuota;
 
+    @Schema(description = "用户昵称", example = "赵六")
+    private String nickName;
 }

+ 6 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionson/vo/PartitionSonPageReqVO.java

@@ -36,5 +36,11 @@ public class PartitionSonPageReqVO extends PageParam {
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
+    @Schema(description = "用户名称", example = "非繁人")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "李四")
+    private String nickName;
+
 
 }

+ 7 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionson/vo/PartitionSonRespVO.java

@@ -44,5 +44,12 @@ public class PartitionSonRespVO {
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
+    @Schema(description = "用户名称", example = "非繁人")
+    @ExcelProperty("用户名称")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "李四")
+    @ExcelProperty("用户昵称")
+    private String nickName;
 
 }

+ 6 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/partitionson/vo/PartitionSonSaveReqVO.java

@@ -30,5 +30,11 @@ public class PartitionSonSaveReqVO {
 
     @Schema(description = "是否是大区 0为小区 1为大区")
     private Integer size;
+    @Schema(description = "用户名称", example = "非繁人")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "李四")
+    private String nickName;
+
 
 }

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/sharepath/vo/SharePathPageReqVO.java

@@ -44,5 +44,9 @@ public class SharePathPageReqVO extends PageParam {
     @Schema(description = "推荐人手机号")
     private String descPhone;
 
+    @Schema(description = "直推人昵称", example = "张三")
+    private String descNickName;
+    @Schema(description = "推荐人昵称", example = "非繁人")
+    private String ancNickName;
 
 }

+ 11 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/sharepath/vo/SharePathRespVO.java

@@ -39,15 +39,26 @@ public class SharePathRespVO {
 
 
     @Schema(description = "推荐人姓名", example = "王五")
+    @ExcelProperty("推荐人姓名")
     private String ancName;
 
     @Schema(description = "推荐人手机号")
+    @ExcelProperty("推荐人手机号")
     private String ancPhone;
 
     @Schema(description = "直推人姓名", example = "李四")
+    @ExcelProperty("直推人姓名")
     private String descName;
 
     @Schema(description = "推荐人手机号")
+    @ExcelProperty("推荐人手机号")
     private String descPhone;
 
+    @Schema(description = "推荐人昵称", example = "非繁人")
+    @ExcelProperty("推荐人昵称")
+    private String ancNickName;
+
+    @Schema(description = "直推人昵称", example = "张三")
+    @ExcelProperty("直推人昵称")
+    private String descNickName;
 }

+ 4 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/sharepath/vo/SharePathSaveReqVO.java

@@ -43,5 +43,8 @@ public class SharePathSaveReqVO {
 
     @Schema(description = "推荐人手机号")
     private String descPhone;
-
+    @Schema(description = "推荐人昵称", example = "非繁人")
+    private String ancNickName;
+    @Schema(description = "直推人昵称", example = "张三")
+    private String descNickName;
 }

+ 2 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/duser/DuserDO.java

@@ -64,4 +64,6 @@ public class DuserDO extends BaseDO {
      */
     private Long categoryId;
 
+    private String nickName;
+
 }

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/integral/IntegralDO.java

@@ -45,4 +45,8 @@ public class IntegralDO extends BaseDO {
     private Long categoryId;
 
     private Integer highQuota;
+
+    private String name;
+
+    private String nickName;
 }

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/ordercalc/OrderCalcDO.java

@@ -64,5 +64,9 @@ public class OrderCalcDO extends BaseDO {
      */
     private Integer grossProfitPlatformQuota;
     private String percentTemplate;
+    private String nickName;
+    private Integer productCount;
+    private Long orderId;
 
+    private String name;
 }

+ 3 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/partitionbrothers/PartitionBrothersDO.java

@@ -51,5 +51,8 @@ public class PartitionBrothersDO extends BaseDO {
      * 是否是大区 0为小区 1为大区
      */
     private Integer size;
+    private String name;
+
+    private String nickName;
 
 }

+ 1 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/partitioncrash/PartitionCrashDO.java

@@ -51,4 +51,5 @@ public class PartitionCrashDO extends BaseDO {
      * 用户名称
      */
     private String userName;
+    private String nickName;
 }

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/partitionson/PartitionSonDO.java

@@ -51,5 +51,9 @@ public class PartitionSonDO extends BaseDO {
      * 是否是大区 0为小区 1为大区
      */
     private Integer size;
+    private String name;
+
+    private String nickName;
+
 
 }

+ 8 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/sharepath/SharePathDO.java

@@ -59,4 +59,12 @@ public class SharePathDO extends BaseDO {
      * 推荐人手机号
      */
     private String descPhone;
+    /**
+     * 直推人昵称
+     */
+    private String descNickName;
+    /**
+     * 推荐人昵称
+     */
+    private String ancNickName;
 }

+ 2 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/duser/DuserMapper.java

@@ -17,6 +17,7 @@ import cn.newfeifan.mall.module.distri.controller.admin.duser.vo.*;
 @Mapper
 public interface DuserMapper extends BaseMapperX<DuserDO> {
 
+
     default PageResult<DuserDO> selectPage(DuserPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<DuserDO>()
                 .eqIfPresent(DuserDO::getUserId, reqVO.getUserId())
@@ -29,6 +30,7 @@ public interface DuserMapper extends BaseMapperX<DuserDO> {
                 .eqIfPresent(DuserDO::getSource, reqVO.getSource())
                 .eqIfPresent(DuserDO::getSocialUpNeed, reqVO.getSocialUpNeed())
                 .eqIfPresent(DuserDO::getCategoryId, reqVO.getCategoryId())
+                .likeIfPresent(DuserDO::getNickName, reqVO.getNickName())
                 .orderByDesc(DuserDO::getId));
     }
     int hasParent(Long userId);

+ 4 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/integral/IntegralMapper.java

@@ -20,10 +20,12 @@ public interface IntegralMapper extends BaseMapperX<IntegralDO> {
     default PageResult<IntegralDO> selectPage(IntegralPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<IntegralDO>()
                 .eqIfPresent(IntegralDO::getUserId, reqVO.getUserId())
-                .eqIfPresent(IntegralDO::getCurrentQuota, reqVO.getCurrentQuota())
-                .eqIfPresent(IntegralDO::getFreezeQuota, reqVO.getFreezeQuota())
                 .eqIfPresent(IntegralDO::getCategoryId, reqVO.getCategoryId())
                 .betweenIfPresent(IntegralDO::getCreateTime, reqVO.getCreateTime())
+                .likeIfPresent(IntegralDO::getName, reqVO.getName())
+                .likeIfPresent(IntegralDO::getNickName, reqVO.getNickName())
+                .eqIfPresent(IntegralDO::getCurrentQuota, reqVO.getCurrentQuota())
+                .eqIfPresent(IntegralDO::getFreezeQuota, reqVO.getFreezeQuota())
                 .eqIfPresent(IntegralDO::getHighQuota, reqVO.getHighQuota())
                 .orderByDesc(IntegralDO::getId));
     }

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ordercalc/OrderCalcMapper.java

@@ -24,12 +24,16 @@ public interface OrderCalcMapper extends BaseMapperX<OrderCalcDO> {
                 .betweenIfPresent(OrderCalcDO::getCreateTime, reqVO.getCreateTime())
                 .eqIfPresent(OrderCalcDO::getPrice, reqVO.getPrice())
                 .eqIfPresent(OrderCalcDO::getCost, reqVO.getCost())
+                .eqIfPresent(OrderCalcDO::getProductCount, reqVO.getProductCount())
                 .eqIfPresent(OrderCalcDO::getGrossProfit, reqVO.getGrossProfit())
                 .eqIfPresent(OrderCalcDO::getGrossProfitUserQuota, reqVO.getGrossProfitUserQuota())
                 .eqIfPresent(OrderCalcDO::getGrossProfitAncestorQuota, reqVO.getGrossProfitAncestorQuota())
                 .eqIfPresent(OrderCalcDO::getGrossProfitBonusQuota, reqVO.getGrossProfitBonusQuota())
                 .eqIfPresent(OrderCalcDO::getGrossProfitPlatformQuota, reqVO.getGrossProfitPlatformQuota())
                 .eqIfPresent(OrderCalcDO::getPercentTemplate, reqVO.getPercentTemplate())
+                .eqIfPresent(OrderCalcDO::getOrderId, reqVO.getOrderId())
+                .likeIfPresent(OrderCalcDO::getName, reqVO.getName())
+                .likeIfPresent(OrderCalcDO::getNickName, reqVO.getNickName())
                 .orderByDesc(OrderCalcDO::getId));
     }
 

+ 2 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/partitionbrothers/PartitionBrothersMapper.java

@@ -26,6 +26,8 @@ public interface PartitionBrothersMapper extends BaseMapperX<PartitionBrothersDO
                 .eqIfPresent(PartitionBrothersDO::getAfterHitQuota, reqVO.getAfterHitQuota())
                 .eqIfPresent(PartitionBrothersDO::getSize, reqVO.getSize())
                 .betweenIfPresent(PartitionBrothersDO::getCreateTime, reqVO.getCreateTime())
+                .likeIfPresent(PartitionBrothersDO::getName, reqVO.getName())
+                .likeIfPresent(PartitionBrothersDO::getNickName, reqVO.getNickName())
                 .orderByDesc(PartitionBrothersDO::getId));
     }
 

+ 2 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/partitioncrash/PartitionCrashMapper.java

@@ -17,6 +17,7 @@ import cn.newfeifan.mall.module.distri.controller.admin.partitioncrash.vo.*;
 @Mapper
 public interface PartitionCrashMapper extends BaseMapperX<PartitionCrashDO> {
 
+
     default PageResult<PartitionCrashDO> selectPage(PartitionCrashPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<PartitionCrashDO>()
                 .eqIfPresent(PartitionCrashDO::getUserId, reqVO.getUserId())
@@ -26,6 +27,7 @@ public interface PartitionCrashMapper extends BaseMapperX<PartitionCrashDO> {
                 .eqIfPresent(PartitionCrashDO::getAfterHitQuota, reqVO.getAfterHitQuota())
                 .betweenIfPresent(PartitionCrashDO::getCreateTime, reqVO.getCreateTime())
                 .likeIfPresent(PartitionCrashDO::getUserName, reqVO.getUserName())
+                .likeIfPresent(PartitionCrashDO::getNickName, reqVO.getNickName())
                 .orderByDesc(PartitionCrashDO::getId));
     }
 

+ 2 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/partitionson/PartitionSonMapper.java

@@ -26,6 +26,8 @@ public interface PartitionSonMapper extends BaseMapperX<PartitionSonDO> {
                 .eqIfPresent(PartitionSonDO::getAfterHitQuota, reqVO.getAfterHitQuota())
                 .eqIfPresent(PartitionSonDO::getSize, reqVO.getSize())
                 .betweenIfPresent(PartitionSonDO::getCreateTime, reqVO.getCreateTime())
+                .likeIfPresent(PartitionSonDO::getName, reqVO.getName())
+                .likeIfPresent(PartitionSonDO::getNickName, reqVO.getNickName())
                 .orderByDesc(PartitionSonDO::getId));
     }
 

+ 29 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/sharepath/SharePathMapper.java

@@ -29,11 +29,20 @@ public interface SharePathMapper extends BaseMapperX<SharePathDO> {
                 .eqIfPresent(SharePathDO::getAncPhone, reqVO.getAncPhone())
                 .likeIfPresent(SharePathDO::getDescName, reqVO.getDescName())
                 .eqIfPresent(SharePathDO::getDescPhone, reqVO.getDescPhone())
+                .likeIfPresent(SharePathDO::getAncNickName, reqVO.getAncNickName())
+                .likeIfPresent(SharePathDO::getDescNickName, reqVO.getDescNickName())
                 .orderByDesc(SharePathDO::getId));
     }
 
-    void addNode(@Param("parentId") Long parentId, @Param("parentName") String parentName, @Param("parentMobile") String parentMobile,
-                 @Param("newDescendantId") Long newDescendantId, @Param("newDescendantName") String newDescendantName, @Param("newDescendantMobile") String newDescendantMobile);
+    void addNode(@Param("parentId") Long parentId,
+                 @Param("parentName") String parentName,
+                 @Param("parentNickName") String parentNickName,
+                 @Param("parentMobile") String parentMobile,
+
+                 @Param("newDescendantId") Long newDescendantId,
+                 @Param("newDescendantName") String newDescendantName,
+                 @Param("newDescendantNickName") String newDescendantNickName,
+                 @Param("newDescendantMobile") String newDescendantMobile);
 
 
     int getMaxSortByParentId(@Param("parentId") Long parentId);
@@ -43,4 +52,21 @@ public interface SharePathMapper extends BaseMapperX<SharePathDO> {
 
     // 添加节点及其子节点的新祖先关系
     void addNewAncestors(@Param("nodeId") Long nodeId, @Param("newParentId") Long newParentId);
-}
+
+
+    // 查询该节点的所有子节点信息
+    List<Long> findAllDescendants(@Param("ancestorId") Long ancestorId);
+
+    // 查询该节点的顺序号小于该节点兄弟节点
+    List<Long> findLessSortedSiblings(@Param("descendantId") Long descendantId);
+
+
+
+
+
+
+}
+
+
+
+

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/mq/message/order/DistriOrderMessage.java

@@ -1,5 +1,6 @@
 package cn.newfeifan.mall.module.distri.mq.message.order;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -27,6 +28,9 @@ public class DistriOrderMessage {
      */
     private Integer productCount;
 
+    private String name;
+    private String nickName;
+
 
     /**
      * 成本价

+ 3 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/duser/DuserServiceImpl.java

@@ -124,6 +124,8 @@ public class DuserServiceImpl implements DuserService {
             // 创建一个钱包
             IntegralSaveReqVO integralSaveReqVO = IntegralSaveReqVO.builder()
                     .currentQuota(0)
+                    .nickName(user.getNickname())
+                    .name(user.getName())
                     .freezeQuota(0)
                     .categoryId(3L)
                     .userId(userId).build();
@@ -136,6 +138,7 @@ public class DuserServiceImpl implements DuserService {
                     .userId(userId)
                     .mobile(user.getMobile())
                     .name(user.getName())
+                    .nickName(user.getNickname())
                     .integralId(integralDO.getId())
                     .source(userId)
                     .socialStatus(1L)

+ 59 - 14
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ordercalc/OrderCalcServiceImpl.java

@@ -136,6 +136,10 @@ public class OrderCalcServiceImpl implements OrderCalcService {
     }
 
     private void calc(List<DistriOrderMessage> tradeOrderDO, OrderPercentageDO orderPercentageDO, String percentTemplate) {
+
+        // 给用户分组
+
+
         // 每个订单收益
         List<OrderCalcSaveReqVO> saveList = new ArrayList<>();
         // 平台收益
@@ -149,6 +153,7 @@ public class OrderCalcServiceImpl implements OrderCalcService {
         List<DuserSaveReqVO> duserSaveReqVOS = new ArrayList<>();
 
         PtProfitDO ptProfitDO = ptProfitService.getPtProfit();
+        PtProfitDO finalPtProfitDO = ptProfitDO;
         tradeOrderDO.forEach(k -> {
 
             BigDecimal price = new BigDecimal(String.valueOf(k.getPrice()));
@@ -193,19 +198,33 @@ public class OrderCalcServiceImpl implements OrderCalcService {
             // 如果sharePath为空, 则说明没有直推人关系
             IntegralDO integralDOAncestor = integralService.selectByUser(sharePath.getAncestor());
             IntegralDO integralDO = integralService.selectByUser(sharePath.getDescendant());
-
+            IntegralDO ptIntegral = integralService.selectByUser(1L);
             // ========== 汇总计算 =================
-            addCaclDo(percentTemplate, saveList, k, grossProfitInt, ancestorQuotaInt, descendantQuotaInt, bonusQuotaInt, platformQuotaInt);
-            // ========== 修改用户钱包 =================
-            changeUserWallet(integralSaveReqVOS, integralDO, integralDOAncestor, ancestorQuotaInt, descendantQuotaInt, highQuotaInt);
+            OrderCalcSaveReqVO orderCalcSaveReqVO = OrderCalcSaveReqVO.builder()
+                    .userId(k.getUserId())
+                    .orderNo(k.getNo())
+                    .orderId(k.getOrderId())
+                    .cost(k.getCostPrice())
+                    .price(k.getPrice())
+                    .productCount(k.getProductCount())
+                    .nickName(k.getNickName())
+                    .name(k.getName())
+                    .grossProfit(grossProfitInt)
+                    .grossProfitUserQuota(ancestorQuotaInt)
+                    .grossProfitAncestorQuota(descendantQuotaInt)
+                    .grossProfitBonusQuota(bonusQuotaInt)
+                    .grossProfitPlatformQuota(platformQuotaInt)
+                    .percentTemplate(percentTemplate).build();
+            saveList.add(orderCalcSaveReqVO);            // ========== 修改用户钱包 =================
+            changeUserWallet(integralSaveReqVOS, integralDO, integralDOAncestor, ptIntegral, ancestorQuotaInt, descendantQuotaInt, highQuotaInt, grossProfitInt, platformQuotaInt);
             // ========== 修改平台信息 =================
             // 每个订单计算的过程
             // 增加平台收益
             // 平台服务费
 
-            BigDecimal ptGrossAdd = new BigDecimal(ptProfitDO.getPtGrossAdd());
-            BigDecimal ptAdd = new BigDecimal(ptProfitDO.getPtAdd());
-            BigDecimal ptTotalAdd = new BigDecimal(ptProfitDO.getPtTotalAdd());
+            BigDecimal ptGrossAdd = new BigDecimal(finalPtProfitDO.getPtGrossAdd());
+            BigDecimal ptAdd = new BigDecimal(finalPtProfitDO.getPtAdd());
+            BigDecimal ptTotalAdd = new BigDecimal(finalPtProfitDO.getPtTotalAdd());
             BigDecimal bonusQuotaPerc = new BigDecimal(orderPercentageDO.getGrossProfitPerc());
 
             // 计算平台收益:毛利润减去合赢奖百分比后的金额
@@ -254,11 +273,31 @@ public class OrderCalcServiceImpl implements OrderCalcService {
 
         });
 
+        // 信息整合
+        // 计算平台收益
+        ptProfitDO = calcPtProfit(ptProfitDO, ptProfitSaveReqVOS);
+
         // 将信息存储到数据库中
         orderCalcMapper.insertBatch(BeanUtils.toBean(saveList, OrderCalcDO.class));
-        ptProfitService.saveBatch(ptProfitSaveReqVOS);
+        ptProfitService.updatePtProfit(BeanUtils.toBean(ptProfitDO, PtProfitSaveReqVO.class));
         ptProfitLogService.saveBatch(ptProfitLogSaveReqVOS);
-        integralService.updateBatch(integralSaveReqVOS);
+    }
+
+    private PtProfitDO calcPtProfit(PtProfitDO ptProfitDO, List<PtProfitSaveReqVO> ptProfitSaveReqVOS) {
+
+        int currentPtAdd = 0;
+        int currentPtGrossAdd = 0;
+
+        for (PtProfitSaveReqVO ptProfitSaveReqVO : ptProfitSaveReqVOS) {
+            currentPtAdd = currentPtAdd + ptProfitSaveReqVO.getPtAdd();
+            currentPtGrossAdd = currentPtGrossAdd + ptProfitSaveReqVO.getPtGrossAdd();
+        }
+
+        ptProfitDO.setPtAdd(ptProfitDO.getPtAdd() + currentPtAdd);
+        ptProfitDO.setPtGrossAdd(ptProfitDO.getPtGrossAdd() + currentPtGrossAdd);
+        ptProfitDO.setPtTotalAdd(currentPtAdd + currentPtGrossAdd + ptProfitDO.getPtTotalAdd());
+
+        return ptProfitDO;
     }
 
     private static void addCaclDo(String percentTemplate, List<OrderCalcSaveReqVO> saveList, DistriOrderMessage k, Integer grossProfit, Integer ancestorQuota, Integer descendantQuota, Integer bonusQuota, Integer platformQuota) {
@@ -266,25 +305,31 @@ public class OrderCalcServiceImpl implements OrderCalcService {
         saveList.add(orderCalcSaveReqVO);
     }
 
-    private static void changeUserWallet(List<IntegralSaveReqVO> integralSaveReqVOS, IntegralDO integralDO, IntegralDO integralDOAncestor, Integer ancestorQuota, Integer descendantQuota, Integer highQuota) {
+    private void changeUserWallet(List<IntegralSaveReqVO> integralSaveReqVOS, IntegralDO integralDO, IntegralDO integralDOAncestor, IntegralDO pt,
+                                  Integer ancestorQuota, Integer descendantQuota, Integer highQuota, Integer ptA, Integer ptB) {
         // 修改用户钱包
         // 增加直推人额度
         integralDO.setHighQuota(integralDO.getHighQuota() + highQuota);
         integralDO.setCurrentQuota(integralDO.getCurrentQuota() + descendantQuota);
 
+
         // 增加推荐人额度
         integralDOAncestor.setCurrentQuota(integralDO.getCurrentQuota() + ancestorQuota);
+        // 增加平台额度
+        pt.setCurrentQuota(integralDO.getCurrentQuota() + ptA + ptB);
 
-        integralSaveReqVOS.add(BeanUtils.toBean(integralDO, IntegralSaveReqVO.class));
-        integralSaveReqVOS.add(BeanUtils.toBean(integralDOAncestor, IntegralSaveReqVO.class));
-    }
+//        integralSaveReqVOS.add(BeanUtils.toBean(integralDO, IntegralSaveReqVO.class));
+//        integralSaveReqVOS.add(BeanUtils.toBean(integralDOAncestor, IntegralSaveReqVO.class));
 
+        integralService.updateIntegral(BeanUtils.toBean(integralDO, IntegralSaveReqVO.class));
+        integralService.updateIntegral(BeanUtils.toBean(integralDOAncestor, IntegralSaveReqVO.class));
+        integralService.updateIntegral(BeanUtils.toBean(pt, IntegralSaveReqVO.class));
 
+    }
 
 
     // 获取当前订单的下单人的直推关系
     public SharePathDO getSharePath(Long userId) {
-
         return sharePathService.getSharePathByDescendant(userId);
     }
 

+ 10 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/sharepath/SharePathServiceImpl.java

@@ -78,8 +78,16 @@ public class SharePathServiceImpl implements SharePathService {
         duserService.hasUserAndCreat(createReqVO);
 
         // 存储他们之间的关系
-        sharePathMapper.addNode(createReqVO.getAncestor(), ancestor.getName(), ancestor.getMobile(),
-                createReqVO.getDescendant(), descendant.getName(), descendant.getMobile());
+        sharePathMapper.addNode(
+                createReqVO.getAncestor(),
+                ancestor.getName(),
+                ancestor.getNickname(),
+                ancestor.getMobile(),
+
+                createReqVO.getDescendant(),
+                descendant.getName(),
+                descendant.getNickname(),
+                descendant.getMobile());
     }
 
     @Override

+ 34 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/sharepath/SharePathMapper.xml

@@ -5,13 +5,27 @@
 
     <!-- 增加节点 -->
     <insert id="addNode">
-        INSERT INTO distri_share_path (ancestor, anc_name, anc_phone, descendant, desc_name, desc_phone, depth, sort)
+        INSERT INTO distri_share_path (ancestor,
+                                       anc_name,
+                                       anc_nick_name,
+                                       anc_phone,
+
+                                       descendant,
+                                       desc_name,
+                                       desc_nick_name,
+                                       desc_phone,
+
+                                       depth, sort)
         SELECT ancestor,
                anc_name,
+               anc_nick_name,
                anc_phone,
+
                #{newDescendantId},
                #{newDescendantName},
+               #{newDescendantNickName},
                #{newDescendantMobile},
+
                depth + 1,
                (SELECT IFNULL(MAX(sort), 0) + 1 FROM distri_share_path WHERE ancestor = #{parentId} AND depth = 1)
         FROM distri_share_path
@@ -19,9 +33,12 @@
         UNION ALL
         SELECT #{parentId},
                #{parentName},
+               #{parentNickName},
                #{parentMobile},
+
                #{newDescendantId},
                #{newDescendantName},
+               #{newDescendantNickName},
                #{newDescendantMobile},
                1,
                (SELECT IFNULL(MAX(sort), 0) + 1 FROM distri_share_path WHERE ancestor = #{parentId} AND depth = 1);
@@ -58,4 +75,20 @@
         UNION ALL
         SELECT #{nodeId} as ancestor, descendant, depth + 1, 0 FROM distri_share_path WHERE ancestor = #{nodeId};
     </insert>
+
+
+    <!-- 查询某节点的所有后代节点 -->
+    <select id="findAllDescendants" resultType="long">
+        SELECT descendant
+        FROM distri_share_path
+        WHERE ancestor = #{ancestorId}
+    </select>
+
+    <!-- 查询排序号小于当前节点的兄弟节点 -->
+    <select id="findLessSortedSiblings" resultType="long">
+        SELECT a.descendant
+        FROM distri_share_path a
+                 JOIN distri_share_path b ON a.ancestor = b.ancestor
+        WHERE b.descendant = #{descendantId} AND a.sort  &lt; b.sort
+    </select>
 </mapper>

+ 0 - 2
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/controller/admin/comment/vo/ProductCommentPageReqVO.java

@@ -9,7 +9,6 @@ import lombok.EqualsAndHashCode;
 import lombok.ToString;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
 
 import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -24,7 +23,6 @@ public class ProductCommentPageReqVO extends PageParam {
     private String userNickname;
 
     @Schema(description = "交易订单编号", example = "24428")
-    @NotNull
     private Long orderId;
 
     @Schema(description = "商品SPU编号", example = "29502")

+ 3 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/aftersale/vo/AfterSalePageReqVO.java

@@ -42,6 +42,9 @@ public class AfterSalePageReqVO extends PageParam {
     @Schema(description = "商品 SPU 名称", example = "李四")
     private String spuName;
 
+    @Schema(description = "商品 SPU ID", example = "1")
+    private String spuId;
+
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;

+ 1 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/mysql/aftersale/AfterSaleMapper.java

@@ -18,6 +18,7 @@ public interface AfterSaleMapper extends BaseMapperX<AfterSaleDO> {
         return selectPage(reqVO, new LambdaQueryWrapperX<AfterSaleDO>()
                 .likeIfPresent(AfterSaleDO::getNo, reqVO.getNo())
                 .eqIfPresent(AfterSaleDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(AfterSaleDO::getSpuId, reqVO.getSpuId())
                 .eqIfPresent(AfterSaleDO::getType, reqVO.getType())
                 .eqIfPresent(AfterSaleDO::getShopId,reqVO.getShopId())
                 .eqIfPresent(AfterSaleDO::getMerchantId,reqVO.getMerchantId())

+ 10 - 2
feifan-module-mall/feifan-module-trade-biz/src/main/resources/mapper/order/BrokerageUserMapper.xml

@@ -12,6 +12,10 @@
         <result column="shopId" property="shopId"/>
         <result column="merchantId" property="merchantId"/>
         <result column="orderId" property="orderId"/>
+        <result column="name" property="name"/>
+        <result column="nickName" property="nickName"/>
+
+
     </resultMap>
 
     <select id="queryAllOrder" resultMap="BaseResultMap">
@@ -23,13 +27,17 @@
                tor.id            as orderId,
                tor.user_id       as userId,
                ps.merchant_id    as merchantId,
-               ps.shop_id        as shopId
+               ps.shop_id        as shopId,
+               ps.shop_id        as shopId,
+               mu.`name`         as name,
+               mu.nickname        as nickname
         from trade_order tor
+                 LEFT JOIN member_user mu
+                           ON tor.user_id = mu.id
                  LEFT JOIN trade_order_item toi
                            on tor.id = toi.order_id
                  LEFT JOIN product_sku ps
                            on toi.sku_id = ps.id
         where tor.update_time BETWEEN #{start} AND #{end}
     </select>
-
 </mapper>

+ 268 - 0
feifan-server/src/main/resources/application-pro.yaml

@@ -0,0 +1,268 @@
+server:
+  port: 8002
+
+--- #################### 数据库相关配置 ####################
+
+spring:
+  # 数据源配置项
+  autoconfigure:
+    exclude:
+      - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
+#      - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
+#      - de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
+#      - de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
+#      - de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置
+  datasource:
+    druid: # Druid 【监控】相关的全局配置
+      web-stat-filter:
+        enabled: true
+      stat-view-servlet:
+        enabled: true
+        allow: # 设置白名单,不填则允许所有访问
+        url-pattern: /druid/*
+        login-username: # 控制台管理用户名和密码
+        login-password:
+      filter:
+        stat:
+          enabled: true
+          log-slow-sql: true # 慢 SQL 记录
+          slow-sql-millis: 100
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true
+    dynamic: # 多数据源配置
+      druid: # Druid 【连接池】相关的全局配置
+        initial-size: 1 # 初始连接数
+        min-idle: 1 # 最小连接池数量
+        max-active: 20 # 最大连接池数量
+        max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒
+        time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
+        min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
+        max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
+        validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
+        test-while-idle: true
+        test-on-borrow: false
+        test-on-return: false
+      primary: master
+      datasource:
+        master:
+          name: mall-letcgo
+          url: jdbc:mysql://120.78.5.233:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+          username: root
+          password: PA55W0RD
+        slave: # 模拟从库,可根据自己需要修改
+          name: mall-letcgo
+          lazy: true # 开启懒加载,保证启动速度
+          url: jdbc:mysql://120.78.5.233:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+          username: root
+          password: PA55W0RD
+
+  # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
+  redis:
+    host: 47.107.29.61  # 地址
+    port: 6379 # 端口
+    database: 0 # 数据库索引
+#    password: 123456 # 密码,建议生产环境开启
+
+--- #################### 定时任务相关配置 ####################
+
+# Quartz 配置项,对应 QuartzProperties 配置类
+spring:
+  quartz:
+    auto-startup: true # 本地开发环境,尽量不要开启 Job
+    scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName
+    job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。
+    wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true
+    properties: # 添加 Quartz Scheduler 附加属性,更多可以看 http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/configuration.html 文档
+      org:
+        quartz:
+          # Scheduler 相关配置
+          scheduler:
+            instanceName: schedulerName
+            instanceId: AUTO # 自动生成 instance ID
+          # JobStore 相关配置
+          jobStore:
+            # JobStore 实现类。可见博客:https://blog.csdn.net/weixin_42458219/article/details/122247162
+            class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
+            isClustered: true # 是集群模式
+            clusterCheckinInterval: 15000 # 集群检查频率,单位:毫秒。默认为 15000,即 15 秒
+            misfireThreshold: 60000 # misfire 阀值,单位:毫秒。
+          # 线程池相关配置
+          threadPool:
+            threadCount: 25 # 线程池大小。默认为 10 。
+            threadPriority: 5 # 线程优先级
+            class: org.quartz.simpl.SimpleThreadPool # 线程池类型
+    jdbc: # 使用 JDBC 的 JobStore 的时候,JDBC 的配置
+      initialize-schema: NEVER # 是否自动使用 SQL 初始化 Quartz 表结构。这里设置成 never ,我们手动创建表结构。
+
+--- #################### 消息队列相关 ####################
+
+# rocketmq 配置项,对应 RocketMQProperties 配置类
+rocketmq:
+  name-server: 127.0.0.1:9876 # RocketMQ Namesrv
+
+spring:
+  # RabbitMQ 配置项,对应 RabbitProperties 配置类
+  rabbitmq:
+    host: 127.0.0.1 # RabbitMQ 服务的地址
+    port: 5672 # RabbitMQ 服务的端口
+    username: rabbit # RabbitMQ 服务的账号
+    password: rabbit # RabbitMQ 服务的密码
+  # Kafka 配置项,对应 KafkaProperties 配置类
+  kafka:
+    bootstrap-servers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔
+
+--- #################### 服务保障相关配置 ####################
+
+# Lock4j 配置项
+lock4j:
+  acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒
+  expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒
+
+# Resilience4j 配置项
+resilience4j:
+  ratelimiter:
+    instances:
+      backendA:
+        limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50
+        limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500
+        timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s
+        register-health-indicator: true # 是否注册到健康监测
+
+--- #################### 监控相关配置 ####################
+
+# Actuator 监控端点的配置项
+management:
+  endpoints:
+    web:
+      base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator
+      exposure:
+        include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
+
+# Spring Boot Admin 配置项
+spring:
+  boot:
+    admin:
+      # Spring Boot Admin Client 客户端的相关配置
+      client:
+        url: http://47.107.28.221:${server.port}/${spring.boot.admin.context-path} # 设置 Spring Boot Admin Server 地址
+        instance:
+          service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME]
+      # Spring Boot Admin Server 服务端的相关配置
+      context-path: /admin # 配置 Spring
+
+# 日志文件配置
+logging:
+  file:
+    name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径
+  level:
+    # 配置自己写的 MyBatis Mapper 打印日志
+    cn.newfeifan.mall.module.bpm.dal.mysql: debug
+    cn.newfeifan.mall.module.infra.dal.mysql: debug
+    cn.newfeifan.mall.module.infra.dal.mysql.job.JobLogMapper: INFO # 配置 JobLogMapper 的日志级别为 info
+    cn.newfeifan.mall.module.infra.dal.mysql.file.FileConfigMapper: INFO # 配置 FileConfigMapper 的日志级别为 info
+    cn.newfeifan.mall.module.pay.dal.mysql: debug
+    cn.newfeifan.mall.module.pay.dal.mysql.notify.PayNotifyTaskMapper: INFO # 配置 JobLogMapper 的日志级别为 info
+    cn.newfeifan.mall.module.system.dal.mysql: debug
+    cn.newfeifan.mall.module.system.dal.mysql.sensitiveword.SensitiveWordMapper: INFO # 配置 SensitiveWordMapper 的日志级别为 info
+    cn.newfeifan.mall.module.system.dal.mysql.sms.SmsChannelMapper: INFO # 配置 SmsChannelMapper 的日志级别为 info
+    cn.newfeifan.mall.module.tool.dal.mysql: debug
+    cn.newfeifan.mall.module.member.dal.mysql: debug
+    cn.newfeifan.mall.module.trade.dal.mysql: debug
+    cn.newfeifan.mall.module.promotion.dal.mysql: debug
+    cn.newfeifan.mall.module.statistics.dal.mysql: debug
+    cn.newfeifan.mall.module.crm.dal.mysql: debug
+    org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 非繁人:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示
+
+debug: false
+
+--- #################### 微信公众号、小程序相关配置 ####################
+wx:
+  mp: # 公众号配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档
+#    app-id: wx041349c6f39b268b # 测试号(牛希尧提供的)
+#    secret: 5abee519483bc9f8cb37ce280e814bd0
+    app-id: wx917c16ecb85e8fb8 # 测试号(自己的)
+    secret: e6be2d75ba7dc0f3d833469645062b79
+#    app-id: wxa69ab825b163be19 # 测试号(Kongdy 提供的)
+#    secret: bd4f9fab889591b62aeac0d7b8d8b4a0
+    # 存储配置,解决 AccessToken 的跨节点的共享
+    config-storage:
+      type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取
+      key-prefix: wx # Redis Key 的前缀
+      http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台
+  miniapp: # 小程序配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md 文档
+    #    appid: wx62056c0d5e8db250 # 测试号(牛希尧提供的)
+    #    secret: 333ae72f41552af1e998fe1f54e1584a
+    appid: wx63c280fe3248a3e7 # wenhualian的接口测试号
+    secret: 6f270509224a7ae1296bbf1c8cb97aed
+#    appid: wxc4598c446f8a9cb3 # 测试号(Kongdy 提供的)
+#    secret: 4a1a04e07f6a4a0751b39c3064a92c8b
+    config-storage:
+      type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取
+      key-prefix: wa # Redis Key 的前缀
+      http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台
+
+--- #################### 非繁相关配置 ####################
+
+# 非繁配置项,设置当前项目所有自定义的配置
+feifan:
+  captcha:
+    enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
+  security:
+    mock-enable: true
+  xss:
+    enable: false
+    exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系
+      - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求
+      - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求
+  pay:
+    order-notify-url: http://zxgz.newfeifan.cn/admin-api/pay/notify/order # 支付渠道的【支付】回调地址
+    refund-notify-url: http://zxgz.newfeifan.cn/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址
+  access-log: # 访问日志的配置项
+    enable: false
+  error-code: # 错误码相关配置项
+    enable: false
+  demo: false # 关闭演示模式
+  tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc
+
+justauth:
+  enabled: true
+  type:
+    DINGTALK: # 钉钉
+      client-id: dingvrnreaje3yqvzhxg
+      client-secret: i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI
+      ignore-check-redirect-uri: true
+    WECHAT_ENTERPRISE: # 企业微信
+      client-id: wwd411c69a39ad2e54
+      client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw
+      agent-id: 1000004
+      ignore-check-redirect-uri: true
+    WECHAT_MINI_APP: # 微信小程序
+      client-id: ${wx.miniapp.appid}
+      client-secret: ${wx.miniapp.secret}
+      ignore-check-redirect-uri: true
+      ignore-check-state: true # 微信小程序,不会使用到 state,所以不进行校验
+    WECHAT_MP: # 微信公众号
+      client-id: ${wx.mp.app-id}
+      client-secret: ${wx.mp.secret}
+      ignore-check-redirect-uri: true
+  cache:
+    type: REDIS
+    prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
+    timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
+
+# TODO 赤焰:这个配置的目的是?
+#ureport配置
+#ureport:
+#  disableHttpSessionReportCache: true #是否禁用
+#  disableFileProvider: true #是否禁用
+#  debug: true
+#  fileStoreDir: D://ureport//files
+#  provider:
+#    database:
+#       disabled: true
+#    file:
+#       disabled: true
+
+