yumeng 2 gadi atpakaļ
vecāks
revīzija
2f66a22466
20 mainītis faili ar 2304 papildinājumiem un 1 dzēšanām
  1. 1 0
      ruixuan-framework/src/main/java/com/ruixuan/framework/config/SecurityConfig.java
  2. 100 0
      ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouRuleDetailController.java
  3. 127 0
      ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouRuleSettlementDataController.java
  4. 98 0
      ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouSettlementRulesController.java
  5. 125 0
      ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouRuleDetail.java
  6. 339 0
      ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouRuleSettlementData.java
  7. 98 0
      ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouSettlementRules.java
  8. 63 0
      ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouRuleDetailMapper.java
  9. 81 0
      ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouRuleSettlementDataMapper.java
  10. 63 0
      ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouSettlementRulesMapper.java
  11. 62 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouRuleDetailService.java
  12. 68 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouRuleSettlementDataService.java
  13. 63 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouSettlementRulesService.java
  14. 98 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouRuleDetailServiceImpl.java
  15. 344 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouRuleSettlementDataServiceImpl.java
  16. 92 0
      ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouSettlementRulesServiceImpl.java
  17. 0 1
      ruixuan-live/src/main/resources/mapper/isc/KuaishouItemListMapper.xml
  18. 91 0
      ruixuan-live/src/main/resources/mapper/isc/KuaishouRuleDetailMapper.xml
  19. 310 0
      ruixuan-live/src/main/resources/mapper/isc/KuaishouRuleSettlementDataMapper.xml
  20. 81 0
      ruixuan-live/src/main/resources/mapper/isc/KuaishouSettlementRulesMapper.xml

+ 1 - 0
ruixuan-framework/src/main/java/com/ruixuan/framework/config/SecurityConfig.java

@@ -126,6 +126,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/kuaishou/**").permitAll()
                 .antMatchers("/agent/account/**").permitAll()
                 .antMatchers("/report/**").permitAll()
+                .antMatchers("/settlement/**").permitAll()
 
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()

+ 100 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouRuleDetailController.java

@@ -0,0 +1,100 @@
+package com.ruixuan.isc.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruixuan.common.annotation.Log;
+import com.ruixuan.common.core.controller.BaseController;
+import com.ruixuan.common.core.domain.AjaxResult;
+import com.ruixuan.common.core.page.TableDataInfo;
+import com.ruixuan.common.enums.BusinessType;
+import com.ruixuan.common.utils.poi.ExcelUtil;
+import com.ruixuan.isc.entity.KuaishouRuleDetail;
+import com.ruixuan.isc.service.IKuaishouRuleDetailService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * 【请填写功能名称】Controller
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+@RestController
+@RequestMapping("/system/detail")
+public class KuaishouRuleDetailController extends BaseController {
+    @Autowired
+    private IKuaishouRuleDetailService kuaishouRuleDetailService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:detail:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(KuaishouRuleDetail kuaishouRuleDetail) {
+        startPage();
+        List<KuaishouRuleDetail> list = kuaishouRuleDetailService.selectKuaishouRuleDetailList(kuaishouRuleDetail);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:detail:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, KuaishouRuleDetail kuaishouRuleDetail) {
+        List<KuaishouRuleDetail> list = kuaishouRuleDetailService.selectKuaishouRuleDetailList(kuaishouRuleDetail);
+        ExcelUtil<KuaishouRuleDetail> util = new ExcelUtil<KuaishouRuleDetail>(KuaishouRuleDetail.class);
+        util.exportExcel(response, list, "【请填写功能名称】数据");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:detail:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(kuaishouRuleDetailService.selectKuaishouRuleDetailById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:detail:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody KuaishouRuleDetail kuaishouRuleDetail) {
+        return toAjax(kuaishouRuleDetailService.insertKuaishouRuleDetail(kuaishouRuleDetail));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:detail:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody KuaishouRuleDetail kuaishouRuleDetail) {
+        return toAjax(kuaishouRuleDetailService.updateKuaishouRuleDetail(kuaishouRuleDetail));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:detail:remove')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(kuaishouRuleDetailService.deleteKuaishouRuleDetailByIds(ids));
+    }
+}
+

+ 127 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouRuleSettlementDataController.java

@@ -0,0 +1,127 @@
+package com.ruixuan.isc.controller;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.common.annotation.Log;
+import com.ruixuan.common.core.controller.BaseController;
+import com.ruixuan.common.core.domain.AjaxResult;
+import com.ruixuan.common.core.page.TableDataInfo;
+import com.ruixuan.common.enums.BusinessType;
+import com.ruixuan.common.utils.Check;
+import com.ruixuan.common.utils.poi.ExcelUtil;
+import com.ruixuan.isc.entity.KuaishouPromoter;
+import com.ruixuan.isc.entity.KuaishouRuleSettlementData;
+import com.ruixuan.isc.service.IKuaishouRuleSettlementDataService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * 【请填写功能名称】Controller
+ *
+ * @author ruoyi
+ * @date 2023-05-16
+ */
+@RestController
+@RequestMapping("/settlement")
+public class KuaishouRuleSettlementDataController extends BaseController {
+    @Autowired
+    private IKuaishouRuleSettlementDataService kuaishouRuleSettlementDataService;
+    static ExecutorService executorService = Executors.newFixedThreadPool(2);
+
+
+    @PostMapping("/data")
+    @ApiOperation(value = "查询快手达人")
+    public void data(@RequestBody JSONObject requestJson) {
+        Long statDate = requestJson.getLong("statDate");
+        JSONArray data = requestJson.getJSONArray("data");
+        if (Check.isNull(data)) {
+            return;
+        }
+        executorService.submit(new Runnable() {
+            @Override
+            public void run() {
+                kuaishouRuleSettlementDataService.data(statDate, data);
+            }
+        });
+
+
+    }
+
+    @GetMapping("/testData")
+    public JSONObject testData(Long relateId, Long promoterId, Long ruleId, Long orderNum, Long validOrderNum, Long yesterdayOrderNum, Long yesterdayValidOrderNum) {
+        return kuaishouRuleSettlementDataService.getRuleData(relateId, promoterId, ruleId, orderNum, validOrderNum, yesterdayOrderNum, yesterdayValidOrderNum);
+
+    }
+
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:data:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(KuaishouRuleSettlementData kuaishouRuleSettlementData) {
+        startPage();
+        List<KuaishouRuleSettlementData> list = kuaishouRuleSettlementDataService.selectKuaishouRuleSettlementDataList(kuaishouRuleSettlementData);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:data:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, KuaishouRuleSettlementData kuaishouRuleSettlementData) {
+        List<KuaishouRuleSettlementData> list = kuaishouRuleSettlementDataService.selectKuaishouRuleSettlementDataList(kuaishouRuleSettlementData);
+        ExcelUtil<KuaishouRuleSettlementData> util = new ExcelUtil<KuaishouRuleSettlementData>(KuaishouRuleSettlementData.class);
+        util.exportExcel(response, list, "【请填写功能名称】数据");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:data:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(kuaishouRuleSettlementDataService.selectKuaishouRuleSettlementDataById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:data:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody KuaishouRuleSettlementData kuaishouRuleSettlementData) {
+        return toAjax(kuaishouRuleSettlementDataService.insertKuaishouRuleSettlementData(kuaishouRuleSettlementData));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:data:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody KuaishouRuleSettlementData kuaishouRuleSettlementData) {
+        return toAjax(kuaishouRuleSettlementDataService.updateKuaishouRuleSettlementData(kuaishouRuleSettlementData));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:data:remove')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(kuaishouRuleSettlementDataService.deleteKuaishouRuleSettlementDataByIds(ids));
+    }
+}
+

+ 98 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouSettlementRulesController.java

@@ -0,0 +1,98 @@
+package com.ruixuan.isc.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruixuan.common.annotation.Log;
+import com.ruixuan.common.core.controller.BaseController;
+import com.ruixuan.common.core.domain.AjaxResult;
+import com.ruixuan.common.core.page.TableDataInfo;
+import com.ruixuan.common.enums.BusinessType;
+import com.ruixuan.common.utils.poi.ExcelUtil;
+import com.ruixuan.isc.entity.KuaishouSettlementRules;
+import com.ruixuan.isc.service.IKuaishouSettlementRulesService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 【请填写功能名称】Controller
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+@RestController
+@RequestMapping("/system/rules")
+public class KuaishouSettlementRulesController extends BaseController {
+    @Autowired
+    private IKuaishouSettlementRulesService kuaishouSettlementRulesService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:rules:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(KuaishouSettlementRules kuaishouSettlementRules) {
+        startPage();
+        List<KuaishouSettlementRules> list = kuaishouSettlementRulesService.selectKuaishouSettlementRulesList(kuaishouSettlementRules);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:rules:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, KuaishouSettlementRules kuaishouSettlementRules) {
+        List<KuaishouSettlementRules> list = kuaishouSettlementRulesService.selectKuaishouSettlementRulesList(kuaishouSettlementRules);
+        ExcelUtil<KuaishouSettlementRules> util = new ExcelUtil<KuaishouSettlementRules>(KuaishouSettlementRules.class);
+        util.exportExcel(response, list, "【请填写功能名称】数据");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:rules:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(kuaishouSettlementRulesService.selectKuaishouSettlementRulesById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:rules:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody KuaishouSettlementRules kuaishouSettlementRules) {
+        return toAjax(kuaishouSettlementRulesService.insertKuaishouSettlementRules(kuaishouSettlementRules));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:rules:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody KuaishouSettlementRules kuaishouSettlementRules) {
+        return toAjax(kuaishouSettlementRulesService.updateKuaishouSettlementRules(kuaishouSettlementRules));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @PreAuthorize("@ss.hasPermi('system:rules:remove')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(kuaishouSettlementRulesService.deleteKuaishouSettlementRulesByIds(ids));
+    }
+}

+ 125 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouRuleDetail.java

@@ -0,0 +1,125 @@
+package com.ruixuan.isc.entity;
+import java.math.BigDecimal;
+import com.ruixuan.common.annotation.Excel;
+import com.ruixuan.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+
+/**
+ * 【请填写功能名称】对象 kuaishou_rule_detail
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+public class KuaishouRuleDetail extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 规则ID */
+    private Long id;
+
+    /** 规则名称 */
+    @Excel(name = "规则名称")
+    private String ruleId;
+
+    /** 起始单数 */
+    @Excel(name = "起始单数")
+    private Integer startItemCount;
+
+    /** 结束单数 */
+    @Excel(name = "结束单数")
+    private Integer endItemCount;
+
+    /** 主播奖励金额 */
+    @Excel(name = "主播奖励金额")
+    private BigDecimal anchorAmount;
+
+    /** 推荐人奖励金额 */
+    @Excel(name = "推荐人奖励金额")
+    private BigDecimal referenceAmount;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private Integer sortCount;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setRuleId(String ruleId)
+    {
+        this.ruleId = ruleId;
+    }
+
+    public String getRuleId()
+    {
+        return ruleId;
+    }
+    public void setStartItemCount(Integer startItemCount)
+    {
+        this.startItemCount = startItemCount;
+    }
+
+    public Integer getStartItemCount()
+    {
+        return startItemCount;
+    }
+    public void setEndItemCount(Integer endItemCount)
+    {
+        this.endItemCount = endItemCount;
+    }
+
+    public Integer getEndItemCount()
+    {
+        return endItemCount;
+    }
+    public void setAnchorAmount(BigDecimal anchorAmount)
+    {
+        this.anchorAmount = anchorAmount;
+    }
+
+    public BigDecimal getAnchorAmount()
+    {
+        return anchorAmount;
+    }
+    public void setReferenceAmount(BigDecimal referenceAmount)
+    {
+        this.referenceAmount = referenceAmount;
+    }
+
+    public BigDecimal getReferenceAmount()
+    {
+        return referenceAmount;
+    }
+    public void setSortCount(Integer sortCount)
+    {
+        this.sortCount = sortCount;
+    }
+
+    public Integer getSortCount()
+    {
+        return sortCount;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("ruleId", getRuleId())
+                .append("startItemCount", getStartItemCount())
+                .append("endItemCount", getEndItemCount())
+                .append("anchorAmount", getAnchorAmount())
+                .append("referenceAmount", getReferenceAmount())
+                .append("sortCount", getSortCount())
+                .append("createTime", getCreateTime())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}
+

+ 339 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouRuleSettlementData.java

@@ -0,0 +1,339 @@
+package com.ruixuan.isc.entity;
+
+
+import java.math.BigDecimal;
+
+import com.ruixuan.common.annotation.Excel;
+import com.ruixuan.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 【请填写功能名称】对象 kuaishou_rule_settlement_data
+ *
+ * @author ruoyi
+ * @date 2023-05-16
+ */
+public class KuaishouRuleSettlementData extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 规则ID
+     */
+    private Long id;
+
+    /**
+     * 规则id
+     */
+    @Excel(name = "规则id")
+    private Long ruleId;
+
+    /**
+     * 规则名称
+     */
+    @Excel(name = "规则名称")
+    private String ruleName;
+
+    /**
+     * 命中子规则id
+     */
+    @Excel(name = "命中子规则id")
+    private Long sonRuleId;
+
+    /**
+     * 关联商品ID
+     */
+    @Excel(name = "关联商品ID")
+    private Long relateId;
+
+    /**
+     * 商品id
+     */
+    @Excel(name = "商品id")
+    private String itemIds;
+
+    /**
+     * 达人ID
+     */
+    @Excel(name = "达人ID")
+    private Long promoterId;
+
+    /**
+     * 达人名称
+     */
+    @Excel(name = "达人名称")
+    private String promoterName;
+
+    /**
+     * 商品创建人ID
+     */
+    @Excel(name = "商品创建人ID")
+    private Long itemCreateId;
+
+    /**
+     * 商品创建人姓名
+     */
+    @Excel(name = "商品创建人姓名")
+    private String itemCreateName;
+
+    /**
+     * 达人创建人ID
+     */
+    @Excel(name = "达人创建人ID")
+    private Long promoterCreateId;
+
+    /**
+     * 达人创建人姓名
+     */
+    @Excel(name = "达人创建人姓名")
+    private String promoterCreateName;
+
+    /**
+     * 订单数
+     */
+    @Excel(name = "订单数")
+    private Long orderNum;
+
+    /**
+     * 有效订单数
+     */
+    @Excel(name = "有效订单数")
+    private Long validOrderNum;
+
+    /**
+     * 昨日订单数
+     */
+    @Excel(name = "昨日订单数")
+    private Long yesterdayOrderNum;
+
+    /**
+     * 昨日有效订单数
+     */
+    @Excel(name = "昨日有效订单数")
+    private Long yesterdayValidOrderNum;
+
+    /**
+     * 日期
+     */
+    @Excel(name = "日期")
+    private Long  statDate;
+
+    /**
+     * 主播奖励金额
+     */
+    @Excel(name = "主播奖励金额")
+    private BigDecimal anchorAmount;
+
+    /**
+     * 推荐人奖励金额
+     */
+    @Excel(name = "推荐人奖励金额")
+    private BigDecimal referenceAmount;
+
+    /**
+     * 结算状态 1:未达到激励 2:待结算 3:已结算
+     */
+    @Excel(name = "结算状态 1:未达到激励 2:待结算 3:已结算")
+    private Integer settlementStatus;
+
+    private Long lastSettlementOrderNum;
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getRuleId() {
+        return ruleId;
+    }
+
+    public void setRuleId(Long ruleId) {
+        this.ruleId = ruleId;
+    }
+
+    public String getRuleName() {
+        return ruleName;
+    }
+
+    public void setRuleName(String ruleName) {
+        this.ruleName = ruleName;
+    }
+
+    public Long getSonRuleId() {
+        return sonRuleId;
+    }
+
+    public void setSonRuleId(Long sonRuleId) {
+        this.sonRuleId = sonRuleId;
+    }
+
+    public Long getRelateId() {
+        return relateId;
+    }
+
+    public void setRelateId(Long relateId) {
+        this.relateId = relateId;
+    }
+
+    public String getItemIds() {
+        return itemIds;
+    }
+
+    public void setItemIds(String itemIds) {
+        this.itemIds = itemIds;
+    }
+
+    public Long getPromoterId() {
+        return promoterId;
+    }
+
+    public void setPromoterId(Long promoterId) {
+        this.promoterId = promoterId;
+    }
+
+    public String getPromoterName() {
+        return promoterName;
+    }
+
+    public void setPromoterName(String promoterName) {
+        this.promoterName = promoterName;
+    }
+
+    public Long getItemCreateId() {
+        return itemCreateId;
+    }
+
+    public void setItemCreateId(Long itemCreateId) {
+        this.itemCreateId = itemCreateId;
+    }
+
+    public String getItemCreateName() {
+        return itemCreateName;
+    }
+
+    public void setItemCreateName(String itemCreateName) {
+        this.itemCreateName = itemCreateName;
+    }
+
+    public Long getPromoterCreateId() {
+        return promoterCreateId;
+    }
+
+    public void setPromoterCreateId(Long promoterCreateId) {
+        this.promoterCreateId = promoterCreateId;
+    }
+
+    public String getPromoterCreateName() {
+        return promoterCreateName;
+    }
+
+    public void setPromoterCreateName(String promoterCreateName) {
+        this.promoterCreateName = promoterCreateName;
+    }
+
+    public Long getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(Long orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public Long getValidOrderNum() {
+        return validOrderNum;
+    }
+
+    public void setValidOrderNum(Long validOrderNum) {
+        this.validOrderNum = validOrderNum;
+    }
+
+    public Long getYesterdayOrderNum() {
+        return yesterdayOrderNum;
+    }
+
+    public void setYesterdayOrderNum(Long yesterdayOrderNum) {
+        this.yesterdayOrderNum = yesterdayOrderNum;
+    }
+
+    public Long getYesterdayValidOrderNum() {
+        return yesterdayValidOrderNum;
+    }
+
+    public void setYesterdayValidOrderNum(Long yesterdayValidOrderNum) {
+        this.yesterdayValidOrderNum = yesterdayValidOrderNum;
+    }
+
+    public Long getStatDate() {
+        return statDate;
+    }
+
+    public void setStatDate(Long statDate) {
+        this.statDate = statDate;
+    }
+
+    public BigDecimal getAnchorAmount() {
+        return anchorAmount;
+    }
+
+    public void setAnchorAmount(BigDecimal anchorAmount) {
+        this.anchorAmount = anchorAmount;
+    }
+
+    public BigDecimal getReferenceAmount() {
+        return referenceAmount;
+    }
+
+    public void setReferenceAmount(BigDecimal referenceAmount) {
+        this.referenceAmount = referenceAmount;
+    }
+
+    public Integer getSettlementStatus() {
+        return settlementStatus;
+    }
+
+    public void setSettlementStatus(Integer settlementStatus) {
+        this.settlementStatus = settlementStatus;
+    }
+
+    public Long getLastSettlementOrderNum() {
+        return lastSettlementOrderNum;
+    }
+
+    public void setLastSettlementOrderNum(Long lastSettlementOrderNum) {
+        this.lastSettlementOrderNum = lastSettlementOrderNum;
+    }
+
+    @Override
+    public String toString() {
+        return "KuaishouRuleSettlementData{" +
+                "id=" + id +
+                ", ruleId=" + ruleId +
+                ", ruleName='" + ruleName + '\'' +
+                ", sonRuleId=" + sonRuleId +
+                ", relateId=" + relateId +
+                ", itemIds='" + itemIds + '\'' +
+                ", promoterId=" + promoterId +
+                ", promoterName='" + promoterName + '\'' +
+                ", itemCreateId=" + itemCreateId +
+                ", itemCreateName='" + itemCreateName + '\'' +
+                ", promoterCreateId=" + promoterCreateId +
+                ", promoterCreateName='" + promoterCreateName + '\'' +
+                ", orderNum=" + orderNum +
+                ", validOrderNum=" + validOrderNum +
+                ", yesterdayOrderNum=" + yesterdayOrderNum +
+                ", yesterdayValidOrderNum=" + yesterdayValidOrderNum +
+                ", statDate=" + statDate +
+                ", anchorAmount=" + anchorAmount +
+                ", referenceAmount=" + referenceAmount +
+                ", settlementStatus=" + settlementStatus +
+                ", lastSettlementOrderNum=" + lastSettlementOrderNum +
+                '}';
+    }
+}

+ 98 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouSettlementRules.java

@@ -0,0 +1,98 @@
+package com.ruixuan.isc.entity;
+
+import com.ruixuan.common.annotation.Excel;
+import com.ruixuan.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 【请填写功能名称】对象 kuaishou_settlement_rules
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+public class KuaishouSettlementRules extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 规则ID
+     */
+    private Long id;
+
+    /**
+     * 规则名称
+     */
+    @Excel(name = "规则名称")
+    private String ruleName;
+
+    /**
+     * 规则类型 1:普通规则 2:冲单规则
+     */
+    @Excel(name = "规则类型 1:普通规则 2:冲单规则")
+    private Integer ruleType;
+
+    /**
+     * 创建人id
+     */
+    @Excel(name = "创建人id")
+    private Integer userId;
+
+    /**
+     * 创建人
+     */
+    @Excel(name = "创建人")
+    private String userName;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setRuleName(String ruleName) {
+        this.ruleName = ruleName;
+    }
+
+    public String getRuleName() {
+        return ruleName;
+    }
+
+    public void setRuleType(Integer ruleType) {
+        this.ruleType = ruleType;
+    }
+
+    public Integer getRuleType() {
+        return ruleType;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("ruleName", getRuleName())
+                .append("ruleType", getRuleType())
+                .append("userId", getUserId())
+                .append("userName", getUserName())
+                .append("createTime", getCreateTime())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}

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

@@ -0,0 +1,63 @@
+package com.ruixuan.isc.mapper;
+import com.ruixuan.isc.entity.KuaishouRuleDetail;
+
+import java.util.List;
+
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+public interface KuaishouRuleDetailMapper
+{
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public KuaishouRuleDetail selectKuaishouRuleDetailById(Long id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<KuaishouRuleDetail> selectKuaishouRuleDetailList(KuaishouRuleDetail kuaishouRuleDetail);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertKuaishouRuleDetail(KuaishouRuleDetail kuaishouRuleDetail);
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateKuaishouRuleDetail(KuaishouRuleDetail kuaishouRuleDetail);
+
+    /**
+     * 删除【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteKuaishouRuleDetailById(Long id);
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteKuaishouRuleDetailByIds(Long[] ids);
+}
+

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

@@ -0,0 +1,81 @@
+package com.ruixuan.isc.mapper;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.isc.entity.KuaishouRuleSettlementData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-05-16
+ */
+public interface KuaishouRuleSettlementDataMapper {
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public KuaishouRuleSettlementData selectKuaishouRuleSettlementDataById(Long id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<KuaishouRuleSettlementData> selectKuaishouRuleSettlementDataList(KuaishouRuleSettlementData kuaishouRuleSettlementData);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertKuaishouRuleSettlementData(KuaishouRuleSettlementData kuaishouRuleSettlementData);
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateKuaishouRuleSettlementData(KuaishouRuleSettlementData kuaishouRuleSettlementData);
+
+    /**
+     * 删除【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteKuaishouRuleSettlementDataById(Long id);
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteKuaishouRuleSettlementDataByIds(Long[] ids);
+
+    List<JSONObject> data(@Param("statDate") Long statDate);
+
+    List<JSONObject> getRuleList(@Param("ruleId") Long ruleId);
+
+    JSONObject lastRule(@Param("relateId") Long relateId, @Param("promoterId") Long promoterId, @Param("ruleId") Long ruleId);
+
+    JSONObject getTotalAmount(@Param("ruleId") Long ruleId, @Param("lastSortCount") Integer lastSortCount, @Param("currentSortCount") Integer currentSortCount);
+
+    Integer selectIncentiveLog(@Param("relateId") Long relateId, @Param("promoterId") Long promoterId);
+
+    void replaceIncentiveLog(@Param("relateId") Long relateId, @Param("promoterId") Long promoterId, @Param("ruleId") Long ruleId, @Param("incentivizedCount") Integer incentivizedCount, @Param("lastIncentivizedCount") Integer lastIncentivizedCount);
+
+    JSONObject getTotalByCountAndRuleId(@Param("incentivizedCount") Integer incentivizedCount, @Param("ruleId") Long ruleId);
+
+    Integer getMaxRuleCountByRuleId(@Param("ruleId") Long ruleId);
+
+    void replaceDatas(@Param("adds") List<KuaishouRuleSettlementData> adds);
+}

+ 63 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouSettlementRulesMapper.java

@@ -0,0 +1,63 @@
+package com.ruixuan.isc.mapper;
+import com.ruixuan.isc.entity.KuaishouSettlementRules;
+
+import java.util.List;
+
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+public interface KuaishouSettlementRulesMapper
+{
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+     KuaishouSettlementRules selectKuaishouSettlementRulesById(Long id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<KuaishouSettlementRules> selectKuaishouSettlementRulesList(KuaishouSettlementRules kuaishouSettlementRules);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertKuaishouSettlementRules(KuaishouSettlementRules kuaishouSettlementRules);
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateKuaishouSettlementRules(KuaishouSettlementRules kuaishouSettlementRules);
+
+    /**
+     * 删除【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteKuaishouSettlementRulesById(Long id);
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteKuaishouSettlementRulesByIds(Long[] ids);
+}
+

+ 62 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouRuleDetailService.java

@@ -0,0 +1,62 @@
+package com.ruixuan.isc.service;
+
+import com.ruixuan.isc.entity.KuaishouRuleDetail;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+public interface IKuaishouRuleDetailService
+{
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public KuaishouRuleDetail selectKuaishouRuleDetailById(Long id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<KuaishouRuleDetail> selectKuaishouRuleDetailList(KuaishouRuleDetail kuaishouRuleDetail);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertKuaishouRuleDetail(KuaishouRuleDetail kuaishouRuleDetail);
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateKuaishouRuleDetail(KuaishouRuleDetail kuaishouRuleDetail);
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的【请填写功能名称】主键集合
+     * @return 结果
+     */
+    public int deleteKuaishouRuleDetailByIds(Long[] ids);
+
+    /**
+     * 删除【请填写功能名称】信息
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteKuaishouRuleDetailById(Long id);
+}

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

@@ -0,0 +1,68 @@
+package com.ruixuan.isc.service;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.isc.entity.KuaishouRuleSettlementData;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-05-16
+ */
+public interface IKuaishouRuleSettlementDataService {
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public KuaishouRuleSettlementData selectKuaishouRuleSettlementDataById(Long id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<KuaishouRuleSettlementData> selectKuaishouRuleSettlementDataList(KuaishouRuleSettlementData kuaishouRuleSettlementData);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertKuaishouRuleSettlementData(KuaishouRuleSettlementData kuaishouRuleSettlementData);
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateKuaishouRuleSettlementData(KuaishouRuleSettlementData kuaishouRuleSettlementData);
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的【请填写功能名称】主键集合
+     * @return 结果
+     */
+    public int deleteKuaishouRuleSettlementDataByIds(Long[] ids);
+
+    /**
+     * 删除【请填写功能名称】信息
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteKuaishouRuleSettlementDataById(Long id);
+
+    void data(Long statDate, JSONArray dataArr);
+
+    JSONObject getRuleData(Long relateId, Long promoterId, Long ruleId, Long orderNum, Long validOrderNum, Long yesterdayOrderNum, Long yesterdayValidOrderNum);
+}
+

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

@@ -0,0 +1,63 @@
+package com.ruixuan.isc.service;
+
+import com.ruixuan.isc.entity.KuaishouSettlementRules;
+import java.util.List;
+
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+public interface IKuaishouSettlementRulesService
+{
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public KuaishouSettlementRules selectKuaishouSettlementRulesById(Long id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<KuaishouSettlementRules> selectKuaishouSettlementRulesList(KuaishouSettlementRules kuaishouSettlementRules);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertKuaishouSettlementRules(KuaishouSettlementRules kuaishouSettlementRules);
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateKuaishouSettlementRules(KuaishouSettlementRules kuaishouSettlementRules);
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的【请填写功能名称】主键集合
+     * @return 结果
+     */
+    public int deleteKuaishouSettlementRulesByIds(Long[] ids);
+
+    /**
+     * 删除【请填写功能名称】信息
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteKuaishouSettlementRulesById(Long id);
+}
+

+ 98 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouRuleDetailServiceImpl.java

@@ -0,0 +1,98 @@
+package com.ruixuan.isc.service.impl;
+import java.util.List;
+
+import com.ruixuan.common.utils.DateUtils;
+import com.ruixuan.isc.entity.KuaishouRuleDetail;
+import com.ruixuan.isc.mapper.KuaishouRuleDetailMapper;
+import com.ruixuan.isc.service.IKuaishouRuleDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+@Service
+public class KuaishouRuleDetailServiceImpl implements IKuaishouRuleDetailService
+{
+    @Autowired
+    private KuaishouRuleDetailMapper kuaishouRuleDetailMapper;
+
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public KuaishouRuleDetail selectKuaishouRuleDetailById(Long id)
+    {
+        return kuaishouRuleDetailMapper.selectKuaishouRuleDetailById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public List<KuaishouRuleDetail> selectKuaishouRuleDetailList(KuaishouRuleDetail kuaishouRuleDetail)
+    {
+        return kuaishouRuleDetailMapper.selectKuaishouRuleDetailList(kuaishouRuleDetail);
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int insertKuaishouRuleDetail(KuaishouRuleDetail kuaishouRuleDetail)
+    {
+        kuaishouRuleDetail.setCreateTime(DateUtils.getNowDate());
+        return kuaishouRuleDetailMapper.insertKuaishouRuleDetail(kuaishouRuleDetail);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouRuleDetail 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int updateKuaishouRuleDetail(KuaishouRuleDetail kuaishouRuleDetail)
+    {
+        kuaishouRuleDetail.setUpdateTime(DateUtils.getNowDate());
+        return kuaishouRuleDetailMapper.updateKuaishouRuleDetail(kuaishouRuleDetail);
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteKuaishouRuleDetailByIds(Long[] ids)
+    {
+        return kuaishouRuleDetailMapper.deleteKuaishouRuleDetailByIds(ids);
+    }
+
+    /**
+     * 删除【请填写功能名称】信息
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteKuaishouRuleDetailById(Long id)
+    {
+        return kuaishouRuleDetailMapper.deleteKuaishouRuleDetailById(id);
+    }
+}
+

+ 344 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouRuleSettlementDataServiceImpl.java

@@ -0,0 +1,344 @@
+package com.ruixuan.isc.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.common.utils.Check;
+import com.ruixuan.common.utils.DateUtils;
+import com.ruixuan.isc.entity.KuaishouRuleSettlementData;
+import com.ruixuan.isc.entity.KuaishouSettlementRules;
+import com.ruixuan.isc.mapper.KuaishouRuleSettlementDataMapper;
+import com.ruixuan.isc.service.IKuaishouRuleSettlementDataService;
+import com.ruixuan.isc.service.IKuaishouSettlementRulesService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-05-16
+ */
+@Service
+@Slf4j
+public class KuaishouRuleSettlementDataServiceImpl implements IKuaishouRuleSettlementDataService {
+    @Autowired
+    private KuaishouRuleSettlementDataMapper kuaishouRuleSettlementDataMapper;
+    @Autowired
+    private IKuaishouSettlementRulesService settlementRulesService;
+
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public KuaishouRuleSettlementData selectKuaishouRuleSettlementDataById(Long id) {
+        return kuaishouRuleSettlementDataMapper.selectKuaishouRuleSettlementDataById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public List<KuaishouRuleSettlementData> selectKuaishouRuleSettlementDataList(KuaishouRuleSettlementData kuaishouRuleSettlementData) {
+        return kuaishouRuleSettlementDataMapper.selectKuaishouRuleSettlementDataList(kuaishouRuleSettlementData);
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int insertKuaishouRuleSettlementData(KuaishouRuleSettlementData kuaishouRuleSettlementData) {
+        kuaishouRuleSettlementData.setCreateTime(DateUtils.getNowDate());
+        return kuaishouRuleSettlementDataMapper.insertKuaishouRuleSettlementData(kuaishouRuleSettlementData);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouRuleSettlementData 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int updateKuaishouRuleSettlementData(KuaishouRuleSettlementData kuaishouRuleSettlementData) {
+        kuaishouRuleSettlementData.setUpdateTime(DateUtils.getNowDate());
+        return kuaishouRuleSettlementDataMapper.updateKuaishouRuleSettlementData(kuaishouRuleSettlementData);
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteKuaishouRuleSettlementDataByIds(Long[] ids) {
+        return kuaishouRuleSettlementDataMapper.deleteKuaishouRuleSettlementDataByIds(ids);
+    }
+
+    /**
+     * 删除【请填写功能名称】信息
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteKuaishouRuleSettlementDataById(Long id) {
+        return kuaishouRuleSettlementDataMapper.deleteKuaishouRuleSettlementDataById(id);
+    }
+
+    @Override
+    public void data(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");
+                String itemIds = dataJson.getString("itemIds");
+                Long promoterId = dataJson.getLong("promoterId");
+                String promoterName = dataJson.getString("promoterName");
+                Long itemCreateId = dataJson.getLong("itemCreateId");
+                String itemCreateName = dataJson.getString("itemCreateName");
+                Long promoterCreateId = dataJson.getLong("promoterCreateId");
+                String promoterCreateName = dataJson.getString("promoterCreateName");
+                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");
+                JSONObject ruleData = getRuleData(relateId, promoterId, ruleId, orderNum, validOrderNum, yesterdayOrderNum, yesterdayValidOrderNum);
+                settlementData.setRuleId(ruleId);
+                settlementData.setRuleName(ruleData.getString("ruleName"));
+                settlementData.setSonRuleId(ruleData.getLong("sonRuleId"));
+                settlementData.setRelateId(relateId);
+                settlementData.setItemIds(itemIds);
+                settlementData.setPromoterId(promoterId);
+                settlementData.setPromoterName(promoterName);
+                settlementData.setItemCreateId(itemCreateId);
+                settlementData.setItemCreateName(itemCreateName);
+                settlementData.setPromoterCreateId(promoterCreateId);
+                settlementData.setPromoterCreateName(promoterCreateName);
+                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"));
+                adds.add(settlementData);
+            }
+            kuaishouRuleSettlementDataMapper.replaceDatas(adds);
+            log.info("结算信息入库完成,时间:{},数据量:{}", statDate, adds.size());
+        }
+    }
+
+    @Override
+    public JSONObject getRuleData(Long relateId, Long promoterId, Long ruleId, Long orderNum, Long validOrderNum, Long yesterdayOrderNum, Long yesterdayValidOrderNum) {
+        JSONObject returnJson = new JSONObject();
+        BigDecimal anchorAmount = new BigDecimal(0); // 达人激励
+        BigDecimal referenceAmount = new BigDecimal(0); // 推荐人激励
+        KuaishouSettlementRules kuaishouSettlementRules = settlementRulesService.selectKuaishouSettlementRulesById(ruleId);
+        returnJson.put("ruleId", ruleId);
+        returnJson.put("ruleName", kuaishouSettlementRules.getRuleName());
+        List<JSONObject> ruleList = kuaishouRuleSettlementDataMapper.getRuleList(ruleId);
+        JSONObject lastRule = kuaishouRuleSettlementDataMapper.lastRule(relateId, promoterId, ruleId); //上次结算命中的规则
+        Long lastValidOrderNum;
+        if (Check.isNull(lastRule)) {
+            lastValidOrderNum = 0L;
+        } else {
+            lastValidOrderNum = lastRule.getLong("lastRule");
+        }
+
+        JSONObject ruleJson = new JSONObject();
+        if (validOrderNum <= lastValidOrderNum) { // 有效订单数据小于等于昨天 不做结算
+            returnJson.put("ruleId", ruleId);
+            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;
+        } else if (validOrderNum < 10000) { // 单量 小于等于1w 在第一个结算周期内
+            for (int i = 0; i < ruleList.size(); i++) {
+                JSONObject rule = ruleList.get(i);
+                Long startItemCount = rule.getLong("startItemCount");
+                Long endItemCount = rule.getLong("endItemCount");
+                if (validOrderNum >= startItemCount && validOrderNum <= endItemCount) {
+                    ruleJson = rule;
+                    break;
+                }
+            }
+            if (Check.isNull(ruleJson) || ruleJson.size() == 0) {
+                returnJson.put("sonRuleId", 0);
+                returnJson.put("anchorAmount", anchorAmount);
+                returnJson.put("referenceAmount", referenceAmount);
+                returnJson.put("settlementStatus", 1);
+                returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+                return returnJson;
+            }
+            Integer lastSortCount = null;
+            if (Check.isNull(lastRule)) {
+                lastSortCount = 0;
+            }
+            if (!Check.isNull(lastRule)) {
+                Integer sortCount = lastRule.getInteger("sortCount"); // 上次结算命中的规则序号
+                if (Check.isNull(sortCount)) {
+                    lastSortCount = 0;
+                } else {
+                    lastSortCount = sortCount;
+                }
+            }
+            Integer currentSortCount = ruleJson.getInteger("sortCount"); // 当前结算命中的规则序号
+            if (currentSortCount <= lastSortCount) {
+                returnJson.put("sonRuleId", 0);
+                returnJson.put("anchorAmount", anchorAmount);
+                returnJson.put("referenceAmount", referenceAmount);
+                returnJson.put("settlementStatus", 1);
+                returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+                return returnJson;
+            } else {
+                JSONObject totalAmount = kuaishouRuleSettlementDataMapper.getTotalAmount(ruleId, lastSortCount, currentSortCount);
+                returnJson.put("sonRuleId", ruleJson.getLong("id"));
+                returnJson.put("anchorAmount", totalAmount.getBigDecimal("anchorAmount"));
+                returnJson.put("referenceAmount", totalAmount.getBigDecimal("referenceAmount"));
+                returnJson.put("settlementStatus", 2);
+                returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+                return returnJson;
+            }
+        } else if (validOrderNum >= 10000) {
+            System.err.println(validOrderNum);
+            Integer incentivizedCount = (int) Math.floor(validOrderNum / 10000); // 需要 1w单结算次数
+            Integer lastIncentivizedCount = kuaishouRuleSettlementDataMapper.selectIncentiveLog(relateId, promoterId); // 一万单已结算次数
+            if (Check.isNull(lastIncentivizedCount)) {
+                lastIncentivizedCount = 0;
+            }
+            if (incentivizedCount > lastIncentivizedCount) {
+                BigDecimal count = new BigDecimal(incentivizedCount - lastIncentivizedCount);
+                BigDecimal promoterRide = new BigDecimal(700); // 达人破万奖励金额
+                BigDecimal referenceRide = new BigDecimal(100); // 推荐人破万奖励金额
+                BigDecimal promoterIncentiveAmount = count.multiply(promoterRide); // 达人破万单奖励
+                BigDecimal referenceIncentiveAmount = count.multiply(referenceRide); // 推荐人破万单奖励
+                anchorAmount = anchorAmount.add(promoterIncentiveAmount);
+                referenceAmount = referenceAmount.add(referenceIncentiveAmount);
+                kuaishouRuleSettlementDataMapper.replaceIncentiveLog(relateId, promoterId, ruleId, incentivizedCount, lastIncentivizedCount);
+            }
+            if (Check.isNull(lastRule)) { //查询到上次命中的结算规则 则代表为新结算用户
+                JSONObject getTotalByCountAndRuleId = kuaishouRuleSettlementDataMapper.getTotalByCountAndRuleId(incentivizedCount, ruleId);
+                if (!Check.isNull(getTotalByCountAndRuleId)) {
+                    anchorAmount = anchorAmount.add(getTotalByCountAndRuleId.getBigDecimal("anchorAmount"));
+                    referenceAmount = referenceAmount.add(getTotalByCountAndRuleId.getBigDecimal("referenceAmount"));
+                }
+                BigDecimal decValidOrderNum = new BigDecimal(validOrderNum);
+                Long residueNum = decValidOrderNum.subtract(new BigDecimal(incentivizedCount).multiply(new BigDecimal(10000))).longValue(); // 新用户 剩余不到1w单的结算
+                for (int i = 0; i < ruleList.size(); i++) {
+                    JSONObject rule = ruleList.get(i);
+                    Long startItemCount = rule.getLong("startItemCount");
+                    Long endItemCount = rule.getLong("endItemCount");
+                    if (residueNum >= startItemCount && residueNum <= endItemCount) {
+                        ruleJson = rule;
+                        break;
+                    }
+                }
+                if (Check.isNull(ruleJson) || ruleJson.size() == 0) { // 剩余单量未命中结算规则 直接跳出此次结算计算
+                    returnJson.put("sonRuleId", 0);
+                    returnJson.put("anchorAmount", anchorAmount);
+                    returnJson.put("referenceAmount", referenceAmount);
+                    returnJson.put("settlementStatus", 2);
+                    returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+                    return returnJson;
+                }
+                Integer currentSortCount = ruleJson.getInteger("sortCount"); // 当前结算命中的规则序号
+                JSONObject totalAmount = kuaishouRuleSettlementDataMapper.getTotalAmount(ruleId, 0, currentSortCount); // 新的规则 序号从0开始
+                returnJson.put("sonRuleId", ruleJson.getLong("id"));
+                anchorAmount = anchorAmount.add(totalAmount.getBigDecimal("anchorAmount"));
+                referenceAmount = referenceAmount.add(totalAmount.getBigDecimal("referenceAmount"));
+                returnJson.put("anchorAmount", anchorAmount);
+                returnJson.put("referenceAmount", referenceAmount);
+                returnJson.put("settlementStatus", 2);
+                returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+                return returnJson;
+            } else { // 非新结算达人
+                if (validOrderNum <= lastValidOrderNum) { // 当前结算有效订单 小于等于上次结算有效订单数 则不参与接下来的结算
+                    returnJson.put("sonRuleId", 0);
+                    returnJson.put("anchorAmount", 0);
+                    returnJson.put("referenceAmount", 0);
+                    returnJson.put("settlementStatus", 1);
+                    returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+                    return returnJson;
+                }
+                Integer lastSortCount = lastRule.getInteger("sortCount"); // 上次结算命中的规则序号
+                Integer ruleMaxCount = kuaishouRuleSettlementDataMapper.getMaxRuleCountByRuleId(ruleId); // 当前规则下最大的序号
+                Long complement = null;
+                if (lastValidOrderNum > 10000) {
+                    String lastValidOrderNumStr = String.valueOf(lastValidOrderNum);
+                    String substring = lastValidOrderNumStr.substring(lastValidOrderNumStr.length() - 4);
+                    Long aLong = Long.valueOf(substring);
+                    complement = 10000 - aLong;
+                } else {
+                    complement = 10000 - lastValidOrderNum;
+                }
+                // 查询 上次结算补齐10000w需要激励的金额
+                JSONObject totalAmount = kuaishouRuleSettlementDataMapper.getTotalAmount(ruleId, lastSortCount, ruleMaxCount);
+                anchorAmount = anchorAmount.add(totalAmount.getBigDecimal("anchorAmount"));
+                referenceAmount = referenceAmount.add(totalAmount.getBigDecimal("referenceAmount"));
+                Long newValidOrderNum = validOrderNum - complement - lastValidOrderNum;
+                if (newValidOrderNum > 10000) { // 如果剩余单量大于一万单 计算完成1w周期内的结算金额
+                    Integer newSettlementCount = (int) Math.floor(newValidOrderNum / 10000); // 补齐上次结算10000单后需要结算的完整次数
+                    JSONObject totalByCountAndRuleId = kuaishouRuleSettlementDataMapper.getTotalByCountAndRuleId(newSettlementCount, ruleId);
+                    anchorAmount = anchorAmount.add(totalByCountAndRuleId.getBigDecimal("anchorAmount"));
+                    referenceAmount = referenceAmount.add(totalByCountAndRuleId.getBigDecimal("referenceAmount"));
+                    newValidOrderNum = newValidOrderNum - (newSettlementCount * 10000);
+                }
+                for (int i = 0; i < ruleList.size(); i++) {
+                    JSONObject rule = ruleList.get(i);
+                    Long startItemCount = rule.getLong("startItemCount");
+                    Long endItemCount = rule.getLong("endItemCount");
+                    if (newValidOrderNum >= startItemCount && newValidOrderNum <= endItemCount) {
+                        ruleJson = rule;
+                        break;
+                    }
+                }
+                if (Check.isNull(ruleJson) || ruleJson.size() == 0) { // 剩余单量未命中结算规则 直接跳出此次结算计算
+                    returnJson.put("sonRuleId", 0);
+                    returnJson.put("anchorAmount", anchorAmount);
+                    returnJson.put("referenceAmount", referenceAmount);
+                    returnJson.put("settlementStatus", 2);
+                    returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+                    return returnJson;
+                }
+                Integer currentSortCount = ruleJson.getInteger("sortCount"); // 当前结算命中的规则序号
+                JSONObject amount = kuaishouRuleSettlementDataMapper.getTotalAmount(ruleId, 0, currentSortCount); // 新的规则 序号从0开始
+                returnJson.put("sonRuleId", ruleJson.getLong("id"));
+                anchorAmount = anchorAmount.add(amount.getBigDecimal("anchorAmount"));
+                referenceAmount = referenceAmount.add(amount.getBigDecimal("referenceAmount"));
+                returnJson.put("anchorAmount", anchorAmount);
+                returnJson.put("referenceAmount", referenceAmount);
+                returnJson.put("settlementStatus", 2);
+                returnJson.put("lastSettlementOrderNum", lastValidOrderNum);
+                return returnJson;
+            }
+        }
+        return returnJson;
+    }
+}
+

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

@@ -0,0 +1,92 @@
+package com.ruixuan.isc.service.impl;
+
+import java.util.List;
+
+import com.ruixuan.common.utils.DateUtils;
+import com.ruixuan.isc.entity.KuaishouSettlementRules;
+import com.ruixuan.isc.mapper.KuaishouSettlementRulesMapper;
+import com.ruixuan.isc.service.IKuaishouSettlementRulesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-05-15
+ */
+@Service
+public class KuaishouSettlementRulesServiceImpl implements IKuaishouSettlementRulesService {
+    @Autowired
+    private KuaishouSettlementRulesMapper kuaishouSettlementRulesMapper;
+
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public KuaishouSettlementRules selectKuaishouSettlementRulesById(Long id) {
+        return kuaishouSettlementRulesMapper.selectKuaishouSettlementRulesById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public List<KuaishouSettlementRules> selectKuaishouSettlementRulesList(KuaishouSettlementRules kuaishouSettlementRules) {
+        return kuaishouSettlementRulesMapper.selectKuaishouSettlementRulesList(kuaishouSettlementRules);
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int insertKuaishouSettlementRules(KuaishouSettlementRules kuaishouSettlementRules) {
+        kuaishouSettlementRules.setCreateTime(DateUtils.getNowDate());
+        return kuaishouSettlementRulesMapper.insertKuaishouSettlementRules(kuaishouSettlementRules);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param kuaishouSettlementRules 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int updateKuaishouSettlementRules(KuaishouSettlementRules kuaishouSettlementRules) {
+        kuaishouSettlementRules.setUpdateTime(DateUtils.getNowDate());
+        return kuaishouSettlementRulesMapper.updateKuaishouSettlementRules(kuaishouSettlementRules);
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteKuaishouSettlementRulesByIds(Long[] ids) {
+        return kuaishouSettlementRulesMapper.deleteKuaishouSettlementRulesByIds(ids);
+    }
+
+    /**
+     * 删除【请填写功能名称】信息
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteKuaishouSettlementRulesById(Long id) {
+        return kuaishouSettlementRulesMapper.deleteKuaishouSettlementRulesById(id);
+    }
+}
+

+ 0 - 1
ruixuan-live/src/main/resources/mapper/isc/KuaishouItemListMapper.xml

@@ -3,7 +3,6 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruixuan.isc.mapper.KuaishouItemListMapper">
-
     <resultMap type="com.ruixuan.isc.entity.KuaishouItemList" id="KuaishouItemListResult">
         <result property="itemId" column="item_id"/>
         <result property="itemTitle" column="item_title"/>

+ 91 - 0
ruixuan-live/src/main/resources/mapper/isc/KuaishouRuleDetailMapper.xml

@@ -0,0 +1,91 @@
+<?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.ruixuan.isc.mapper.KuaishouRuleDetailMapper">
+
+    <resultMap type="com.ruixuan.isc.entity.KuaishouRuleDetail" id="KuaishouRuleDetailResult">
+        <result property="id"    column="id"    />
+        <result property="ruleId"    column="rule_id"    />
+        <result property="startItemCount"    column="start_item_count"    />
+        <result property="endItemCount"    column="end_item_count"    />
+        <result property="anchorAmount"    column="anchor_amount"    />
+        <result property="referenceAmount"    column="reference_amount"    />
+        <result property="sortCount"    column="sort_count"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectKuaishouRuleDetailVo">
+        select id, rule_id, start_item_count, end_item_count, anchor_amount, reference_amount, sort_count, create_time, update_time from kuaishou_rule_detail
+    </sql>
+
+    <select id="selectKuaishouRuleDetailList" parameterType="com.ruixuan.isc.entity.KuaishouRuleDetail" resultMap="KuaishouRuleDetailResult">
+        <include refid="selectKuaishouRuleDetailVo"/>
+        <where>
+            <if test="ruleId != null  and ruleId != ''"> and rule_id = #{ruleId}</if>
+            <if test="startItemCount != null "> and start_item_count = #{startItemCount}</if>
+            <if test="endItemCount != null "> and end_item_count = #{endItemCount}</if>
+            <if test="anchorAmount != null "> and anchor_amount = #{anchorAmount}</if>
+            <if test="referenceAmount != null "> and reference_amount = #{referenceAmount}</if>
+            <if test="sortCount != null "> and sort_count = #{sortCount}</if>
+        </where>
+    </select>
+
+    <select id="selectKuaishouRuleDetailById" parameterType="java.lang.Long" resultMap="KuaishouRuleDetailResult">
+        <include refid="selectKuaishouRuleDetailVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertKuaishouRuleDetail" parameterType="com.ruixuan.isc.entity.KuaishouRuleDetail">
+        insert into kuaishou_rule_detail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="ruleId != null">rule_id,</if>
+            <if test="startItemCount != null">start_item_count,</if>
+            <if test="endItemCount != null">end_item_count,</if>
+            <if test="anchorAmount != null">anchor_amount,</if>
+            <if test="referenceAmount != null">reference_amount,</if>
+            <if test="sortCount != null">sort_count,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="ruleId != null">#{ruleId},</if>
+            <if test="startItemCount != null">#{startItemCount},</if>
+            <if test="endItemCount != null">#{endItemCount},</if>
+            <if test="anchorAmount != null">#{anchorAmount},</if>
+            <if test="referenceAmount != null">#{referenceAmount},</if>
+            <if test="sortCount != null">#{sortCount},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateKuaishouRuleDetail" parameterType="com.ruixuan.isc.entity.KuaishouRuleDetail">
+        update kuaishou_rule_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="ruleId != null">rule_id = #{ruleId},</if>
+            <if test="startItemCount != null">start_item_count = #{startItemCount},</if>
+            <if test="endItemCount != null">end_item_count = #{endItemCount},</if>
+            <if test="anchorAmount != null">anchor_amount = #{anchorAmount},</if>
+            <if test="referenceAmount != null">reference_amount = #{referenceAmount},</if>
+            <if test="sortCount != null">sort_count = #{sortCount},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteKuaishouRuleDetailById" parameterType="java.lang.Long">
+        delete from kuaishou_rule_detail where id = #{id}
+    </delete>
+
+    <delete id="deleteKuaishouRuleDetailByIds" parameterType="java.lang.String">
+        delete from kuaishou_rule_detail where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 310 - 0
ruixuan-live/src/main/resources/mapper/isc/KuaishouRuleSettlementDataMapper.xml

@@ -0,0 +1,310 @@
+<?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.ruixuan.isc.mapper.KuaishouRuleSettlementDataMapper">
+
+    <resultMap type="com.ruixuan.isc.entity.KuaishouRuleSettlementData" id="KuaishouRuleSettlementDataResult">
+        <result property="id" column="id"/>
+        <result property="ruleId" column="rule_id"/>
+        <result property="ruleName" column="rule_name"/>
+        <result property="sonRuleId" column="son_rule_id"/>
+        <result property="relateId" column="relate_id"/>
+        <result property="itemIds" column="item_ids"/>
+        <result property="promoterId" column="promoter_id"/>
+        <result property="promoterName" column="promoter_name"/>
+        <result property="itemCreateId" column="item_create_id"/>
+        <result property="itemCreateName" column="item_create_name"/>
+        <result property="promoterCreateId" column="promoter_create_id"/>
+        <result property="promoterCreateName" column="promoter_create_name"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="validOrderNum" column="valid_order_num"/>
+        <result property="yesterdayOrderNum" column="yesterday_order_num"/>
+        <result property="yesterdayValidOrderNum" column="yesterday_valid_order_num"/>
+        <result property="statDate" column="stat_date"/>
+        <result property="anchorAmount" column="anchor_amount"/>
+        <result property="referenceAmount" column="reference_amount"/>
+        <result property="settlementStatus" column="settlement_status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <sql id="selectKuaishouRuleSettlementDataVo">
+        select id, rule_id, rule_name, son_rule_id, relate_id, item_ids, promoter_id, promoter_name, item_create_id, item_create_name, promoter_create_id, promoter_create_name, order_num, valid_order_num, yesterday_order_num, yesterday_valid_order_num, stat_date, anchor_amount, reference_amount, settlement_status, create_time, update_time from kuaishou_rule_settlement_data
+    </sql>
+
+    <select id="selectKuaishouRuleSettlementDataList" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData"
+            resultMap="KuaishouRuleSettlementDataResult">
+        <include refid="selectKuaishouRuleSettlementDataVo"/>
+        <where>
+            <if test="ruleId != null ">and rule_id = #{ruleId}</if>
+            <if test="ruleName != null ">and rule_name like concat('%', #{ruleName}, '%')</if>
+            <if test="sonRuleId != null ">and son_rule_id = #{sonRuleId}</if>
+            <if test="relateId != null ">and relate_id = #{relateId}</if>
+            <if test="itemIds != null  and itemIds != ''">and item_ids = #{itemIds}</if>
+            <if test="promoterId != null ">and promoter_id = #{promoterId}</if>
+            <if test="promoterName != null  and promoterName != ''">and promoter_name like concat('%', #{promoterName},
+                '%')
+            </if>
+            <if test="itemCreateId != null ">and item_create_id = #{itemCreateId}</if>
+            <if test="itemCreateName != null  and itemCreateName != ''">and item_create_name like concat('%',
+                #{itemCreateName}, '%')
+            </if>
+            <if test="promoterCreateId != null ">and promoter_create_id = #{promoterCreateId}</if>
+            <if test="promoterCreateName != null  and promoterCreateName != ''">and promoter_create_name like
+                concat('%', #{promoterCreateName}, '%')
+            </if>
+            <if test="orderNum != null ">and order_num = #{orderNum}</if>
+            <if test="validOrderNum != null ">and valid_order_num = #{validOrderNum}</if>
+            <if test="yesterdayOrderNum != null ">and yesterday_order_num = #{yesterdayOrderNum}</if>
+            <if test="yesterdayValidOrderNum != null ">and yesterday_valid_order_num = #{yesterdayValidOrderNum}</if>
+            <if test="statDate != null ">and stat_date = #{statDate}</if>
+            <if test="anchorAmount != null ">and anchor_amount = #{anchorAmount}</if>
+            <if test="referenceAmount != null ">and reference_amount = #{referenceAmount}</if>
+            <if test="settlementStatus != null ">and settlement_status = #{settlementStatus}</if>
+        </where>
+    </select>
+
+    <select id="selectKuaishouRuleSettlementDataById" parameterType="java.lang.Long"
+            resultMap="KuaishouRuleSettlementDataResult">
+        <include refid="selectKuaishouRuleSettlementDataVo"/>
+        where id = #{id}
+    </select>
+
+
+    <insert id="insertKuaishouRuleSettlementData" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData">
+        insert into kuaishou_rule_settlement_data
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="ruleId != null">rule_id,</if>
+            <if test="ruleName != null">rule_name,</if>
+            <if test="sonRuleId != null">son_rule_id,</if>
+            <if test="relateId != null">relate_id,</if>
+            <if test="itemIds != null">item_ids,</if>
+            <if test="promoterId != null">promoter_id,</if>
+            <if test="promoterName != null">promoter_name,</if>
+            <if test="itemCreateId != null">item_create_id,</if>
+            <if test="itemCreateName != null">item_create_name,</if>
+            <if test="promoterCreateId != null">promoter_create_id,</if>
+            <if test="promoterCreateName != null">promoter_create_name,</if>
+            <if test="orderNum != null">order_num,</if>
+            <if test="validOrderNum != null">valid_order_num,</if>
+            <if test="yesterdayOrderNum != null">yesterday_order_num,</if>
+            <if test="yesterdayValidOrderNum != null">yesterday_valid_order_num,</if>
+            <if test="statDate != null">stat_date,</if>
+            <if test="anchorAmount != null">anchor_amount,</if>
+            <if test="referenceAmount != null">reference_amount,</if>
+            <if test="settlementStatus != null">settlement_status,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="ruleId != null">#{ruleId},</if>
+            <if test="ruleName != null">#{ruleName},</if>
+            <if test="sonRuleId != null">#{sonRuleId},</if>
+            <if test="relateId != null">#{relateId},</if>
+            <if test="itemIds != null">#{itemIds},</if>
+            <if test="promoterId != null">#{promoterId},</if>
+            <if test="promoterName != null">#{promoterName},</if>
+            <if test="itemCreateId != null">#{itemCreateId},</if>
+            <if test="itemCreateName != null">#{itemCreateName},</if>
+            <if test="promoterCreateId != null">#{promoterCreateId},</if>
+            <if test="promoterCreateName != null">#{promoterCreateName},</if>
+            <if test="orderNum != null">#{orderNum},</if>
+            <if test="validOrderNum != null">#{validOrderNum},</if>
+            <if test="yesterdayOrderNum != null">#{yesterdayOrderNum},</if>
+            <if test="yesterdayValidOrderNum != null">#{yesterdayValidOrderNum},</if>
+            <if test="statDate != null">#{statDate},</if>
+            <if test="anchorAmount != null">#{anchorAmount},</if>
+            <if test="referenceAmount != null">#{referenceAmount},</if>
+            <if test="settlementStatus != null">#{settlementStatus},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+
+    <update id="updateKuaishouRuleSettlementData" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData">
+        update kuaishou_rule_settlement_data
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="ruleId != null">rule_id = #{ruleId},</if>
+            <if test="ruleName != null">rule_name = #{ruleName},</if>
+            <if test="sonRuleId != null">son_rule_id = #{sonRuleId},</if>
+            <if test="relateId != null">relate_id = #{relateId},</if>
+            <if test="itemIds != null">item_ids = #{itemIds},</if>
+            <if test="promoterId != null">promoter_id = #{promoterId},</if>
+            <if test="promoterName != null">promoter_name = #{promoterName},</if>
+            <if test="itemCreateId != null">item_create_id = #{itemCreateId},</if>
+            <if test="itemCreateName != null">item_create_name = #{itemCreateName},</if>
+            <if test="promoterCreateId != null">promoter_create_id = #{promoterCreateId},</if>
+            <if test="promoterCreateName != null">promoter_create_name = #{promoterCreateName},</if>
+            <if test="orderNum != null">order_num = #{orderNum},</if>
+            <if test="validOrderNum != null">valid_order_num = #{validOrderNum},</if>
+            <if test="yesterdayOrderNum != null">yesterday_order_num = #{yesterdayOrderNum},</if>
+            <if test="yesterdayValidOrderNum != null">yesterday_valid_order_num = #{yesterdayValidOrderNum},</if>
+            <if test="statDate != null">stat_date = #{statDate},</if>
+            <if test="anchorAmount != null">anchor_amount = #{anchorAmount},</if>
+            <if test="referenceAmount != null">reference_amount = #{referenceAmount},</if>
+            <if test="settlementStatus != null">settlement_status = #{settlementStatus},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteKuaishouRuleSettlementDataById" parameterType="java.lang.Long">
+        delete from kuaishou_rule_settlement_data where id = #{id}
+    </delete>
+
+    <delete id="deleteKuaishouRuleSettlementDataByIds" parameterType="java.lang.String">
+        delete from kuaishou_rule_settlement_data where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+
+    <select id="data" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
+
+      select  *  from (
+      select t1.relate_id                      as 'relateId',
+       1                        as 'ruleId',
+       group_concat(t1.item_id)          as 'itemIds',
+       t1.promoter_id                    as 'promoterId',
+       t1.promoter_name                  as 'promoterName',
+       t1.item_create_id                 as 'itemCreateId',
+       t1.item_create_name               as 'itemCreateName',
+       t1.promoter_create_id             as 'promoterCreateId',
+       t1.promoter_create_name           as 'promoterCreateName',
+       ifnull(sum(t1.order_num),0)                 as 'orderNum',
+       ifnull(sum(t1.valid_order_num),0 )         as 'validOrderNum',
+       ifnull(sum(t1.yesterday_order_num),0 )      as 'yesterdayOrderNum',
+       ifnull(sum(t1.yesterday_valid_order_num),0) as 'yesterdayValidOrderNum',
+       t1.stat_date                      as 'statDate'
+       from kuaishou_rule_order_data t1
+         left join kuaishou_item_list t2 on t1.item_id = t2.item_id
+    where t1.stat_date = #{statDate}
+    and t2.rule_id is   null
+    and t1.relate_id is not null
+    group by t1.relate_id, t1.promoter_id ) t order by t.validOrderNum
+    </select>
+    <select id="getRuleList" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
+        select
+        id as 'id',
+        rule_id as 'ruleId',
+        start_item_count as 'startItemCount',
+        end_item_count as 'endItemCount',
+        anchor_amount as 'anchorAmount',
+        reference_amount as 'referenceAmount',
+        sort_count as 'sortCount'
+        from kuaishou_rule_detail where rule_id = #{ruleId}
+    </select>
+    <select id="lastRule" resultType="com.alibaba.fastjson.JSONObject">
+        select son_rule_id  as 'sonRuleId',
+        (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}
+        and  promoter_id = #{promoterId}
+        and  rule_id = #{ruleId}
+        and settlement_status != 1
+        order by create_time desc limit 1
+    </select>
+    <select id="getTotalAmount" resultType="com.alibaba.fastjson.JSONObject">
+        select
+        ifnull(sum(anchor_amount),0) as 'anchorAmount',
+        ifnull(sum(reference_amount),0) as 'referenceAmount'
+        from kuaishou_rule_detail
+        where  rule_id = #{ruleId}
+        and sort_count &gt; #{lastSortCount}
+        and sort_count &lt;= #{currentSortCount}
+    </select>
+    <select id="selectIncentiveLog" resultType="java.lang.Integer">
+        select  ifnull(incentive_count,0)  from kuaishou_rule_incentive_log where relate_id = #{relateId}
+        and promoter_id = #{promoterId} order by create_time desc limit 1
+    </select>
+
+    <insert id="replaceIncentiveLog">
+        replace into kuaishou_rule_incentive_log (
+        relate_id,
+        promoter_id,
+        rule_id,
+        incentive_count,
+        last_incentive_count
+        ) values (
+        #{relateId},
+        #{promoterId},
+        #{ruleId},
+        #{incentivizedCount},
+        #{lastIncentivizedCount}
+        )
+
+    </insert>
+
+
+    <select id="getTotalByCountAndRuleId" resultType="com.alibaba.fastjson.JSONObject">
+        select
+        ifnull(round(sum(anchor_amount) * #{incentivizedCount}, 2),0)    as 'anchorAmount',
+        ifnull(round(sum(reference_amount) * #{incentivizedCount}, 2) ,0) as 'referenceAmount'
+        from kuaishou_rule_detail where rule_id = #{ruleId}
+
+    </select>
+    <select id="getMaxRuleCountByRuleId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+        select  max(sort_count)  from kuaishou_rule_detail where rule_id = #{ruleId}
+
+    </select>
+
+    <insert id="replaceDatas">
+        replace into kuaishou_rule_settlement_data(
+        rule_id,
+        rule_name,
+        son_rule_id,
+        relate_id,
+        item_ids,
+        promoter_id,
+        promoter_name,
+        item_create_id,
+        item_create_name,
+        promoter_create_id,
+        promoter_create_name,
+        order_num,
+        valid_order_num,
+        yesterday_order_num,
+        yesterday_valid_order_num,
+        stat_date,
+        anchor_amount,
+        reference_amount,
+        settlement_status,
+        last_settlement_order_num
+        )
+        values
+        <foreach collection="adds" item="add" separator=",">
+            (
+            #{add.ruleId},
+            #{add.ruleName},
+            #{add.sonRuleId},
+            #{add.relateId},
+            #{add.itemIds},
+            #{add.promoterId},
+            #{add.promoterName},
+            #{add.itemCreateId},
+            #{add.itemCreateName},
+            #{add.promoterCreateId},
+            #{add.promoterCreateName},
+            #{add.orderNum},
+            #{add.validOrderNum},
+            #{add.yesterdayOrderNum},
+            #{add.yesterdayValidOrderNum},
+            #{add.statDate},
+            #{add.anchorAmount},
+            #{add.referenceAmount},
+            #{add.settlementStatus},
+            #{add.lastSettlementOrderNum}
+            )
+        </foreach>
+
+    </insert>
+
+
+</mapper>

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

@@ -0,0 +1,81 @@
+<?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.ruixuan.isc.mapper.KuaishouSettlementRulesMapper">
+
+    <resultMap type="com.ruixuan.isc.entity.KuaishouSettlementRules" id="KuaishouSettlementRulesResult">
+        <result property="id"    column="id"    />
+        <result property="ruleName"    column="rule_name"    />
+        <result property="ruleType"    column="rule_type"    />
+        <result property="userId"    column="user_id"    />
+        <result property="userName"    column="user_name"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectKuaishouSettlementRulesVo">
+        select id, rule_name, rule_type, user_id, user_name, create_time, update_time from kuaishou_settlement_rules
+    </sql>
+
+    <select id="selectKuaishouSettlementRulesList" parameterType="com.ruixuan.isc.entity.KuaishouSettlementRules" resultMap="KuaishouSettlementRulesResult">
+        <include refid="selectKuaishouSettlementRulesVo"/>
+        <where>
+            <if test="ruleName != null  and ruleName != ''"> and rule_name like concat('%', #{ruleName}, '%')</if>
+            <if test="ruleType != null "> and rule_type = #{ruleType}</if>
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
+        </where>
+    </select>
+
+    <select id="selectKuaishouSettlementRulesById" parameterType="java.lang.Long" resultMap="KuaishouSettlementRulesResult">
+        <include refid="selectKuaishouSettlementRulesVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertKuaishouSettlementRules" parameterType="com.ruixuan.isc.entity.KuaishouSettlementRules">
+        insert into kuaishou_settlement_rules
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="ruleName != null">rule_name,</if>
+            <if test="ruleType != null">rule_type,</if>
+            <if test="userId != null">user_id,</if>
+            <if test="userName != null">user_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="ruleName != null">#{ruleName},</if>
+            <if test="ruleType != null">#{ruleType},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="userName != null">#{userName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateKuaishouSettlementRules" parameterType="com.ruixuan.isc.entity.KuaishouSettlementRules">
+        update kuaishou_settlement_rules
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="ruleName != null">rule_name = #{ruleName},</if>
+            <if test="ruleType != null">rule_type = #{ruleType},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="userName != null">user_name = #{userName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteKuaishouSettlementRulesById" parameterType="java.lang.Long">
+        delete from kuaishou_settlement_rules where id = #{id}
+    </delete>
+
+    <delete id="deleteKuaishouSettlementRulesByIds" parameterType="java.lang.String">
+        delete from kuaishou_settlement_rules where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>