Răsfoiți Sursa

修改读客人卡,补助设置删除人员双向同步功能

baiyun 1 an în urmă
părinte
comite
cd5bec9e1c

+ 12 - 4
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/impl/KfProvideCardHisServiceImpl.java

@@ -79,11 +79,19 @@ public class KfProvideCardHisServiceImpl implements IKfProvideCardHisService {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<KfProvideCardHis> lqw = Wrappers.lambdaQuery();
         lqw.eq(bo.getCardId() != null, KfProvideCardHis::getCardId, bo.getCardId());
-        String roomFixId = HexUtil.toHex(Long.parseLong(bo.getFactoryId()));
-        if (roomFixId.length() < 16) {
-            roomFixId = StringUtils.rightPad(roomFixId, 16, "F");
+        if(StringUtils.isNotBlank(bo.getFactoryId())){
+            String roomFixId;
+            if(StringUtils.isNumeric(bo.getFactoryId())){
+                roomFixId = HexUtil.toHex(Long.parseLong(bo.getFactoryId()));
+                if (roomFixId.length() < 16) {
+                    roomFixId = StringUtils.rightPad(roomFixId, 16, "F");
+                }
+            }else {
+                roomFixId = bo.getFactoryId();
+            }
+
+            lqw.eq(StringUtils.isNotBlank(bo.getFactoryId()), KfProvideCardHis::getFactoryId, roomFixId);
         }
-        lqw.eq(StringUtils.isNotBlank(bo.getFactoryId()), KfProvideCardHis::getFactoryId, roomFixId);
         lqw.eq(StringUtils.isNotBlank(bo.getCardType()), KfProvideCardHis::getCardType, bo.getCardType());
         lqw.eq(StringUtils.isNotBlank(bo.getRoomCode()), KfProvideCardHis::getRoomCode, bo.getRoomCode());
         lqw.eq(bo.getMasterId() != null, KfProvideCardHis::getMasterId, bo.getMasterId());

+ 2 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaCloudConsumer.java

@@ -119,11 +119,11 @@ public class KafkaCloudConsumer {
         //判断 offset
         Boolean canConsume = xfOffsetService.judgeCanConsume(topic, groupId, offset,partition);
         if(!canConsume){
-            log.info("[kafka消息处理]-[消息:{}-[已消费,不能重复消费,offset: {},topic:{},groupId:{},partition:{}]", record.value(), offset,topic,groupId,partition);
+            log.info("[kafka消息处理]-[消息:{}-[已消费,不能重复消费,offset: {},topic:{},groupId:{},partition:{}]", value, offset,topic,groupId,partition);
             return;
         }
 
-        KafkaMessage<?> receiveMsg = JSONUtil.toBean(record.value(), KafkaMessage.class);
+        KafkaMessage<?> receiveMsg = JSONUtil.toBean(value, KafkaMessage.class);
         doMessageHandle(receiveMsg, topic);
 
         // 记录offset

+ 10 - 5
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaLocalConsumer.java

@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
 import org.dromara.backstage.api.domain.bo.RemoteSendMessageRecordBo;
 import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.message.kafka.domain.KafkaHeader;
 import org.dromara.common.message.kafka.domain.KafkaMessage;
 import org.dromara.server.base.service.yktOperation.SyncRemoteSendMessageRecordService;
@@ -56,16 +57,20 @@ public class KafkaLocalConsumer {
         //判断 offset
         Boolean canConsume = xfOffsetService.judgeCanConsume(topic, groupId, offset, partition);
         if(!canConsume){
-            log.info("[kafka消息处理]-[消息:{}-[已消费,不能重复消费,offset: {},topic:{},groupId:{},partition:{}]", record.value(), offset,topic,groupId,partition);
+            log.info("[kafka消息处理]-[消息:{}-[已消费,不能重复消费,offset: {},topic:{},groupId:{},partition:{}]", value, offset,topic,groupId,partition);
             return;
         }
 
-        KafkaMessage<?> receiveMsg = JSONUtil.toBean(record.value(), KafkaMessage.class);
+        KafkaMessage<?> receiveMsg = JSONUtil.toBean(value, KafkaMessage.class);
         try{
             KafkaHeader header = receiveMsg.getHeader();
-            JSONObject bodyObj = JSONUtil.parseObj(receiveMsg.getBody());
-            String tenantId = ObjectUtil.isNotEmpty(header.getTenantId()) ? header.getTenantId():
-                bodyObj.getOrDefault("tenantId", "0").toString();
+            String tenantId;
+            if (StringUtils.isNotEmpty(header.getTenantId())) {
+                tenantId = header.getTenantId();
+            } else {
+                JSONObject bodyObj = JSONUtil.parseObj(receiveMsg.getBody());
+                tenantId = bodyObj.getStr("tenantId");
+            }
             if(tenantId.equals(this.tenantId)){
                 String eventType = receiveMsg.getHeader().getEventType();
                 String sender = receiveMsg.getHeader().getSender();