Pārlūkot izejas kodu

合伙人表同步

mac 2 gadi atpakaļ
vecāks
revīzija
70f2b1782e

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

@@ -11,6 +11,7 @@ import com.kxs.transfer.api.service.KxsDtsErrorLogService;
 import com.kxs.transfer.api.service.KxsDtsLogService;
 import com.kxs.transfer.api.service.KxsDtsLogService;
 import com.kxs.transfer.api.service.product.KxsShopGoodsService;
 import com.kxs.transfer.api.service.product.KxsShopGoodsService;
 import com.kxs.transfer.api.service.user.*;
 import com.kxs.transfer.api.service.user.*;
+import com.kxs.user.api.model.KxsPartner;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
@@ -45,6 +46,7 @@ public class DtsController {
     private final KxsUserWithdrawalService kxsUserWithdrawalService;
     private final KxsUserWithdrawalService kxsUserWithdrawalService;
     private final KxsLeaderService kxsLeaderService;
     private final KxsLeaderService kxsLeaderService;
     private final KxsLeaderAmountLogService kxsLeaderAmountLogService;
     private final KxsLeaderAmountLogService kxsLeaderAmountLogService;
+    private final KxsPartnerService kxsPartnerService;
 
 
     //产品模块
     //产品模块
     private final KxsShopGoodsService kxsShopGoodsService;
     private final KxsShopGoodsService kxsShopGoodsService;
@@ -61,7 +63,8 @@ public class DtsController {
                     record.commit(String.valueOf(record.getSourceTimestamp()));
                     record.commit(String.valueOf(record.getSourceTimestamp()));
                     return;
                     return;
                 }
                 }
-                if (changeFieldList.size() == 1 && changeFieldList.contains("DeviceId")) {
+               if (changeFieldList.size() == 1 && changeFieldList.contains("DeviceId")) {
+                    // 如果changeFieldList的大小为1,且changeFieldList包含DeviceId,则提交记录
                     record.commit(String.valueOf(record.getSourceTimestamp()));
                     record.commit(String.valueOf(record.getSourceTimestamp()));
                     return;
                     return;
                 }
                 }
@@ -121,6 +124,14 @@ public class DtsController {
             if ("LeaderReserveRecord".equals(dmlData.getTableName()) ) {
             if ("LeaderReserveRecord".equals(dmlData.getTableName()) ) {
                 kxsLeaderAmountLogService.changeData(dmlData);
                 kxsLeaderAmountLogService.changeData(dmlData);
             }
             }
+            //合伙人表
+            if ("OperatorRankWhite".equals(dmlData.getTableName()) ) {
+                kxsPartnerService.changeData(dmlData);
+            }
+            //合伙人账户 -> 合伙人表
+            if ("UserAccount".equals(dmlData.getTableName()) && "KxsOpServer".equals(dmlData.getDatabaseName())) {
+                kxsPartnerService.changeAccountData(dmlData);
+            }
 
 
 
 
             //商品表同步
             //商品表同步

+ 1 - 1
kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsShopGoodsServiceImpl.java

@@ -98,7 +98,7 @@ public class KxsShopGoodsServiceImpl extends ServiceImpl<KxsShopGoodsMapper, Kxs
             goods.setSubtitle(fieldDataMap.get("Details").getValue().toString());
             goods.setSubtitle(fieldDataMap.get("Details").getValue().toString());
         }
         }
         if(fieldDataMap.get("NormJson").getValue() != null){
         if(fieldDataMap.get("NormJson").getValue() != null){
-            String value = fieldDataMap.get("NormJson").toString();
+            String value = fieldDataMap.get("NormJson").getValue().toString();
             if(StrUtil.isNotBlank(value) && value.contains("#cut#")){
             if(StrUtil.isNotBlank(value) && value.contains("#cut#")){
                 String sku = value.substring(0, value.indexOf("#cut#"));
                 String sku = value.substring(0, value.indexOf("#cut#"));
                 goods.setSpecList(sku);
                 goods.setSpecList(sku);

+ 4 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/KxsPartnerService.java

@@ -1,6 +1,7 @@
 package com.kxs.transfer.api.service.user;
 package com.kxs.transfer.api.service.user;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.user.api.model.KxsPartner;
 import com.kxs.user.api.model.KxsPartner;
 
 
 /**
 /**
@@ -11,5 +12,8 @@ import com.kxs.user.api.model.KxsPartner;
  */
  */
 public interface KxsPartnerService extends IService<KxsPartner> {
 public interface KxsPartnerService extends IService<KxsPartner> {
 
 
+    void changeData(DMLData dmlData);
+
+    void changeAccountData(DMLData dmlData);
 }
 }
 
 

+ 89 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsPartnerServiceImpl.java

@@ -1,11 +1,21 @@
 package com.kxs.transfer.api.service.user.impl;
 package com.kxs.transfer.api.service.user.impl;
 
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.transfer.api.mapper.user.KxsPartnerMapper;
 import com.kxs.transfer.api.mapper.user.KxsPartnerMapper;
+import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.transfer.api.service.user.KxsPartnerService;
 import com.kxs.transfer.api.service.user.KxsPartnerService;
+import com.kxs.user.api.model.KxsLeaderAmountLog;
 import com.kxs.user.api.model.KxsPartner;
 import com.kxs.user.api.model.KxsPartner;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 /**
 /**
  * 合伙人表(KxsPartner)表服务实现类
  * 合伙人表(KxsPartner)表服务实现类
  *
  *
@@ -15,5 +25,84 @@ import org.springframework.stereotype.Service;
 @Service("kxsPartnerService")
 @Service("kxsPartnerService")
 public class KxsPartnerServiceImpl extends ServiceImpl<KxsPartnerMapper, KxsPartner> implements KxsPartnerService {
 public class KxsPartnerServiceImpl extends ServiceImpl<KxsPartnerMapper, KxsPartner> implements KxsPartnerService {
 
 
+    @Override
+    public void changeData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsPartner partner = new KxsPartner();
+        partner.setId(id);
+
+        //操作类型
+        OperationType operation = dmlData.getOperation();
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "UserId":
+                    partner.setUserId(Integer.parseInt(validFieldDataMap.get(field).toString()));
+                    break;
+                case "Rank":
+                    partner.setPartnerLevel(Integer.parseInt(validFieldDataMap.get(field).toString()));
+                    break;
+                case "CreateDate":
+                    partner.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    partner.setExpiredDate(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+            }
+        }
+        KxsPartner kxsPartner = baseMapper.selectById(partner.getId());
+        if(kxsPartner == null){
+            baseMapper.insert(partner);
+        }else{
+            baseMapper.updateById(partner);
+        }
+
+    }
+
+    @Override
+    public void changeAccountData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsPartner partner = new KxsPartner();
+        partner.setId(id);
+
+        //操作类型
+        OperationType operation = dmlData.getOperation();
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "UserId":
+                    partner.setUserId(Integer.parseInt(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ValidForGetAmount":
+                    partner.setWithdrawalAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "TotalAmt":
+                    partner.setAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ValidAmount":
+                    partner.setStoreAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+            }
+        }
+        KxsPartner kxsPartner = baseMapper.selectById(Wrappers.<KxsPartner>lambdaQuery().eq(KxsPartner::getUserId, partner.getUserId()));
+        if(kxsPartner == null){
+            partner.setPartnerLevel(9);
+            baseMapper.insert(partner);
+        }else{
+            baseMapper.updateById(partner);
+        }
+    }
 }
 }
 
 

+ 7 - 2
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsUserAmountLogServiceImpl.java

@@ -98,8 +98,13 @@ public class KxsUserAmountLogServiceImpl extends ServiceImpl<KxsUserAmountLogMap
             baseMapper.updateById(userAmountLog);
             baseMapper.updateById(userAmountLog);
         }
         }
         if (operation.equals(OperationType.INSERT)) {
         if (operation.equals(OperationType.INSERT)) {
-            // 插入数据
-            baseMapper.insert(userAmountLog);
+            KxsUserAmountLog kxsUserAmountLog = baseMapper.selectById(userAmountLog.getId());
+            if(kxsUserAmountLog == null){
+                // 插入数据
+                baseMapper.insert(userAmountLog);
+            }else{
+                baseMapper.updateById(userAmountLog);
+            }
         }
         }
     }
     }
 }
 }

+ 44 - 8
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsUserServiceImpl.java

@@ -17,17 +17,11 @@ import com.kxs.store.api.model.KxsWarehouseLimit;
 import com.kxs.system.api.feign.RemoteUserMsgService;
 import com.kxs.system.api.feign.RemoteUserMsgService;
 import com.kxs.system.api.model.KxsUserMsg;
 import com.kxs.system.api.model.KxsUserMsg;
 import com.kxs.system.api.util.MsgTemplateUtil;
 import com.kxs.system.api.util.MsgTemplateUtil;
-import com.kxs.transfer.api.mapper.user.KxsUserAmountMapper;
-import com.kxs.transfer.api.mapper.user.KxsUserBankMapper;
-import com.kxs.transfer.api.mapper.user.KxsUserMapper;
-import com.kxs.transfer.api.mapper.user.KxsUserRealMapper;
+import com.kxs.transfer.api.mapper.user.*;
 import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.transfer.api.model.table.FieldData;
 import com.kxs.transfer.api.model.table.FieldData;
 import com.kxs.transfer.api.service.user.KxsUserService;
 import com.kxs.transfer.api.service.user.KxsUserService;
-import com.kxs.user.api.model.KxsUser;
-import com.kxs.user.api.model.KxsUserAmount;
-import com.kxs.user.api.model.KxsUserBank;
-import com.kxs.user.api.model.KxsUserReal;
+import com.kxs.user.api.model.*;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.crypto.password.PasswordEncoder;
@@ -53,6 +47,8 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
 
 
     private final KxsUserBankMapper kxsUserBankMapper;
     private final KxsUserBankMapper kxsUserBankMapper;
 
 
+    private final KxsPartnerMapper kxsPartnerMapper;
+
     private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
     private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
 
 
     @Override
     @Override
@@ -172,6 +168,46 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
                 case "CreateDate":
                 case "CreateDate":
                     user.setCreateTime(LocalDateTimeUtil.parse(fieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
                     user.setCreateTime(LocalDateTimeUtil.parse(fieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
                     break;
                     break;
+                case "UserType":
+                    //合伙人等级改变
+                    int userType = Integer.parseInt(fieldDataMap.get(field).toString());
+                    if(userType > 0){
+                        KxsPartner kxsPartner = kxsPartnerMapper.selectById(Wrappers.<KxsPartner>lambdaQuery().eq(KxsPartner::getUserId, userId));
+                        if (kxsPartner == null){
+                            kxsPartner = new KxsPartner();
+                            kxsPartner.setId(Integer.valueOf(userId));
+                            kxsPartner.setUserId(Integer.valueOf(userId));
+                            if(userType == 1){
+                                kxsPartner.setPartnerLevel(0);
+                            }
+                            if(userType == 2){
+                                kxsPartner.setPartnerLevel(1);
+                            }
+                            if(userType == 3){
+                                kxsPartner.setPartnerLevel(2);
+                            }
+                            if(userType == 4){
+                                kxsPartner.setPartnerLevel(3);
+                            }
+                            kxsPartner.setPartnerLevel(9);
+                            kxsPartnerMapper.insert(kxsPartner);
+                        }else{
+                            if(userType == 1){
+                                kxsPartner.setPartnerLevel(0);
+                            }
+                            if(userType == 2){
+                                kxsPartner.setPartnerLevel(1);
+                            }
+                            if(userType == 3){
+                                kxsPartner.setPartnerLevel(2);
+                            }
+                            if(userType == 4){
+                                kxsPartner.setPartnerLevel(3);
+                            }
+                            kxsPartnerMapper.updateById(kxsPartner);
+                        }
+                    }
+                    break;
             }
             }
         }
         }
 
 

+ 9 - 0
kxs-transfer/src/main/resources/import.txt

@@ -68,6 +68,15 @@ Sort as variation_type, ChangeAmt as amount, BeforeAmt as before_amount, AfterAm
 SourceUserId as source_user_id, OrderId as order_id, CASE ChangeType WHEN 1 THEN 'add' WHEN 2 THEN 'sub' END kind
 SourceUserId as source_user_id, OrderId as order_id, CASE ChangeType WHEN 1 THEN 'add' WHEN 2 THEN 'sub' END kind
 FROM LeaderReserveRecord
 FROM LeaderReserveRecord
 
 
+//合伙人表
+SELECT a.Id as id, a.Id as user_id, CASE a.UserType WHEN 1 THEN 0 WHEN 2 THEN 1 END partner_type, 9 as partner_level,
+b.CreateDate as create_time, b.UpdateDate as expired_date,
+c.ValidForGetAmount as withdrawal_amount, c.TotalAmt as amount, c.ValidAmount as store_amount
+
+FROM Users a left join OperatorRankWhite b on a.Id = b.UserId
+left join KxsOpServer.UserAccount c on a.Id = c.UserId
+WHERE UserType > 0
+
 //商品相关
 //商品相关
 SELECT Id as id, CreateDate as create_time, UpdateDate as update_time,
 SELECT Id as id, CreateDate as create_time, UpdateDate as update_time,
 CASE ProductKind WHEN 1 THEN 0 ELSE 1 END goods_type, ListPicPath as pic_url, Sort as sort, Status as status, SUBSTRING_INDEX(NormJson, '#cut#', 1) as spec_list,
 CASE ProductKind WHEN 1 THEN 0 ELSE 1 END goods_type, ListPicPath as pic_url, Sort as sort, Status as status, SUBSTRING_INDEX(NormJson, '#cut#', 1) as spec_list,

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

@@ -52,6 +52,12 @@ public class KxsPartner extends Model<KxsPartner> implements Serializable {
     @Schema(description = "更新时间")
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
     private LocalDateTime updateTime;
 
 
+    /**
+     * 合伙人过期时间
+     */
+    @Schema(description = "合伙人过期时间")
+    private LocalDateTime expiredDate;
+
 
 
     /**
     /**
      * 删除标记,0未删除,1已删除
      * 删除标记,0未删除,1已删除

+ 1 - 0
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsPartnerMapper.xml

@@ -14,6 +14,7 @@
         <result column="withdrawal_amount" property="withdrawalAmount" />
         <result column="withdrawal_amount" property="withdrawalAmount" />
         <result column="user_id" property="userId" />
         <result column="user_id" property="userId" />
         <result column="partner_level" property="partnerLevel" />
         <result column="partner_level" property="partnerLevel" />
+        <result column="expired_date" property="expiredDate" />
 
 
     </resultMap>
     </resultMap>