Procházet zdrojové kódy

同步交易增量和存量的表

mac před 2 roky
rodič
revize
b23a5c7f8b

+ 17 - 3
kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java

@@ -19,9 +19,7 @@ import com.kxs.transfer.api.service.KxsDtsLogService;
 import com.kxs.transfer.api.service.product.*;
 import com.kxs.transfer.api.service.product.impl.KxsMachineTrackService;
 import com.kxs.transfer.api.service.product.impl.KxsShopOrderService;
-import com.kxs.transfer.api.service.stat.KxsMerchantTradeService;
-import com.kxs.transfer.api.service.stat.KxsUserActTradeService;
-import com.kxs.transfer.api.service.stat.KxsUserTradeService;
+import com.kxs.transfer.api.service.stat.*;
 import com.kxs.transfer.api.service.store.KxsMachineRecycleService;
 import com.kxs.transfer.api.service.store.KxsWarehouseService;
 import com.kxs.transfer.api.service.store.impl.*;
@@ -100,6 +98,8 @@ public class DtsController {
 
     //统计模块
     private final KxsUserTradeService kxsUserTradeService;
+    private final KxsUserTradeBeforeService kxsUserTradeBeforeService;
+    private final KxsUserTradeAfterService kxsUserTradeAfterService;
     private final KxsUserActTradeService kxsUserActTradeService;
     private final KxsMerchantTradeService kxsMerchantTradeService;
 
@@ -353,6 +353,20 @@ public class DtsController {
             if ("TradeDaySummary2".equals(dmlData.getTableName())) {
                 kxsUserTradeService.change2Data(dmlData);
             }
+            //存量
+            if ("TradeDaySummaryBefore".equals(dmlData.getTableName())) {
+                kxsUserTradeBeforeService.changeData(dmlData);
+            }
+            if ("TradeDaySummary2Before".equals(dmlData.getTableName())) {
+                kxsUserTradeBeforeService.change2Data(dmlData);
+            }
+            //增量
+            if ("TradeDaySummaryAfter".equals(dmlData.getTableName())) {
+                kxsUserTradeAfterService.changeData(dmlData);
+            }
+            if ("TradeDaySummary2After".equals(dmlData.getTableName())) {
+                kxsUserTradeAfterService.change2Data(dmlData);
+            }
             //创客激活统计
             if ("UserTradeMonthSummary".equals(dmlData.getTableName())) {
                 kxsUserActTradeService.changeData(dmlData);

+ 19 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/stat/KxsUserTradeAfterMapper.java

@@ -0,0 +1,19 @@
+package com.kxs.transfer.api.mapper.stat;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.model.KxsUserTradeAfter;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 个人交易统计总表增量(KxsUserTradeAfter)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-05-09 13:59:07
+ */
+@Mapper
+@DS("stat")
+public interface KxsUserTradeAfterMapper extends BaseMapper<KxsUserTradeAfter> {
+
+}
+

+ 19 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/stat/KxsUserTradeBeforeMapper.java

@@ -0,0 +1,19 @@
+package com.kxs.transfer.api.mapper.stat;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.model.KxsUserTradeBefore;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 个人交易统计总表存量(KxsUserTradeBefore)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-05-09 13:59:07
+ */
+@Mapper
+@DS("stat")
+public interface KxsUserTradeBeforeMapper extends BaseMapper<KxsUserTradeBefore> {
+
+}
+

+ 212 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsUserTradeAfterService.java

@@ -0,0 +1,212 @@
+package com.kxs.transfer.api.service.stat;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.mybatis.handler.MonthTableNameHandler;
+import com.kxs.stat.api.model.KxsUserTradeAfter;
+import com.kxs.stat.api.model.KxsUserTradeBefore;
+import com.kxs.transfer.api.mapper.stat.KxsUserTradeAfterMapper;
+import com.kxs.transfer.api.model.table.DMLData;
+import com.kxs.transfer.api.model.table.FieldData;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 个人交易统计总表增量(KxsUserTradeAfter)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-05-09 13:59:07
+ */
+@Service("kxsUserTradeAfterService")
+public class KxsUserTradeAfterService extends ServiceImpl<KxsUserTradeAfterMapper, KxsUserTradeAfter> {
+
+    public void changeData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsUserTradeAfter userTrade = new KxsUserTradeAfter();
+
+        String tradeMonth;
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("UserId").getValue() != null) {
+            userTrade.setUserId(Integer.valueOf(fieldDataMap.get("UserId").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeDate").getValue() != null) {
+            userTrade.setTradeDate(Integer.valueOf(fieldDataMap.get("TradeDate").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeMonth").getValue() != null) {
+            userTrade.setTradeMonth(Integer.valueOf(fieldDataMap.get("TradeMonth").getValue().toString()));
+        }
+        if (fieldDataMap.get("BrandId").getValue() != null) {
+            userTrade.setBrandId(Integer.valueOf(fieldDataMap.get("BrandId").getValue().toString()));
+        }
+        if (fieldDataMap.get("VipFlag").getValue() != null) {
+            userTrade.setVipFlag(Integer.valueOf(fieldDataMap.get("VipFlag").getValue().toString()));
+        }
+        if (fieldDataMap.get("SeoTitle").getValue() != null) {
+            String seoTitle = fieldDataMap.get("SeoTitle").getValue().toString();
+            if ("self".equals(seoTitle)) {
+                userTrade.setTotalType(0);
+                userTrade.setHelpDirectTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectTradeAmt").getValue().toString()));
+                userTrade.setHelpDebitTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProDirectTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectTradeAmt").getValue().toString()));
+                userTrade.setProDebitTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDirectTradeAmt").getValue().toString()));
+                userTrade.setProADebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDirectDebitCapTradeAmt").getValue().toString()));
+            } else {
+                userTrade.setTotalType(1);
+                userTrade.setHelpDirectTradeAmt(new BigDecimal(fieldDataMap.get("HelpNonDirectTradeAmt").getValue().toString()));
+                userTrade.setHelpDebitTradeAmt(new BigDecimal(fieldDataMap.get("HelpNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProDirectTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpNonDirectTradeAmt").getValue().toString()));
+                userTrade.setProDebitTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectTradeAmt").getValue().toString()));
+                userTrade.setProADebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+            }
+        }
+        if (fieldDataMap.get("QueryCount").getValue() != null) {
+            userTrade.setTradeType(Integer.valueOf(fieldDataMap.get("QueryCount").getValue().toString()));
+        }
+        if (fieldDataMap.get("HelpDirectDebitCapTradeAmt").getValue() != null) {
+            userTrade.setHelpDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("NotHelpDirectDebitCapTradeAmt").getValue() != null) {
+            userTrade.setProDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("HelpDirectDebitCapNum").getValue() != null) {
+            userTrade.setHelpDebitCapNum(new BigDecimal(fieldDataMap.get("HelpDirectDebitCapNum").getValue().toString()).intValue());
+        }
+        if (fieldDataMap.get("NotHelpDirectDebitCapNum").getValue() != null) {
+            userTrade.setProDebitCapNum(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitCapNum").getValue().toString()).intValue());
+        }
+        if (fieldDataMap.get("ProfitDirectDebitCapNum").getValue() != null) {
+            userTrade.setProADebitCapNum(new BigDecimal(fieldDataMap.get("ProfitDirectDebitCapNum").getValue().toString()).intValue());
+        }
+
+        KxsUserTradeAfter kxsUserTrade = baseMapper.selectOne(Wrappers.<KxsUserTradeAfter>lambdaQuery()
+                .eq(KxsUserTradeAfter::getUserId, userTrade.getUserId())
+                .eq(KxsUserTradeAfter::getBrandId, userTrade.getBrandId())
+                .eq(KxsUserTradeAfter::getTradeType, userTrade.getTradeType())
+                .eq(KxsUserTradeAfter::getTotalType, userTrade.getTotalType())
+                .eq(KxsUserTradeAfter::getTradeMonth, userTrade.getTradeMonth())
+                .eq(KxsUserTradeAfter::getTradeDate, userTrade.getTradeDate())
+                .eq(KxsUserTradeAfter::getVipFlag, userTrade.getVipFlag()));
+        if (kxsUserTrade == null) {
+            // 插入数据
+            baseMapper.insert(userTrade);
+        } else {
+            userTrade.setId(kxsUserTrade.getId());
+            baseMapper.updateById(userTrade);
+        }
+
+        //删除线程,避免线程污染
+        MonthTableNameHandler.removeData();
+
+    }
+
+    public void change2Data(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsUserTradeAfter userTrade = new KxsUserTradeAfter();
+
+        String tradeMonth;
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("SeoTitle").getValue() != null) {
+            String seoTitle = fieldDataMap.get("SeoTitle").getValue().toString();
+            if ("self".equals(seoTitle)) {
+                userTrade.setTotalType(0);
+            }else{
+                userTrade.setTotalType(1);
+            }
+        }
+        if (fieldDataMap.get("QueryCount").getValue() != null) {
+            userTrade.setTradeType(Integer.valueOf(fieldDataMap.get("QueryCount").getValue().toString()));
+        }
+        if (fieldDataMap.get("UserId").getValue() != null) {
+            userTrade.setUserId(Integer.valueOf(fieldDataMap.get("UserId").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeDate").getValue() != null) {
+            userTrade.setTradeDate(Integer.valueOf(fieldDataMap.get("TradeDate").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeMonth").getValue() != null) {
+            userTrade.setTradeMonth(Integer.valueOf(fieldDataMap.get("TradeMonth").getValue().toString()));
+        }
+        if (fieldDataMap.get("BrandId").getValue() != null) {
+            userTrade.setBrandId(Integer.valueOf(fieldDataMap.get("BrandId").getValue().toString()));
+        }
+        if (fieldDataMap.get("VipFlag").getValue() != null) {
+            userTrade.setVipFlag(Integer.valueOf(fieldDataMap.get("VipFlag").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitTradeAmt").getValue() != null) {
+            userTrade.setProBDirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitTradeAmt").getValue() != null) {
+            userTrade.setProBDebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDebitTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitCapTradeAmt").getValue() != null) {
+            userTrade.setProBDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitCapNum").getValue() != null) {
+            userTrade.setProBDebitCapNum(new BigDecimal(fieldDataMap.get("ProfitDebitCapNum").getValue().toString()).intValue());
+        }
+
+        KxsUserTradeAfter kxsUserTrade = baseMapper.selectOne(Wrappers.<KxsUserTradeAfter>lambdaQuery()
+                .eq(KxsUserTradeAfter::getUserId, userTrade.getUserId())
+                .eq(KxsUserTradeAfter::getBrandId, userTrade.getBrandId())
+                .eq(KxsUserTradeAfter::getTradeType, userTrade.getTradeType())
+                .eq(KxsUserTradeAfter::getTotalType, userTrade.getTotalType())
+                .eq(KxsUserTradeAfter::getTradeMonth, userTrade.getTradeMonth())
+                .eq(KxsUserTradeAfter::getTradeDate, userTrade.getTradeDate())
+                .eq(KxsUserTradeAfter::getVipFlag, userTrade.getVipFlag()));
+        if (kxsUserTrade == null) {
+            // 插入数据
+            baseMapper.insert(userTrade);
+        } else {
+            userTrade.setId(kxsUserTrade.getId());
+            baseMapper.updateById(userTrade);
+        }
+
+        //删除线程,避免线程污染
+        MonthTableNameHandler.removeData();
+    }
+}
+

+ 211 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsUserTradeBeforeService.java

@@ -0,0 +1,211 @@
+package com.kxs.transfer.api.service.stat;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.mybatis.handler.MonthTableNameHandler;
+import com.kxs.stat.api.model.KxsUserTradeBefore;
+import com.kxs.transfer.api.mapper.stat.KxsUserTradeBeforeMapper;
+import com.kxs.transfer.api.model.table.DMLData;
+import com.kxs.transfer.api.model.table.FieldData;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 个人交易统计总表存量(KxsUserTradeBefore)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-05-09 13:59:07
+ */
+@Service("kxsUserTradeBeforeService")
+public class KxsUserTradeBeforeService extends ServiceImpl<KxsUserTradeBeforeMapper, KxsUserTradeBefore> {
+
+    public void changeData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsUserTradeBefore userTrade = new KxsUserTradeBefore();
+
+        String tradeMonth;
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("UserId").getValue() != null) {
+            userTrade.setUserId(Integer.valueOf(fieldDataMap.get("UserId").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeDate").getValue() != null) {
+            userTrade.setTradeDate(Integer.valueOf(fieldDataMap.get("TradeDate").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeMonth").getValue() != null) {
+            userTrade.setTradeMonth(Integer.valueOf(fieldDataMap.get("TradeMonth").getValue().toString()));
+        }
+        if (fieldDataMap.get("BrandId").getValue() != null) {
+            userTrade.setBrandId(Integer.valueOf(fieldDataMap.get("BrandId").getValue().toString()));
+        }
+        if (fieldDataMap.get("VipFlag").getValue() != null) {
+            userTrade.setVipFlag(Integer.valueOf(fieldDataMap.get("VipFlag").getValue().toString()));
+        }
+        if (fieldDataMap.get("SeoTitle").getValue() != null) {
+            String seoTitle = fieldDataMap.get("SeoTitle").getValue().toString();
+            if ("self".equals(seoTitle)) {
+                userTrade.setTotalType(0);
+                userTrade.setHelpDirectTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectTradeAmt").getValue().toString()));
+                userTrade.setHelpDebitTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProDirectTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectTradeAmt").getValue().toString()));
+                userTrade.setProDebitTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDirectTradeAmt").getValue().toString()));
+                userTrade.setProADebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDirectDebitCapTradeAmt").getValue().toString()));
+            } else {
+                userTrade.setTotalType(1);
+                userTrade.setHelpDirectTradeAmt(new BigDecimal(fieldDataMap.get("HelpNonDirectTradeAmt").getValue().toString()));
+                userTrade.setHelpDebitTradeAmt(new BigDecimal(fieldDataMap.get("HelpNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProDirectTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpNonDirectTradeAmt").getValue().toString()));
+                userTrade.setProDebitTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectTradeAmt").getValue().toString()));
+                userTrade.setProADebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+            }
+        }
+        if (fieldDataMap.get("QueryCount").getValue() != null) {
+            userTrade.setTradeType(Integer.valueOf(fieldDataMap.get("QueryCount").getValue().toString()));
+        }
+        if (fieldDataMap.get("HelpDirectDebitCapTradeAmt").getValue() != null) {
+            userTrade.setHelpDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("NotHelpDirectDebitCapTradeAmt").getValue() != null) {
+            userTrade.setProDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("HelpDirectDebitCapNum").getValue() != null) {
+            userTrade.setHelpDebitCapNum(new BigDecimal(fieldDataMap.get("HelpDirectDebitCapNum").getValue().toString()).intValue());
+        }
+        if (fieldDataMap.get("NotHelpDirectDebitCapNum").getValue() != null) {
+            userTrade.setProDebitCapNum(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitCapNum").getValue().toString()).intValue());
+        }
+        if (fieldDataMap.get("ProfitDirectDebitCapNum").getValue() != null) {
+            userTrade.setProADebitCapNum(new BigDecimal(fieldDataMap.get("ProfitDirectDebitCapNum").getValue().toString()).intValue());
+        }
+
+        KxsUserTradeBefore kxsUserTrade = baseMapper.selectOne(Wrappers.<KxsUserTradeBefore>lambdaQuery()
+                .eq(KxsUserTradeBefore::getUserId, userTrade.getUserId())
+                .eq(KxsUserTradeBefore::getBrandId, userTrade.getBrandId())
+                .eq(KxsUserTradeBefore::getTradeType, userTrade.getTradeType())
+                .eq(KxsUserTradeBefore::getTotalType, userTrade.getTotalType())
+                .eq(KxsUserTradeBefore::getTradeMonth, userTrade.getTradeMonth())
+                .eq(KxsUserTradeBefore::getTradeDate, userTrade.getTradeDate())
+                .eq(KxsUserTradeBefore::getVipFlag, userTrade.getVipFlag()));
+        if (kxsUserTrade == null) {
+            // 插入数据
+            baseMapper.insert(userTrade);
+        } else {
+            userTrade.setId(kxsUserTrade.getId());
+            baseMapper.updateById(userTrade);
+        }
+
+        //删除线程,避免线程污染
+        MonthTableNameHandler.removeData();
+
+    }
+
+    public void change2Data(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsUserTradeBefore userTrade = new KxsUserTradeBefore();
+
+        String tradeMonth;
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("SeoTitle").getValue() != null) {
+            String seoTitle = fieldDataMap.get("SeoTitle").getValue().toString();
+            if ("self".equals(seoTitle)) {
+                userTrade.setTotalType(0);
+            }else{
+                userTrade.setTotalType(1);
+            }
+        }
+        if (fieldDataMap.get("QueryCount").getValue() != null) {
+            userTrade.setTradeType(Integer.valueOf(fieldDataMap.get("QueryCount").getValue().toString()));
+        }
+        if (fieldDataMap.get("UserId").getValue() != null) {
+            userTrade.setUserId(Integer.valueOf(fieldDataMap.get("UserId").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeDate").getValue() != null) {
+            userTrade.setTradeDate(Integer.valueOf(fieldDataMap.get("TradeDate").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeMonth").getValue() != null) {
+            userTrade.setTradeMonth(Integer.valueOf(fieldDataMap.get("TradeMonth").getValue().toString()));
+        }
+        if (fieldDataMap.get("BrandId").getValue() != null) {
+            userTrade.setBrandId(Integer.valueOf(fieldDataMap.get("BrandId").getValue().toString()));
+        }
+        if (fieldDataMap.get("VipFlag").getValue() != null) {
+            userTrade.setVipFlag(Integer.valueOf(fieldDataMap.get("VipFlag").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitTradeAmt").getValue() != null) {
+            userTrade.setProBDirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitTradeAmt").getValue() != null) {
+            userTrade.setProBDebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDebitTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitCapTradeAmt").getValue() != null) {
+            userTrade.setProBDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitCapNum").getValue() != null) {
+            userTrade.setProBDebitCapNum(new BigDecimal(fieldDataMap.get("ProfitDebitCapNum").getValue().toString()).intValue());
+        }
+
+        KxsUserTradeBefore kxsUserTrade = baseMapper.selectOne(Wrappers.<KxsUserTradeBefore>lambdaQuery()
+                .eq(KxsUserTradeBefore::getUserId, userTrade.getUserId())
+                .eq(KxsUserTradeBefore::getBrandId, userTrade.getBrandId())
+                .eq(KxsUserTradeBefore::getTradeType, userTrade.getTradeType())
+                .eq(KxsUserTradeBefore::getTotalType, userTrade.getTotalType())
+                .eq(KxsUserTradeBefore::getTradeMonth, userTrade.getTradeMonth())
+                .eq(KxsUserTradeBefore::getTradeDate, userTrade.getTradeDate())
+                .eq(KxsUserTradeBefore::getVipFlag, userTrade.getVipFlag()));
+        if (kxsUserTrade == null) {
+            // 插入数据
+            baseMapper.insert(userTrade);
+        } else {
+            userTrade.setId(kxsUserTrade.getId());
+            baseMapper.updateById(userTrade);
+        }
+
+        //删除线程,避免线程污染
+        MonthTableNameHandler.removeData();
+    }
+}
+

+ 0 - 2
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsPartner.java

@@ -59,9 +59,7 @@ public class KxsPartner extends Model<KxsPartner> implements Serializable {
     /**
      * 删除标记,0未删除,1已删除
      */
-    @TableLogic
     @Schema(description = "删除标记,0未删除,1已删除")
-    @TableField(fill = FieldFill.INSERT)
     private String delFlag;