Преглед изворни кода

同步创客激活交易统计
同步商户交易统计数据

mac пре 2 година
родитељ
комит
2b7fd34a68

+ 7 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/model/KxsMerchantTrade.java

@@ -95,6 +95,13 @@ public class KxsMerchantTrade extends Model<KxsMerchantTrade> implements Seriali
     private Integer merchantId;
 
 
+    /**
+     * 品牌ID
+     */
+    @Schema(description = "品牌ID")
+    private Integer brandId;
+
+
 
 
 }

+ 1 - 1
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/model/KxsUserActTrade.java

@@ -57,7 +57,7 @@ public class KxsUserActTrade extends Model<KxsUserActTrade> implements Serializa
      * 删除标记,0未删除,1已删除
      */
     @Schema(description = "删除标记,0未删除,1已删除")
-    private Integer delFlag;
+    private String delFlag;
 
 
     /**

+ 1 - 0
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsMerchantTradeMapper.xml

@@ -12,6 +12,7 @@
         <result column="trade_month" property="tradeMonth" />
         <result column="trade_amt" property="tradeAmt" />
         <result column="merchant_id" property="merchantId" />
+        <result column="brand_id" property="brandId" />
 
     </resultMap>
 

+ 12 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java

@@ -19,6 +19,8 @@ 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.store.KxsMachineRecycleService;
 import com.kxs.transfer.api.service.store.KxsWarehouseService;
@@ -98,6 +100,8 @@ public class DtsController {
 
     //统计模块
     private final KxsUserTradeService kxsUserTradeService;
+    private final KxsUserActTradeService kxsUserActTradeService;
+    private final KxsMerchantTradeService kxsMerchantTradeService;
 
     @Value("${spring.profiles.active}")
     private String active;
@@ -349,6 +353,14 @@ public class DtsController {
             if ("TradeDaySummary2".equals(dmlData.getTableName())) {
                 kxsUserTradeService.change2Data(dmlData);
             }
+            //创客激活统计
+            if ("UserTradeMonthSummary".equals(dmlData.getTableName())) {
+                kxsUserActTradeService.changeData(dmlData);
+            }
+            //商户交易额统计
+            if ("PosMerchantTradeSummay".equals(dmlData.getTableName())) {
+                kxsMerchantTradeService.changeData(dmlData);
+            }
 
 
 

+ 56 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsMerchantTradeService.java

@@ -1,10 +1,19 @@
 package com.kxs.transfer.api.service.stat;
 
+import com.aliyun.dts.subscribe.clients.record.OperationType;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.stat.api.model.KxsMerchantTrade;
+import com.kxs.stat.api.model.KxsUserActTrade;
 import com.kxs.transfer.api.mapper.stat.KxsMerchantTradeMapper;
+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;
+
 /**
  * 商户交易统计总表(KxsMerchantTrade)表服务实现类
  *
@@ -14,5 +23,52 @@ import org.springframework.stereotype.Service;
 @Service("kxsMerchantTradeService")
 public class KxsMerchantTradeService extends ServiceImpl<KxsMerchantTradeMapper, KxsMerchantTrade>{
 
+    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());
+
+        KxsMerchantTrade merchantTrade = new KxsMerchantTrade();
+
+        OperationType operation = dmlData.getOperation();
+
+        if(operation.equals(OperationType.DELETE)){
+            baseMapper.deleteById(id);
+            return;
+        }
+        if (fieldDataMap.get("MerchantId").getValue() != null) {
+            merchantTrade.setMerchantId(Integer.valueOf(fieldDataMap.get("MerchantId").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeDate").getValue() != null) {
+            merchantTrade.setTradeDate(Integer.valueOf(fieldDataMap.get("TradeDate").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeMonth").getValue() != null) {
+            merchantTrade.setTradeMonth(Integer.valueOf(fieldDataMap.get("TradeMonth").getValue().toString()));
+        }
+        if (fieldDataMap.get("BrandId").getValue() != null) {
+            merchantTrade.setBrandId(Integer.valueOf(fieldDataMap.get("BrandId").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeAmount").getValue() != null) {
+            merchantTrade.setTradeAmt(new BigDecimal(fieldDataMap.get("TradeAmount").getValue().toString()));
+        }
+
+        KxsMerchantTrade kxsUserActTrade = baseMapper.selectOne(Wrappers.<KxsMerchantTrade>lambdaQuery()
+                .eq(KxsMerchantTrade::getMerchantId, merchantTrade.getMerchantId())
+                .eq(KxsMerchantTrade::getBrandId, merchantTrade.getBrandId())
+                .eq(KxsMerchantTrade::getTradeMonth, merchantTrade.getTradeMonth())
+                .eq(KxsMerchantTrade::getTradeDate, merchantTrade.getTradeDate()));
+        if(kxsUserActTrade == null){
+            merchantTrade.setId(id);
+            baseMapper.insert(merchantTrade);
+        }else{
+            merchantTrade.setId(kxsUserActTrade.getId());
+            baseMapper.updateById(merchantTrade);
+        }
+    }
 }
 

+ 65 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsUserActTradeService.java

@@ -1,10 +1,19 @@
 package com.kxs.transfer.api.service.stat;
 
+import com.aliyun.dts.subscribe.clients.record.OperationType;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.stat.api.model.KxsUserActTrade;
+import com.kxs.stat.api.model.KxsUserTrade;
 import com.kxs.transfer.api.mapper.stat.KxsUserActTradeMapper;
+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;
+
 /**
  * 创客激活统计表(KxsUserActTrade)表服务实现类
  *
@@ -14,5 +23,61 @@ import org.springframework.stereotype.Service;
 @Service("kxsUserActTradeService")
 public class KxsUserActTradeService extends ServiceImpl<KxsUserActTradeMapper, KxsUserActTrade> {
 
+    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());
+
+        KxsUserActTrade userActTrade = new KxsUserActTrade();
+
+        OperationType operation = dmlData.getOperation();
+
+        if(operation.equals(OperationType.DELETE)){
+            baseMapper.deleteById(id);
+            return;
+        }
+        if (fieldDataMap.get("UserId").getValue() != null) {
+            userActTrade.setUserId(Integer.valueOf(fieldDataMap.get("UserId").getValue().toString()));
+        }
+        if (fieldDataMap.get("SeoKeyword").getValue() != null) {
+            userActTrade.setTradeDate(Integer.valueOf(fieldDataMap.get("SeoKeyword").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeMonth").getValue() != null) {
+            userActTrade.setTradeMonth(Integer.valueOf(fieldDataMap.get("TradeMonth").getValue().toString()));
+        }
+        if (fieldDataMap.get("BrandId").getValue() != null) {
+            userActTrade.setBrandId(Integer.valueOf(fieldDataMap.get("BrandId").getValue().toString()));
+        }
+        if (fieldDataMap.get("ActiveBuddyMerStatus").getValue() != null) {
+            userActTrade.setActNum(Integer.valueOf(fieldDataMap.get("ActiveBuddyMerStatus").getValue().toString()));
+        }
+        if (fieldDataMap.get("SeoTitle").getValue() != null) {
+            String seoTitle = fieldDataMap.get("SeoTitle").getValue().toString();
+            if ("self".equals(seoTitle)) {
+                userActTrade.setTotalType(0);
+            } else {
+                userActTrade.setTotalType(1);
+            }
+        }
+        KxsUserActTrade kxsUserActTrade = baseMapper.selectOne(Wrappers.<KxsUserActTrade>lambdaQuery()
+                .eq(KxsUserActTrade::getUserId, userActTrade.getUserId())
+                .eq(KxsUserActTrade::getBrandId, userActTrade.getBrandId())
+                .eq(KxsUserActTrade::getTotalType, userActTrade.getTotalType())
+                .eq(KxsUserActTrade::getTradeMonth, userActTrade.getTradeMonth())
+                .eq(KxsUserActTrade::getTradeDate, userActTrade.getTradeDate()));
+        if(kxsUserActTrade == null){
+            userActTrade.setId(id);
+            baseMapper.insert(userActTrade);
+        }else{
+            userActTrade.setId(kxsUserActTrade.getId());
+            baseMapper.updateById(userActTrade);
+        }
+    }
 }