Przeglądaj źródła

根据达人结算

yumeng 2 lat temu
rodzic
commit
2490e8b2d0
17 zmienionych plików z 396 dodań i 23 usunięć
  1. 40 2
      ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouPromoterController.java
  2. 23 4
      ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouRuleSettlementDataController.java
  3. 41 11
      ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouSettlementRulesController.java
  4. 7 0
      ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouPromoter.java
  5. 4 0
      ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouPromoterMapper.java
  6. 5 0
      ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouRuleDetailMapper.java
  7. 6 0
      ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouRuleSettlementDataMapper.java
  8. 4 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouPromoterService.java
  9. 4 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouRuleSettlementDataService.java
  10. 4 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouSettlementRulesService.java
  11. 10 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouPromoterServiceImpl.java
  12. 134 1
      ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouRuleSettlementDataServiceImpl.java
  13. 10 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouSettlementRulesServiceImpl.java
  14. 15 1
      ruixuan-live/src/main/resources/mapper/isc/KuaishouPromoterMapper.xml
  15. 52 1
      ruixuan-live/src/main/resources/mapper/isc/KuaishouRuleDetailMapper.xml
  16. 32 3
      ruixuan-live/src/main/resources/mapper/isc/KuaishouRuleSettlementDataMapper.xml
  17. 5 0
      ruixuan-live/src/main/resources/mapper/isc/KuaishouSettlementRulesMapper.xml

+ 40 - 2
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouPromoterController.java

@@ -6,6 +6,7 @@ import com.ruixuan.common.core.domain.AjaxResult;
 import com.ruixuan.common.core.page.TableDataInfo;
 import com.ruixuan.common.utils.Check;
 import com.ruixuan.common.utils.Result;
+import com.ruixuan.common.utils.spring.SpringUtils;
 import com.ruixuan.isc.entity.KuaishouPromoter;
 import com.ruixuan.isc.service.IKuaishouPromoterService;
 import com.ruixuan.isc.utils.Tess4jClient;
@@ -41,6 +42,43 @@ public class KuaishouPromoterController extends BaseController {
     @Value("${tessdata.path}")
     private String path;
 
+
+    /**
+     * 查询快手达人 信息列表
+     */
+    @GetMapping("/addRule")
+    @ApiOperation(value = "查询快手达人")
+    public JSONObject addRule(String promoterId, Long ruleId) {
+
+        JSONObject returnJson = new JSONObject();
+        try {
+            if (Check.isNull(promoterId)) {
+                throw new Exception("请选择需要绑定的达人");
+            }
+            if (Check.isNotNull(promoterId)) {
+                promoterId = promoterId.trim();
+            }
+            if (Check.isNull(ruleId)) {
+                throw new Exception("请选择需要绑定的规则");
+            }
+
+            String ruleName = kuaishouPromoterService.getRuleName(ruleId);
+
+            int i = kuaishouPromoterService.addRule(promoterId,ruleId,ruleName);
+            if(i > 0 ){
+                returnJson.put("code", 0);
+                returnJson.put("message", "修改成功");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", -1);
+            returnJson.put("message", e.getMessage());
+        }
+        return returnJson;
+
+    }
+
+
     /**
      * 查询快手达人 信息列表
      */
@@ -143,9 +181,9 @@ public class KuaishouPromoterController extends BaseController {
      */
     @GetMapping(value = "/addPromotersCount")
     @ApiOperation(value = "新增设置渠道绑定达人数")
-    public JSONObject addPromotersCount(Long userId, Long promotersCount,String mediaId) {
+    public JSONObject addPromotersCount(Long userId, Long promotersCount, String mediaId) {
         try {
-            return kuaishouPromoterService.addPromotersCount(userId, promotersCount,mediaId);
+            return kuaishouPromoterService.addPromotersCount(userId, promotersCount, mediaId);
         } catch (Exception e) {
             e.printStackTrace();
             JSONObject result = new JSONObject();

+ 23 - 4
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouRuleSettlementDataController.java

@@ -40,6 +40,7 @@ public class KuaishouRuleSettlementDataController extends BaseController {
     @Autowired
     private IKuaishouRuleSettlementDataService kuaishouRuleSettlementDataService;
     static ExecutorService executorService = Executors.newFixedThreadPool(2);
+    static ExecutorService executorPromoterService = Executors.newFixedThreadPool(2);
 
 
     @PostMapping("/data")
@@ -56,17 +57,35 @@ public class KuaishouRuleSettlementDataController extends BaseController {
                 kuaishouRuleSettlementDataService.data(statDate, data);
             }
         });
+    }
 
 
+    @PostMapping("/promoterData")
+    @ApiOperation(value = "查询快手达人")
+    public void promoterData(@RequestBody JSONObject requestJson) {
+        Long statDate = requestJson.getLong("statDate");
+        JSONArray data = requestJson.getJSONArray("data");
+        if (Check.isNull(data)) {
+            return;
+        }
+        executorPromoterService.submit(new Runnable() {
+            @Override
+            public void run() {
+                kuaishouRuleSettlementDataService.promoterData(statDate, data);
+            }
+        });
     }
 
+
+
     @GetMapping("/testData")
     public JSONObject testData(Long relateId, Long promoterId, Long ruleId, Long validOrderNum) {
-        JSONObject data = kuaishouRuleSettlementDataService.getData();
+       /* JSONObject data = kuaishouRuleSettlementDataService.getData();
         JSONArray array = new JSONArray();
-        array.add(data);
-        kuaishouRuleSettlementDataService.data(20230911L, array);
-        return  null;
+        array.add(data);*/
+
+
+        return  kuaishouRuleSettlementDataService.getPromoterRuleData(null, promoterId,ruleId,validOrderNum);
        //  return kuaishouRuleSettlementDataService.getOrderRuleData(relateId, promoterId, ruleId, validOrderNum);
 
     }

+ 41 - 11
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouSettlementRulesController.java

@@ -29,10 +29,21 @@ public class KuaishouSettlementRulesController extends BaseController {
     /**
      * 查询【请填写功能名称】列表
      */
+    @GetMapping("/getAllRuleList")
+    public TableDataInfo getAllRuleList(Long userId, String ruleName) {
+        startPage();
+        if (userId == 1) {
+            userId = null;
+        }
+        List<JSONObject> list = kuaishouSettlementRulesService.getAllRuleList(userId, ruleName);
+        return getDataTable(list);
+    }
+
+
     @GetMapping("/getRuleList")
     public TableDataInfo list(Long userId, String ruleName) {
         startPage();
-        if(userId == 1){
+        if (userId == 1) {
             userId = null;
         }
         List<JSONObject> list = kuaishouSettlementRulesService.getRuleList(userId, ruleName);
@@ -42,7 +53,7 @@ public class KuaishouSettlementRulesController extends BaseController {
     @GetMapping("/getRuleListNoPage")
     public JSONObject getRuleListNoPage(Long userId, String ruleNam) {
         JSONObject returnJson = new JSONObject();
-        if(userId == 1){
+        if (userId == 1) {
             userId = null;
         }
         List<JSONObject> data = kuaishouSettlementRulesService.getRuleList(userId, ruleNam);
@@ -53,6 +64,19 @@ public class KuaishouSettlementRulesController extends BaseController {
     }
 
 
+    @GetMapping("/getPromoterRuleList")
+    public JSONObject getPromoterRuleList(Long userId, String ruleName) {
+        JSONObject returnJson = new JSONObject();
+        if (userId == 1) {
+            userId = null;
+        }
+        List<JSONObject> data = kuaishouSettlementRulesService.getPromoterRuleList(userId, ruleName);
+        returnJson.put("code", 0);
+        returnJson.put("message", "true");
+        returnJson.put("data", data);
+        return returnJson;
+    }
+
     @PostMapping("/addRule")
     public JSONObject addRule(@RequestBody JSONObject requestJson) {
         JSONObject returnJson = new JSONObject();
@@ -60,16 +84,22 @@ public class KuaishouSettlementRulesController extends BaseController {
             if (Check.isNull(requestJson)) {
                 throw new Exception("入参不能为空");
             }
-                JSONArray ruleDetails = requestJson.getJSONArray("ruleDetails");
-                if (Check.isNull(ruleDetails)) {
-                    throw new Exception("请输入规则详情");
-                }
+            JSONArray ruleDetails = requestJson.getJSONArray("ruleDetails");
+            if (Check.isNull(ruleDetails)) {
+                throw new Exception("请输入规则详情");
+            }
 
-                if(requestJson.getInteger("ruleType") == 2){
-                    if(ruleDetails.size() > 1){
-                        throw new Exception("按单数结算只能设置一条规则");
-                    }
+            if (requestJson.getInteger("ruleType") == 2) {
+                if (ruleDetails.size() > 1) {
+                    throw new Exception("按单数结算只能设置一条规则");
+                }
+            }
+            if (requestJson.getInteger("ruleType") == 3) {
+                if (ruleDetails.size() > 1) {
+                    throw new Exception("按达人结算只能设置一条规则");
                 }
+            }
+
             kuaishouSettlementRulesService.addRules(requestJson);
             returnJson.put("code", 0);
             returnJson.put("message", "新增成功");
@@ -89,7 +119,7 @@ public class KuaishouSettlementRulesController extends BaseController {
 
 
     @DeleteMapping("/remove")
-    public AjaxResult remove( Long id) {
+    public AjaxResult remove(Long id) {
         return toAjax(kuaishouSettlementRulesService.deleteKuaishouSettlementRulesById(id));
     }
 

+ 7 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouPromoter.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.data.annotation.Transient;
 
 import java.util.Date;
 import java.util.List;
@@ -188,6 +189,12 @@ public class KuaishouPromoter {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
+
+    @Transient
+    private Long ruleId;
+    @Transient
+    private String ruleName;
+
     public KuaishouPromoter() {
     }
 

+ 4 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouPromoterMapper.java

@@ -98,4 +98,8 @@ public interface KuaishouPromoterMapper {
     Integer getBoundCount(@Param("userId") Long userId);
 
     Integer addPromotersCount(@Param("userId") Long userId, @Param("promotersCount") Long promotersCount, @Param("mediaId") String mediaId);
+
+    String getRuleName(@Param("ruleId") Long ruleId);
+
+    int addRule(@Param("promoterId") String promoterId, @Param("ruleId") Long ruleId, @Param("ruleName") String ruleName);
 }

+ 5 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouRuleDetailMapper.java

@@ -1,5 +1,6 @@
 package com.ruixuan.isc.mapper;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ruixuan.isc.entity.KuaishouRuleDetail;
 import org.apache.ibatis.annotations.Param;
 
@@ -67,5 +68,9 @@ public interface KuaishouRuleDetailMapper
     void deleteKuaishouRuleDetailByRuleId(@Param("id") Long id);
 
     List<KuaishouRuleDetail> getRuleDetailByRuleId(@Param("ruleId") Long ruleId);
+
+    List<JSONObject> getPromoterRuleList(@Param("userId") Long userId,@Param("ruleName") String ruleName);
+
+    List<JSONObject> getAllRuleList(@Param("userId") Long userId, @Param("ruleName") String ruleName);
 }
 

+ 6 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouRuleSettlementDataMapper.java

@@ -1,5 +1,6 @@
 package com.ruixuan.isc.mapper;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ruixuan.isc.entity.KuaishouRuleSettlementData;
 import org.apache.ibatis.annotations.Param;
@@ -88,4 +89,9 @@ public interface KuaishouRuleSettlementDataMapper {
     JSONObject getRuleJson(Long ruleId);
 
     JSONObject getData();
+
+
+    Integer selectPromoterIncentiveLog(Long promoterId);
+
+    void replacePromoterIncentiveLog(@Param("promoterId") Long promoterId, @Param("ruleId") Long ruleId, @Param("incentivizedCount") Integer incentivizedCount, @Param("lastIncentivizedCount") Integer lastIncentivizedCount);
 }

+ 4 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouPromoterService.java

@@ -77,4 +77,8 @@ public interface IKuaishouPromoterService {
     KuaishouPromoter getOnlyPromoterInfoByUserId(String promoterId, Long userId);
 
     JSONObject addPromotersCount(Long userId, Long promotersCount, String mediaId);
+
+    String getRuleName(Long ruleId);
+
+    int addRule(String promoterId, Long ruleId, String ruleName);
 }

+ 4 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouRuleSettlementDataService.java

@@ -67,6 +67,8 @@ public interface IKuaishouRuleSettlementDataService {
 
     JSONObject getOrderRuleData(Long relateId, Long promoterId, Long ruleId, Long validOrderNum);
 
+    JSONObject getPromoterRuleData(Long relateId, Long promoterId, Long ruleId, Long validOrderNum);
+
     List<JSONObject> getSettlementDate(Long statDate, Long promoterId, String promoterName);
 
     void updatePromoterStatus(Long statDate, Long promoterId, Integer status);
@@ -74,5 +76,7 @@ public interface IKuaishouRuleSettlementDataService {
     List<JSONObject> getPromoterSettlementDetail(Long date, Long promoterId,Integer settlementStatus);
 
     JSONObject getData();
+
+    void promoterData(Long statDate, JSONArray data);
 }
 

+ 4 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouSettlementRulesService.java

@@ -67,5 +67,9 @@ public interface IKuaishouSettlementRulesService
     void addRules(JSONObject requestJson);
 
     List<KuaishouRuleDetail> getRuleDetailByRuleId(Long ruleId);
+
+    List<JSONObject> getPromoterRuleList(Long userId, String ruleName);
+
+    List<JSONObject> getAllRuleList(Long userId, String ruleName);
 }
 

+ 10 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouPromoterServiceImpl.java

@@ -373,6 +373,16 @@ public class KuaishouPromoterServiceImpl implements IKuaishouPromoterService {
     }
 
     @Override
+    public String getRuleName(Long ruleId) {
+        return kuaishouPromoterMapper.getRuleName(ruleId);
+    }
+
+    @Override
+    public int addRule(String promoterId, Long ruleId, String ruleName) {
+        return kuaishouPromoterMapper.addRule(promoterId,ruleId,ruleName);
+    }
+
+    @Override
     public Result updatePromoterLabel(JSONObject result) {
         String promoterId = result.getString("promoterId");
         Long userId = result.getLong("userId");

+ 134 - 1
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouRuleSettlementDataServiceImpl.java

@@ -163,6 +163,60 @@ public class KuaishouRuleSettlementDataServiceImpl implements IKuaishouRuleSettl
     }
 
 
+    @Override
+    public void promoterData(Long statDate, JSONArray dataArr) {
+        if (!Check.isNull(dataArr)) {
+            List<KuaishouRuleSettlementData> adds = new ArrayList<>();
+            for (int i = 0; i < dataArr.size(); i++) {
+                JSONObject dataJson = dataArr.getJSONObject(i);
+                KuaishouRuleSettlementData settlementData = new KuaishouRuleSettlementData();
+                Long relateId = dataJson.getLong("relateId");
+                Long ruleId = dataJson.getLong("ruleId");
+                Long promoterId = dataJson.getLong("promoterId");
+                String promoterName = dataJson.getString("promoterName");
+                Long orderNum = dataJson.getLong("orderNum");
+                Long validOrderNum = dataJson.getLong("validOrderNum");
+                if (validOrderNum == 0 || Check.isNull(validOrderNum)) {
+                    continue;
+                }
+                Long yesterdayOrderNum = dataJson.getLong("yesterdayOrderNum");
+                Long yesterdayValidOrderNum = dataJson.getLong("yesterdayValidOrderNum");
+                Integer rule_type = dataJson.getInteger("rule_type");
+                JSONObject ruleData = new JSONObject();
+                if (rule_type == 3) {
+                    ruleData = getPromoterRuleData(relateId, promoterId, ruleId,  validOrderNum);
+
+                } else  {
+                    continue;
+                }
+                settlementData.setRuleId(ruleId);
+                settlementData.setRuleName(ruleData.getString("ruleName"));
+                settlementData.setSonRuleId(ruleData.getLong("sonRuleId"));
+                settlementData.setPromoterId(promoterId);
+                settlementData.setPromoterName(promoterName);
+                settlementData.setOrderNum(orderNum);
+                settlementData.setValidOrderNum(validOrderNum);
+                settlementData.setYesterdayOrderNum(yesterdayOrderNum);
+                settlementData.setYesterdayValidOrderNum(yesterdayValidOrderNum);
+                settlementData.setStatDate(statDate);
+                settlementData.setAnchorAmount(ruleData.getBigDecimal("anchorAmount"));
+                settlementData.setReferenceAmount(ruleData.getBigDecimal("referenceAmount"));
+                settlementData.setSettlementStatus(ruleData.getInteger("settlementStatus"));
+                settlementData.setLastSettlementOrderNum(ruleData.getLong("lastSettlementOrderNum"));
+                settlementData.setRuleType(rule_type);
+                adds.add(settlementData);
+            }
+            if (!Check.isNull(adds)) {
+                kuaishouRuleSettlementDataMapper.replaceDatas(adds);
+                log.info("结算信息入库完成,时间:{},数据量:{}", statDate, adds.size());
+            }
+
+        }
+    }
+
+
+
+
     // 按区间结算
     @Override
     public JSONObject getRuleData(Long relateId, Long promoterId, Long ruleId, Long validOrderNum) {
@@ -428,7 +482,7 @@ public class KuaishouRuleSettlementDataServiceImpl implements IKuaishouRuleSettl
         BigDecimal anchorAmount = new BigDecimal(0); // 达人激励
         BigDecimal referenceAmount = new BigDecimal(0); // 推荐人激励
         KuaishouSettlementRules kuaishouSettlementRules = settlementRulesService.selectKuaishouSettlementRulesById(ruleId);
-
+        returnJson.put("ruleId", ruleId);
         JSONObject lastRule = kuaishouRuleSettlementDataMapper.lastRule(relateId, promoterId, ruleId); //上次结算命中的规则
         Long lastValidOrderNum = 0L;
         if (!Check.isNull(lastRule)) {
@@ -497,6 +551,83 @@ public class KuaishouRuleSettlementDataServiceImpl implements IKuaishouRuleSettl
     }
 
 
+    // 按达人结算
+
+    @Override
+    public JSONObject getPromoterRuleData(Long relateId, Long promoterId, Long ruleId, Long validOrderNum) {
+        JSONObject returnJson = new JSONObject();
+        BigDecimal anchorAmount = new BigDecimal(0); // 达人激励
+        BigDecimal referenceAmount = new BigDecimal(0); // 推荐人激励
+        KuaishouSettlementRules kuaishouSettlementRules = settlementRulesService.selectKuaishouSettlementRulesById(ruleId);
+        returnJson.put("ruleId", ruleId);
+        JSONObject lastRule = kuaishouRuleSettlementDataMapper.lastRule(null, promoterId, ruleId); //上次结算命中的规则
+        Long lastValidOrderNum = 0L;
+        if (!Check.isNull(lastRule)) {
+            lastValidOrderNum += lastRule.getLong("validOrderNum");
+        }
+        JSONObject ruleJson = kuaishouRuleSettlementDataMapper.getRuleJson(ruleId);
+        if (Check.isNull(ruleJson)) {
+            returnJson.put("sonRuleId", 0);
+            returnJson.put("ruleName", "未命中结算规则");
+            returnJson.put("anchorAmount", anchorAmount);
+            returnJson.put("referenceAmount", referenceAmount);
+            returnJson.put("settlementStatus", 1);
+            returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+            return returnJson;
+        }
+        Integer itemCount = ruleJson.getInteger("startItemCount"); // 规则单数
+        BigDecimal ruleAnchorAmount = ruleJson.getBigDecimal("anchorAmount"); // 规则达人激励金额
+        if(Check.isNull(ruleAnchorAmount)){
+            ruleAnchorAmount = new BigDecimal(0);
+        }
+        BigDecimal ruleReferenceAmount = ruleJson.getBigDecimal("referenceAmount"); // 规则达人激励金额
+        if(Check.isNull(ruleReferenceAmount)){
+            ruleReferenceAmount = new BigDecimal(0);
+        }
+
+        if (validOrderNum < itemCount) {
+            returnJson.put("sonRuleId", 0);
+            returnJson.put("ruleName", "未命中结算规则");
+            returnJson.put("anchorAmount", anchorAmount);
+            returnJson.put("referenceAmount", referenceAmount);
+            returnJson.put("settlementStatus", 1);
+            returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+            return returnJson;
+        }
+
+
+        Integer incentivizedCount = (int) Math.floor(validOrderNum / itemCount); // 需要结算的次数
+        Integer lastIncentivizedCount = kuaishouRuleSettlementDataMapper.selectPromoterIncentiveLog(promoterId); // 已结算次数
+        if (Check.isNull(lastIncentivizedCount)) {
+            lastIncentivizedCount = 0;
+        }
+        if (incentivizedCount > lastIncentivizedCount) {
+            BigDecimal count = new BigDecimal(incentivizedCount - lastIncentivizedCount);
+            BigDecimal promoterIncentiveAmount = count.multiply(ruleAnchorAmount); // 达人奖励
+            BigDecimal referenceIncentiveAmount = count.multiply(ruleReferenceAmount); // 推荐人奖励
+            anchorAmount = anchorAmount.add(promoterIncentiveAmount);
+            referenceAmount = referenceAmount.add(referenceIncentiveAmount);
+            kuaishouRuleSettlementDataMapper.replacePromoterIncentiveLog( promoterId, ruleId, incentivizedCount, lastIncentivizedCount);
+            returnJson.put("sonRuleId", ruleJson.getLong("id"));
+            returnJson.put("ruleName", kuaishouSettlementRules.getRuleName());
+            returnJson.put("anchorAmount", anchorAmount);
+            returnJson.put("referenceAmount", referenceAmount);
+            returnJson.put("settlementStatus", 2);
+            returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+            return returnJson;
+
+        } else {
+            returnJson.put("sonRuleId", 0);
+            returnJson.put("ruleName", "未命中结算规则");
+            returnJson.put("anchorAmount", anchorAmount);
+            returnJson.put("referenceAmount", referenceAmount);
+            returnJson.put("settlementStatus", 1);
+            returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+            return returnJson;
+        }
+    }
+
+
     @Override
     public List<JSONObject> getSettlementDate(Long statDate, Long promoterId, String promoterName) {
         return kuaishouRuleSettlementDataMapper.getSettlementDate(statDate, promoterId, promoterName);
@@ -516,5 +647,7 @@ public class KuaishouRuleSettlementDataServiceImpl implements IKuaishouRuleSettl
     public JSONObject getData() {
         return kuaishouRuleSettlementDataMapper.getData();
     }
+
+
 }
 

+ 10 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouSettlementRulesServiceImpl.java

@@ -148,5 +148,15 @@ public class KuaishouSettlementRulesServiceImpl implements IKuaishouSettlementRu
     public List<KuaishouRuleDetail> getRuleDetailByRuleId(Long ruleId) {
         return kuaishouRuleDetailMapper.getRuleDetailByRuleId(ruleId);
     }
+
+    @Override
+    public List<JSONObject> getPromoterRuleList(Long userId, String ruleName) {
+        return kuaishouRuleDetailMapper.getPromoterRuleList(userId,ruleName);
+    }
+
+    @Override
+    public List<JSONObject> getAllRuleList(Long userId, String ruleName) {
+        return kuaishouRuleDetailMapper.getAllRuleList(userId,ruleName);
+    }
 }
 

+ 15 - 1
ruixuan-live/src/main/resources/mapper/isc/KuaishouPromoterMapper.xml

@@ -87,11 +87,14 @@
         t1.live_count_30,
         t1.aweme_avg_digg_count_30,
         t1.aweme_digg_follower_ration,
-        t1.live_average_user_30
+        t1.live_average_user_30,
+        t4.rule_id,
+        t4.rule_name
         FROM
         kuaishou_promoter t1
         LEFT JOIN promoter_oerder_amount t2 on t1.promoter_id = t2.promoter_id
         LEFT JOIN promoter_sales_info t3 ON t1.promoter_id = t3.promoter_id
+        left join promoter_bind_rule t4 on t1.promoter_id = t4.promoter_id
         <where>
             <if test="userList != null and userList.size() > 0  ">
                 and t1.user_id in
@@ -479,6 +482,10 @@
         FROM `kuaishou_promoter`
         WHERE user_id = #{userId}
     </select>
+    <select id="getRuleName" resultType="java.lang.String" parameterType="java.lang.Long">
+        select rule_name  from  kuaishou_settlement_rules where id = #{ruleId}
+
+    </select>
 
 
     <insert id="addPromotersCount">
@@ -492,4 +499,11 @@
         #{mediaId},
         )
     </insert>
+    <insert id="addRule">
+        replace into
+         promoter_bind_rule(promoter_id,rule_id,rule_name,create_time,update_time)
+          values
+        (#{promoterId},#{ruleId},#{ruleName},now(),now())
+
+    </insert>
 </mapper>

+ 52 - 1
ruixuan-live/src/main/resources/mapper/isc/KuaishouRuleDetailMapper.xml

@@ -43,7 +43,6 @@
         where rule_id = #{ruleId}
         order by sort_count asc
     </select>
-
     <insert id="insertKuaishouRuleDetail" parameterType="com.ruixuan.isc.entity.KuaishouRuleDetail">
         insert into kuaishou_rule_detail
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -120,4 +119,56 @@
     <delete id="deleteKuaishouRuleDetailByRuleId" parameterType="java.lang.Long">
         delete  from kuaishou_rule_detail where rule_id = #{id}
     </delete>
+
+    <select id="getPromoterRuleList" resultType="com.alibaba.fastjson.JSONObject">
+        select id as 'id',
+        rule_name as 'ruleName',
+        rule_type as 'ruleType',
+        user_id as 'userId',
+        user_name as 'userName',
+        create_time as 'createTime'
+        from kuaishou_settlement_rules
+        where 1= 1
+        <if test="userId != null and userId != ''">
+            and user_id = #{userId}
+        </if>
+        <if test="ruleName != null and ruleName != ''">
+            and rule_name like concat('%',#{ruleName}, '%')
+        </if>
+        and rule_type = 3
+        order by create_time desc
+    </select>
+    <select id="getAllRuleList" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
+
+        select * from (
+        select id as 'id',
+        rule_name as 'ruleName',
+        rule_type as 'ruleType',
+        user_id as 'userId',
+        user_name as 'userName',
+        create_time as 'createTime'
+        from kuaishou_settlement_rules
+        where id = 1
+        <if test="ruleName != null and ruleName != ''">
+            and rule_name like concat('%',#{ruleName}, '%')
+        </if>
+        union all
+        select id as 'id',
+        rule_name as 'ruleName',
+        rule_type as 'ruleType',
+        user_id as 'userId',
+        user_name as 'userName',
+        create_time as 'createTime'
+        from kuaishou_settlement_rules
+        where 1= 1
+        <if test="userId != null and userId != ''">
+            and user_id = #{userId}
+        </if>
+        <if test="ruleName != null and ruleName != ''">
+            and rule_name like concat('%',#{ruleName}, '%')
+        </if>
+        order by createTime desc
+        )
+        t group by t.id
+    </select>
 </mapper>

+ 32 - 3
ruixuan-live/src/main/resources/mapper/isc/KuaishouRuleSettlementDataMapper.xml

@@ -215,7 +215,10 @@
         (select  sort_count  from kuaishou_rule_detail where  id = t1.son_rule_id) as 'sortCount',
          IFNULL(valid_order_num,0)  as 'validOrderNum'
         from  kuaishou_rule_settlement_data t1
-        where  relate_id = #{relateId}
+        where 1 = 1
+        <if test="relateId != null and relateId != ''">
+            relate_id = #{relateId}
+        </if>
         and  promoter_id = #{promoterId}
         and  rule_id = #{ruleId}
         and settlement_status != 1
@@ -235,6 +238,13 @@
         and promoter_id = #{promoterId} order by create_time desc limit 1
     </select>
 
+    <select id="selectPromoterIncentiveLog" resultType="java.lang.Integer" parameterType="java.lang.Long">
+
+  select  ifnull(incentive_count,0)  from kuaishou_protomer_rule_incentive_log where  promoter_id = #{promoterId} order by create_time desc limit 1
+    </select>
+
+
+
     <insert id="replaceIncentiveLog">
         replace into kuaishou_rule_incentive_log (
         relate_id,
@@ -253,6 +263,23 @@
     </insert>
 
 
+    <insert id="replacePromoterIncentiveLog">
+        replace into kuaishou_protomer_rule_incentive_log (
+        promoter_id,
+        rule_id,
+        incentive_count,
+        last_incentive_count
+        ) values (
+        #{promoterId},
+        #{ruleId},
+        #{incentivizedCount},
+        #{lastIncentivizedCount}
+        )
+
+    </insert>
+
+
+
     <select id="getTotalByCountAndRuleId" resultType="com.alibaba.fastjson.JSONObject">
         select
         ifnull(round(sum(anchor_amount) * #{incentivizedCount}, 2),0)    as 'anchorAmount',
@@ -389,8 +416,8 @@
                    round(t2.item_price / 100, 2)                as 'itemPrice'
             from ruixuan.kuaishou_rule_order_data t1
                      left join ruixuan.kuaishou_item_list t2 on t1.item_id = t2.item_id
-            where t1.item_id  = 21112531910237
-            and t1.promoter_id = 3469906734
+            where t1.item_id  = 20789864366937
+            and t1.promoter_id = 3495457926
             and t1.stat_date = 20230911
               and t1.relate_id is not null
             group by t1.relate_id, t1.promoter_id) t
@@ -400,6 +427,7 @@
                    on t.ruleId = tt.id
     </select>
 
+
     <insert id="replaceDatas">
         replace into kuaishou_rule_settlement_data(
         rule_id,
@@ -454,4 +482,5 @@
     </insert>
 
 
+
 </mapper>

+ 5 - 0
ruixuan-live/src/main/resources/mapper/isc/KuaishouSettlementRulesMapper.xml

@@ -34,6 +34,10 @@
         <include refid="selectKuaishouSettlementRulesVo"/>
         where id = #{id}
     </select>
+
+
+
+
     <select id="getRuleList" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
 
         select * from (
@@ -63,6 +67,7 @@
         <if test="ruleName != null and ruleName != ''">
             and rule_name like concat('%',#{ruleName}, '%')
         </if>
+        and rule_type in(1,2)
         order by createTime desc
         ) t group by t.id