调用service会有上下文,改用mapper看看行不行
This commit is contained in:
parent
6982f3ec9a
commit
884fa43fd9
@ -1,20 +1,31 @@
|
|||||||
package com.suisung.mall.account.listener;
|
package com.suisung.mall.account.listener;
|
||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.rabbitmq.client.Channel;
|
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.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.constant.MqConstant;
|
||||||
|
import com.suisung.mall.common.modules.account.AccountUserBindConnect;
|
||||||
import com.suisung.mall.common.modules.account.AccountUserInfo;
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.amqp.core.Message;
|
import org.springframework.amqp.core.Message;
|
||||||
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
||||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
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.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -23,8 +34,18 @@ public class DealUserInfoListener {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AccountUserInfoService accountUserInfoService;
|
private AccountUserInfoService accountUserInfoService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ShopStoreMemberService shopStoreMemberService;
|
private AccountUserBindConnectMapper accountUserBindConnectMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AccountUserInfoMapper accountUserInfoMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ShopStoreMemberMapper shopStoreMemberMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ShopStoreMemberLevelMapper shopStoreMemberLevelMapper;
|
||||||
|
|
||||||
@RabbitHandler
|
@RabbitHandler
|
||||||
public void listener(byte[] data, Channel channel, Message message) throws IOException, InterruptedException {
|
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);
|
AccountUserInfo accountUserInfo = JSONUtil.toBean(data, AccountUserInfo.class);
|
||||||
// String messageId = message.getMessageProperties().getMessageId();
|
// String messageId = message.getMessageProperties().getMessageId();
|
||||||
log.info("MQ处理活动开始:accountUserInfo:{}", JSONUtil.toJsonStr(accountUserInfo));
|
log.info("MQ处理活动开始:accountUserInfo:{}", JSONUtil.toJsonStr(accountUserInfo));
|
||||||
|
// 设置模拟的请求上下文,避免RequestContextHolder报错
|
||||||
|
ServletRequestAttributes reqAttr = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
|
RequestContextHolder.setRequestAttributes(reqAttr,true);
|
||||||
|
log.info("reqAttr{}", reqAttr);
|
||||||
try {
|
try {
|
||||||
boolean flag = accountUserInfoService.saveOrUpdate(accountUserInfo);
|
boolean flag = accountUserInfoService.saveOrUpdate(accountUserInfo);
|
||||||
if (flag) {
|
if (flag) {
|
||||||
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
|
||||||
log.info("MQ处理活动开始:accountUserInfo:{}", JSONUtil.toJsonStr(accountUserInfo));
|
|
||||||
if(accountUserInfo.getStore_id()!=null){
|
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());
|
updateAccountUserInfo.setStore_name(accountUserInfo.getStore_name());
|
||||||
shopStoreMemberService.dealStoreMember(updateAccountUserInfo);
|
//shopStoreMemberService.dealStoreMember(updateAccountUserInfo);
|
||||||
|
this.dealStoreMember(updateAccountUserInfo);
|
||||||
}
|
}
|
||||||
|
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
||||||
} else {
|
} else {
|
||||||
log.error("消息消费失败,执行dealUserInfo异常,当前用户编号:{}", accountUserInfo.getUser_id());
|
log.error("消息消费失败,执行dealUserInfo异常,当前用户编号:{}", accountUserInfo.getUser_id());
|
||||||
channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
|
channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
|
||||||
@ -59,4 +85,58 @@ public class DealUserInfoListener {
|
|||||||
Thread.sleep(1000);
|
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;
|
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.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.suisung.mall.common.modules.account.AccountUserInfo;
|
import com.suisung.mall.common.modules.account.AccountUserInfo;
|
||||||
import com.suisung.mall.common.modules.store.ShopStoreMember;
|
import com.suisung.mall.common.modules.store.ShopStoreMember;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface ShopStoreMemberService extends IService<ShopStoreMember> {
|
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);
|
void dealStoreMember(AccountUserInfo accountUserInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -218,6 +218,7 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl<AccountUserInfoM
|
|||||||
throw new ApiException(ResultCode.FAILED);
|
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){//店铺消费
|
if(level_row != null && user_store_spend_total!=null && store_id!=null){//店铺消费
|
||||||
//查找会员再,更新店铺会员等级 todo
|
//查找会员再,更新店铺会员等级 todo
|
||||||
ShopStoreMemberLevel params = new ShopStoreMemberLevel();
|
ShopStoreMemberLevel params = new ShopStoreMemberLevel();
|
||||||
|
|||||||
@ -45,54 +45,6 @@ public class ShopStoreMemberServiceImpl extends BaseServiceImpl<ShopStoreMemberM
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AccountUserBindConnectService accountUserBindConnectService;
|
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
|
@Override
|
||||||
public void dealStoreMember(AccountUserInfo accountUserInfo){
|
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