From 4ed2c89d290c55a9262279d8c8f6555d0701599a Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Mon, 21 Dec 2020 17:35:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E6=97=A5=E5=BF=97=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E4=BF=A1=E6=81=AFmq=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc-points/epdc-points-server/pom.xml | 6 ++ .../elink/esua/epdc/dao/PointsLogsDao.java | 8 +++ .../epdc/mq/OrganizationModifyConsumer.java | 46 +++++++++++++++ .../epdc/mq/dto/OrganizationModifyDTO.java | 37 ++++++++++++ .../esua/epdc/service/PointsLogsService.java | 9 +++ .../service/impl/PointsLogsServiceImpl.java | 58 +++++++++++++++++-- .../src/main/resources/application.yml | 1 + .../main/resources/mapper/PointsLogsDao.xml | 12 ++++ 8 files changed, 173 insertions(+), 4 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/OrganizationModifyConsumer.java create mode 100644 esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/dto/OrganizationModifyDTO.java diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml b/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml index 3a7a8f47..db052bcb 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml @@ -157,6 +157,8 @@ 114.215.125.123:9876 jinshui-pointsGroup jinshui-pointsGroup + jinshui-organizationGroup + @@ -186,6 +188,8 @@ 114.215.125.123:9876 jinshui-pointsGroup jinshui-pointsGroup + jinshui-organizationGroup + @@ -219,6 +223,8 @@ 172.16.0.7:9876;172.16.0.8:9876 jinshui-pointsGroup jinshui-pointsGroup + jinshui-organizationGroup + diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/dao/PointsLogsDao.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/dao/PointsLogsDao.java index 866b9b98..ec381742 100755 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/dao/PointsLogsDao.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/dao/PointsLogsDao.java @@ -153,4 +153,12 @@ public interface PointsLogsDao extends BaseDao { * @date 2020/8/3 13:43 */ List selectListPoints(Map params); + /** + * @Description + * @Author songyunpeng + * @Date 2020/12/21 + * @Param [toString] + * @return java.util.List + **/ + List selectListOfOrganizationInfo(String toString); } diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/OrganizationModifyConsumer.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/OrganizationModifyConsumer.java new file mode 100644 index 00000000..f9da09f7 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/OrganizationModifyConsumer.java @@ -0,0 +1,46 @@ +package com.elink.esua.epdc.mq; + +import com.alibaba.fastjson.JSONObject; +import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant; +import com.elink.esua.epdc.mq.dto.OrganizationModifyDTO; +import com.elink.esua.epdc.service.PointsLogsService; +import lombok.extern.slf4j.Slf4j; +import org.apache.rocketmq.common.message.MessageExt; +import org.apache.rocketmq.spring.annotation.MessageModel; +import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; +import org.apache.rocketmq.spring.core.RocketMQListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * + * 组织机构信息修改-监听MQ消息 + * + * @Author:liuchuang + * @Date:2020/3/7 13:47 + */ +@Slf4j +@Component +@RocketMQMessageListener(topic = RocketMqConstant.MQ_TOPIC_ORGANIZATION, consumerGroup = "${rocketmq.consumer.group}", messageModel = MessageModel.BROADCASTING) +public class OrganizationModifyConsumer implements RocketMQListener { + + @Autowired + private PointsLogsService pointsLogsService; + + @Override + public void onMessage(MessageExt messageExt) { + log.info("EPDC-POINTS-SERVER消费消息START:{topic:{}, msgId:{}}", RocketMqConstant.MQ_TOPIC_ORGANIZATION, messageExt.getMsgId()); + try { + String charset = "UTF-8"; + String body = new String(messageExt.getBody(), charset); + OrganizationModifyDTO dto = JSONObject.parseObject(body, OrganizationModifyDTO.class); + //积分日志表修改组织机构信息 + pointsLogsService.modifyOrganizationInfo(dto); + + log.info("EPDC-POINTS-SERVER消费消息END:{topic:{}, msgId:{}, body:{}}", RocketMqConstant.MQ_TOPIC_ORGANIZATION, messageExt.getMsgId(), body); + } catch (Exception e) { + log.info("EPDC-POINTS-SERVER消费消息失败:msgId:{}", messageExt.getMsgId()); + e.printStackTrace(); + } + } +} diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/dto/OrganizationModifyDTO.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/dto/OrganizationModifyDTO.java new file mode 100644 index 00000000..8ce0a98d --- /dev/null +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/dto/OrganizationModifyDTO.java @@ -0,0 +1,37 @@ +package com.elink.esua.epdc.mq.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * + * 组织机构信息修改-接收MQ消息DTO + * + * @Author:liuchuang + * @Date:2020/3/7 13:46 + */ +@Data +public class OrganizationModifyDTO implements Serializable { + private static final long serialVersionUID = -5692602006311937083L; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 旧部门名称 + */ + private String oldDeptName; + + /** + * 新部门名称 + */ + private String newDeptName; + + /** + * 部门类型 + */ + private String typeKey; +} diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsLogsService.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsLogsService.java index 92925f8b..be82b299 100755 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsLogsService.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsLogsService.java @@ -32,6 +32,7 @@ import com.elink.esua.epdc.dto.result.EpdcAppPointsRecordResultDTO; import com.elink.esua.epdc.dto.result.PointsLogsResultDTO; import com.elink.esua.epdc.dto.result.PointsStatisticsListResultDTO; import com.elink.esua.epdc.entity.PointsLogsEntity; +import com.elink.esua.epdc.mq.dto.OrganizationModifyDTO; import java.util.List; import java.util.Map; @@ -200,4 +201,12 @@ public interface PointsLogsService extends BaseService { * @date 2020/8/3 13:41 */ PageData listPoint(Map params); + /** + * @Description mq修改组织机构信息 + * @Author songyunpeng + * @Date 2020/12/21 + * @Param [dto] + * @return void + **/ + void modifyOrganizationInfo(OrganizationModifyDTO dto); } diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/impl/PointsLogsServiceImpl.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/impl/PointsLogsServiceImpl.java index 05b1206f..c3a27c11 100755 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/impl/PointsLogsServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/impl/PointsLogsServiceImpl.java @@ -33,10 +33,7 @@ import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dao.PointsLogsDao; -import com.elink.esua.epdc.dto.EpdcAdjustUserPointsDTO; -import com.elink.esua.epdc.dto.PointsLogsDTO; -import com.elink.esua.epdc.dto.UserDTO; -import com.elink.esua.epdc.dto.UserPointResultDTO; +import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.constant.PointsNoticeConstant; import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO; @@ -48,6 +45,7 @@ import com.elink.esua.epdc.dto.result.*; import com.elink.esua.epdc.entity.PointsLogsEntity; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.UsersFeignClient; +import com.elink.esua.epdc.mq.dto.OrganizationModifyDTO; import com.elink.esua.epdc.redis.PointsLogsRedis; import com.elink.esua.epdc.service.PointsBehaviorService; import com.elink.esua.epdc.service.PointsLogsService; @@ -367,4 +365,56 @@ public class PointsLogsServiceImpl extends BaseServiceImpl userPointResultDTOS = baseDao.selectListPoints(params); return new PageData<>(userPointResultDTOS, iPage.getTotal()); } + + @Override + public void modifyOrganizationInfo(OrganizationModifyDTO dto) { + // 查询需要修改的组织机构信息 + List gridList = baseDao.selectListOfOrganizationInfo(dto.getDeptId().toString()); + if (null != gridList && gridList.size() > 0) { + // 组织机构信息处理 + List entities = handleOrganizationInfo(dto, gridList); + // 更新事件组织机构信息 + updateBatchById(entities); + } + } + /** + * + * 组织机构信息处理 + * + * @params [dto, gridList] + * @return java.util.List + * @author liuchuang + * @since 2020/3/7 15:25 + */ + private List handleOrganizationInfo(OrganizationModifyDTO dto, List gridList) { + List entities = new ArrayList<>(); + for (PointsLogsDTO grid: gridList) { + PointsLogsEntity entity = new PointsLogsEntity(); + if (StringUtils.isNotEmpty(grid.getParentDeptIds()) && StringUtils.isNotEmpty(grid.getParentDeptNames())) { + List parentDeptIds = Arrays.asList(grid.getParentDeptIds().split(",")); + List parentDeptNames = Arrays.asList(grid.getParentDeptNames().split("-")); + int index = parentDeptIds.indexOf(dto.getDeptId().toString()); + if (index >= 0 && parentDeptNames.size() > index) { + parentDeptNames.set(index, dto.getNewDeptName()); + entity.setId(grid.getId()); + entity.setParentDeptNames(StringUtils.join(parentDeptNames, "-")); + } + } + + if (StringUtils.isNotEmpty(grid.getAllDeptIds()) && StringUtils.isNotEmpty(grid.getAllDeptNames())) { + List allDeptIds = Arrays.asList(grid.getAllDeptIds().split(",")); + List allDeptNames = Arrays.asList(grid.getAllDeptNames().split("-")); + int index = allDeptIds.indexOf(dto.getDeptId().toString()); + if (index >= 0 && allDeptNames.size() > index) { + allDeptNames.set(index, dto.getNewDeptName()); + entity.setId(grid.getId()); + entity.setAllDeptNames(StringUtils.join(allDeptNames, "-")); + } + } + + entities.add(entity); + } + + return entities; + } } diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml index ddc89ff2..5e675643 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml @@ -94,6 +94,7 @@ rocketmq: producer: group: @rocketmq.producer.group@ consumer: + group: @rocketmq.consumer.group@ points-group: @rocketmq.consumer.points.group@ diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/mapper/PointsLogsDao.xml b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/mapper/PointsLogsDao.xml index 3bec897d..a33061f1 100755 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/mapper/PointsLogsDao.xml +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/mapper/PointsLogsDao.xml @@ -258,4 +258,16 @@ ORDER BY points DESC +