This commit is contained in:
chc
2022-11-24 18:13:30 +08:00
parent 49b517f1ab
commit 54e04be768
16 changed files with 242 additions and 7 deletions

View File

@@ -0,0 +1,17 @@
package cn.lili.event;
import cn.lili.modules.member.entity.dos.Member;
/**
* @author chc
* @since 2022/6/2114:46
*/
public interface MemberInfoChangeEvent {
/**
* 会员信息更改消息
*
* @param member 会员信息
*/
void memberInfoChange(Member member);
}

View File

@@ -0,0 +1,18 @@
package cn.lili.event;
import cn.lili.modules.store.entity.dos.Store;
/**
* @author chc
* @since 2022/6/2114:46
*/
public interface StoreSettingChangeEvent {
/**
* 店铺信息更改消息
*
* @param store 店铺信息
*/
void StoreSettingChange(Store store);
}

View File

@@ -0,0 +1,60 @@
package cn.lili.event.impl;
import cn.lili.event.MemberInfoChangeEvent;
import cn.lili.event.StoreSettingChangeEvent;
import cn.lili.modules.im.entity.dos.ImTalk;
import cn.lili.modules.im.service.ImTalkService;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.store.entity.dos.Store;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Im对话消息
*
* @author chc
* @since 2022/6/2114:46
*/
@Service
public class ImTalkExecute implements MemberInfoChangeEvent, StoreSettingChangeEvent {
@Autowired
private ImTalkService imTalkService;
@Override
public void memberInfoChange(Member member) {
//当与UserId1相等时
List<ImTalk> imTalkList1 = imTalkService.list(new LambdaQueryWrapper<ImTalk>().eq(ImTalk::getUserId1, member.getId()));
for (ImTalk imTalk : imTalkList1) {
imTalk.setName1(member.getNickName());
imTalk.setFace1(member.getFace());
}
imTalkService.updateBatchById(imTalkList1);
List<ImTalk> imTalkList2 = imTalkService.list(new LambdaQueryWrapper<ImTalk>().eq(ImTalk::getUserId2, member.getId()));
for (ImTalk imTalk : imTalkList2) {
imTalk.setName2(member.getNickName());
imTalk.setFace2(member.getFace());
}
imTalkService.updateBatchById(imTalkList2);
}
@Override
public void StoreSettingChange(Store store) {
//当与UserId1相等时
List<ImTalk> imTalkList1 = imTalkService.list(new LambdaQueryWrapper<ImTalk>().eq(ImTalk::getUserId1, store.getId()));
for (ImTalk imTalk : imTalkList1) {
imTalk.setName1(store.getStoreName());
imTalk.setFace1(store.getStoreLogo());
}
imTalkService.updateBatchById(imTalkList1);
List<ImTalk> imTalkList2 = imTalkService.list(new LambdaQueryWrapper<ImTalk>().eq(ImTalk::getUserId2, store.getId()));
for (ImTalk imTalk : imTalkList2) {
imTalk.setName2(store.getStoreName());
imTalk.setFace2(store.getStoreLogo());
}
imTalkService.updateBatchById(imTalkList2);
}
}

View File

@@ -1,10 +1,8 @@
package cn.lili.listener;
import cn.hutool.json.JSONUtil;
import cn.lili.event.MemberLoginEvent;
import cn.lili.event.MemberPointChangeEvent;
import cn.lili.event.MemberRegisterEvent;
import cn.lili.event.MemberWithdrawalEvent;
import cn.lili.event.*;
import cn.lili.event.impl.ImTalkExecute;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberSign;
import cn.lili.modules.member.entity.dto.MemberPointMessage;
@@ -58,6 +56,9 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
@Autowired
private List<MemberLoginEvent> memberLoginEvents;
@Autowired
private List<MemberInfoChangeEvent> memberInfoChangeEvents;
@Override
public void onMessage(MessageExt messageExt) {
@@ -110,6 +111,20 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
}
}
break;
//会员信息更改
case MEMBER_INFO_EDIT:
for (MemberInfoChangeEvent memberInfoChangeEvent : memberInfoChangeEvents) {
try {
Member member = JSONUtil.toBean(new String(messageExt.getBody()), Member.class);
memberInfoChangeEvent.memberInfoChange(member);
} catch (Exception e) {
log.error("会员{},在{}业务中,提现事件执行异常",
new String(messageExt.getBody()),
memberInfoChangeEvent.getClass().getName(),
e);
}
}
break;
//会员提现
case MEMBER_WITHDRAWAL:
for (MemberWithdrawalEvent memberWithdrawalEvent : memberWithdrawalEvents) {

View File

@@ -0,0 +1,51 @@
package cn.lili.listener;
import cn.hutool.json.JSONUtil;
import cn.lili.event.MemberRegisterEvent;
import cn.lili.event.StoreSettingChangeEvent;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.store.entity.dos.Store;
import cn.lili.rocketmq.tags.StoreTagsEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt;
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;
import java.util.List;
/**
* 店铺消息
* @author chc
* @since 2022/6/2114:46
*/
@Component
@Slf4j
@RocketMQMessageListener(topic = "${lili.data.rocketmq.store-topic}", consumerGroup = "${lili.data.rocketmq.store-group}")
public class StoreMessageListener implements RocketMQListener<MessageExt> {
@Autowired
private List<StoreSettingChangeEvent> storeSettingChangeEventList;
@Override
public void onMessage(MessageExt messageExt) {
switch (StoreTagsEnum.valueOf(messageExt.getTags())){
//修改店铺
case EDIT_STORE_SETTING:
for (StoreSettingChangeEvent storeSettingChangeEvent : storeSettingChangeEventList) {
try {
Store store = JSONUtil.toBean(new String(messageExt.getBody()), Store.class);
storeSettingChangeEvent.StoreSettingChange(store);
} catch (Exception e) {
log.error("会员{},在{}业务中,状态修改事件执行异常",
new String(messageExt.getBody()),
storeSettingChangeEvent.getClass().getName(),
e);
}
}
break;
default:
break;
}
}
}

View File

@@ -260,6 +260,8 @@ lili:
order-group: lili_order_group
member-topic: lili_member_topic
member-group: lili_member_group
store-topic: lili_store_topic
store-group: lili_store_group
other-topic: lili_other_topic
other-group: lili_other_group
notice-topic: lili_notice_topic