30 changed files with 756 additions and 46 deletions
@ -0,0 +1,21 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
<parent> |
||||
|
<artifactId>epmet-commons</artifactId> |
||||
|
<groupId>com.epmet</groupId> |
||||
|
<version>2.0.0</version> |
||||
|
</parent> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
|
||||
|
<artifactId>epmet-commons-rocketmq</artifactId> |
||||
|
|
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>org.apache.rocketmq</groupId> |
||||
|
<artifactId>rocketmq-spring-boot-starter</artifactId> |
||||
|
<version>2.1.1</version> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
</project> |
@ -0,0 +1,21 @@ |
|||||
|
package com.epmet.commons.rocketmq.constants; |
||||
|
|
||||
|
/** |
||||
|
* 消费者组常量 |
||||
|
*/ |
||||
|
public interface ConsomerGroupConstants { |
||||
|
|
||||
|
/** |
||||
|
* 初始化客户角色消费者组 |
||||
|
*/ |
||||
|
String INIT_CUSTOMER_ROLES_GROUP = "init_customer_roles_group"; |
||||
|
/** |
||||
|
* 初始化客户自定义消费者组 |
||||
|
*/ |
||||
|
String INIT_CUSTOMER_CUSTOMIZE_GROUP = "init_customer_customize_group"; |
||||
|
/** |
||||
|
* 初始化客户组织机构信息分组 |
||||
|
*/ |
||||
|
String INIT_CUSTOMER_ORG_GROUP = "init_customer_org_group"; |
||||
|
|
||||
|
} |
@ -0,0 +1,5 @@ |
|||||
|
package com.epmet.commons.rocketmq.constants; |
||||
|
|
||||
|
public interface TopicConstants { |
||||
|
String INIT_CUSTOMER = "init_customer_topic"; |
||||
|
} |
@ -0,0 +1,148 @@ |
|||||
|
package com.epmet.commons.rocketmq.messages; |
||||
|
|
||||
|
public class InitCustomerMQMsg { |
||||
|
|
||||
|
private String customerId; |
||||
|
|
||||
|
private InitCustomerAgency agency; |
||||
|
|
||||
|
private InitCustomerStaff staff; |
||||
|
|
||||
|
public static class InitCustomerStaff { |
||||
|
private String agencyId; |
||||
|
private Integer gender; |
||||
|
private String mobile; |
||||
|
private String name; |
||||
|
private String workType; |
||||
|
|
||||
|
public String getAgencyId() { |
||||
|
return agencyId; |
||||
|
} |
||||
|
|
||||
|
public void setAgencyId(String agencyId) { |
||||
|
this.agencyId = agencyId; |
||||
|
} |
||||
|
|
||||
|
public Integer getGender() { |
||||
|
return gender; |
||||
|
} |
||||
|
|
||||
|
public void setGender(Integer gender) { |
||||
|
this.gender = gender; |
||||
|
} |
||||
|
|
||||
|
public String getMobile() { |
||||
|
return mobile; |
||||
|
} |
||||
|
|
||||
|
public void setMobile(String mobile) { |
||||
|
this.mobile = mobile; |
||||
|
} |
||||
|
|
||||
|
public String getName() { |
||||
|
return name; |
||||
|
} |
||||
|
|
||||
|
public void setName(String name) { |
||||
|
this.name = name; |
||||
|
} |
||||
|
|
||||
|
public String getWorkType() { |
||||
|
return workType; |
||||
|
} |
||||
|
|
||||
|
public void setWorkType(String workType) { |
||||
|
this.workType = workType; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static class InitCustomerAgency { |
||||
|
private String agencyId; |
||||
|
private String organizationName; |
||||
|
private String level; |
||||
|
private String areaCode; |
||||
|
private String province; |
||||
|
private String city; |
||||
|
private String district; |
||||
|
|
||||
|
public String getAgencyId() { |
||||
|
return agencyId; |
||||
|
} |
||||
|
|
||||
|
public void setAgencyId(String agencyId) { |
||||
|
this.agencyId = agencyId; |
||||
|
} |
||||
|
|
||||
|
public String getOrganizationName() { |
||||
|
return organizationName; |
||||
|
} |
||||
|
|
||||
|
public void setOrganizationName(String organizationName) { |
||||
|
this.organizationName = organizationName; |
||||
|
} |
||||
|
|
||||
|
public String getLevel() { |
||||
|
return level; |
||||
|
} |
||||
|
|
||||
|
public void setLevel(String level) { |
||||
|
this.level = level; |
||||
|
} |
||||
|
|
||||
|
public String getAreaCode() { |
||||
|
return areaCode; |
||||
|
} |
||||
|
|
||||
|
public void setAreaCode(String areaCode) { |
||||
|
this.areaCode = areaCode; |
||||
|
} |
||||
|
|
||||
|
public String getProvince() { |
||||
|
return province; |
||||
|
} |
||||
|
|
||||
|
public void setProvince(String province) { |
||||
|
this.province = province; |
||||
|
} |
||||
|
|
||||
|
public String getCity() { |
||||
|
return city; |
||||
|
} |
||||
|
|
||||
|
public void setCity(String city) { |
||||
|
this.city = city; |
||||
|
} |
||||
|
|
||||
|
public String getDistrict() { |
||||
|
return district; |
||||
|
} |
||||
|
|
||||
|
public void setDistrict(String district) { |
||||
|
this.district = district; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public String getCustomerId() { |
||||
|
return customerId; |
||||
|
} |
||||
|
|
||||
|
public void setCustomerId(String customerId) { |
||||
|
this.customerId = customerId; |
||||
|
} |
||||
|
|
||||
|
public InitCustomerAgency getAgency() { |
||||
|
return agency; |
||||
|
} |
||||
|
|
||||
|
public void setAgency(InitCustomerAgency agency) { |
||||
|
this.agency = agency; |
||||
|
} |
||||
|
|
||||
|
public InitCustomerStaff getStaff() { |
||||
|
return staff; |
||||
|
} |
||||
|
|
||||
|
public void setStaff(InitCustomerStaff staff) { |
||||
|
this.staff = staff; |
||||
|
} |
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
package com.epmet.constant; |
||||
|
|
||||
|
public interface SystemMessageSendApproach { |
||||
|
|
||||
|
String MQ = "mq"; |
||||
|
|
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package com.epmet.constant; |
||||
|
|
||||
|
/** |
||||
|
* 系统消息类型 |
||||
|
*/ |
||||
|
public interface SystemMessageType { |
||||
|
|
||||
|
/** |
||||
|
* 初始化客户 |
||||
|
*/ |
||||
|
String INIT_CUSTOMER = "init_customer"; |
||||
|
|
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
package com.epmet.dto.form; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotNull; |
||||
|
|
||||
|
@Data |
||||
|
public class SystemMsgFormDTO { |
||||
|
|
||||
|
@NotNull(message = "消息类型不能为空") |
||||
|
private String messageType; |
||||
|
|
||||
|
@NotNull(message = "消息内容不能为空") |
||||
|
private Object content; |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.commons.tools.validator.ValidatorUtils; |
||||
|
import com.epmet.dto.form.SystemMsgFormDTO; |
||||
|
import com.epmet.service.SystemMessageService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("system") |
||||
|
public class SystemMessageController { |
||||
|
|
||||
|
@Autowired |
||||
|
private SystemMessageService systemMessageService; |
||||
|
|
||||
|
@PostMapping("send-by-mq") |
||||
|
public Result sendSystemMsgByMQ(@RequestBody SystemMsgFormDTO form) { |
||||
|
ValidatorUtils.validateEntity(form); |
||||
|
systemMessageService.sendMQMessage(form.getMessageType(), form.getContent()); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,33 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.dao; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.dao.BaseDao; |
||||
|
import com.epmet.entity.SystemMessageEntity; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
/** |
||||
|
* 系统消息表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-01-06 |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface SystemMessageDao extends BaseDao<SystemMessageEntity> { |
||||
|
|
||||
|
} |
@ -0,0 +1,57 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.entity; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
import org.omg.CORBA.StringHolder; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
|
||||
|
/** |
||||
|
* 系统消息表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-01-06 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper=false) |
||||
|
@TableName("system_message") |
||||
|
public class SystemMessageEntity extends BaseEpmetEntity { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* 消息类型 |
||||
|
*/ |
||||
|
private String msgType; |
||||
|
|
||||
|
/** |
||||
|
* 发送途径 |
||||
|
*/ |
||||
|
private String sendApproach; |
||||
|
|
||||
|
/** |
||||
|
* 消息内容 |
||||
|
*/ |
||||
|
private String content; |
||||
|
|
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
package com.epmet.service; |
||||
|
|
||||
|
public interface SystemMessageService { |
||||
|
|
||||
|
void sendMQMessage(String messageType, Object content); |
||||
|
|
||||
|
} |
@ -0,0 +1,70 @@ |
|||||
|
package com.epmet.service.impl; |
||||
|
|
||||
|
import com.alibaba.fastjson.JSON; |
||||
|
import com.epmet.commons.rocketmq.constants.TopicConstants; |
||||
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
||||
|
import com.epmet.commons.tools.exception.ExceptionUtils; |
||||
|
import com.epmet.commons.tools.exception.RenException; |
||||
|
import com.epmet.constant.SystemMessageSendApproach; |
||||
|
import com.epmet.constant.SystemMessageType; |
||||
|
import com.epmet.dao.SystemMessageDao; |
||||
|
import com.epmet.entity.SystemMessageEntity; |
||||
|
import com.epmet.service.SystemMessageService; |
||||
|
import org.apache.rocketmq.common.message.Message; |
||||
|
import org.apache.rocketmq.remoting.common.RemotingHelper; |
||||
|
import org.apache.rocketmq.spring.core.RocketMQTemplate; |
||||
|
import org.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
|
||||
|
@Service |
||||
|
public class SystemMessageServiceImpl implements SystemMessageService { |
||||
|
|
||||
|
private Logger logger = LoggerFactory.getLogger(getClass()); |
||||
|
|
||||
|
@Autowired |
||||
|
private SystemMessageDao systemMessageDao; |
||||
|
|
||||
|
@Autowired |
||||
|
private RocketMQTemplate rocketMQTemplate; |
||||
|
|
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
@Override |
||||
|
public void sendMQMessage(String messageType, Object content) { |
||||
|
String contentStr = JSON.toJSONString(content); |
||||
|
//存储消息到表
|
||||
|
SystemMessageEntity systemMessageEntity = new SystemMessageEntity(); |
||||
|
systemMessageEntity.setMsgType(messageType); |
||||
|
systemMessageEntity.setSendApproach(SystemMessageSendApproach.MQ); |
||||
|
systemMessageEntity.setContent(contentStr); |
||||
|
systemMessageDao.insert(systemMessageEntity); |
||||
|
|
||||
|
//发送mq消息
|
||||
|
try { |
||||
|
Message meMessage = new Message(getTopicByMsgType(messageType), contentStr.getBytes(RemotingHelper.DEFAULT_CHARSET)); |
||||
|
rocketMQTemplate.getProducer().send(meMessage); |
||||
|
} catch (Exception e) { |
||||
|
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); |
||||
|
logger.error("发送系统消息失败,堆栈信息:{}", errorStackTrace); |
||||
|
throw new RenException(EpmetErrorCode.SYSTEM_MQ_MSG_SEND_FAIL.getCode()); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @Description 根据消息类型获取topic |
||||
|
* @return |
||||
|
* @author wxz |
||||
|
* @date 2021.01.06 13:42 |
||||
|
*/ |
||||
|
private String getTopicByMsgType(String msgType) { |
||||
|
String topic = null; |
||||
|
switch (msgType) { |
||||
|
case SystemMessageType.INIT_CUSTOMER: |
||||
|
topic = TopicConstants.INIT_CUSTOMER; |
||||
|
break; |
||||
|
} |
||||
|
return topic; |
||||
|
} |
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
|
||||
|
<mapper namespace="com.epmet.dao.SystemMessageDao"> |
||||
|
|
||||
|
<resultMap type="com.epmet.entity.SystemMessageEntity" id="systemMessageMap"> |
||||
|
<result property="id" column="ID"/> |
||||
|
<result property="content" column="CONTENT"/> |
||||
|
<result property="delFlag" column="DEL_FLAG"/> |
||||
|
<result property="revision" column="REVISION"/> |
||||
|
<result property="createdBy" column="CREATED_BY"/> |
||||
|
<result property="createdTime" column="CREATED_TIME"/> |
||||
|
<result property="updatedBy" column="UPDATED_BY"/> |
||||
|
<result property="updatedTime" column="UPDATED_TIME"/> |
||||
|
</resultMap> |
||||
|
|
||||
|
|
||||
|
</mapper> |
@ -0,0 +1,76 @@ |
|||||
|
package com.epmet.mq.listener; |
||||
|
|
||||
|
import com.alibaba.fastjson.JSON; |
||||
|
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; |
||||
|
import com.epmet.commons.rocketmq.constants.TopicConstants; |
||||
|
import com.epmet.commons.rocketmq.messages.InitCustomerMQMsg; |
||||
|
import com.epmet.constant.UserWorkType; |
||||
|
import com.epmet.dto.CustomerAgencyDTO; |
||||
|
import com.epmet.dto.form.AddAgencyAndStaffFormDTO; |
||||
|
import com.epmet.dto.form.AdminStaffFromDTO; |
||||
|
import com.epmet.service.AgencyService; |
||||
|
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.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
/** |
||||
|
* 监听初始化客户动作,为客户初始化角色列表 |
||||
|
*/ |
||||
|
@RocketMQMessageListener(topic = TopicConstants.INIT_CUSTOMER, |
||||
|
consumerGroup = ConsomerGroupConstants.INIT_CUSTOMER_ORG_GROUP, |
||||
|
messageModel = MessageModel.CLUSTERING, |
||||
|
selectorExpression = "*") |
||||
|
@Component |
||||
|
public class InitCustomerOrgListener implements RocketMQListener<MessageExt> { |
||||
|
|
||||
|
private Logger logger = LoggerFactory.getLogger(getClass()); |
||||
|
|
||||
|
@Autowired |
||||
|
private AgencyService agencyService; |
||||
|
|
||||
|
@Override |
||||
|
public void onMessage(MessageExt messageExt) { |
||||
|
String msg = new String(messageExt.getBody()); |
||||
|
logger.info("初始化客户-初始化组织信息-收到消息内容:{}", msg); |
||||
|
InitCustomerMQMsg msgObj = JSON.parseObject(msg, InitCustomerMQMsg.class); |
||||
|
agencyService.saveRootAgency(constructRootAndAgencyDTO(msgObj)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @Description 构造dto |
||||
|
* @return |
||||
|
* @author wxz |
||||
|
* @date 2021.01.06 15:03 |
||||
|
*/ |
||||
|
private AddAgencyAndStaffFormDTO constructRootAndAgencyDTO(InitCustomerMQMsg msgObj) { |
||||
|
AddAgencyAndStaffFormDTO agencyAndStaff = new AddAgencyAndStaffFormDTO(); |
||||
|
//客户组织信息
|
||||
|
CustomerAgencyDTO agencyDTO = new CustomerAgencyDTO(); |
||||
|
agencyDTO.setId(msgObj.getAgency().getAgencyId()); |
||||
|
agencyDTO.setCustomerId(msgObj.getCustomerId()); |
||||
|
agencyDTO.setOrganizationName(msgObj.getAgency().getOrganizationName()); |
||||
|
agencyDTO.setLevel(msgObj.getAgency().getLevel()); |
||||
|
agencyDTO.setAreaCode(msgObj.getAgency().getAreaCode()); |
||||
|
agencyDTO.setProvince(msgObj.getAgency().getProvince()); |
||||
|
agencyDTO.setCity(msgObj.getAgency().getCity()); |
||||
|
agencyDTO.setDistrict(msgObj.getAgency().getDistrict()); |
||||
|
agencyAndStaff.setAgencyDTO(agencyDTO); |
||||
|
|
||||
|
//客户管理员信息
|
||||
|
AdminStaffFromDTO staffSubmitFrom = new AdminStaffFromDTO(); |
||||
|
staffSubmitFrom.setCustomerId(msgObj.getCustomerId()); |
||||
|
staffSubmitFrom.setAgencyId(msgObj.getStaff().getAgencyId()); |
||||
|
staffSubmitFrom.setGender(msgObj.getStaff().getGender()); |
||||
|
staffSubmitFrom.setMobile(msgObj.getStaff().getMobile()); |
||||
|
staffSubmitFrom.setName(msgObj.getStaff().getName()); |
||||
|
staffSubmitFrom.setWorkType(UserWorkType.FULL_TIME); |
||||
|
agencyAndStaff.setStaffDTO(staffSubmitFrom); |
||||
|
|
||||
|
return agencyAndStaff; |
||||
|
} |
||||
|
} |
@ -0,0 +1,43 @@ |
|||||
|
package com.epmet.mq.listener; |
||||
|
|
||||
|
import com.alibaba.fastjson.JSON; |
||||
|
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; |
||||
|
import com.epmet.commons.rocketmq.constants.TopicConstants; |
||||
|
import com.epmet.commons.rocketmq.messages.InitCustomerMQMsg; |
||||
|
import com.epmet.dto.CustomerHomeDTO; |
||||
|
import com.epmet.service.CustomerHomeService; |
||||
|
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.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
/** |
||||
|
* 监听初始化客户动作,为客户初始化角色列表 |
||||
|
*/ |
||||
|
@RocketMQMessageListener(topic = TopicConstants.INIT_CUSTOMER, |
||||
|
consumerGroup = ConsomerGroupConstants.INIT_CUSTOMER_CUSTOMIZE_GROUP, |
||||
|
messageModel = MessageModel.CLUSTERING, |
||||
|
selectorExpression = "*") |
||||
|
@Component |
||||
|
public class InitCustomerCustomizeListener implements RocketMQListener<MessageExt> { |
||||
|
|
||||
|
private Logger logger = LoggerFactory.getLogger(getClass()); |
||||
|
|
||||
|
@Autowired |
||||
|
private CustomerHomeService customerHomeService; |
||||
|
|
||||
|
@Override |
||||
|
public void onMessage(MessageExt messageExt) { |
||||
|
String msg = new String(messageExt.getBody()); |
||||
|
logger.info("初始化客户-初始化客户自定义信息-收到消息内容:{}", msg); |
||||
|
InitCustomerMQMsg msgObj = JSON.parseObject(msg, InitCustomerMQMsg.class); |
||||
|
|
||||
|
CustomerHomeDTO customerHomeDTO = new CustomerHomeDTO(); |
||||
|
customerHomeDTO.setCustomerId(msgObj.getCustomerId()); |
||||
|
customerHomeService.init(customerHomeDTO); |
||||
|
} |
||||
|
} |
@ -0,0 +1,39 @@ |
|||||
|
package com.epmet.mq.listener; |
||||
|
|
||||
|
import com.alibaba.fastjson.JSON; |
||||
|
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; |
||||
|
import com.epmet.commons.rocketmq.constants.TopicConstants; |
||||
|
import com.epmet.commons.rocketmq.messages.InitCustomerMQMsg; |
||||
|
import com.epmet.service.GovStaffRoleService; |
||||
|
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.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
/** |
||||
|
* 监听初始化客户动作,为客户初始化角色列表 |
||||
|
*/ |
||||
|
@RocketMQMessageListener(topic = TopicConstants.INIT_CUSTOMER, |
||||
|
consumerGroup = ConsomerGroupConstants.INIT_CUSTOMER_ROLES_GROUP, |
||||
|
messageModel = MessageModel.CLUSTERING, |
||||
|
selectorExpression = "*") |
||||
|
@Component |
||||
|
public class InitCustomerRolesListener implements RocketMQListener<MessageExt> { |
||||
|
|
||||
|
private Logger logger = LoggerFactory.getLogger(getClass()); |
||||
|
|
||||
|
@Autowired |
||||
|
private GovStaffRoleService govStaffRoleService; |
||||
|
|
||||
|
@Override |
||||
|
public void onMessage(MessageExt messageExt) { |
||||
|
String msg = new String(messageExt.getBody()); |
||||
|
logger.info("初始化客户-初始化角色列表-收到消息内容:{}", msg); |
||||
|
InitCustomerMQMsg msgObj = JSON.parseObject(msg, InitCustomerMQMsg.class); |
||||
|
govStaffRoleService.initGovStaffRolesForCustomer(msgObj.getCustomerId()); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue