yangdamao 2 роки тому
батько
коміт
6497969540
25 змінених файлів з 711 додано та 11 видалено
  1. 10 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityController.java
  2. 73 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionCashWithdrawalController.java
  3. 33 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionCheckHandleBo.java
  4. 50 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionCheckQueryBo.java
  5. 56 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionCheck.java
  6. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityMapper.java
  7. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionCashWithdrawalMapper.java
  8. 13 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionCheckMapper.java
  9. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityService.java
  10. 16 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionCashWithdrawalService.java
  11. 13 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionCheckService.java
  12. 43 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java
  13. 142 8
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionCashWithdrawalServiceImpl.java
  14. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionCheckServiceImpl.java
  15. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityVo.java
  16. 59 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionCheckDetailVo.java
  17. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionCheckVo.java
  18. 49 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionGoodsListVo.java
  19. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/mapper/SysUserMapper.java
  20. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysUserService.java
  21. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysUserServiceImpl.java
  22. 23 0
      zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionActivityMapper.xml
  23. 31 0
      zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionCashWithdrawalMapper.xml
  24. 8 0
      zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionCheckMapper.xml
  25. 11 0
      zhongzheng-system/src/main/resources/mapper/modules/system/SysUserMapper.xml

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

@@ -11,6 +11,7 @@ import com.zhongzheng.modules.distribution.bo.DistributionActivityQueryBo;
 import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityService;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityVo;
+import com.zhongzheng.modules.distribution.vo.DistributionGoodsListVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -102,5 +103,14 @@ public class DistributionActivityController extends BaseController {
         return toAjax(iDistributionActivityService.pullGoods(distributionId) ? 1 : 0);
     }
 
+    /**
+     * 获取活动商品信息
+     */
+    @ApiOperation("获取活动商品信息")
+    @GetMapping("/goods/list/{distributionId}")
+    public AjaxResult<List<DistributionGoodsListVo>> getGoodsList(@PathVariable("distributionId") Long distributionId) {
+        return AjaxResult.success(iDistributionActivityService.getGoodsList(distributionId));
+    }
+
 
 }

+ 73 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionCashWithdrawalController.java

@@ -0,0 +1,73 @@
+package com.zhongzheng.controller.distribution;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.modules.distribution.bo.DistributionCheckHandleBo;
+import com.zhongzheng.modules.distribution.bo.DistributionCheckQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionCashWithdrawalService;
+import com.zhongzheng.modules.distribution.vo.DistributionCheckDetailVo;
+import com.zhongzheng.modules.distribution.vo.DistributionCheckVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 分销业务员提现申请Controller
+ *
+ * @author ruoyi
+ * @date 2023-03-25
+ */
+@Api(value = "分销订单审核控制器", tags = {"分销订单审核控制器"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/distribution/check")
+public class DistributionCashWithdrawalController extends BaseController {
+
+    private final IDistributionCashWithdrawalService iDistributionCashWithdrawalService;
+
+    private final TokenService tokenService;
+
+    /**
+     * 审核列表
+     */
+    @ApiOperation("审核列表")
+    @GetMapping("/list")
+    public TableDataInfo<DistributionCheckVo> list(DistributionCheckQueryBo bo) {
+        startPage();
+        List<DistributionCheckVo> list = iDistributionCashWithdrawalService.queryCheckList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 审核
+     */
+    @ApiOperation("审核")
+    @PostMapping("/handle")
+    public AjaxResult<Void> checkHandle(@RequestBody DistributionCheckHandleBo bo) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setAuditorId(loginUser.getUser().getUserId());
+        bo.setAuditor(SecurityUtils.getUsername());
+        return toAjax(iDistributionCashWithdrawalService.checkHandle(bo)? 1 : 0);
+    }
+
+    /**
+     * 审核详情
+     */
+    @ApiOperation("审核详情")
+    @GetMapping("/detail/{id}")
+    public AjaxResult<List<DistributionCheckDetailVo>> checkDetail(@PathVariable("id") Long id) {
+        List<DistributionCheckDetailVo> detailVos = iDistributionCashWithdrawalService.checkDetail(id);
+        return AjaxResult.success(detailVos);
+    }
+
+
+}

+ 33 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionCheckHandleBo.java

@@ -0,0 +1,33 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 分销业务员提现申请审核对象 distribution_cash_withdrawal
+ *
+ * @author ruoyi
+ * @date 2023-03-25
+ */
+@Data
+@ApiModel("分销业务员提现申请审核对象")
+public class DistributionCheckHandleBo implements Serializable {
+
+	@ApiModelProperty("提现ID")
+	private Integer cwId;
+	@ApiModelProperty("审核状态 1初审 2二审 3三审")
+	private Integer checkStatus;
+	@ApiModelProperty("审核结果:1同意,2拒绝")
+	private Integer checkResult;
+	@ApiModelProperty("审核金额")
+	private Integer checkCash;
+	@ApiModelProperty("审核意见")
+	private String checkReason;
+	@ApiModelProperty("审核人ID")
+	private Long auditorId;
+	@ApiModelProperty("审核人")
+	private String auditor;
+}

+ 50 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionCheckQueryBo.java

@@ -0,0 +1,50 @@
+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;
+
+import java.util.List;
+
+/**
+ * 分销业务员提现申请分页查询对象 distribution_cash_withdrawal
+ *
+ * @author ruoyi
+ * @date 2023-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("分销业务员提现申请分页查询对象")
+public class DistributionCheckQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+	/** 申请开始时间 */
+	@ApiModelProperty("申请开始时间")
+	private Long applyStartTime;
+	/** 申请结束时间 */
+	@ApiModelProperty("申请结束时间")
+	private Long applyEndTime;
+	/** 提现单号 */
+	@ApiModelProperty("提现单号")
+	private String cwSn;
+	/** 姓名 */
+	@ApiModelProperty("姓名")
+	private String sellerName;
+	/** 提现状态 0未审核 1初审通过 2二审通过 3三审通过 4已打款 -1已拒绝 */
+	@ApiModelProperty("提现状态 0未审核 1初审通过 2二审通过 3三审通过 4已打款 -1已拒绝")
+	private List<Integer> cwStatus;
+}

+ 56 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionCheck.java

@@ -0,0 +1,56 @@
+package com.zhongzheng.modules.distribution.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 【请填写功能名称】对象 distribution_activity_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("distribution_check")
+public class DistributionCheck implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 主键 */
+    @TableId(value = "id")
+    private Long id;
+    /** 提现ID */
+    private Integer cwId;
+    /** 审核意见 */
+    private String checkReason;
+    /** 审核状态 1初审 2二审 3三审 */
+    private Integer checkStatus;
+    /** 审核结果:1同意,2拒绝 */
+    private Integer checkResult;
+    /** 审核人 */
+    private String auditor;
+    /** 审核人ID */
+    private Long auditorId;
+    /** 下一个审核状态:1初审 2二审 3三审 */
+    private Integer nextStatus;
+    /** 下一个审核人 */
+    private String nextAuditor;
+    /** 状态:1有效,0无效 */
+    private Integer status;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 机构ID */
+    private Long tenantId;
+}

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

@@ -2,6 +2,10 @@ package com.zhongzheng.modules.distribution.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.distribution.domain.DistributionActivity;
+import com.zhongzheng.modules.distribution.vo.DistributionGoodsListVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 【请填写功能名称】Mapper接口
@@ -11,4 +15,5 @@ import com.zhongzheng.modules.distribution.domain.DistributionActivity;
  */
 public interface DistributionActivityMapper extends BaseMapper<DistributionActivity> {
 
+    List<DistributionGoodsListVo> getGoodsList(@Param("distributionId") Long distributionId);
 }

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

@@ -1,7 +1,11 @@
 package com.zhongzheng.modules.distribution.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.bo.DistributionCheckQueryBo;
 import com.zhongzheng.modules.distribution.domain.DistributionCashWithdrawal;
+import com.zhongzheng.modules.distribution.vo.DistributionCheckVo;
+
+import java.util.List;
 
 /**
  * 分销业务员提现申请Mapper接口
@@ -11,4 +15,5 @@ import com.zhongzheng.modules.distribution.domain.DistributionCashWithdrawal;
  */
 public interface DistributionCashWithdrawalMapper extends BaseMapper<DistributionCashWithdrawal> {
 
+    List<DistributionCheckVo> queryCheckList(DistributionCheckQueryBo bo);
 }

+ 13 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionCheckMapper.java

@@ -0,0 +1,13 @@
+package com.zhongzheng.modules.distribution.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.domain.DistributionCheck;
+
+/**
+ *
+ *
+ * @author ruoyi
+ * @date 2023-03-25
+ */
+public interface DistributionCheckMapper extends BaseMapper<DistributionCheck> {
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityService.java

@@ -7,6 +7,7 @@ import com.zhongzheng.modules.distribution.bo.DistributionActivityQueryBo;
 import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivity;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityVo;
+import com.zhongzheng.modules.distribution.vo.DistributionGoodsListVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -56,4 +57,6 @@ public interface IDistributionActivityService extends IService<DistributionActiv
 	boolean pullGoods(Long distributionId);
 
     void saveEntity(DistributionActivity dailyActivity);
+
+    List<DistributionGoodsListVo> getGoodsList(Long distributionId);
 }

+ 16 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionCashWithdrawalService.java

@@ -1,11 +1,11 @@
 package com.zhongzheng.modules.distribution.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zhongzheng.modules.distribution.bo.DistributionCashWithdrawalAddBo;
-import com.zhongzheng.modules.distribution.bo.DistributionCashWithdrawalEditBo;
-import com.zhongzheng.modules.distribution.bo.DistributionCashWithdrawalQueryBo;
+import com.zhongzheng.modules.distribution.bo.*;
 import com.zhongzheng.modules.distribution.domain.DistributionCashWithdrawal;
 import com.zhongzheng.modules.distribution.vo.DistributionCashWithdrawalVo;
+import com.zhongzheng.modules.distribution.vo.DistributionCheckDetailVo;
+import com.zhongzheng.modules.distribution.vo.DistributionCheckVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -49,4 +49,17 @@ public interface IDistributionCashWithdrawalService extends IService<Distributio
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+	/**
+	 * 审核列表
+	 * @author change
+	 * @date 2023/3/27 10:15
+	 * @param bo
+	 * @return java.util.List<com.zhongzheng.modules.distribution.vo.DistributionCheckVo>
+	 */
+    List<DistributionCheckVo> queryCheckList(DistributionCheckQueryBo bo);
+
+    boolean checkHandle(DistributionCheckHandleBo bo);
+
+    List<DistributionCheckDetailVo> checkDetail(Long id);
 }

+ 13 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionCheckService.java

@@ -0,0 +1,13 @@
+package com.zhongzheng.modules.distribution.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.distribution.domain.DistributionCheck;
+
+/**
+ *
+ *
+ * @author ruoyi
+ * @date 2023-03-25
+ */
+public interface IDistributionCheckService extends IService<DistributionCheck> {
+}

+ 43 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java

@@ -28,10 +28,13 @@ import com.zhongzheng.modules.distribution.service.IDistributionActivityPosterSe
 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.DistributionGoodsListVo;
 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.domain.DistributionActivityTemplate;
 import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplateGoods;
 import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateGoodsService;
@@ -48,6 +51,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -77,6 +81,8 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
     private ITopActivityGoodsPriceService iTopActivityGoodsPriceService;
     @Autowired
     private IDistributionActivityTemplateService iDistributionActivityTemplateService;
+    @Autowired
+    private IGoodsSpecAttributeRelationService goodsSpecAttributeRelationService;
 
     @Override
     public DistributionActivityVo queryById(Long distributionId){
@@ -134,6 +140,7 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
         voList.forEach(item -> {
             DistributionActivityPoster poster = iDistributionActivityPosterService.getById(item.getPosterId());
             item.setPosterTempName(poster.getName());
+            item.setPosterUrl(poster.getUrl());
         });
         return voList;
     }
@@ -415,4 +422,40 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
     public void saveEntity(DistributionActivity dailyActivity) {
         save(dailyActivity);
     }
+
+    @Override
+    public List<DistributionGoodsListVo> getGoodsList(Long distributionId) {
+        List<DistributionGoodsListVo> list = baseMapper.getGoodsList(distributionId);
+        if (CollectionUtils.isEmpty(list)){
+            return new ArrayList<>();
+        }
+        list.forEach(item -> {
+            //商品活动价格
+            ActivityGoodsPrice goodsPrice = iActivityGoodsPriceService
+                    .getOne(new LambdaQueryWrapper<ActivityGoodsPrice>()
+                    .eq(ActivityGoodsPrice::getActivityCode, item.getCode())
+                    .eq(ActivityGoodsPrice::getGoodsId, item.getGoodsId())
+                    .eq(ActivityGoodsPrice::getStatus, 1)
+                    .last("limit 1"));
+            if (ObjectUtils.isNotNull(goodsPrice)){
+                item.setStandPrice(goodsPrice.getGoodsPrice());
+            }
+
+            //多规格下的价格区间
+            if (ObjectUtils.isNotNull(item.getSpecTemplateId())){
+                List<GoodsSpecAttributeRelation> specAttributeRelations = goodsSpecAttributeRelationService
+                        .list(new LambdaQueryWrapper<GoodsSpecAttributeRelation>()
+                                .eq(GoodsSpecAttributeRelation::getSpecTemplateId, item.getSpecTemplateId()));
+                if (CollectionUtils.isNotEmpty(specAttributeRelations)){
+                    List<Long> goodsIds = specAttributeRelations.stream().filter(x -> ObjectUtils.isNotNull(x.getGoodsId())).map(GoodsSpecAttributeRelation::getGoodsId).collect(Collectors.toList());
+                    List<Goods> goodsList = iGoodsService.listByIds(goodsIds);
+                    //从小到大排序
+                    List<Goods> collect = goodsList.stream().filter(x -> ObjectUtils.isNotNull(x.getStandPrice())).sorted(Comparator.comparing(Goods::getStandPrice)).collect(Collectors.toList());
+                    item.setMinPrice(collect.get(0).getStandPrice());
+                    item.setMaxPrice(collect.get(collect.size() - 1).getStandPrice());
+                }
+            }
+        });
+        return list;
+    }
 }

+ 142 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionCashWithdrawalServiceImpl.java

@@ -2,22 +2,34 @@ package com.zhongzheng.modules.distribution.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.core.domain.entity.SysRole;
+import com.zhongzheng.common.core.domain.entity.SysUser;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
-import com.zhongzheng.modules.distribution.bo.DistributionCashWithdrawalAddBo;
-import com.zhongzheng.modules.distribution.bo.DistributionCashWithdrawalEditBo;
-import com.zhongzheng.modules.distribution.bo.DistributionCashWithdrawalQueryBo;
+import com.zhongzheng.modules.distribution.bo.*;
 import com.zhongzheng.modules.distribution.domain.DistributionCashWithdrawal;
+import com.zhongzheng.modules.distribution.domain.DistributionCheck;
 import com.zhongzheng.modules.distribution.mapper.DistributionCashWithdrawalMapper;
 import com.zhongzheng.modules.distribution.service.IDistributionCashWithdrawalService;
+import com.zhongzheng.modules.distribution.service.IDistributionCheckService;
 import com.zhongzheng.modules.distribution.vo.DistributionCashWithdrawalVo;
+import com.zhongzheng.modules.distribution.vo.DistributionCheckDetailVo;
+import com.zhongzheng.modules.distribution.vo.DistributionCheckVo;
+import com.zhongzheng.modules.system.domain.SysUserRole;
+import com.zhongzheng.modules.system.service.ISysRoleService;
+import com.zhongzheng.modules.system.service.ISysUserRoleService;
+import com.zhongzheng.modules.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.github.pagehelper.Page;
 
+import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -30,6 +42,15 @@ import java.util.stream.Collectors;
 @Service
 public class DistributionCashWithdrawalServiceImpl extends ServiceImpl<DistributionCashWithdrawalMapper, DistributionCashWithdrawal> implements IDistributionCashWithdrawalService {
 
+    @Autowired
+    private ISysRoleService iSysRoleService;
+    @Autowired
+    public ISysUserService iSysUserService;
+    @Autowired
+    public ISysUserRoleService iSysUserRoleService;
+    @Autowired
+    public IDistributionCheckService iDistributionCheckService;
+
     @Override
     public DistributionCashWithdrawalVo queryById(Long id){
         DistributionCashWithdrawal db = this.baseMapper.selectById(id);
@@ -106,4 +127,117 @@ public class DistributionCashWithdrawalServiceImpl extends ServiceImpl<Distribut
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public List<DistributionCheckVo> queryCheckList(DistributionCheckQueryBo bo) {
+        List<DistributionCheckVo> checkVos = baseMapper.queryCheckList(bo);
+        return checkVos;
+    }
+
+    @Override
+    public boolean checkHandle(DistributionCheckHandleBo bo) {
+        DistributionCashWithdrawal warning = getById(bo.getCwId());
+        if (ObjectUtils.isNotNull(warning)){
+            throw new CustomException("提现记录获取失败!");
+        }
+//        validStatus(bo,warning);
+        DistributionCheck check = BeanUtil.toBean(bo, DistributionCheck.class);
+        check.setStatus(1);
+        check.setCreateTime(DateUtils.getNowTime());
+        check.setUpdateTime(DateUtils.getNowTime());
+        String roleKey1 = "edu";
+        String roleKey2 = "accounting";
+        String roleKey3 = "boss";
+        Integer checkStatus = 0;
+        if (bo.getCheckStatus() == 1){
+            //一审教务
+            validPermission(bo,roleKey1);
+            if (bo.getCheckResult() == 1){
+                //通过
+                addNextAuditor(check,2,roleKey2);
+                checkStatus = 1;
+            }else {
+                //拒绝 打回上一层
+                addNextAuditor(check,1,roleKey1);
+                checkStatus = 0;
+            }
+        }
+        if (bo.getCheckStatus() == 2){
+            //二审财务
+            validPermission(bo,roleKey2);
+            if (bo.getCheckResult() == 1){
+                //通过
+                addNextAuditor(check,3,roleKey3);
+                checkStatus = 2;
+            }else {
+                //拒绝 打回上一层
+                addNextAuditor(check,1,roleKey1);
+                checkStatus = 1;
+            }
+        }
+        if (bo.getCheckStatus() == 3){
+            //三审老板
+            validPermission(bo,roleKey3);
+            if (bo.getCheckResult() == 1){
+                //通过
+                checkStatus = 3;
+            }else {
+                //拒绝 打回上一层
+                addNextAuditor(check,2,roleKey2);
+                checkStatus = 2;
+            }
+        }
+        //保存审核记录
+        iDistributionCheckService.save(check);
+        //修改提现状态
+        warning.setCwStatus(checkStatus);
+        return updateById(warning);
+    }
+
+    @Override
+    public List<DistributionCheckDetailVo> checkDetail(Long id) {
+        List<DistributionCheck> list = iDistributionCheckService.list(new LambdaQueryWrapper<DistributionCheck>()
+                .eq(DistributionCheck::getCwId, id)
+                .eq(DistributionCheck::getStatus, 1));
+        if (CollectionUtils.isEmpty(list)){
+            return new ArrayList<>();
+        }
+        return list.stream().map(item -> BeanUtil.toBean(item,DistributionCheckDetailVo.class)).collect(Collectors.toList());
+    }
+
+    private void addNextAuditor(DistributionCheck check,Integer nextStatus,String nextKey){
+        check.setNextStatus(nextStatus);//初审
+        List<String> userNames = iSysUserService.getUserNameByRoleKey(nextKey);
+        if (CollectionUtils.isNotEmpty(userNames)){
+            check.setNextAuditor(userNames.stream().collect(Collectors.joining()));
+        }
+
+    }
+
+    private void validPermission(DistributionCheckHandleBo bo,String roleKey) {
+
+        SysRole edu = iSysRoleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleKey, roleKey));
+        if (ObjectUtils.isNull(edu)){
+            throw new CustomException("没有当前审核角色");
+        }
+        List<SysUserRole> list = iSysUserRoleService
+                .list(new LambdaQueryWrapper<SysUserRole>()
+                        .eq(SysUserRole::getRoleId, edu.getRoleId()));
+        if (CollectionUtils.isEmpty(list)){
+            throw new CustomException("没有当前审核账号");
+        }
+
+        List<SysUser> sysUsers = iSysUserService.listByIds(list.stream().map(SysUserRole::getUserId).collect(Collectors.toList()));
+        if (sysUsers.stream().noneMatch(item -> item.getUserId().equals(bo.getAuditorId()))){
+            throw new CustomException("该账号没有审核权限");
+        }
+    }
+
+    private void validStatus(DistributionCheckHandleBo bo,DistributionCashWithdrawal warning ) {
+        //校验审核状态
+        Integer checkStatus = bo.getCheckStatus();//当前状态
+//        if(checkStatus == 1 && warning.getStatus() ){
+//
+//        }
+    }
 }

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionCheckServiceImpl.java

@@ -0,0 +1,15 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhongzheng.modules.distribution.domain.DistributionCheck;
+import com.zhongzheng.modules.distribution.mapper.DistributionCheckMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionCheckService;
+
+/**
+ *
+ *
+ * @author ruoyi
+ * @date 2023-03-25
+ */
+public class DistributionCheckServiceImpl extends ServiceImpl<DistributionCheckMapper, DistributionCheck> implements IDistributionCheckService {
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityVo.java

@@ -74,4 +74,7 @@ public class DistributionActivityVo {
 	@ApiModelProperty("活动商品集合")
 	private List<DistributionActivityGoodsVo> goodsList;
 
+	@ApiModelProperty("海报地址")
+	private String posterUrl;
+
 }

+ 59 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionCheckDetailVo.java

@@ -0,0 +1,59 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 分销业务员提现申请分页查询对象 distribution_cash_withdrawal
+ *
+ * @author ruoyi
+ * @date 2023-03-25
+ */
+@Data
+@ApiModel("分销审核")
+public class DistributionCheckDetailVo implements Serializable {
+
+	/** 主键 */
+	@ApiModelProperty("主键")
+	private Long id;
+	/** 提现ID */
+	@ApiModelProperty("提现ID")
+	private Integer cwId;
+	/** 审核意见 */
+	@ApiModelProperty("审核意见")
+	private String checkReason;
+	/** 审核状态 1初审 2二审 3三审 */
+	@ApiModelProperty("审核状态 1初审 2二审 3三审 ")
+	private Integer checkStatus;
+	/** 审核结果:1同意,2拒绝 */
+	@ApiModelProperty("审核结果:1同意,2拒绝")
+	private Integer checkResult;
+	/** 审核人 */
+	@ApiModelProperty("审核人")
+	private String auditor;
+	/** 审核人ID */
+	@ApiModelProperty("审核人ID")
+	private Long auditorId;
+	/** 下一个审核状态:1初审 2二审 3三审 */
+	@ApiModelProperty("下一个审核状态:1初审 2二审 3三审")
+	private Integer nextStatus;
+	/** 下一个审核人 */
+	@ApiModelProperty("下一个审核人")
+	private String nextAuditor;
+	/** 状态:1有效,0无效 */
+	@ApiModelProperty("状态:1有效,0无效")
+	private Integer status;
+	/** 添加时间 */
+	@ApiModelProperty("添加时间")
+	private Long createTime;
+	/** 修改时间 */
+	@ApiModelProperty("修改时间")
+	private Long updateTime;
+
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionCheckVo.java

@@ -0,0 +1,41 @@
+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;
+
+/**
+ * 分销业务员提现申请分页查询对象 distribution_cash_withdrawal
+ *
+ * @author ruoyi
+ * @date 2023-03-25
+ */
+@Data
+@ApiModel("分销审核")
+public class DistributionCheckVo implements Serializable {
+
+	/** 提现单号 */
+	@ApiModelProperty("提现单号")
+	private String cwSn;
+	/** 申请时间 */
+	@ApiModelProperty("申请时间")
+	private Long applyTime;
+	/** 姓名 */
+	@ApiModelProperty("姓名")
+	private String sellerName;
+	/** 所属机构 */
+	@ApiModelProperty("所属机构")
+	private String tenantName;
+	/** 手机号 */
+	@ApiModelProperty("手机号")
+	private String telphone;
+	/** 金额 */
+	@ApiModelProperty("金额")
+	private BigDecimal cash;
+	/** 提现状态 0未审核 1初审通过 2二审通过 3三审通过 4已打款 -1已拒绝 */
+	@ApiModelProperty("提现状态 0未审核 1初审通过 2二审通过 3三审通过 4已打款 -1已拒绝")
+	private Integer cwStatus;
+}

+ 49 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionGoodsListVo.java

@@ -0,0 +1,49 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 【请填写功能名称】编辑对象 distribution_activity_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("分销商品列表对象")
+public class DistributionGoodsListVo {
+
+    @ApiModelProperty("分销活动ID")
+    private Long distributionId;
+    @ApiModelProperty("分销活动编码")
+    private String distributionCode;
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+    @ApiModelProperty("商品名")
+    private String goodsName;
+    @ApiModelProperty("商品类型")
+    private Integer goodsType;
+    @Excel(name = "标准价格")
+    @ApiModelProperty("标准价格")
+    private BigDecimal standPrice;
+    @ApiModelProperty("划线价格")
+    private BigDecimal LinePrice;
+    @ApiModelProperty("商品编码")
+    private String code;
+    @ApiModelProperty("年份")
+    private Long year;
+    @ApiModelProperty("封面地址")
+    private String coverUrl;
+    @ApiModelProperty("规格模板ID")
+    private Long specTemplateId;
+    @ApiModelProperty("最小价格")
+    private BigDecimal minPrice;
+    @ApiModelProperty("最大价格")
+    private BigDecimal maxPrice;
+
+}

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/mapper/SysUserMapper.java

@@ -45,4 +45,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
     @InterceptorIgnore(tenantLine = "true")
     Integer saveSysUser(SysUser admin);
+
+    List<String> getUserNameByRoleKey(@Param("roleKey") String roleKey);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysUserService.java

@@ -172,4 +172,6 @@ public interface ISysUserService extends IService<SysUser> {
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
 
     SysUser updateLoginTimeIp(Long userId);
+
+    List<String> getUserNameByRoleKey(String roleKey2);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysUserServiceImpl.java

@@ -498,4 +498,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return user;
     }
 
+    @Override
+    public List<String> getUserNameByRoleKey(String roleKey2) {
+        return baseMapper.getUserNameByRoleKey(roleKey2);
+    }
+
 }

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

@@ -4,5 +4,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zhongzheng.modules.distribution.mapper.DistributionActivityMapper">
 
+    <select id="getGoodsList" parameterType="java.lang.Long" resultType="com.zhongzheng.modules.distribution.vo.DistributionGoodsListVo">
+        SELECT
+        da.distribution_id,
+        da.`code` as distributionCode,
+        g.goods_id,
+        g.goods_name,
+        g.goods_type,
+        g.line_price,
+        g.CODE,
+        g.YEAR,
+        g.cover_url,
+        g.spec_template_id
+        FROM
+        distribution_activity da
+        LEFT JOIN distribution_activity_goods dag ON da.distribution_id = dag.distribution_id
+        LEFT JOIN goods g ON dag.goods_id = g.goods_id
+        WHERE
+        da.`status` = 1
+        AND g.`status` = 1
+        <if test = "distributionId != null and distributionId != ''" >
+            AND da.distribution_id = #{distributionId}
+        </if >
+    </select>
 
 </mapper>

+ 31 - 0
zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionCashWithdrawalMapper.xml

@@ -20,5 +20,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="applyTime" column="apply_time"/>
     </resultMap>
 
+    <select id="queryCheckList" parameterType="com.zhongzheng.modules.distribution.bo.DistributionCheckQueryBo" resultType="com.zhongzheng.modules.distribution.vo.DistributionCheckVo">
+        SELECT
+            dcw.apply_time,
+            dcw.cw_sn,
+            dcw.cash,
+            dcw.cw_status,
+            ds.realname as sellerName,
+            ds.telphone
+        FROM distribution_cash_withdrawal dcw LEFT JOIN distribution_seller ds ON dcm.seller_id = ds.seller_id
+        WHERE dcw.`status` = 1
+        <if test="cwStatus != null and cwStatus.size()!=0 ">
+            AND dcw.cw_status in
+            <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="applyStartTime != null and applyStartTime != ''">
+            AND dcw.apply_time <![CDATA[  >=  ]]> #{applyStartTime}
+        </if>
+        <if test="applyEndTime != null and applyEndTime != ''">
+            AND dcw.apply_time <![CDATA[  <=  ]]> #{applyEndTime}
+        </if>
+        <if test="cwSn != null and cwSn != ''">
+            AND dcw.cw_sn like concat('%', #{cwSn}, '%')
+        </if>
+        <if test="sellerName != null and sellerName != ''">
+            AND ds.realname like concat('%', #{sellerName}, '%')
+        </if>
+        ORDER BY dcw.apply_time ASC
+    </select>
+
 
 </mapper>

+ 8 - 0
zhongzheng-system/src/main/resources/mapper/modules/distribution/DistributionCheckMapper.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.distribution.mapper.DistributionCheckMapper">
+
+
+</mapper>

+ 11 - 0
zhongzheng-system/src/main/resources/mapper/modules/system/SysUserMapper.xml

@@ -167,4 +167,15 @@
         where u.`status` = 1
 
     </select>
+
+    <select id="getUserNameByRoleKey" parameterType="java.lang.String" resultType="java.lang.String">
+        SELECT
+            u.user_name
+        FROM
+            sys_user u
+                LEFT JOIN sys_user_role sur ON u.user_id = sur.user_id
+                LEFT JOIN sys_role r ON sur.role_id = r.role_id
+        WHERE u.`status` = 1 AND r.role_key = #{roleKey}
+    </select>
+
 </mapper>