Przeglądaj źródła

feature: 同步业务完善
1.部门同步时如果是培训班则同步到团客信息

luo.yibo@datuai.com 1 rok temu
rodzic
commit
22ee3c4a9a

+ 31 - 3
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushDeptEventStrategyImpl.java

@@ -6,7 +6,13 @@ import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.common.core.config.DefaultConfig;
 import org.dromara.common.core.constant.CloudMqEventConstants;
+import org.dromara.common.core.constant.DefaultConstants;
+import org.dromara.common.core.domain.R;
+import org.dromara.hotel.api.domain.bo.RemoteTeamBo;
+import org.dromara.hotel.api.domain.vo.RemoteTeamVo;
+import org.dromara.hotel.api.service.RemoteTeamService;
 import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.dromara.system.api.RemoteDeptService;
 import org.dromara.system.api.domain.bo.RemoteDeptBo;
@@ -27,17 +33,39 @@ import org.springframework.stereotype.Service;
 public class PushDeptEventStrategyImpl implements IEventStrategy {
     @DubboReference
     private final RemoteDeptService remoteDeptService;
+    @DubboReference
+    private final RemoteTeamService remoteTeamService;
+    private final DefaultConfig defaultConfig;
 
     @Override
     public void doMsgHandle(JSONObject data) {
         RemoteDeptBo remoteDeptBo = JSONUtil.toBean(data, RemoteDeptBo.class);
-        log.info("[处理云端部门同步请求]-[部门信息:{}]", JSONUtil.toJsonStr(remoteDeptBo));
+        log.info("[云端处理部门同步请求]-[部门信息:{}]", JSONUtil.toJsonStr(remoteDeptBo));
         RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(remoteDeptBo.getDeptId());
-        if(ObjectUtil.isEmpty(remoteDeptVo)){
+        if (ObjectUtil.isEmpty(remoteDeptVo)) {
             remoteDeptService.insertDept(remoteDeptBo);
         } else {
             remoteDeptService.updateDept(remoteDeptBo);
         }
-
+        if (remoteDeptBo.getDeptType().equals(DefaultConstants.CLASS_DEPT_TYPE)) {
+            // 如果部门类型为培训班,则同步到客房的团客
+            RemoteTeamBo remoteTeamBo = new RemoteTeamBo();
+            remoteTeamBo.setId(remoteDeptBo.getDeptId());
+            remoteTeamBo.setName(remoteDeptBo.getDeptName());
+            remoteTeamBo.setStartTime(remoteDeptBo.getBeginDate());
+            remoteTeamBo.setEndTime(remoteDeptBo.getEndDate());
+            remoteTeamBo.setPlanQuantity(100L);
+            remoteTeamBo.setRemark(remoteDeptBo.getDeptName());
+            remoteTeamBo.setOtherId(remoteDeptBo.getOtherId());
+            remoteTeamBo.setTenantId(remoteDeptBo.getTenantId());
+            remoteTeamBo.setOperatorId(ObjectUtil.isEmpty(remoteDeptBo.getCreateBy()) ? remoteDeptBo.getUpdateBy() : remoteDeptBo.getCreateBy());
+            log.info("[云端处理部门至团客]-[团客信息:{}]", JSONUtil.toJsonStr(remoteTeamBo));
+            R<RemoteTeamVo> remoteTeamVo = remoteTeamService.selectTeamByBo(remoteTeamBo);
+            if(R.isSuccess(remoteTeamVo)){
+                remoteTeamService.updateTeamByBo(remoteTeamBo);
+            } else {
+                remoteTeamService.insertTeamByBo(remoteTeamBo);
+            }
+        }
     }
 }