From 4b8631b37dd08a656fb7da0d16b01ce3e9229d7f Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 16:09:11 +0800 Subject: [PATCH] =?UTF-8?q?mq=E6=B6=88=E6=81=AF=E6=8E=A5=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/enums/RocketMqGroupEnum.java | 2 +- .../com/cool/store/enums/RocketMqTagEnum.java | 1 + .../store/dto/dept/DepartmentEventDTO.java | 24 +++++++++++++++++++ .../listener/FeiShuEventListener.java | 13 +++++++--- .../store/service/EnterpriseSyncService.java | 7 ++++++ .../impl/EnterpriseSyncServiceImpl.java | 17 +++++++++++++ 6 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/dept/DepartmentEventDTO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java index bc476bfe3..ca1849ed2 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java @@ -30,7 +30,7 @@ public enum RocketMqGroupEnum { /** * 事件消息监听 */ - FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE))), + FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE, RocketMqTagEnum.DEPT_EVENT))), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java index 61446ac46..9471b871d 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java @@ -13,6 +13,7 @@ public enum RocketMqTagEnum { AUTH_SCOPE_CHANGE("auth_scope_change","授权范围变更"), USER_EVENT("user_event","钉钉通讯录变更事件"), + DEPT_EVENT("dept_event","部门事件"), ; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/dept/DepartmentEventDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/dept/DepartmentEventDTO.java new file mode 100644 index 000000000..bbd88a665 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/dept/DepartmentEventDTO.java @@ -0,0 +1,24 @@ +package com.cool.store.dto.dept; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: DepartmentEventDTO + * @Description: 部门事件 + * @date 2023-06-16 15:30 + */ +@Data +public class DepartmentEventDTO { + + @ApiModelProperty("部门id") + private String departmentId; + + @ApiModelProperty("是否变更父级节点") + private Boolean isChangeParent; + + @ApiModelProperty("事件类型") + private String eventType; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java index 54b64d368..b999b3999 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java @@ -7,6 +7,7 @@ import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.MessageListener; import com.cool.store.constants.CommonConstants; import com.cool.store.dto.buser.UserEventDTO; +import com.cool.store.dto.dept.DepartmentEventDTO; import com.cool.store.enums.RocketMqTagEnum; import com.cool.store.service.EnterpriseSyncService; import com.cool.store.utils.RedisUtilPool; @@ -45,13 +46,19 @@ public class FeiShuEventListener implements MessageListener { RocketMqTagEnum tag = RocketMqTagEnum.getByTag(message.getTag()); switch (tag){ case USER_EVENT: - UserEventDTO reqBody = JSONObject.parseObject(text, UserEventDTO.class); - enterpriseSyncService.userUpdateEvent(reqBody); + UserEventDTO userBody = JSONObject.parseObject(text, UserEventDTO.class); + enterpriseSyncService.userUpdateEvent(userBody); break; case AUTH_SCOPE_CHANGE: enterpriseSyncService.syncAll(); + break; + case DEPT_EVENT: + DepartmentEventDTO deptBody = JSONObject.parseObject(text, DepartmentEventDTO.class); + enterpriseSyncService.deptUpdateEvent(deptBody); + break; + default: + break; } - }catch (Exception e){ log.error("DingMsgDealListener consume dealAddressBookChange error",e); return Action.ReconsumeLater; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java index 6b3944f6c..28bc91c6a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.dto.buser.UserEventDTO; +import com.cool.store.dto.dept.DepartmentEventDTO; /** * @author zhangchenbiao @@ -17,4 +18,10 @@ public interface EnterpriseSyncService { * @param param */ void userUpdateEvent(UserEventDTO param); + + /** + * 部门事件 + * @param param + */ + void deptUpdateEvent(DepartmentEventDTO param); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java index 2b38411b1..c76787c16 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -1,9 +1,11 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; import com.cool.store.dto.buser.UserEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; +import com.cool.store.dto.dept.DepartmentEventDTO; import com.cool.store.dto.enterprise.*; import com.cool.store.entity.*; import com.cool.store.enums.DataSourceEnum; @@ -204,4 +206,19 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService { return; } } + + @Override + public void deptUpdateEvent(DepartmentEventDTO param) { + log.info("部门变更:{}", JSONObject.toJSONString(param)); + switch (parseValue(param.getEventType())){ + case DEPARTMENT_CREATED: + break; + case DEPARTMENT_UPDATED: + break; + case DEPARTMENT_DELETED: + break; + default: + return; + } + } }