Explorar o código

优化机具同步

mac %!s(int64=2) %!d(string=hai) anos
pai
achega
d44f5cbbe2

+ 18 - 4
kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java

@@ -95,7 +95,21 @@ public class DtsController {
                     return;
                 }
             }
-
+            if ("PosMachinesTwo".equals(dmlData.getTableName())){
+                List<String> changeFieldList = dmlData.getChangeFieldList();
+                if (changeFieldList.size() == 1 && changeFieldList.contains("CreditTrade")) {
+                    record.commit(String.valueOf(record.getSourceTimestamp()));
+                    return;
+                }
+                if (changeFieldList.size() == 1 && changeFieldList.contains("DebitCardTrade")) {
+                    record.commit(String.valueOf(record.getSourceTimestamp()));
+                    return;
+                }
+                if (changeFieldList.size() == 1 && changeFieldList.contains("ScanQrTrade")) {
+                    record.commit(String.valueOf(record.getSourceTimestamp()));
+                    return;
+                }
+            }
             //去重数据
             KxsDtsLog dtsLog = kxsDtsLogService.getOne(Wrappers.<KxsDtsLog>lambdaQuery().eq(KxsDtsLog::getDataId, dataId));
             if (dtsLog != null) {
@@ -103,9 +117,9 @@ public class DtsController {
                 record.commit(String.valueOf(record.getSourceTimestamp()));
                 return;
             }
-            if (!"UserMoveInfo".equals(dmlData.getTableName())) {
-                log.info("开始消费:{}表的数据,dataID:{}, 表名:{}", dmlData.getTableName(), dataId, dmlData.getDatabaseName());
-            }
+//            if (!"UserMoveInfo".equals(dmlData.getTableName())) {
+//                log.info("开始消费:{}表的数据,dataID:{}, 表名:{}", dmlData.getTableName(), dataId, dmlData.getDatabaseName());
+//            }
 
             //用户表
             if ("Users".equals(dmlData.getTableName())) {

+ 26 - 23
kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsMachineServiceImpl.java

@@ -105,29 +105,7 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                         lambda.set(KxsMachine::getRecycleEndTime, null);
                     }
                     break;
-                case "IsPurchase":
-                    int isPurchase = Integer.parseInt(validFieldDataMap.get(field).toString());
-                    LocalDateTime recycleEndTime = machine.getRecycleEndTime();
-                    //如果没有过期时间查询机具
-                    if(recycleEndTime == null ){
-                        KxsMachine kxsMachine = baseMapper.selectById(machine.getId());
-                        if(kxsMachine != null){
-                            recycleEndTime = kxsMachine.getRecycleEndTime();
-                        }
-                    }
-                    if(recycleEndTime == null ){
-                        machine.setRecycleStatus(0);
-                        lambda.set(KxsMachine::getRecycleStatus, 0);
-                        break;
-                    }
-                    if(isPurchase == 0 && recycleEndTime.isAfter(LocalDateTime.now())){
-                        machine.setRecycleStatus(1);
-                        lambda.set(KxsMachine::getRecycleStatus, 1);
-                    }else{
-                        machine.setRecycleStatus(0);
-                        lambda.set(KxsMachine::getRecycleStatus, 0);
-                    }
-                    break;
+
                 case "PosSnType":
                     machine.setMachineType(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     lambda.set(KxsMachine::getMachineType, Integer.valueOf(validFieldDataMap.get(field).toString()));
@@ -174,6 +152,31 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                     machine.setIsAct(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     lambda.set(KxsMachine::getIsAct, Integer.valueOf(validFieldDataMap.get(field).toString()));
                     break;
+                case "IsPurchase":
+                    int isPurchase = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    //过期时间
+                    LocalDateTime recycleEndTime = machine.getRecycleEndTime();
+                    //激活条件
+                    Integer isAct = machine.getIsAct();
+                    //如果没有过期时间查询机具
+                    if(recycleEndTime == null || isAct == null){
+                        KxsMachine kxsMachine = baseMapper.selectById(machine.getId());
+                        if(kxsMachine != null && kxsMachine.getRecycleEndTime() != null){
+                            recycleEndTime = kxsMachine.getRecycleEndTime();
+                        }
+                        if(kxsMachine != null && kxsMachine.getIsAct() > 0){
+                            isAct = kxsMachine.getIsAct();
+                        }
+                    }
+
+                    if(isPurchase == 0 && recycleEndTime != null && isAct != null && recycleEndTime.isAfter(LocalDateTime.now()) && isAct == 1){
+                        machine.setRecycleStatus(1);
+                        lambda.set(KxsMachine::getRecycleStatus, 1);
+                    }else{
+                        machine.setRecycleStatus(0);
+                        lambda.set(KxsMachine::getRecycleStatus, 0);
+                    }
+                    break;
                 case "BindingState":
                     machine.setBindStatus(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     lambda.set(KxsMachine::getBindStatus, Integer.valueOf(validFieldDataMap.get(field).toString()));