From 884fa43fd992acd3e5c83e4dbbf9d5f645a629c1 Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Wed, 14 Jan 2026 17:55:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E7=94=A8service=E4=BC=9A=E6=9C=89?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E6=96=87=EF=BC=8C=E6=94=B9=E7=94=A8mapper?= =?UTF-8?q?=E7=9C=8B=E7=9C=8B=E8=A1=8C=E4=B8=8D=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/DealUserInfoListener.java | 92 +++++++++++++++++-- .../service/ShopStoreMemberService.java | 12 --- .../impl/AccountUserInfoServiceImpl.java | 1 + .../impl/ShopStoreMemberServiceImpl.java | 62 ------------- 4 files changed, 87 insertions(+), 80 deletions(-) diff --git a/mall-account/src/main/java/com/suisung/mall/account/listener/DealUserInfoListener.java b/mall-account/src/main/java/com/suisung/mall/account/listener/DealUserInfoListener.java index 05f2158b..72d067af 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/listener/DealUserInfoListener.java +++ b/mall-account/src/main/java/com/suisung/mall/account/listener/DealUserInfoListener.java @@ -1,20 +1,31 @@ package com.suisung.mall.account.listener; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.rabbitmq.client.Channel; +import com.suisung.mall.account.mapper.AccountUserBindConnectMapper; +import com.suisung.mall.account.mapper.AccountUserInfoMapper; +import com.suisung.mall.account.mapper.ShopStoreMemberLevelMapper; +import com.suisung.mall.account.mapper.ShopStoreMemberMapper; import com.suisung.mall.account.service.AccountUserInfoService; -import com.suisung.mall.account.service.ShopStoreMemberService; +import com.suisung.mall.common.api.BindCode; import com.suisung.mall.common.constant.MqConstant; +import com.suisung.mall.common.modules.account.AccountUserBindConnect; import com.suisung.mall.common.modules.account.AccountUserInfo; +import com.suisung.mall.common.modules.store.ShopStoreMember; +import com.suisung.mall.common.modules.store.ShopStoreMemberLevel; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.List; @Service @Slf4j @@ -23,8 +34,18 @@ public class DealUserInfoListener { @Autowired private AccountUserInfoService accountUserInfoService; + @Autowired - private ShopStoreMemberService shopStoreMemberService; + private AccountUserBindConnectMapper accountUserBindConnectMapper; + + @Autowired + private AccountUserInfoMapper accountUserInfoMapper; + + @Autowired + private ShopStoreMemberMapper shopStoreMemberMapper; + + @Autowired + private ShopStoreMemberLevelMapper shopStoreMemberLevelMapper; @RabbitHandler public void listener(byte[] data, Channel channel, Message message) throws IOException, InterruptedException { @@ -38,16 +59,21 @@ public class DealUserInfoListener { AccountUserInfo accountUserInfo = JSONUtil.toBean(data, AccountUserInfo.class); // String messageId = message.getMessageProperties().getMessageId(); log.info("MQ处理活动开始:accountUserInfo:{}", JSONUtil.toJsonStr(accountUserInfo)); + // 设置模拟的请求上下文,避免RequestContextHolder报错 + ServletRequestAttributes reqAttr = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + RequestContextHolder.setRequestAttributes(reqAttr,true); + log.info("reqAttr{}", reqAttr); try { boolean flag = accountUserInfoService.saveOrUpdate(accountUserInfo); if (flag) { - channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); - log.info("MQ处理活动开始:accountUserInfo:{}", JSONUtil.toJsonStr(accountUserInfo)); if(accountUserInfo.getStore_id()!=null){ - AccountUserInfo updateAccountUserInfo= accountUserInfoService.get(accountUserInfo.getUser_id()); + AccountUserInfo updateAccountUserInfo= accountUserInfoMapper.selectById(accountUserInfo.getUser_id()); + // AccountUserInfo updateAccountUserInfo= accountUserInfoService.get(accountUserInfo.getUser_id()); updateAccountUserInfo.setStore_name(accountUserInfo.getStore_name()); - shopStoreMemberService.dealStoreMember(updateAccountUserInfo); + //shopStoreMemberService.dealStoreMember(updateAccountUserInfo); + this.dealStoreMember(updateAccountUserInfo); } + channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } else { log.error("消息消费失败,执行dealUserInfo异常,当前用户编号:{}", accountUserInfo.getUser_id()); channel.basicReject(message.getMessageProperties().getDeliveryTag(), true); @@ -59,4 +85,58 @@ public class DealUserInfoListener { Thread.sleep(1000); } } + + private void dealStoreMember(AccountUserInfo accountUserInfo){ + log.info("dealStoreMember-MQ处理店铺会员开始:accountUserInfo:{}", JSONUtil.toJsonStr(accountUserInfo)); + if(null!=accountUserInfo.getStore_id()){ + log.info("MQ处理店铺会员开始:accountUserInfo:{}", JSONUtil.toJsonStr(accountUserInfo)); + Integer store_id = accountUserInfo.getStore_id(); + Integer user_id = accountUserInfo.getUser_id(); + QueryWrapper params=new QueryWrapper<>(); + params.eq("store_id",store_id); + params.eq("user_id",user_id); + List shopStoreMembers= shopStoreMemberMapper.selectList(params); + if(shopStoreMembers.isEmpty()){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("bind_id", "+86"+accountUserInfo.getUser_mobile()); + queryWrapper.eq("bind_type", BindCode.MOBILE) + .eq("user_type", 0) + .eq("user_id", user_id) + .orderByAsc("bind_time"); + List accountUserBindConnectList = accountUserBindConnectMapper.selectList(queryWrapper); + if (!accountUserBindConnectList.isEmpty()){ + AccountUserBindConnect accountUserBindConnect= accountUserBindConnectList.get(0); + ShopStoreMember shopStoreMember = new ShopStoreMember(); + shopStoreMember.setStoreName(accountUserInfo.getStore_name()); + shopStoreMember.setStoreId(store_id); + shopStoreMember.setUserId(user_id); + shopStoreMember.setBind_openid(accountUserBindConnect.getBind_openid()); + shopStoreMember.setUserNickname(accountUserBindConnect.getBind_nickname()); + shopStoreMember.setUserAccount(accountUserBindConnect.getBind_id()); + shopStoreMemberMapper.insert(shopStoreMember); + ShopStoreMemberLevel shopStoreMemberLevel = getShopStoreMemberLevel(store_id, shopStoreMember); + shopStoreMemberLevel.setUserId(user_id); + shopStoreMemberLevelMapper.insert(shopStoreMemberLevel); + } + } + } + } + + /** + * 店铺会员初始化信息 + * @param storeId + * @param shopStoreMember + * @return + */ + private ShopStoreMemberLevel getShopStoreMemberLevel(Integer storeId, ShopStoreMember shopStoreMember) { + ShopStoreMemberLevel shopStoreMemberLevel=new ShopStoreMemberLevel(); + shopStoreMemberLevel.setStoreId(storeId); + shopStoreMemberLevel.setStoreMemberId(shopStoreMember.getStore_member_id()); + shopStoreMemberLevel.setUserLevelName("v1"); + shopStoreMemberLevel.setUserLevelId(1001); + shopStoreMemberLevel.setMemberLevelId(1001); + shopStoreMemberLevel.setMemberLevelName("v1"); + return shopStoreMemberLevel; + } + } diff --git a/mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberService.java b/mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberService.java index b569a552..e9971bcb 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberService.java +++ b/mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberService.java @@ -1,23 +1,11 @@ package com.suisung.mall.account.service; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.suisung.mall.common.modules.account.AccountUserInfo; import com.suisung.mall.common.modules.store.ShopStoreMember; -import javax.servlet.http.HttpServletResponse; -import java.util.List; public interface ShopStoreMemberService extends IService { - Page findPage(ShopStoreMember shopStoreMember, Integer pageNo, Integer pageSize); - - List findShopStoreMemberList(ShopStoreMember shopStoreMember); - - List findSendPage(QueryWrapper queryWrapper, Integer pageNo, Integer pageSize); - - ShopStoreMember getShopStoreMemberById(Long id); - void dealStoreMember(AccountUserInfo accountUserInfo); } diff --git a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserInfoServiceImpl.java b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserInfoServiceImpl.java index 36fbf476..7f9af7a8 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserInfoServiceImpl.java +++ b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserInfoServiceImpl.java @@ -218,6 +218,7 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl findPage(ShopStoreMember shopStoreMember, Integer pageNo, Integer pageSize) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - UserDto userDto= ContextUtil.getCurrentUser(); - assert userDto != null; - if(userDto.getRole_id()!=2){ - throw new ApiException("无权限"); - } - queryWrapper.eq("store_id", Convert.toInt(userDto.getStore_id())); - if(shopStoreMember.getUserId()!=null){ - queryWrapper.eq("user_id", shopStoreMember.getUserId()); - } - if(StringUtils.isNotEmpty(shopStoreMember.getUserAccount())){ - queryWrapper.like("user_account", shopStoreMember.getUserAccount()); - } - return this.lists(queryWrapper, pageNo, pageSize); - } - - @Override - public List findShopStoreMemberList(ShopStoreMember shopStoreMember) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - if(shopStoreMember.getUserId()!=null){ - queryWrapper.eq("user_id",shopStoreMember.getUserId()); - } - if(shopStoreMember.getStoreId()!=null){ - queryWrapper.eq("store_id", shopStoreMember.getStoreId()); - } - return this.list(queryWrapper); - } - - @Override - public List findSendPage(QueryWrapper queryWrapper, Integer pageNo, Integer pageSize) { - return this.lists(queryWrapper,pageNo,pageSize).getRecords(); - } - - @Override - public ShopStoreMember getShopStoreMemberById(Long id) { - ShopStoreMember shopStoreMember=this.getById(id); - if(null!=shopStoreMember){ - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("store_member_id", shopStoreMember.getStore_member_id()); - ShopStoreMemberLevel shopStoreMemberLevel= shopStoreMemberLevelService.getOne(queryWrapper); - if(shopStoreMemberLevel!=null){ - shopStoreMember.setShopStoreMemberLevel(shopStoreMemberLevel); - } - } - return shopStoreMember; - } @Override public void dealStoreMember(AccountUserInfo accountUserInfo){ @@ -148,18 +100,4 @@ public class ShopStoreMemberServiceImpl extends BaseServiceImpl