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

费率调升调降记录同步

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

+ 13 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/CommonConstants.java

@@ -122,6 +122,19 @@ public interface CommonConstants {
 	 */
 	 */
 	Integer BIND_DAY_NUM = 90;
 	Integer BIND_DAY_NUM = 90;
 
 
+	/**
+	 * 费率值
+	 */
+	BigDecimal FEE_63 = new BigDecimal("0.63");
+	/**
+	 * 费用 63+3
+	 */
+	BigDecimal FEE_63_3 = new BigDecimal("0.63");
+	/**
+	 * 费率值
+	 */
+	BigDecimal FEE_60 = new BigDecimal("0.60");
+
 	String MCH_TABLE_PREFIX = "kxs_merchant_trade_";
 	String MCH_TABLE_PREFIX = "kxs_merchant_trade_";
 
 
 	String USER_TABLE_PREFIX = "kxs_user_trade_";
 	String USER_TABLE_PREFIX = "kxs_user_trade_";

+ 1 - 1
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/model/KxsMachineRatio.java

@@ -61,7 +61,7 @@ public class KxsMachineRatio extends Model<KxsMachineRatio> implements Serializa
 
 
 
 
     /**
     /**
-     * 版本
+     * 调升版本 1调升 0调降
      */
      */
     @Schema(description = "版本")
     @Schema(description = "版本")
     private Integer version;
     private Integer version;

+ 11 - 1
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/merchant/MerchantDetailVO.java

@@ -102,7 +102,7 @@ public class MerchantDetailVO implements Serializable {
     /**
     /**
      * 是否激活 1已激活
      * 是否激活 1已激活
      */
      */
-    private String isAct;
+    private Integer isAct;
 
 
 
 
     /**
     /**
@@ -128,6 +128,16 @@ public class MerchantDetailVO implements Serializable {
      */
      */
     private String mchStatus;
     private String mchStatus;
 
 
+    /**
+     * 调升时间
+     */
+    private LocalDateTime upFeeDate;
+
+    /**
+     * 调降时间
+     */
+    private LocalDateTime downFeeDate;
+
 
 
 
 
 
 

+ 19 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMerchantServiceImpl.java

@@ -58,6 +58,9 @@ public class KxsMerchantServiceImpl extends ServiceImpl<KxsMerchantMapper, KxsMe
     private final KxsMerchantMapper kxsMerchantMapper;
     private final KxsMerchantMapper kxsMerchantMapper;
     private final KxsMachineRatioMapper kxsMachineRatioMapper;
     private final KxsMachineRatioMapper kxsMachineRatioMapper;
     private final RemoteOldService remoteOldService;
     private final RemoteOldService remoteOldService;
+
+
+
     @Override
     @Override
     public Object merchantList(Page<KxsMerchant> page, MerchantListDTO param) {
     public Object merchantList(Page<KxsMerchant> page, MerchantListDTO param) {
         Long userId = SecurityUtils.getUser().getId();
         Long userId = SecurityUtils.getUser().getId();
@@ -83,8 +86,24 @@ public class KxsMerchantServiceImpl extends ServiceImpl<KxsMerchantMapper, KxsMe
         merchantDetailVO.setPosSn(kxsMachine.getPosSn());
         merchantDetailVO.setPosSn(kxsMachine.getPosSn());
         merchantDetailVO.setBrand(kxsMachine.getBrandId().toString());
         merchantDetailVO.setBrand(kxsMachine.getBrandId().toString());
         merchantDetailVO.setActTime(kxsMachine.getActTime().toString());
         merchantDetailVO.setActTime(kxsMachine.getActTime().toString());
+        merchantDetailVO.setIsAct(kxsMachine.getIsAct());
         KxsBrand brand = kxsBrandMapper.selectById(kxsMachine.getBrandId());
         KxsBrand brand = kxsBrandMapper.selectById(kxsMachine.getBrandId());
         merchantDetailVO.setBrandName(brand.getName());
         merchantDetailVO.setBrandName(brand.getName());
+        //查询调费调升记录
+        KxsMachineRatio upFee = kxsMachineRatioMapper.selectOne(Wrappers.<KxsMachineRatio>lambdaQuery()
+                .eq(KxsMachineRatio::getMachineId, kxsMachine.getId())
+                .eq(KxsMachineRatio::getMerchantId, merchantId)
+                .eq(KxsMachineRatio::getVersion, 1)
+                .orderByDesc(KxsMachineRatio::getCreateTime).last("limit 1"));
+        //查询调费调降记录
+        KxsMachineRatio downFee = kxsMachineRatioMapper.selectOne(Wrappers.<KxsMachineRatio>lambdaQuery()
+                .eq(KxsMachineRatio::getMachineId, kxsMachine.getId())
+                .eq(KxsMachineRatio::getMerchantId, merchantId)
+                .eq(KxsMachineRatio::getVersion, 0)
+                .orderByDesc(KxsMachineRatio::getCreateTime).last("limit 1"));
+
+        merchantDetailVO.setUpFeeDate(upFee != null ? upFee.getCreateTime() : null);
+        merchantDetailVO.setDownFeeDate(downFee != null ? downFee.getCreateTime() : null);
 
 
         if (kxsMachine.getBrandId() == 12 || kxsMachine.getBrandId() == 13 || kxsMachine.getBrandId() == 15)
         if (kxsMachine.getBrandId() == 12 || kxsMachine.getBrandId() == 13 || kxsMachine.getBrandId() == 15)
         {
         {

+ 84 - 57
kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsMachineRatioServiceImpl.java

@@ -3,11 +3,13 @@ package com.kxs.transfer.api.service.product.impl;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import com.aliyun.dts.subscribe.clients.record.OperationType;
 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.product.api.model.KxsMachinePledge;
 import com.kxs.product.api.model.KxsMachinePledge;
 import com.kxs.product.api.model.KxsMachineRatio;
 import com.kxs.product.api.model.KxsMachineRatio;
 import com.kxs.transfer.api.mapper.product.KxsMachineRatioMapper;
 import com.kxs.transfer.api.mapper.product.KxsMachineRatioMapper;
 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.service.product.KxsMachineRatioService;
 import com.kxs.transfer.api.service.product.KxsMachineRatioService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -28,75 +30,100 @@ public class KxsMachineRatioServiceImpl extends ServiceImpl<KxsMachineRatioMappe
     public void changeData(DMLData dmlData) {
     public void changeData(DMLData dmlData) {
         //修改的字段值
         //修改的字段值
         Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
         Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
         //修改的字段
         //修改的字段
         List<String> changeFieldList = dmlData.getChangeFieldList();
         List<String> changeFieldList = dmlData.getChangeFieldList();
-        //操作的主键
-        int id = Integer.parseInt(dmlData.getId());
 
 
         KxsMachineRatio machineRatio = new KxsMachineRatio();
         KxsMachineRatio machineRatio = new KxsMachineRatio();
-        machineRatio.setId(id);
 
 
-        OperationType operation = dmlData.getOperation();
-        if(operation.equals(OperationType.DELETE)){
-            baseMapper.deleteById(id);
-            return;
+        if (fieldDataMap.get("UserId").getValue() != null) {
+            machineRatio.setUserId(Integer.valueOf(fieldDataMap.get("UserId").getValue().toString()));
         }
         }
-
-        for (String field : changeFieldList) {
-
-            switch (field) {
-                case "UserId":
-                    int userId = Integer.parseInt(validFieldDataMap.get(field).toString());
-                    machineRatio.setUserId(userId);
-                    break;
-                case "PosUserId":
-                    int posUserId = Integer.parseInt(validFieldDataMap.get(field).toString());
-                    machineRatio.setPosUserId(posUserId);
-                    break;
-                case "Status":
-                    int status = Integer.parseInt(validFieldDataMap.get(field).toString());
-                    machineRatio.setStatus(status == -1 ? 0 : 1);
-                    break;
-                case "ChangeFee":
-                    machineRatio.setRatio(new BigDecimal(validFieldDataMap.get(field).toString()));
-                    break;
-                case "SeoDescription":
-                    machineRatio.setRemark(validFieldDataMap.get(field).toString());
-                    break;
-                case "Sort":
-                    machineRatio.setBrandId(Integer.valueOf(validFieldDataMap.get(field).toString()));
-                    break;
-                case "PosId":
-                    machineRatio.setMachineId(Integer.valueOf(validFieldDataMap.get(field).toString()));
-                    break;
-                case "MerchantId":
-                    machineRatio.setMerchantId(Integer.valueOf(validFieldDataMap.get(field).toString()));
-                    break;
-                case "PosSn":
-                    machineRatio.setPosSn(validFieldDataMap.get(field).toString());
-                    break;
-                case "CreateDate":
-                    machineRatio.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
-                    break;
-                case "UpdateDate":
-                    machineRatio.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
-                    break;
-            }
+        if (fieldDataMap.get("PosUserId").getValue() != null) {
+            machineRatio.setPosUserId(Integer.valueOf(fieldDataMap.get("PosUserId").getValue().toString()));
         }
         }
-        KxsMachineRatio kxsMachineRatio = baseMapper.selectById(machineRatio.getId());
-
-        if(operation.equals(OperationType.INSERT)){
-            if(kxsMachineRatio == null){
-                baseMapper.insert(machineRatio);
-            }
+        if (fieldDataMap.get("Status").getValue() != null) {
+            int status = Integer.parseInt(fieldDataMap.get("Status").getValue().toString());
+            machineRatio.setStatus(status == -1 ? 0 : 1);
+        }
+        if (fieldDataMap.get("ChangeFee").getValue() != null) {
+            machineRatio.setRatio(new BigDecimal(fieldDataMap.get("ChangeFee").getValue().toString()));
+        }
+        if (fieldDataMap.get("SeoDescription").getValue() != null) {
+            machineRatio.setRemark(fieldDataMap.get("SeoDescription").getValue().toString());
+        }
+        if (fieldDataMap.get("Sort").getValue() != null) {
+            machineRatio.setBrandId(Integer.valueOf(fieldDataMap.get("Sort").getValue().toString()));
+        }
+        if (fieldDataMap.get("PosId").getValue() != null) {
+            machineRatio.setMachineId(Integer.valueOf(fieldDataMap.get("PosId").getValue().toString()));
+        }
+        if (fieldDataMap.get("MerchantId").getValue() != null) {
+            machineRatio.setMerchantId(Integer.valueOf(fieldDataMap.get("MerchantId").getValue().toString()));
+        }
+        if (fieldDataMap.get("PosSn").getValue() != null) {
+            machineRatio.setPosSn(fieldDataMap.get("PosSn").getValue().toString());
+        }
+        if (fieldDataMap.get("CreateDate").getValue() != null) {
+            machineRatio.setCreateTime(LocalDateTimeUtil.parse(fieldDataMap.get("CreateDate").getValue().toString(), DatePattern.NORM_DATETIME_PATTERN));
+        }
+        if (fieldDataMap.get("UpdateDate").getValue() != null) {
+            machineRatio.setUpdateTime(LocalDateTimeUtil.parse(fieldDataMap.get("UpdateDate").getValue().toString(), DatePattern.NORM_DATETIME_PATTERN));
         }
         }
 
 
-        if(operation.equals(OperationType.UPDATE)){
+//        for (String field : changeFieldList) {
+//
+//            switch (field) {
+//                case "UserId":
+//                    int userId = Integer.parseInt(validFieldDataMap.get(field).toString());
+//                    machineRatio.setUserId(userId);
+//                    break;
+//                case "PosUserId":
+//                    int posUserId = Integer.parseInt(validFieldDataMap.get(field).toString());
+//                    machineRatio.setPosUserId(posUserId);
+//                    break;
+//                case "Status":
+//                    int status = Integer.parseInt(validFieldDataMap.get(field).toString());
+//                    machineRatio.setStatus(status == -1 ? 0 : 1);
+//                    break;
+//                case "ChangeFee":
+//                    machineRatio.setRatio(new BigDecimal(validFieldDataMap.get(field).toString()));
+//                    break;
+//                case "SeoDescription":
+//                    machineRatio.setRemark(validFieldDataMap.get(field).toString());
+//                    break;
+//                case "Sort":
+//                    machineRatio.setBrandId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+//                    break;
+//                case "PosId":
+//                    machineRatio.setMachineId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+//                    break;
+//                case "MerchantId":
+//                    machineRatio.setMerchantId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+//                    break;
+//                case "PosSn":
+//                    machineRatio.setPosSn(validFieldDataMap.get(field).toString());
+//                    break;
+//                case "CreateDate":
+//                    machineRatio.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+//                    break;
+//                case "UpdateDate":
+//                    machineRatio.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+//                    break;
+//            }
+//        }
 
 
+        KxsMachineRatio kxsMachineRatio = baseMapper.selectOne(Wrappers.<KxsMachineRatio>lambdaQuery()
+                .eq(KxsMachineRatio::getMachineId, machineRatio.getBrandId())
+                .eq(KxsMachineRatio::getMerchantId, machineRatio.getMerchantId()));
+
+        if(kxsMachineRatio == null){
+            baseMapper.insert(machineRatio);
+        }else{
+            machineRatio.setId(kxsMachineRatio.getId());
             baseMapper.updateById(machineRatio);
             baseMapper.updateById(machineRatio);
         }
         }
-
-
     }
     }
 }
 }
 
 

+ 25 - 2
kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsMachineServiceImpl.java

@@ -10,8 +10,12 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.product.api.model.KxsMachine;
 import com.kxs.product.api.model.KxsMachine;
+import com.kxs.product.api.model.KxsMachineRatio;
+import com.kxs.product.api.model.KxsMerchant;
 import com.kxs.store.api.model.KxsWarehouse;
 import com.kxs.store.api.model.KxsWarehouse;
 import com.kxs.transfer.api.mapper.product.KxsMachineMapper;
 import com.kxs.transfer.api.mapper.product.KxsMachineMapper;
+import com.kxs.transfer.api.mapper.product.KxsMachineRatioMapper;
+import com.kxs.transfer.api.mapper.product.KxsMerchantMapper;
 import com.kxs.transfer.api.mapper.store.KxsWarehouseMapper;
 import com.kxs.transfer.api.mapper.store.KxsWarehouseMapper;
 import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.transfer.api.service.product.KxsMachineService;
 import com.kxs.transfer.api.service.product.KxsMachineService;
@@ -37,6 +41,9 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
 
 
     private final KxsWarehouseMapper kxsWarehouseMapper;
     private final KxsWarehouseMapper kxsWarehouseMapper;
 
 
+    private final KxsMachineRatioMapper kxsMachineRatioMapper;
+    private final KxsMerchantMapper kxsMerchantMapper;
+
     @Override
     @Override
     public void changeData(DMLData dmlData) {
     public void changeData(DMLData dmlData) {
         //修改的字段值
         //修改的字段值
@@ -220,8 +227,24 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                     lambda.set(KxsMachine::getPartnerId, Integer.valueOf(validFieldDataMap.get(field).toString()));
                     lambda.set(KxsMachine::getPartnerId, Integer.valueOf(validFieldDataMap.get(field).toString()));
                     break;
                     break;
                 case "UpFeeFlag":
                 case "UpFeeFlag":
-                    machine.setUpFeeFlag(Integer.valueOf(validFieldDataMap.get(field).toString()));
-                    lambda.set(KxsMachine::getUpFeeFlag, Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    Integer up = Integer.valueOf(validFieldDataMap.get(field).toString());
+                    machine.setUpFeeFlag(up);
+                    lambda.set(KxsMachine::getUpFeeFlag, up);
+                    //监听到调升费率增加记录
+                    if(up == 1 && operation.equals(OperationType.UPDATE)){
+                        KxsMachine kxsMachine = baseMapper.selectById(id);
+                        KxsMachineRatio machineRatio = new KxsMachineRatio();
+                        machineRatio.setMachineId(id);
+                        machineRatio.setStatus(1);
+                        machineRatio.setPosUserId(kxsMachine.getUserId());
+                        machineRatio.setPosSn(kxsMachine.getPosSn());
+                        machineRatio.setBrandId(kxsMachine.getBrandId());
+                        machineRatio.setMerchantId(kxsMachine.getMerchantId());
+                        machineRatio.setRatio(kxsMachine.getMachineRatio());
+                        machineRatio.setUserId(kxsMachine.getUserId());
+                        machineRatio.setVersion(1);
+                        kxsMachineRatioMapper.insert(machineRatio);
+                    }
                     break;
                     break;
                 case "DownFeeFlag":
                 case "DownFeeFlag":
                     machine.setDownFeeFlag(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     machine.setDownFeeFlag(Integer.valueOf(validFieldDataMap.get(field).toString()));