浏览代码

fixed 分销提成功能迭代

fushengqian 1 年之前
父节点
当前提交
0d5eb9bcdc

+ 56 - 0
fuint-application/src/main/java/com/fuint/common/dto/CommissionRuleDto.java

@@ -0,0 +1,56 @@
+package com.fuint.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 分销提成规则实体
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Data
+public class CommissionRuleDto implements Serializable {
+
+    @ApiModelProperty("自增ID")
+    private Integer id;
+
+    @ApiModelProperty("规则名称")
+    private String name;
+
+    @ApiModelProperty("方案类型,goods:商品销售;coupon:卡券销售;recharge:会员充值")
+    private String type;
+
+    @ApiModelProperty("分佣对象,member:会员分销;staff:员工提成")
+    private String target;
+
+    @ApiModelProperty("商户ID")
+    private Integer merchantId;
+
+    @ApiModelProperty("店铺ID")
+    private Integer storeId;
+
+    @ApiModelProperty("适用店铺ID列表")
+    private List<Integer> storeIdList;
+
+    @ApiModelProperty("具体项目列表")
+    private List<CommissionRuleItemDto> detailList;
+
+    @ApiModelProperty("备注")
+    private String description;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("最后操作人")
+    private String operator;
+
+    @ApiModelProperty("状态")
+    private String status;
+
+}

+ 40 - 0
fuint-application/src/main/java/com/fuint/common/dto/CommissionRuleItemDto.java

@@ -0,0 +1,40 @@
+package com.fuint.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 分销提成规则项目实体
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Data
+public class CommissionRuleItemDto implements Serializable {
+
+    @ApiModelProperty("商品ID")
+    private Integer goodsId;
+
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+
+    @ApiModelProperty("商品logo")
+    private String logo;
+
+    @ApiModelProperty("商品价格")
+    private BigDecimal price;
+
+    @ApiModelProperty("方案类型,goods:商品销售;coupon:卡券销售;recharge:会员充值")
+    private String type;
+
+    @ApiModelProperty("提成方式")
+    private String method;
+
+    @ApiModelProperty("散客值")
+    private BigDecimal visitorVal;
+
+    @ApiModelProperty("会员值")
+    private BigDecimal memberVal;
+
+}

+ 2 - 6
fuint-application/src/main/java/com/fuint/common/service/CommissionRuleService.java

@@ -1,6 +1,7 @@
 package com.fuint.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fuint.common.dto.CommissionRuleDto;
 import com.fuint.common.param.CommissionRuleParam;
 import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
@@ -40,7 +41,7 @@ public interface CommissionRuleService extends IService<MtCommissionRule> {
      * @param  id
      * @throws BusinessCheckException
      */
-    MtCommissionRule queryCommissionRuleById(Integer id) throws BusinessCheckException;
+    CommissionRuleDto queryCommissionRuleById(Integer id) throws BusinessCheckException;
 
     /**
      * 更新数据
@@ -49,9 +50,4 @@ public interface CommissionRuleService extends IService<MtCommissionRule> {
      * */
     MtCommissionRule updateCommissionRule(CommissionRuleParam commissionRule) throws BusinessCheckException;
 
-    /**
-     * 根据条件搜索分销提成规则
-     * */
-    List<MtCommissionRule> queryCommissionRuleByParams(Map<String, Object> params) throws BusinessCheckException;
-
 }

+ 64 - 30
fuint-application/src/main/java/com/fuint/common/service/impl/CommissionRuleServiceImpl.java

@@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import com.fuint.common.dto.CommissionRuleDto;
+import com.fuint.common.dto.CommissionRuleItemDto;
 import com.fuint.common.param.CommissionRuleItemParam;
 import com.fuint.common.param.CommissionRuleParam;
+import com.fuint.common.service.GoodsService;
+import com.fuint.common.service.SettingService;
 import com.fuint.framework.annoation.OperationServiceLog;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
@@ -17,6 +21,7 @@ import com.fuint.common.enums.StatusEnum;
 
 import com.fuint.repository.model.MtCommissionRule;
 import com.fuint.repository.model.MtCommissionRuleItem;
+import com.fuint.repository.model.MtGoods;
 import com.fuint.utils.StringUtil;
 import com.github.pagehelper.PageHelper;
 import lombok.AllArgsConstructor;
@@ -47,6 +52,16 @@ public class CommissionRuleServiceImpl extends ServiceImpl<MtCommissionRuleMappe
 
     private MtCommissionRuleItemMapper mtCommissionRuleItemMapper;
 
+    /**
+     * 商品服务接口
+     * */
+    private GoodsService goodsService;
+
+    /**
+     * 系统设置服务接口
+     * */
+    private SettingService settingService;
+
     /**
      * 分页查询规则列表
      *
@@ -114,10 +129,11 @@ public class CommissionRuleServiceImpl extends ServiceImpl<MtCommissionRuleMappe
         mtCommissionRule.setCreateTime(date);
         mtCommissionRule.setUpdateTime(date);
         mtCommissionRule.setMerchantId(mtCommissionRule.getMerchantId()== null ? 0 : mtCommissionRule.getMerchantId());
+        String storeIds = StringUtil.join(commissionRule.getStoreIdList().toArray(), ",");
+        mtCommissionRule.setStoreIds(storeIds);
         boolean result = save(mtCommissionRule);
         if (result) {
             if (commissionRule.getDetailList() != null && commissionRule.getDetailList().size() > 0) {
-                String storeIds = StringUtil.join(commissionRule.getStoreIdList().toArray(), ",");
                 for (CommissionRuleItemParam itemParam : commissionRule.getDetailList()) {
                      MtCommissionRuleItem mtCommissionRuleItem = new MtCommissionRuleItem();
                      mtCommissionRuleItem.setRuleId(mtCommissionRule.getId());
@@ -149,10 +165,54 @@ public class CommissionRuleServiceImpl extends ServiceImpl<MtCommissionRuleMappe
      * 根据ID获取规则信息
      *
      * @param id
+     * @return
      */
     @Override
-    public MtCommissionRule queryCommissionRuleById(Integer id) {
-        return mtCommissionRuleMapper.selectById(id);
+    public CommissionRuleDto queryCommissionRuleById(Integer id) throws BusinessCheckException {
+        MtCommissionRule mtCommissionRule = mtCommissionRuleMapper.selectById(id);
+        if (mtCommissionRule == null) {
+            return null;
+        }
+        CommissionRuleDto commissionRuleDto = new CommissionRuleDto();
+        BeanUtils.copyProperties(mtCommissionRule, commissionRuleDto);
+
+        Map<String, Object> param = new HashMap();
+        param.put("RULE_ID", id);
+        param.put("STATUS", StatusEnum.ENABLED.getKey());
+        List<MtCommissionRuleItem> mtCommissionRuleItem = mtCommissionRuleItemMapper.selectByMap(param);
+        List<CommissionRuleItemDto> detailList = new ArrayList<>();
+        String basePath = settingService.getUploadBasePath();
+        if (mtCommissionRuleItem != null && mtCommissionRuleItem.size() > 0) {
+            for (MtCommissionRuleItem item : mtCommissionRuleItem) {
+                 CommissionRuleItemDto commissionRuleItemDto = new CommissionRuleItemDto();
+                 commissionRuleItemDto.setGoodsId(item.getTargetId());
+                 MtGoods mtGoods = goodsService.queryGoodsById(item.getTargetId());
+                 if (mtGoods != null) {
+                     commissionRuleItemDto.setGoodsName(mtGoods.getName());
+                     commissionRuleItemDto.setLogo(basePath + mtGoods.getLogo());
+                     commissionRuleItemDto.setPrice(mtGoods.getPrice());
+                 }
+                 commissionRuleItemDto.setType(item.getType());
+                 commissionRuleItemDto.setMemberVal(item.getMember());
+                 commissionRuleItemDto.setMethod(item.getMethod());
+                 commissionRuleItemDto.setVisitorVal(item.getGuest());
+                 detailList.add(commissionRuleItemDto);
+            }
+        }
+        commissionRuleDto.setDetailList(detailList);
+
+        List<Integer> storeIds = new ArrayList<>();
+        if (StringUtil.isNotEmpty(mtCommissionRule.getStoreIds())) {
+            List<String> storeIdList = Arrays.asList(mtCommissionRule.getStoreIds().split(","));
+            if (storeIdList != null && storeIdList.size() > 0) {
+                for (String storeId : storeIdList) {
+                     storeIds.add(Integer.parseInt(storeId));
+                }
+            }
+        }
+        commissionRuleDto.setStoreIdList(storeIds);
+
+        return commissionRuleDto;
     }
 
     /**
@@ -165,7 +225,7 @@ public class CommissionRuleServiceImpl extends ServiceImpl<MtCommissionRuleMappe
     @Transactional(rollbackFor = Exception.class)
     @OperationServiceLog(description = "更新分销提成规则")
     public MtCommissionRule updateCommissionRule(CommissionRuleParam commissionRule) throws BusinessCheckException {
-        MtCommissionRule mtCommissionRule = queryCommissionRuleById(commissionRule.getId());
+        MtCommissionRule mtCommissionRule = mtCommissionRuleMapper.selectById(commissionRule.getId());
         if (mtCommissionRule == null) {
             logger.error("更新分销提成规则失败...");
             throw new BusinessCheckException("该数据状态异常");
@@ -190,30 +250,4 @@ public class CommissionRuleServiceImpl extends ServiceImpl<MtCommissionRuleMappe
         mtCommissionRuleMapper.updateById(mtCommissionRule);
         return mtCommissionRule;
     }
-
-    @Override
-    public List<MtCommissionRule> queryCommissionRuleByParams(Map<String, Object> params) {
-        String status =  params.get("status") == null ? StatusEnum.ENABLED.getKey(): params.get("status").toString();
-        String storeId =  params.get("storeId") == null ? "" : params.get("storeId").toString();
-        String name = params.get("name") == null ? "" : params.get("name").toString();
-
-        LambdaQueryWrapper<MtCommissionRule> lambdaQueryWrapper = Wrappers.lambdaQuery();
-        if (StringUtils.isNotBlank(name)) {
-            lambdaQueryWrapper.like(MtCommissionRule::getName, name);
-        }
-        if (StringUtils.isNotBlank(status)) {
-            lambdaQueryWrapper.eq(MtCommissionRule::getStatus, status);
-        }
-        if (StringUtils.isNotBlank(storeId)) {
-            lambdaQueryWrapper.and(wq -> wq
-                              .eq(MtCommissionRule::getStoreId, 0)
-                              .or()
-                              .eq(MtCommissionRule::getStoreId, storeId));
-        }
-
-        lambdaQueryWrapper.orderByAsc(MtCommissionRule::getId);
-        List<MtCommissionRule> dataList = mtCommissionRuleMapper.selectList(lambdaQueryWrapper);
-
-        return dataList;
-    }
 }

+ 5 - 4
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommissionLogController.java

@@ -1,6 +1,7 @@
 package com.fuint.module.backendApi.controller;
 
 import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.dto.CommissionRuleDto;
 import com.fuint.common.param.CommissionRuleParam;
 import com.fuint.common.service.CommissionRuleService;
 import com.fuint.common.service.StoreService;
@@ -126,8 +127,8 @@ public class BackendCommissionLogController extends BaseController {
             return getFailureResult(1001, "请先登录");
         }
 
-        MtCommissionRule mtCommissionRule = commissionRuleService.queryCommissionRuleById(id);
-        if (mtCommissionRule == null) {
+        CommissionRuleDto commissionRuleDto = commissionRuleService.queryCommissionRuleById(id);
+        if (commissionRuleDto == null) {
             return getFailureResult(201);
         }
 
@@ -193,9 +194,9 @@ public class BackendCommissionLogController extends BaseController {
             return getFailureResult(1001, "请先登录");
         }
 
-        MtCommissionRule commissionRule = commissionRuleService.queryCommissionRuleById(id);
+        CommissionRuleDto commissionRuleDto = commissionRuleService.queryCommissionRuleById(id);
         Map<String, Object> result = new HashMap<>();
-        result.put("commissionRule", commissionRule);
+        result.put("commissionRule", commissionRuleDto);
 
         return getSuccessResult(result);
     }

+ 4 - 3
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommissionRuleController.java

@@ -1,6 +1,7 @@
 package com.fuint.module.backendApi.controller;
 
 import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.dto.CommissionRuleDto;
 import com.fuint.common.param.CommissionRuleParam;
 import com.fuint.common.service.CommissionRuleService;
 import com.fuint.common.service.StoreService;
@@ -133,8 +134,8 @@ public class BackendCommissionRuleController extends BaseController {
             return getFailureResult(1001, "请先登录");
         }
 
-        MtCommissionRule mtCommissionRule = commissionRuleService.queryCommissionRuleById(id);
-        if (mtCommissionRule == null) {
+        CommissionRuleDto commissionRuleDto = commissionRuleService.queryCommissionRuleById(id);
+        if (commissionRuleDto == null) {
             return getFailureResult(201);
         }
 
@@ -196,7 +197,7 @@ public class BackendCommissionRuleController extends BaseController {
             return getFailureResult(1001, "请先登录");
         }
 
-        MtCommissionRule commissionRule = commissionRuleService.queryCommissionRuleById(id);
+        CommissionRuleDto commissionRule = commissionRuleService.queryCommissionRuleById(id);
         Map<String, Object> result = new HashMap<>();
         result.put("commissionRule", commissionRule);
 

+ 3 - 0
fuint-repository/src/main/java/com/fuint/repository/model/MtCommissionRule.java

@@ -43,6 +43,9 @@ public class MtCommissionRule implements Serializable {
     @ApiModelProperty("店铺ID")
     private Integer storeId;
 
+    @ApiModelProperty("适用店铺ID,逗号隔开")
+    private String storeIds;
+
     @ApiModelProperty("创建时间")
     private Date createTime;
 

+ 0 - 3
fuint-repository/src/main/java/com/fuint/repository/model/MtCommissionRuleItem.java

@@ -71,9 +71,6 @@ public class MtCommissionRuleItem implements Serializable {
     @ApiModelProperty("更新时间")
     private Date updateTime;
 
-    @ApiModelProperty("备注信息")
-    private String description;
-
     @ApiModelProperty("最后操作人")
     private String operator;