调用service会有上下文,改用mapper看看行不行
This commit is contained in:
parent
6982f3ec9a
commit
884fa43fd9
@ -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<ShopStoreMember> params=new QueryWrapper<>();
|
||||
params.eq("store_id",store_id);
|
||||
params.eq("user_id",user_id);
|
||||
List<ShopStoreMember> shopStoreMembers= shopStoreMemberMapper.selectList(params);
|
||||
if(shopStoreMembers.isEmpty()){
|
||||
QueryWrapper<AccountUserBindConnect> 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<AccountUserBindConnect> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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<ShopStoreMember> {
|
||||
|
||||
Page<ShopStoreMember> findPage(ShopStoreMember shopStoreMember, Integer pageNo, Integer pageSize);
|
||||
|
||||
List<ShopStoreMember> findShopStoreMemberList(ShopStoreMember shopStoreMember);
|
||||
|
||||
List<ShopStoreMember> findSendPage(QueryWrapper<ShopStoreMember> queryWrapper, Integer pageNo, Integer pageSize);
|
||||
|
||||
ShopStoreMember getShopStoreMemberById(Long id);
|
||||
|
||||
void dealStoreMember(AccountUserInfo accountUserInfo);
|
||||
}
|
||||
|
||||
@ -218,6 +218,7 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl<AccountUserInfoM
|
||||
throw new ApiException(ResultCode.FAILED);
|
||||
}
|
||||
}
|
||||
logger.info("店铺消费开始:level_row{};user_store_spend_total{}", level_row,user_store_spend_total);
|
||||
if(level_row != null && user_store_spend_total!=null && store_id!=null){//店铺消费
|
||||
//查找会员再,更新店铺会员等级 todo
|
||||
ShopStoreMemberLevel params = new ShopStoreMemberLevel();
|
||||
|
||||
@ -45,54 +45,6 @@ public class ShopStoreMemberServiceImpl extends BaseServiceImpl<ShopStoreMemberM
|
||||
@Autowired
|
||||
private AccountUserBindConnectService accountUserBindConnectService;
|
||||
|
||||
@Override
|
||||
public Page<ShopStoreMember> findPage(ShopStoreMember shopStoreMember, Integer pageNo, Integer pageSize) {
|
||||
QueryWrapper<ShopStoreMember> 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<ShopStoreMember> findShopStoreMemberList(ShopStoreMember shopStoreMember) {
|
||||
QueryWrapper<ShopStoreMember> 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<ShopStoreMember> findSendPage(QueryWrapper<ShopStoreMember> 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<ShopStoreMemberLevel> 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<ShopStoreMemberM
|
||||
}
|
||||
|
||||
|
||||
// 设置Excel响应头
|
||||
private void setExcelResponseHeader(HttpServletResponse response, String fileName) {
|
||||
try {
|
||||
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
|
||||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + encodedFileName);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException("文件名编码失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user