Browse Source

Merge branch 'develop/v0.0.1' of http://git.kdan.cc:8865/Server_Service/java_compdf_background into develop/v0.0.1

wangPH 2 years ago
parent
commit
d3b4aff79d

+ 1 - 1
background-common/src/main/java/cn/kdan/compdf/enums/RabbitMQEnum.java

@@ -50,7 +50,7 @@ public interface RabbitMQEnum {
     /**
      * 后台webhooks更新队列
      */
-    String BACKGROUND_WEBHOOKS_UPD_QUEUE = "background-webhooks-del-queue";
+    String BACKGROUND_WEBHOOKS_UPD_QUEUE = "background-webhooks-upd-queue";
     /**
      * webhooks更新路由规则
      */

+ 1 - 0
background-user/src/main/java/cn/kdan/compdf/controller/v1/BackgroundUserProjectController.java

@@ -40,6 +40,7 @@ public class BackgroundUserProjectController {
     @PostMapping("/addNewProject")
     public R<Void> addNewProject(@RequestBody AddNewProjectDTO addNewProjectDTO) {
         addNewProjectDTO.setUserId(TokenUtil.getRequestHeader().getId());
+        addNewProjectDTO.setTenantId(TokenUtil.getRequestHeader().getTenantId());
         backgroundUserProjectService.addNewProject(addNewProjectDTO);
         return R.ok();
     }

+ 1 - 0
background-user/src/main/java/cn/kdan/compdf/controller/v1/BackgroundUserWebhookController.java

@@ -58,6 +58,7 @@ public class BackgroundUserWebhookController {
         if (StringUtils.isEmpty(addNewWebhookDTO.getUserId())) {
             addNewWebhookDTO.setUserId(TokenUtil.getRequestHeader().getId());
         }
+        addNewWebhookDTO.setTenantId(TokenUtil.getRequestHeader().getTenantId());
         backgroundUserWebhookService.addNewWebhook(addNewWebhookDTO);
         return R.ok();
     }

+ 4 - 0
background-user/src/main/java/cn/kdan/compdf/dto/AddNewProjectDTO.java

@@ -14,6 +14,10 @@ public class AddNewProjectDTO {
      * 用户主键id
      */
     private Long userId;
+    /**
+     * 租户id
+     */
+    private Long tenantId;
     /**
      * 项目名称
      */

+ 9 - 0
background-user/src/main/java/cn/kdan/compdf/dto/AddNewWebhookDTO.java

@@ -1,5 +1,6 @@
 package cn.kdan.compdf.dto;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
@@ -17,6 +18,10 @@ public class AddNewWebhookDTO implements Serializable {
      * 关联用户主键id
      */
     private Long userId;
+    /**
+     * 租户id
+     */
+    private Long tenantId;
     /**
      * 关联用户项目主键id
      */
@@ -32,4 +37,8 @@ public class AddNewWebhookDTO implements Serializable {
     @NotNull(message = "Please select at least one event")
     private List<Long> eventsId;
 
+    /**
+     * 回调token
+     */
+    private String secretToken;
 }

+ 7 - 5
background-user/src/main/java/cn/kdan/compdf/service/impl/BackgroundUserProjectServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.UUID;
+import cn.hutool.json.JSONUtil;
 import cn.kdan.compdf.dto.AddNewProjectDTO;
 import cn.kdan.compdf.dto.EditProjectDTO;
 import cn.kdan.compdf.entity.BackgroundUser;
@@ -81,14 +82,14 @@ public class BackgroundUserProjectServiceImpl extends ServiceImpl<BackgroundUser
     public void addNewProject(AddNewProjectDTO addNewProjectDTO) {
         BackgroundUserProject backgroundUserProject = new BackgroundUserProject();
         BeanUtil.copyProperties(addNewProjectDTO, backgroundUserProject);
-        BackgroundUser backgroundUser = backgroundUserService.getById(addNewProjectDTO.getUserId());
-        backgroundUserProject.setTenantId(backgroundUser.getTenantId());
+        backgroundUserProject.setTenantId(addNewProjectDTO.getTenantId());
         backgroundUserProject.setProjectKey(MD5Util.MD5Encode(UUID.randomUUID().toString()));
         backgroundUserProject.setSecretKey(MD5Util.MD5Encode(UUID.randomUUID().toString()));
         backgroundUserProject.setStatus(1);
         this.baseMapper.insert(backgroundUserProject);
         // 发送消息同步SaaS服务
-        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_API_ADD_QUEUE, backgroundUserProject);
+        String jsonStr = JSONUtil.toJsonStr(backgroundUserProject);
+        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_API_ADD_ROUTING_KEY, jsonStr);
     }
 
     /**
@@ -105,7 +106,8 @@ public class BackgroundUserProjectServiceImpl extends ServiceImpl<BackgroundUser
         backgroundUserProject.setStatus(1);
         this.baseMapper.insert(backgroundUserProject);
         // 发送消息同步SaaS服务
-        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_API_ADD_QUEUE, backgroundUserProject);
+        String jsonStr = JSONUtil.toJsonStr(backgroundUserProject);
+        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_API_ADD_ROUTING_KEY, jsonStr);
     }
 
     /**
@@ -131,7 +133,7 @@ public class BackgroundUserProjectServiceImpl extends ServiceImpl<BackgroundUser
         backgroundUserProject.setStatus(0);
         this.baseMapper.updateById(backgroundUserProject);
         // 发送消息同步SaaS服务
-        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_API_DEL_QUEUE, backgroundUserProject.getId());
+        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_API_DEL_ROUTING_KEY, backgroundUserProject.getId());
     }
 
 }

+ 6 - 2
background-user/src/main/java/cn/kdan/compdf/service/impl/BackgroundUserWebhookServiceImpl.java

@@ -3,6 +3,7 @@ package cn.kdan.compdf.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.UUID;
+import cn.hutool.json.JSONUtil;
 import cn.kdan.compdf.dto.AddNewWebhookDTO;
 import cn.kdan.compdf.dto.EditWebhookDTO;
 import cn.kdan.compdf.entity.BackgroundEvent;
@@ -145,7 +146,9 @@ public class BackgroundUserWebhookServiceImpl extends ServiceImpl<BackgroundUser
             backgroundWebhookEventService.save(backgroundWebhookEvent);
         });
         // 发送消息同步SaaS服务
-        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_WEBHOOKS_ADD_ROUTING_KEY, addNewWebhookDTO);
+        addNewWebhookDTO.setSecretToken(backgroundUserWebhook.getSecretToken());
+        String jsonStr = JSONUtil.toJsonStr(addNewWebhookDTO);
+        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_WEBHOOKS_ADD_ROUTING_KEY, jsonStr);
     }
 
     @Override
@@ -164,7 +167,8 @@ public class BackgroundUserWebhookServiceImpl extends ServiceImpl<BackgroundUser
             backgroundWebhookEventService.save(backgroundWebhookEvent);
         });
         // 发送消息同步SaaS服务
-        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_WEBHOOKS_UPD_ROUTING_KEY, editWebhookDTO);
+        String jsonStr = JSONUtil.toJsonStr(editWebhookDTO);
+        rabbitTemplate.convertAndSend(RabbitMQEnum.BACKGROUND_EXCHANGE, RabbitMQEnum.BACKGROUND_WEBHOOKS_UPD_ROUTING_KEY, jsonStr);
     }
 
     @Override

+ 11 - 0
background-user/src/main/resources/application.yml

@@ -17,6 +17,17 @@ spring:
     publisher-confirm-type: correlated
     # 消息抵达队列确认
     publisher-returns: true
+    listener:
+      simple:
+        # 消费者消息手动应答
+        acknowledge-mode: manual
+        retry:
+          # 最大重试次数 默认为3
+          max-attempts: 3
+          # 监听重试是否可用
+          enabled: true
+          # 传递消息的时间间隔 默认1s
+          initial-interval: 1000
 
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver