yangdamao 2 tahun lalu
induk
melakukan
87ec58c675
23 mengubah file dengan 695 tambahan dan 23 penghapusan
  1. 26 4
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplateController.java
  2. 24 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityController.java
  3. 27 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/SellerOrderQueryBo.java
  4. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/SellerSortNoticeQueryBo.java
  5. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionRebate.java
  6. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityGoodsMapper.java
  7. 12 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityMapper.java
  8. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityGoodsService.java
  9. 12 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityService.java
  10. 8 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityGoodsServiceImpl.java
  11. 41 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java
  12. 69 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/SellerOrderVo.java
  13. 30 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/SellerSortNoticeVo.java
  14. 38 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/bo/TenantOrderQueryBo.java
  15. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/bo/TenantSortNoticeQueryBo.java
  16. 7 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/service/IDistributionActivityTemplateService.java
  17. 12 7
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/service/impl/DistributionActivityTemplateServiceImpl.java
  18. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/vo/TenantOrderCashVo.java
  19. 67 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/vo/TenantOrderVo.java
  20. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/vo/TenantSortNoticeVo.java
  21. 11 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java
  22. 32 0
      zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionActivityGoodsMapper.xml
  23. 110 0
      zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionActivityMapper.xml

+ 26 - 4
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplateController.java

@@ -9,12 +9,11 @@ import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.framework.web.service.TopTokenService;
 import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
 import com.zhongzheng.modules.distribution.vo.DistributionSellerVo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateAddBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateEditBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateQueryBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionSellerQuery;
+import com.zhongzheng.modules.top.distribution.bo.*;
 import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateService;
 import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTemplateVo;
+import com.zhongzheng.modules.top.distribution.vo.TenantOrderVo;
+import com.zhongzheng.modules.top.distribution.vo.TenantSortNoticeVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -120,4 +119,27 @@ public class DistributionActivityTemplateController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 机构分销排行榜
+     */
+    @ApiOperation("机构分销排行榜")
+    @GetMapping("/sort/notice")
+    public TableDataInfo<TenantSortNoticeVo> getTenantSortNotice(TenantSortNoticeQueryBo bo) {
+        startPage();
+        List<TenantSortNoticeVo> list = iDistributionActivityTemplateService.getTenantSortNotice(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 机构所有分销订单
+     */
+    @ApiOperation("机构所有分销订单")
+    @GetMapping("/org/order")
+    public TableDataInfo<TenantOrderVo> getOrgOrder(TenantOrderQueryBo bo) {
+        startPage();
+        List<TenantOrderVo> list = iDistributionActivityTemplateService.getOrgOrder(bo);
+        return getDataTable(list);
+    }
+
+
 }

+ 24 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityController.java

@@ -10,6 +10,8 @@ import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsSer
 import com.zhongzheng.modules.distribution.service.IDistributionActivityService;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityGoodsVo;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityVo;
+import com.zhongzheng.modules.distribution.vo.SellerOrderVo;
+import com.zhongzheng.modules.distribution.vo.SellerSortNoticeVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -112,5 +114,27 @@ public class DistributionActivityController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询业务员分销排行榜
+     */
+    @ApiOperation("查询业务员分销排行榜")
+    @GetMapping("/seller/sort/notice")
+    public TableDataInfo<SellerSortNoticeVo> getSellerSortNotice(SellerSortNoticeQueryBo bo) {
+        startPage();
+        List<SellerSortNoticeVo> list = iDistributionActivityGoodsService.getSellerSortNotice(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 业务员所有分销订单
+     */
+    @ApiOperation("业务员所有分销订单")
+    @GetMapping("/seller/order")
+    public TableDataInfo<SellerOrderVo> getSellerOrder(SellerOrderQueryBo bo) {
+        startPage();
+        List<SellerOrderVo> list = iDistributionActivityService.getSellerOrder(bo);
+        return getDataTable(list);
+    }
+
 
 }

+ 27 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/SellerOrderQueryBo.java

@@ -0,0 +1,27 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("业务员分销排行榜查询对象")
+public class SellerOrderQueryBo extends BaseEntity {
+    /** 分页大小 */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+    /** 当前页数 */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    @ApiModelProperty("业务员ID")
+    private Long sellerId;
+
+}

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/SellerSortNoticeQueryBo.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("业务员分销排行榜查询对象")
+public class SellerSortNoticeQueryBo extends BaseEntity {
+    /** 分页大小 */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+    /** 当前页数 */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+    /** 分销活动ID */
+    @ApiModelProperty("分销活动ID")
+    private Long distributionId;
+    /** 活动开始时间 */
+    @ApiModelProperty("活动开始时间")
+    private Long startTime;
+    /** 活动结束时间 */
+    @ApiModelProperty("活动结束时间")
+    private Long endTime;
+    /** 排行榜类型:1佣金,2订单数*/
+    @ApiModelProperty("排行榜类型:1佣金,2订单数")
+    private Integer sortType;
+    /** 业务员ID */
+    @ApiModelProperty("业务员ID")
+    private Long sellerId;
+
+}

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionRebate.java

@@ -38,12 +38,18 @@ private static final long serialVersionUID=1L;
     private BigDecimal cash;
     /** 订单商品ID */
     private Long orderGoodsId;
+    /** 订单号 */
+    private String orderSn;
     /** 佣金类型 */
     private Integer profitType;
     /** 佣金比例 */
     private BigDecimal profit;
     /** 状态:1有效,0无效 */
     private Integer status;
+    /** 佣金状态:1冻结,2正常 */
+    private Integer cashStatus;
+    /** 解冻时间 */
+    private Long openTime;
     /** 添加时间 */
     @TableField(fill = FieldFill.INSERT)
     private Long createTime;

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityGoodsMapper.java

@@ -3,8 +3,10 @@ package com.zhongzheng.modules.distribution.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.activity.vo.ActivityGoodsPriceVo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
+import com.zhongzheng.modules.distribution.bo.SellerSortNoticeQueryBo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityGoods;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityGoodsVo;
+import com.zhongzheng.modules.distribution.vo.SellerSortNoticeVo;
 
 import java.util.List;
 
@@ -17,4 +19,7 @@ import java.util.List;
 public interface DistributionActivityGoodsMapper extends BaseMapper<DistributionActivityGoods> {
    List<ActivityGoodsPriceVo> getGoodsList(DistributionActivityGoodsQueryBo bo);
    List<DistributionActivityGoodsVo> getDetailGoodsList(DistributionActivityGoodsQueryBo bo);
+
+    List<SellerSortNoticeVo> getSellerSortNotice(SellerSortNoticeQueryBo bo);
+
 }

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityMapper.java

@@ -1,8 +1,14 @@
 package com.zhongzheng.modules.distribution.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.bo.SellerOrderQueryBo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivity;
 import com.zhongzheng.modules.distribution.vo.DistributionGoodsListVo;
+import com.zhongzheng.modules.distribution.vo.SellerOrderVo;
+import com.zhongzheng.modules.top.distribution.bo.TenantOrderQueryBo;
+import com.zhongzheng.modules.top.distribution.bo.TenantSortNoticeQueryBo;
+import com.zhongzheng.modules.top.distribution.vo.TenantOrderVo;
+import com.zhongzheng.modules.top.distribution.vo.TenantSortNoticeVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -16,4 +22,10 @@ import java.util.List;
 public interface DistributionActivityMapper extends BaseMapper<DistributionActivity> {
 
     List<DistributionGoodsListVo> getGoodsList(@Param("distributionId") Long distributionId);
+
+    List<SellerOrderVo> getSellerOrder(SellerOrderQueryBo bo);
+
+    List<TenantSortNoticeVo> getTenantSortNotice(TenantSortNoticeQueryBo bo);
+
+    List<TenantOrderVo> getOrgOrder(TenantOrderQueryBo bo);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityGoodsService.java

@@ -3,8 +3,12 @@ package com.zhongzheng.modules.distribution.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.activity.vo.ActivityGoodsPriceVo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
+import com.zhongzheng.modules.distribution.bo.SellerOrderQueryBo;
+import com.zhongzheng.modules.distribution.bo.SellerSortNoticeQueryBo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityGoods;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityGoodsVo;
+import com.zhongzheng.modules.distribution.vo.SellerOrderVo;
+import com.zhongzheng.modules.distribution.vo.SellerSortNoticeVo;
 import com.zhongzheng.modules.goods.bo.GoodsPullResultBo;
 import com.zhongzheng.modules.goods.bo.GoodsPullTenantBo;
 
@@ -26,4 +30,5 @@ public interface IDistributionActivityGoodsService extends IService<Distribution
 
     List<DistributionActivityGoodsVo> getDetailGoodsList(DistributionActivityGoodsQueryBo bo);
 
+    List<SellerSortNoticeVo> getSellerSortNotice(SellerSortNoticeQueryBo bo);
 }

+ 12 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityService.java

@@ -1,13 +1,15 @@
 package com.zhongzheng.modules.distribution.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zhongzheng.modules.distribution.bo.DistributionActivityAddBo;
-import com.zhongzheng.modules.distribution.bo.DistributionActivityEditBo;
-import com.zhongzheng.modules.distribution.bo.DistributionActivityQueryBo;
-import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
+import com.zhongzheng.modules.distribution.bo.*;
 import com.zhongzheng.modules.distribution.domain.DistributionActivity;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityVo;
 import com.zhongzheng.modules.distribution.vo.DistributionGoodsListVo;
+import com.zhongzheng.modules.distribution.vo.SellerOrderVo;
+import com.zhongzheng.modules.top.distribution.bo.TenantOrderQueryBo;
+import com.zhongzheng.modules.top.distribution.bo.TenantSortNoticeQueryBo;
+import com.zhongzheng.modules.top.distribution.vo.TenantOrderVo;
+import com.zhongzheng.modules.top.distribution.vo.TenantSortNoticeVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -59,4 +61,10 @@ public interface IDistributionActivityService extends IService<DistributionActiv
     void saveEntity(DistributionActivity dailyActivity);
 
     List<DistributionGoodsListVo> getGoodsList(Long distributionId);
+
+    List<SellerOrderVo> getSellerOrder(SellerOrderQueryBo bo);
+
+    List<TenantSortNoticeVo> getTenantSortNotice(TenantSortNoticeQueryBo bo);
+
+    List<TenantOrderVo> getOrgOrder(TenantOrderQueryBo bo);
 }

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityGoodsServiceImpl.java

@@ -20,10 +20,12 @@ import com.zhongzheng.modules.base.service.*;
 import com.zhongzheng.modules.course.domain.*;
 import com.zhongzheng.modules.course.service.*;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
+import com.zhongzheng.modules.distribution.bo.SellerSortNoticeQueryBo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityGoods;
 import com.zhongzheng.modules.distribution.mapper.DistributionActivityGoodsMapper;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsService;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityGoodsVo;
+import com.zhongzheng.modules.distribution.vo.SellerSortNoticeVo;
 import com.zhongzheng.modules.exam.domain.ExamPaper;
 import com.zhongzheng.modules.exam.service.IExamPaperService;
 import com.zhongzheng.modules.goods.bo.GoodsPullResultBo;
@@ -612,6 +614,12 @@ public class DistributionActivityGoodsServiceImpl extends ServiceImpl<Distributi
         return this.baseMapper.getDetailGoodsList(bo);
     }
 
+    @Override
+    public List<SellerSortNoticeVo> getSellerSortNotice(SellerSortNoticeQueryBo bo) {
+        return baseMapper.getSellerSortNotice(bo);
+    }
+
+
     private void disposeGoodsCourseTeacher(Long oldGoodsId, Long newGoodsId, Long newTenantId) {
         //双师关联
         goodsCourseTeacherService.deleteByIdTeanant(newGoodsId,newTenantId);

+ 41 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java

@@ -15,30 +15,34 @@ import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.ToolsUtils;
 import com.zhongzheng.modules.activity.domain.ActivityGoodsPrice;
 import com.zhongzheng.modules.activity.service.IActivityGoodsPriceService;
-import com.zhongzheng.modules.distribution.bo.DistributionActivityAddBo;
-import com.zhongzheng.modules.distribution.bo.DistributionActivityEditBo;
-import com.zhongzheng.modules.distribution.bo.DistributionActivityQueryBo;
-import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
+import com.zhongzheng.modules.distribution.bo.*;
 import com.zhongzheng.modules.distribution.domain.DistributionActivity;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityGoods;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityPoster;
+import com.zhongzheng.modules.distribution.domain.DistributionCashLog;
 import com.zhongzheng.modules.distribution.mapper.DistributionActivityMapper;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsService;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityPosterService;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityService;
+import com.zhongzheng.modules.distribution.service.IDistributionCashLogService;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityGoodsVo;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityVo;
 import com.zhongzheng.modules.distribution.vo.DistributionGoodsListVo;
+import com.zhongzheng.modules.distribution.vo.SellerOrderVo;
 import com.zhongzheng.modules.goods.bo.GoodsPullResultBo;
 import com.zhongzheng.modules.goods.bo.GoodsPullTenantBo;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.domain.GoodsSpecAttributeRelation;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.service.IGoodsSpecAttributeRelationService;
+import com.zhongzheng.modules.top.distribution.bo.TenantOrderQueryBo;
+import com.zhongzheng.modules.top.distribution.bo.TenantSortNoticeQueryBo;
 import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplate;
 import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplateGoods;
 import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateGoodsService;
 import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateService;
+import com.zhongzheng.modules.top.distribution.vo.TenantOrderVo;
+import com.zhongzheng.modules.top.distribution.vo.TenantSortNoticeVo;
 import com.zhongzheng.modules.top.goods.domain.TopActivityGoodsPrice;
 import com.zhongzheng.modules.top.goods.domain.TopGoods;
 import com.zhongzheng.modules.top.goods.service.ITopActivityGoodsPriceService;
@@ -83,6 +87,8 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
     private IDistributionActivityTemplateService iDistributionActivityTemplateService;
     @Autowired
     private IGoodsSpecAttributeRelationService goodsSpecAttributeRelationService;
+    @Autowired
+    private IDistributionCashLogService iDistributionCashLogService;
 
     @Override
     public DistributionActivityVo queryById(Long distributionId){
@@ -458,4 +464,35 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
         });
         return list;
     }
+
+    @Override
+    public List<SellerOrderVo> getSellerOrder(SellerOrderQueryBo bo) {
+        List<SellerOrderVo> orderVos = baseMapper.getSellerOrder(bo);
+        if (CollectionUtils.isEmpty(orderVos)){
+            return new ArrayList<>();
+        }
+        orderVos.forEach(item -> {
+            //差看佣金状态
+            DistributionCashLog cashLog = iDistributionCashLogService
+                    .getOne(new LambdaQueryWrapper<DistributionCashLog>()
+                    .eq(DistributionCashLog::getSellerId, item.getSellerId())
+                    .eq(DistributionCashLog::getRelatedSn, item.getOrderSn())
+                    .last("limit 1"));
+            if (ObjectUtils.isNotNull(cashLog)){
+                item.setCashStatus(cashLog.getType() > 1?2:1);
+            }
+        });
+        return orderVos;
+    }
+
+    @Override
+    public List<TenantSortNoticeVo> getTenantSortNotice(TenantSortNoticeQueryBo bo) {
+        return baseMapper.getTenantSortNotice(bo);
+    }
+
+    @Override
+    public List<TenantOrderVo> getOrgOrder(TenantOrderQueryBo bo) {
+        List<TenantOrderVo> orderVos = baseMapper.getOrgOrder(bo);
+        return null;
+    }
 }

+ 69 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/SellerOrderVo.java

@@ -0,0 +1,69 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@ApiModel("业务员订单对象")
+public class SellerOrderVo implements Serializable {
+
+    /** 订单ID */
+    @ApiModelProperty("订单ID")
+    private Long orderId;
+    /** 订单号 */
+    @ApiModelProperty("订单号")
+    private String orderSn;
+    /** 订单状态 -2 超时关闭,-1手动关闭,0待支付,1已支付 3部分已退款 4完全退款 */
+    @ApiModelProperty("订单状态 -2 超时关闭,-1手动关闭,0待支付,1已支付 3部分已退款 4完全退款")
+    private Integer orderStatus;
+    /** 支付状态 1未收费 2部分收费 3完全收费 4免费 (退款此状态保持不变) */
+    @ApiModelProperty("支付状态 1未收费 2部分收费 3完全收费 4免费 (退款此状态保持不变)")
+    private Integer payStatus;
+    /** 活动名称 */
+    @ApiModelProperty("活动名称")
+    private String distributionName;
+    /** 活动ID */
+    @ApiModelProperty("活动ID")
+    private Long distributionId;
+    /** 活动code */
+    @ApiModelProperty("活动code")
+    private String distributionCode;
+    /** 下单人 */
+    @ApiModelProperty("下单人")
+    private String orderUserName;
+    /** 订单时间 */
+    @ApiModelProperty("订单时间")
+    private Long orderTime;
+    /** 订单金额 */
+    @ApiModelProperty("订单金额")
+    private BigDecimal orderPrice;
+    /** 层级佣金类型:1百分比,2固定金额 */
+    @ApiModelProperty("层级佣金类型:1百分比,2固定金额")
+    private Integer cashType;
+    /** 佣金比例 */
+    @ApiModelProperty("佣金比例")
+    private BigDecimal cashRatio;
+    /** 佣金 */
+    @ApiModelProperty("佣金")
+    private BigDecimal cash;
+    /** 佣金产生时间 */
+    @ApiModelProperty("佣金产生时间")
+    private Long cashTime;
+    /** 佣金状态 */
+    @ApiModelProperty("佣金状态:1冻结,2正常")
+    private Integer cashStatus;
+    /** 业务员ID */
+    @ApiModelProperty("业务员ID")
+    private Long sellerId;
+    /** 商品ID */
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+}

+ 30 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/SellerSortNoticeVo.java

@@ -0,0 +1,30 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@ApiModel("业务员分销排行榜对象")
+public class SellerSortNoticeVo implements Serializable {
+    /** 业务员ID */
+    @ApiModelProperty("业务员ID")
+    private Long sellerId;
+    /** 业务员名称 */
+    @ApiModelProperty("业务员名称")
+    private String sellerName;
+    /** 总佣金 */
+    @ApiModelProperty("总佣金")
+    private BigDecimal cashTotal;
+    /** 订单数量 */
+    @ApiModelProperty("订单数")
+    private Integer orderNum;
+
+}

+ 38 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/bo/TenantOrderQueryBo.java

@@ -0,0 +1,38 @@
+package com.zhongzheng.modules.top.distribution.bo;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("业务员分销排行榜查询对象")
+public class TenantOrderQueryBo extends BaseEntity {
+    /** 分页大小 */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+    /** 当前页数 */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    @ApiModelProperty("机构ID")
+    private Long tenantId;
+    @ApiModelProperty("开始时间")
+    private Long startTime;
+    @ApiModelProperty("结束时间")
+    private Long endTime;
+    @ApiModelProperty("订单号")
+    private String orderSn;
+    @ApiModelProperty("下单人姓名")
+    private String userName;
+    @ApiModelProperty("业务员姓名")
+    private String sellerName;
+
+
+}

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/bo/TenantSortNoticeQueryBo.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.top.distribution.bo;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("业务员分销排行榜查询对象")
+public class TenantSortNoticeQueryBo extends BaseEntity {
+    /** 分页大小 */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+    /** 当前页数 */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+    /** 分销活动ID */
+    @ApiModelProperty("分销活动ID")
+    private Long distributionId;
+    /** 活动开始时间 */
+    @ApiModelProperty("活动开始时间")
+    private Long startTime;
+    /** 活动结束时间 */
+    @ApiModelProperty("活动结束时间")
+    private Long endTime;
+    /** 排行榜类型:1佣金,2订单数*/
+    @ApiModelProperty("排行榜类型:1佣金,2订单数,3招募业务员数量")
+    private Integer sortType;
+    /** 机构ID */
+    @ApiModelProperty("机构ID")
+    private Long tenantId;
+
+}

+ 7 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/service/IDistributionActivityTemplateService.java

@@ -3,13 +3,12 @@ package com.zhongzheng.modules.top.distribution.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.distribution.vo.DistributionSellerVo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateAddBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateEditBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateQueryBo;
+import com.zhongzheng.modules.top.distribution.bo.*;
 import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionSellerQuery;
 import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplate;
 import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTemplateVo;
+import com.zhongzheng.modules.top.distribution.vo.TenantOrderVo;
+import com.zhongzheng.modules.top.distribution.vo.TenantSortNoticeVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -68,4 +67,8 @@ public interface IDistributionActivityTemplateService extends IService<Distribut
     List<DistributionSellerVo> sellerList(DistributionSellerQuery query);
 
     DistributionActivityTemplate getEntityById(Long tempId);
+
+    List<TenantSortNoticeVo> getTenantSortNotice(TenantSortNoticeQueryBo bo);
+
+    List<TenantOrderVo> getOrgOrder(TenantOrderQueryBo bo);
 }

+ 12 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/service/impl/DistributionActivityTemplateServiceImpl.java

@@ -36,10 +36,7 @@ import com.zhongzheng.modules.system.domain.SysUserRole;
 import com.zhongzheng.modules.system.service.ISysRoleService;
 import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.system.service.ISysUserRoleService;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateAddBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateEditBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateQueryBo;
-import com.zhongzheng.modules.top.distribution.bo.DistributionSellerQuery;
+import com.zhongzheng.modules.top.distribution.bo.*;
 import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplate;
 import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplateGoods;
 import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplatePoster;
@@ -49,9 +46,7 @@ import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemp
 import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplatePosterService;
 import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateRelationService;
 import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateService;
-import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTemplateGoodsVo;
-import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTemplateVo;
-import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTenantVo;
+import com.zhongzheng.modules.top.distribution.vo.*;
 import com.zhongzheng.modules.top.goods.domain.TopActivityGoodsPrice;
 import com.zhongzheng.modules.top.goods.domain.TopGoods;
 import com.zhongzheng.modules.top.goods.service.ITopActivityGoodsPriceService;
@@ -470,4 +465,14 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
     public DistributionActivityTemplate getEntityById(Long tempId) {
         return getById(tempId);
     }
+
+    @Override
+    public List<TenantSortNoticeVo> getTenantSortNotice(TenantSortNoticeQueryBo bo) {
+        return iDistributionActivityService.getTenantSortNotice(bo);
+    }
+
+    @Override
+    public List<TenantOrderVo> getOrgOrder(TenantOrderQueryBo bo) {
+        return iDistributionActivityService.getOrgOrder(bo);
+    }
 }

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/vo/TenantOrderCashVo.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.top.distribution.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@ApiModel("业务员订单对象")
+public class TenantOrderCashVo implements Serializable {
+    /** 层级佣金类型:1百分比,2固定金额 */
+    @ApiModelProperty("层级佣金类型:1百分比,2固定金额")
+    private Integer cashType;
+    /** 佣金比例 */
+    @ApiModelProperty("佣金比例")
+    private BigDecimal cashRatio;
+    /** 佣金 */
+    @ApiModelProperty("佣金")
+    private BigDecimal cash;
+    /** 佣金产生时间 */
+    @ApiModelProperty("佣金产生时间")
+    private Long cashTime;
+    /** 佣金状态 */
+    @ApiModelProperty("佣金状态:1冻结,2正常")
+    private Integer cashStatus;
+    /** 业务员ID */
+    @ApiModelProperty("业务员ID")
+    private Long sellerId;
+    /** 业务员名称 */
+    @ApiModelProperty("业务员名称")
+    private String sellerName;
+
+}

+ 67 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/vo/TenantOrderVo.java

@@ -0,0 +1,67 @@
+package com.zhongzheng.modules.top.distribution.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@ApiModel("业务员订单对象")
+public class TenantOrderVo implements Serializable {
+
+    /** 订单ID */
+    @ApiModelProperty("订单ID")
+    private Long orderId;
+    /** 订单号 */
+    @ApiModelProperty("订单号")
+    private String orderSn;
+    /** 订单状态 -2 超时关闭,-1手动关闭,0待支付,1已支付 3部分已退款 4完全退款 */
+    @ApiModelProperty("订单状态 -2 超时关闭,-1手动关闭,0待支付,1已支付 3部分已退款 4完全退款")
+    private Integer orderStatus;
+    /** 支付状态 1未收费 2部分收费 3完全收费 4免费 (退款此状态保持不变) */
+    @ApiModelProperty("支付状态 1未收费 2部分收费 3完全收费 4免费 (退款此状态保持不变)")
+    private Integer payStatus;
+    /** 活动名称 */
+    @ApiModelProperty("活动名称")
+    private String distributionName;
+    /** 活动ID */
+    @ApiModelProperty("活动ID")
+    private Long distributionId;
+    /** 活动code */
+    @ApiModelProperty("活动code")
+    private String distributionCode;
+    /** 下单人 */
+    @ApiModelProperty("下单人")
+    private String orderUserName;
+    /** 手机号 */
+    @ApiModelProperty("手机号")
+    private String telphone;
+    /** 订单时间 */
+    @ApiModelProperty("订单时间")
+    private Long orderTime;
+    /** 订单金额 */
+    @ApiModelProperty("订单金额")
+    private BigDecimal orderPrice;
+    /** 订单佣金 */
+    @ApiModelProperty("订单佣金")
+    private BigDecimal orderCash;
+    /** 商品ID */
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+    /** 商品名称 */
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+    /** 所属机构 */
+    @ApiModelProperty("所属机构")
+    private String tenantName;
+    /** 佣金详情 */
+    @ApiModelProperty("佣金详情")
+    private List<TenantOrderCashVo> cashVoList;
+}

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/vo/TenantSortNoticeVo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.top.distribution.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月28日 14:05
+ */
+@Data
+@ApiModel("业务员分销排行榜对象")
+public class TenantSortNoticeVo implements Serializable {
+    /** 机构ID */
+    @ApiModelProperty("机构ID")
+    private Long tenantId;
+    /** 机构名称 */
+    @ApiModelProperty("机构名称")
+    private String tenantName;
+    /** 总佣金 */
+    @ApiModelProperty("总佣金")
+    private BigDecimal cashTotal;
+    /** 订单数量 */
+    @ApiModelProperty("订单数")
+    private Integer orderNum;
+    /** 招募业务员数量 */
+    @ApiModelProperty("招募业务员数量")
+    private Integer sellerNum;
+    /** 业务员总数 */
+    @ApiModelProperty("业务员总数")
+    private Integer sellerNumAll;
+
+}

+ 11 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -558,7 +558,18 @@ public class WxPayServiceImpl implements IWxPayService {
             DistributionRebate distributionRebate = new DistributionRebate();
             distributionRebate.setDistributionCode(g.getDistributionCode());
             distributionRebate.setOrderGoodsId(g.getOrderGoodsId());
+            distributionRebate.setOrderSn(g.getOrderSn());
             distributionRebate.setCash(cash);
+            distributionRebate.setCashStatus(flag?1:2);
+            //解冻时间
+            if (flag){
+                Long nowTime = DateUtils.getNowTime();
+                Integer period = activity.getFreezingPeriod();
+                Long time = period*86400L + nowTime;
+                distributionRebate.setOpenTime(time);
+            }else {
+                distributionRebate.setOpenTime(0L);
+            }
             distributionRebate.setSellerId(linkLink.getSellerId());
             distributionRebate.setSellerLevel(i + 1);
             distributionRebate.setProfitType(activityGoods.getProfitType());

+ 32 - 0
zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionActivityGoodsMapper.xml

@@ -36,4 +36,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND gp.`status` = 1
           AND g.goods_status = 1
     </select>
+
+    <select id="getSellerSortNotice" parameterType="com.zhongzheng.modules.distribution.bo.SellerSortNoticeQueryBo" resultType="com.zhongzheng.modules.distribution.vo.SellerSortNoticeVo">
+        SELECT
+            ds.realname as sellerName,
+            ds.seller_id,
+            SUM( dr.cash ) AS cashTotal,
+            (SELECT COUNT(DISTINCT(dir.order_sn)) FROM distribution_rebate dir WHERE dir.seller_id = dr.seller_id AND dir.`status` = 1) AS orderNum
+        FROM
+            distribution_rebate dr
+                LEFT JOIN distribution_seller ds ON dr.seller_id = ds.seller_id
+                LEFT JOIN distribution_activity d ON dr.distribution_code = d.`code`
+                LEFT JOIN `order` o ON dr.order_sn = o.order_sn
+        WHERE
+            dr.`status` = 1
+        <if test = "distributionId != null and distributionId != ''" >
+            AND d.distribution_id = #{distributionId}
+        </if >
+        <if test = "startTime != null and startTime != ''" >
+            AND o.create_time <![CDATA[  >=  ]]> #{startTime}
+        </if >
+        <if test = "endTime != null and endTime != ''" >
+            AND o.create_time <![CDATA[  <=  ]]> #{endTime}
+        </if >
+        GROUP BY
+            dr.seller_id
+        <if test = "sortType == null or sortType == '' or sortType == 1" >
+            ORDER BY cashTotal DESC
+        </if >
+        <if test = "sortType != null and sortType != '' and sortType == 2" >
+            ORDER BY orderNum DESC
+        </if >
+    </select>
 </mapper>

+ 110 - 0
zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionActivityMapper.xml

@@ -28,4 +28,114 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if >
     </select>
 
+    <select id="getSellerOrder" parameterType="com.zhongzheng.modules.distribution.bo.SellerOrderQueryBo" resultType="com.zhongzheng.modules.distribution.vo.SellerOrderVo">
+        SELECT
+        o.order_id,
+        o.order_sn,
+        o.order_status,
+        og.pay_status,
+        d.`name` as distributionName,
+        u.realname as orderUserName,
+        o.create_time as orderTime,
+        og.goods_real_price as orderPrice,
+        og.goods_id,
+        d.distribution_id,
+        d.`code` as distributionCode,
+        dr.cash,
+        dr.create_time as cashTime,
+        dr.seller_id,
+        dr.profit_type as cashType,
+        dr.profit as cashRatio
+        FROM
+        distribution_rebate dr
+        LEFT JOIN order_goods og ON dr.order_goods_id = og.order_goods_id
+        LEFT JOIN distribution_seller ds ON dr.seller_id = ds.seller_id
+        LEFT JOIN `order` o ON dr.order_sn = o.order_sn
+        LEFT JOIN `user` u ON o.user_id = u.user_id
+        LEFT JOIN distribution_activity d ON dr.distribution_code = d.`code`
+        WHERE
+        dr.`status` = 1
+        <if test = "sellerId != null and sellerId != ''" >
+            AND dr.seller_id = #{sellerId}
+        </if >
+    </select>
+
+    <select id="getTenantSortNotice" parameterType="com.zhongzheng.modules.top.distribution.bo.TenantSortNoticeQueryBo" resultType="com.zhongzheng.modules.top.distribution.vo.TenantSortNoticeVo">
+        SELECT
+        t.tenant_id,
+        t.tenant_name,
+        SUM( dr.cash ) AS cashTotal,
+        (SELECT COUNT(DISTINCT(dir.order_sn)) FROM distribution_rebate dir WHERE dir.tenant_id = dr.tenant_id AND dir.`status` = 1) AS orderNum,
+        (SELECT COUNT(ds.seller_id) FROM distribution_seller ds WHERE ds.tenant_id = dr.tenant_id AND ds.`status` = 1 AND ds.register_from = 1) AS sellerNum,
+        (SELECT COUNT(ds.seller_id) FROM distribution_seller ds WHERE ds.tenant_id = dr.tenant_id AND ds.`status` = 1 ) AS sellerNumAll
+        FROM
+        distribution_rebate dr
+        LEFT JOIN sys_tenant t ON dr.tenant_id = t.tenant_id
+        LEFT JOIN distribution_activity d ON dr.distribution_code = d.`code`
+        LEFT JOIN `order` o ON dr.order_sn = o.order_sn
+        WHERE
+        dr.`status` = 1
+        <if test = "distributionId != null and distributionId != ''" >
+            AND d.distribution_id = #{distributionId}
+        </if >
+        <if test = "startTime != null and startTime != ''" >
+            AND o.create_time <![CDATA[  >=  ]]> #{startTime}
+        </if >
+        <if test = "endTime != null and endTime != ''" >
+            AND o.create_time <![CDATA[  <=  ]]> #{endTime}
+        </if >
+        GROUP BY
+        dr.tenant_id
+        <if test = "sortType == null or sortType == '' or sortType == 1" >
+            ORDER BY cashTotal DESC
+        </if >
+        <if test = "sortType != null and sortType != '' and sortType == 2" >
+            ORDER BY orderNum DESC
+        </if >
+        <if test = "sortType != null and sortType != '' and sortType == 3" >
+            ORDER BY sellerNum DESC
+        </if >
+    </select>
+
+    <select id="getOrgOrder" parameterType="com.zhongzheng.modules.top.distribution.bo.TenantOrderQueryBo" resultType="com.zhongzheng.modules.top.distribution.vo.TenantOrderVo">
+        SELECT
+            o.order_id,
+            o.order_sn,
+            o.order_status,
+            og.pay_status,
+            d.`name`,
+            d.distribution_id,
+            d.`code`,
+            u.realname,
+            u.telphone,
+            o.create_time,
+            og.goods_real_price,
+            g.goods_id,
+            g.goods_name,
+            t.tenant_id,
+            t.tenant_name,
+            (SELECT SUM(cash) FROM distribution_rebate WHERE order_sn = og.order_sn GROUP BY order_sn) AS orderCash
+        FROM
+                (SELECT DISTINCT(order_goods_id) FROM distribution_rebate) dr
+                    LEFT JOIN order_goods og ON dr.order_goods_id = og.order_goods_id
+                    LEFT JOIN `order` o ON og.order_sn = o.order_sn
+                    LEFT JOIN `user` u ON o.user_id = u.user_id
+                    LEFT JOIN distribution_activity d ON og.distribution_code = d.`code`
+                    LEFT JOIN goods g ON og.goods_id = g.goods_id
+                    LEFT JOIN sys_tenant t ON og.tenant_id = t.tenant_id
+        WHERE og.`status` = 1 AND og.tenant_id = 1
+        <if test = "tenantId != null and tenantId != ''" >
+            AND og.tenant_id = #{tenantId}
+        </if >
+        <if test = "startTime != null and startTime != ''" >
+            AND o.create_time <![CDATA[  >=  ]]> #{startTime}
+        </if >
+        <if test = "endTime != null and endTime != ''" >
+            AND o.create_time <![CDATA[  <=  ]]> #{endTime}
+        </if >
+        <if test = "orderSn != null and orderSn != ''" >
+            AND og.`order` = #{orderSn}
+        </if >
+    </select>
+
 </mapper>