فهرست منبع

feature: 同步业务完善
1.人员修改时根据是否推送消息开关推送修改后的人员信息

luo.yibo@datuai.com 1 سال پیش
والد
کامیت
4334779b30

+ 30 - 5
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/service/impl/PtUserAccountServiceImpl.java

@@ -15,18 +15,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.backstage.api.RemotePtParameterService;
 import org.dromara.backstage.basics.service.IPtCardtypeService;
 import org.dromara.backstage.cardCenter.domain.bo.PtCardBo;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
 import org.dromara.backstage.domain.vo.yc.YcTraineeVo;
+import org.dromara.backstage.mq.KafkaNormalProducer;
 import org.dromara.backstage.payment.domain.PtUserAccount;
-import org.dromara.backstage.payment.domain.bo.PtUserAccountBo;
 import org.dromara.backstage.payment.domain.PtUserAccount4SelectVo;
+import org.dromara.backstage.payment.domain.bo.PtUserAccountBo;
 import org.dromara.backstage.payment.domain.vo.PtUserAccountVo;
 import org.dromara.backstage.payment.mapper.PtUserAccountMapper;
 import org.dromara.backstage.payment.service.IPtBagService;
 import org.dromara.backstage.payment.service.IPtUserAccountService;
 import org.dromara.common.core.constant.CacheNames;
+import org.dromara.common.core.constant.CloudMqEventConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.SpringUtils;
@@ -34,6 +37,8 @@ import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.core.utils.file.FileUtils;
 import org.dromara.common.core.utils.file.MimeTypeUtils;
 import org.dromara.common.encrypt.interceptor.MybatisEncryptInterceptor;
+import org.dromara.common.message.kafka.domain.KafkaHeader;
+import org.dromara.common.message.kafka.domain.KafkaMessage;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.redis.utils.RedisUtils;
@@ -66,9 +71,11 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
     private final IPtCardService ptCardService;
     private final IPtBagService bagService;
     private final IPtCardtypeService cardTypeService;
-
+    private final KafkaNormalProducer kafkaNormalProducer;
     @DubboReference
     private final RemoteDeptService remoteDeptService;
+    @DubboReference
+    private final RemotePtParameterService remotePtParameterService;
 
     /**
      * 查询一卡通账户
@@ -177,8 +184,6 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
         lqw.eq(StringUtils.isNotBlank(bo.getHidden()), PtUserAccount::getHidden, bo.getHidden());
         lqw.eq(StringUtils.isNotBlank(bo.getOtherId()), PtUserAccount::getOtherId, bo.getOtherId());
         lqw.eq(StringUtils.isNotBlank(bo.getUserState()), PtUserAccount::getUserState, bo.getUserState());
-        lqw.eq(StringUtils.isNotBlank(bo.getLoginIp()), PtUserAccount::getLoginIp, bo.getLoginIp());
-        lqw.eq(bo.getLoginDate() != null, PtUserAccount::getLoginDate, bo.getLoginDate());
         lqw.eq(StringUtils.isNotBlank(bo.getStatus()), PtUserAccount::getStatus, bo.getStatus());
         lqw.eq(StringUtils.isNotBlank(bo.getUserType()), PtUserAccount::getUserType, bo.getUserType());
         return lqw;
@@ -234,7 +239,9 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
     public Boolean updateByBo(PtUserAccountBo bo) {
         PtUserAccount update = MapstructUtils.convert(bo, PtUserAccount.class);
         validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
+        int count = baseMapper.updateById(update);
+        // sendCloudConsume(baseMapper.selectVoById(bo.getUserId()));
+        return count > 0;
     }
 
     /**
@@ -545,6 +552,24 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
         return baseMapper.selectTraineeByBo(bo, doingDate);
     }
 
+    private void sendCloudConsume(PtUserAccountVo vo) {
+        String pushData = remotePtParameterService.getPtParameterByKey("PUSH_MQ_DATA");
+        if (ObjectUtil.isNotEmpty(pushData) && ObjectUtil.equals(pushData, "1")) {
+            KafkaMessage<PtUserAccountVo> message = new KafkaMessage<>();
+            KafkaHeader header = message.getHeader();
+            header.setTimestamp(System.currentTimeMillis());
+            header.setEventId(CloudMqEventConstants.DEPT);
+            header.setEventType(CloudMqEventConstants.DEPT);
+            header.setSender(CloudMqEventConstants.SENDER);
+
+            message.setHeader(header);
+            message.setBody(vo);
+
+            kafkaNormalProducer.sendKafkaMessage(CloudMqEventConstants.TOPIC, vo.getCreateBy(), message);
+        }
+    }
+
+
     public static void downloadPicture(String urlList, String name, String userNumb) {
         URL url = null;
         int imageNumber = 0;