Explorar el Código

feature(服务消息推送增加类型): 服务消息推送增加类型

服务消息推送增加类型
mazq hace 4 años
padre
commit
207f6bc58a

+ 27 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/business/IResourceBusiness.java

@@ -64,4 +64,31 @@ public interface IResourceBusiness {
      * @return
      */
     boolean cancelApp(String appCode);
+
+    /**
+     * 服务启用
+     * 只用于应用消息同步变更
+     *
+     * @param serviceCode
+     * @return
+     */
+    boolean startService(String serviceCode);
+
+    /**
+     * 服务停用
+     * 只用于应用消息同步变更
+     *
+     * @param serviceCode
+     * @return
+     */
+    boolean stopService(String serviceCode);
+
+    /**
+     * 服务注销
+     * 只用于应用消息同步变更
+     *
+     * @param serviceCode
+     * @return
+     */
+    boolean cancelService(String serviceCode);
 }

+ 45 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/business/impl/ResourceBusiness.java

@@ -10,10 +10,12 @@ import com.dragoninfo.dcuc.app.cons.ServiceStatusCons;
 import com.dragoninfo.dcuc.app.dto.*;
 import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.app.entity.ResourceSync;
+import com.dragoninfo.dcuc.app.entity.ServiceResource;
 import com.dragoninfo.dcuc.app.enumresources.ResourceTypeEnum;
 import com.dragoninfo.dcuc.app.service.IApplyInfoService;
 import com.dragoninfo.dcuc.app.service.IResourceService;
 import com.dragoninfo.dcuc.app.service.IResourceSyncService;
+import com.dragoninfo.dcuc.app.service.IServiceResourceService;
 import com.dragoninfo.dcuc.auth.auth.enumresources.YesNotEnum;
 import com.dragoninfo.dcuc.common.http.HttpUtil;
 import com.dragoninfo.duceap.core.response.Result;
@@ -64,6 +66,9 @@ public class ResourceBusiness implements IResourceBusiness {
     @Autowired
     IApplyInfoService applyInfoService;
 
+    @Autowired
+    IServiceResourceService serviceResourceService;
+
     /**
      * 使用线程池异步获取应用菜单
      */
@@ -172,6 +177,46 @@ public class ResourceBusiness implements IResourceBusiness {
         return true;
     }
 
+    @Override
+    public boolean startService(String serviceCode) {
+        ServiceResource serviceResource = serviceResourceService.detailByCode(serviceCode);
+        if (null == serviceResource) {
+            return false;
+        }
+        ServiceResourceDTO dto = new ServiceResourceDTO();
+        BeanUtils.copyProperties(serviceResource, dto);
+        dto.setServiceStatus(BooleanEnum.TRUE.getValue());
+        serviceResourceService.updateById(dto);
+        return true;
+    }
+
+    @Override
+    public boolean stopService(String serviceCode) {
+        ServiceResource serviceResource = serviceResourceService.detailByCode(serviceCode);
+        if (null == serviceResource) {
+            return false;
+        }
+        ServiceResourceDTO dto = new ServiceResourceDTO();
+        BeanUtils.copyProperties(serviceResource, dto);
+        dto.setServiceStatus(BooleanEnum.FALSE.getValue());
+        serviceResourceService.updateById(dto);
+        return false;
+    }
+
+    @Override
+    public boolean cancelService(String serviceCode) {
+        ServiceResource serviceResource = serviceResourceService.detailByCode(serviceCode);
+        if (null == serviceResource) {
+            return false;
+        }
+        ServiceResourceDTO dto = new ServiceResourceDTO();
+        BeanUtils.copyProperties(serviceResource, dto);
+        dto.setServiceStatus(ServiceStatusCons.STATUS_DELETED);
+        dto.setDeleted(BooleanEnum.TRUE.getValue());
+        serviceResourceService.updateById(dto);
+        return true;
+    }
+
     private String getServiceRemoteDetailByCode(String serviceCode) {
         String busSraId = resourceConfig.getBusSraId();
         String busSreIdcard = resourceConfig.getBusSreIdcard();

+ 0 - 15
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/cons/AppIncrSyncMsgType.java

@@ -1,15 +0,0 @@
-package com.dragoninfo.dcuc.app.cons;
-
-/**
- * @author mazq
- * @date 2021/3/23
- */
-public interface AppIncrSyncMsgType {
-
-    String APP_REGISTER = "A-00";
-    String APP_UPDATE = "A-10";
-    String APP_CANCEL = "A-20";
-    String APP_STATR = "A-30";
-    String APP_STOP = "A-40";
-
-}

+ 53 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/cons/ResourceIncrSyncMsgType.java

@@ -0,0 +1,53 @@
+package com.dragoninfo.dcuc.app.cons;
+
+/**
+ * 应用服务资源消息通知类型
+ *
+ * @author mazq
+ * @date 2021/3/23
+ */
+public interface ResourceIncrSyncMsgType {
+    /**
+     * 应用注册
+     */
+    String APP_REGISTER = "A-00";
+    /**
+     * 应用更新
+     */
+    String APP_UPDATE = "A-10";
+    /**
+     * 应用注销
+     */
+    String APP_CANCEL = "A-20";
+    /**
+     * 应用开启
+     */
+    String APP_STATR = "A-30";
+    /**
+     * 应用停用
+     */
+    String APP_STOP = "A-40";
+
+    /**
+     * 服务注册
+     */
+    String SERVICE_REGISTER = "S-00";
+    /**
+     * 服务更新
+     */
+    String SERVICE_UPDATE = "S-10";
+    /**
+     * 服务停用
+     */
+    String SERVICE_STOP = "S-20";
+    /**
+     * 服务启用
+     */
+    String SERVICE_STATR = "S-30";
+    /**
+     * 服务注销
+     */
+    String SERVICE_CANCEL = "S-40";
+
+
+}

+ 6 - 6
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/message/AppResourceSyncListener.java

@@ -3,7 +3,7 @@ package com.dragoninfo.dcuc.app.message;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.dragoninfo.dcuc.app.business.IResourceBusiness;
-import com.dragoninfo.dcuc.app.cons.AppIncrSyncMsgType;
+import com.dragoninfo.dcuc.app.cons.ResourceIncrSyncMsgType;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.dragonsoft.mq.client.model.entity.MessageInfoDTO;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
@@ -50,14 +50,14 @@ public class AppResourceSyncListener {
                 logger.info("appCode is blank");
                 return;
             }
-            if (AppIncrSyncMsgType.APP_UPDATE.equals(operateType) ||
-                    AppIncrSyncMsgType.APP_REGISTER.equals(operateType)) {
+            if (ResourceIncrSyncMsgType.APP_UPDATE.equals(operateType) ||
+                    ResourceIncrSyncMsgType.APP_REGISTER.equals(operateType)) {
                 resourceBusiness.appIncrSync(appCode);
-            } else if (AppIncrSyncMsgType.APP_STATR.equals(operateType)) {
+            } else if (ResourceIncrSyncMsgType.APP_STATR.equals(operateType)) {
                 resourceBusiness.startApp(appCode);
-            } else if (AppIncrSyncMsgType.APP_STOP.equals(operateType)) {
+            } else if (ResourceIncrSyncMsgType.APP_STOP.equals(operateType)) {
                 resourceBusiness.stopApp(appCode);
-            } else if (AppIncrSyncMsgType.APP_CANCEL.equals(operateType)) {
+            } else if (ResourceIncrSyncMsgType.APP_CANCEL.equals(operateType)) {
                 resourceBusiness.cancelApp(appCode);
             }
         } catch (Exception e) {

+ 12 - 1
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/message/ServiceResourceSyncListener.java

@@ -3,6 +3,7 @@ package com.dragoninfo.dcuc.app.message;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.dragoninfo.dcuc.app.business.IResourceBusiness;
+import com.dragoninfo.dcuc.app.cons.ResourceIncrSyncMsgType;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.dragonsoft.mq.client.model.entity.MessageInfoDTO;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
@@ -44,11 +45,21 @@ public class ServiceResourceSyncListener {
             }
             JSONObject jsonObject = JSONObject.parseObject(content);
             String serviceCode = jsonObject.getString("fwzybsf");
+            String operateType = jsonObject.getString("sqlx");
             if (StringUtils.isBlank(serviceCode)) {
                 logger.info("serviceCode is blank");
                 return;
             }
-            resourceBusiness.serviceIncrSync(serviceCode);
+            if (ResourceIncrSyncMsgType.SERVICE_REGISTER.equals(operateType)
+                    || ResourceIncrSyncMsgType.SERVICE_UPDATE.equals(operateType)) {
+                resourceBusiness.serviceIncrSync(serviceCode);
+            } else if (ResourceIncrSyncMsgType.SERVICE_STATR.equals(operateType)) {
+                resourceBusiness.startService(serviceCode);
+            } else if (ResourceIncrSyncMsgType.SERVICE_STOP.equals(operateType)) {
+                resourceBusiness.stopService(serviceCode);
+            } else if (ResourceIncrSyncMsgType.SERVICE_CANCEL.equals(operateType)) {
+                resourceBusiness.cancelService(serviceCode);
+            }
         } catch (Exception e) {
             logger.error("receiveMessage error.", e);
         }

+ 9 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/IServiceResourceService.java

@@ -1,5 +1,6 @@
 package com.dragoninfo.dcuc.app.service;
 
+import com.dragoninfo.dcuc.app.dto.ServiceResourceDTO;
 import com.dragoninfo.dcuc.app.entity.ServiceResource;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.service.IBaseService;
@@ -31,4 +32,12 @@ public interface IServiceResourceService extends IBaseService<ServiceResource, S
      * @return
      */
     List<ServiceResource> getServiceByServiceCodes(List<String> list);
+
+    /**
+     * 更新
+     *
+     * @param dto
+     * @return
+     */
+    boolean updateById(ServiceResourceDTO dto);
 }

+ 1 - 1
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/impl/ApplyInfoServiceImpl.java

@@ -158,7 +158,7 @@ public class ApplyInfoServiceImpl extends BaseMybatisService<ApplyInfo, String>
         sendMessage(applyInfo, "应用表信息修改", AppMsgTypeEnum.UPDATE);
         //权限变更通知
         boolean isNotification = StringUtils.isNotEmpty(oldApplyInfo.getApplyUrl())&&( !oldApplyInfo.getApplyUrl().equals(applyInfo.getApplyUrl())
-                || !oldApplyInfo.getApplyStatus().equals(applyInfo.getApplyUrl()));
+                || !oldApplyInfo.getApplyStatus().equals(applyInfo.getApplyStatus()));
         // 应用 url 当发送变更时进行通知
         if (isNotification) {
             permissionNotificationFacade.sendAppAppUpdate(id);

+ 12 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/impl/ServiceResourceServiceImpl.java

@@ -2,16 +2,19 @@ package com.dragoninfo.dcuc.app.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.dragoninfo.dcuc.app.dto.ServiceResourceDTO;
 import com.dragoninfo.dcuc.app.entity.ServiceResource;
 import com.dragoninfo.dcuc.app.mapper.ServiceResourceMapper;
 import com.dragoninfo.dcuc.app.service.IServiceResourceService;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.mybaitsplus.core.services.BaseMybatisService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -51,4 +54,13 @@ public class ServiceResourceServiceImpl extends BaseMybatisService<ServiceResour
                 .eq(ServiceResource::getDeleted, BooleanEnum.FALSE.getValue());
         return serviceResourceMapper.selectList(query);
     }
+
+    @Override
+    public boolean updateById(ServiceResourceDTO dto) {
+        ServiceResource serviceResource = new ServiceResource();
+        BeanUtils.copyProperties(dto, serviceResource);
+        serviceResource.setUpdateTime(new Date());
+        serviceResourceMapper.updateById(serviceResource);
+        return true;
+    }
 }