mq处理店铺会员升级策略,会员新增策略优化
This commit is contained in:
parent
bde0f1cc53
commit
fa2b179c58
@ -187,7 +187,7 @@ public class AccountController {
|
||||
@RequestParam(name = "user_store_total") Integer user_store_total,
|
||||
@RequestParam(name = "user_fans_vip_total", defaultValue = "0") Integer user_fans_vip_total,
|
||||
@RequestParam(name = "user_fans_team_total", defaultValue = "0") Integer user_fans_team_total) {
|
||||
return CommonResult.success(accountUserInfoService.checkUpdateUserLevel(user_id, user_exp_total, user_fans_total, user_spend_total, user_store_total, user_fans_vip_total, user_fans_team_total,null,null));
|
||||
return CommonResult.success(accountUserInfoService.checkUpdateUserLevel(user_id, user_exp_total, user_fans_total, user_spend_total, user_store_total, user_fans_vip_total, user_fans_team_total));
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/checkUpdateUserLevelById", method = RequestMethod.POST)
|
||||
@ -196,7 +196,7 @@ public class AccountController {
|
||||
@RequestParam(name = "user_exp_total") BigDecimal user_exp_total,
|
||||
@RequestParam(name = "user_fans_total") Integer user_fans_total) {
|
||||
AccountUserAnalytics analytics = accountUserAnalyticsService.get(user_id);
|
||||
return CommonResult.success(accountUserInfoService.checkUpdateUserLevel(user_id, user_exp_total, user_fans_total, analytics.getUser_spend(), 0, 0, 0,null,null));
|
||||
return CommonResult.success(accountUserInfoService.checkUpdateUserLevel(user_id, user_exp_total, user_fans_total, analytics.getUser_spend(), 0, 0, 0));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "用户SNS信息", notes = "用户SNS信息")
|
||||
|
||||
@ -1,19 +1,11 @@
|
||||
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.common.api.BindCode;
|
||||
import com.suisung.mall.account.service.ShopStoreMemberService;
|
||||
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;
|
||||
@ -25,7 +17,6 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@ -36,16 +27,7 @@ public class DealUserInfoListener {
|
||||
private AccountUserInfoService accountUserInfoService;
|
||||
|
||||
@Autowired
|
||||
private AccountUserBindConnectMapper accountUserBindConnectMapper;
|
||||
|
||||
@Autowired
|
||||
private AccountUserInfoMapper accountUserInfoMapper;
|
||||
|
||||
@Autowired
|
||||
private ShopStoreMemberMapper shopStoreMemberMapper;
|
||||
|
||||
@Autowired
|
||||
private ShopStoreMemberLevelMapper shopStoreMemberLevelMapper;
|
||||
private ShopStoreMemberService shopStoreMemberService;
|
||||
|
||||
@RabbitHandler
|
||||
public void listener(byte[] data, Channel channel, Message message) throws IOException, InterruptedException {
|
||||
@ -67,11 +49,7 @@ public class DealUserInfoListener {
|
||||
boolean flag = accountUserInfoService.saveOrUpdate(accountUserInfo);
|
||||
if (flag) {
|
||||
if(accountUserInfo.getStore_id()!=null){
|
||||
AccountUserInfo updateAccountUserInfo= accountUserInfoMapper.selectById(accountUserInfo.getUser_id());
|
||||
// AccountUserInfo updateAccountUserInfo= accountUserInfoService.get(accountUserInfo.getUser_id());
|
||||
updateAccountUserInfo.setStore_name(accountUserInfo.getStore_name());
|
||||
//shopStoreMemberService.dealStoreMember(updateAccountUserInfo);
|
||||
this.dealStoreMember(updateAccountUserInfo);
|
||||
shopStoreMemberService.dealStoreMember(accountUserInfo);
|
||||
}
|
||||
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
||||
} else {
|
||||
@ -86,57 +64,4 @@ public class DealUserInfoListener {
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -3,7 +3,9 @@ package com.suisung.mall.account.listener;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.rabbitmq.client.Channel;
|
||||
import com.suisung.mall.account.service.AccountUserInfoService;
|
||||
import com.suisung.mall.account.service.ShopStoreMemberLevelService;
|
||||
import com.suisung.mall.common.constant.MqConstant;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreMemberLevel;
|
||||
import com.suisung.mall.common.pojo.to.UserLevelTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.core.Message;
|
||||
@ -23,6 +25,9 @@ public class UpgradeUserLevelListener {
|
||||
@Autowired
|
||||
private AccountUserInfoService accountUserInfoService;
|
||||
|
||||
@Autowired
|
||||
private ShopStoreMemberLevelService shopStoreMemberLevelService;
|
||||
|
||||
@RabbitHandler
|
||||
public void listener(byte[] data, Channel channel, Message message) throws IOException, InterruptedException {
|
||||
// 将byte[]转换为String,然后调用现有的处理逻辑
|
||||
@ -36,8 +41,13 @@ public class UpgradeUserLevelListener {
|
||||
// String messageId = message.getMessageProperties().getMessageId();
|
||||
|
||||
try {
|
||||
boolean flag = accountUserInfoService.checkUpdateUserLevel(userLevelTO.getUser_id(), userLevelTO.getUser_exp_total(), userLevelTO.getUser_fans_total(), userLevelTO.getUser_spend_total(), 0, 0, 0,userLevelTO.getStore_id(),userLevelTO.getUser_store_spend_total());
|
||||
boolean flag = accountUserInfoService.checkUpdateUserLevel(userLevelTO.getUser_id(), userLevelTO.getUser_exp_total(), userLevelTO.getUser_fans_total(), userLevelTO.getUser_spend_total(), 0, 0, 0);
|
||||
if (flag) {
|
||||
ShopStoreMemberLevel shopStoreMemberLevel = new ShopStoreMemberLevel();
|
||||
shopStoreMemberLevel.setUserLevelSpend(userLevelTO.getUser_store_spend_total());
|
||||
shopStoreMemberLevel.setUserId(userLevelTO.getUser_id());
|
||||
shopStoreMemberLevel.setStoreId(userLevelTO.getStore_id());
|
||||
shopStoreMemberLevelService.checkUpdateStoreUserLevel(shopStoreMemberLevel);//店铺会员升级
|
||||
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
||||
} else {
|
||||
log.error("消息消费失败,执行upgradeUserLevel异常,当前用户编号:{}", userLevelTO.getUser_id());
|
||||
|
||||
@ -26,7 +26,7 @@ public interface AccountUserInfoService extends IBaseService<AccountUserInfo> {
|
||||
|
||||
Map getLists(QueryWrapper<AccountUserBase> queryWrapper, Integer page, Integer rows);
|
||||
|
||||
boolean checkUpdateUserLevel(Integer user_id, BigDecimal user_exp_total, Integer user_fans_total, BigDecimal user_spend_total, Integer user_store_total, Integer user_fans_vip_total, Integer user_fans_team_total,Integer store_id,BigDecimal user_store_spend_total);
|
||||
boolean checkUpdateUserLevel(Integer user_id, BigDecimal user_exp_total, Integer user_fans_total, BigDecimal user_spend_total, Integer user_store_total, Integer user_fans_vip_total, Integer user_fans_team_total);
|
||||
|
||||
BigDecimal getDistUserLevelConfig(String key, Integer user_id, BigDecimal defaultValue);
|
||||
|
||||
|
||||
@ -1,12 +1,10 @@
|
||||
package com.suisung.mall.account.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreMemberLevel;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ShopStoreMemberLevelService extends IService<ShopStoreMemberLevel> {
|
||||
public interface ShopStoreMemberLevelService {
|
||||
|
||||
List<ShopStoreMemberLevel> findShopStoreMemberLevelList(ShopStoreMemberLevel shopStoreMemberLevel);
|
||||
|
||||
void checkUpdateStoreUserLevel(ShopStoreMemberLevel shopStoreMemberLevel);
|
||||
}
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
package com.suisung.mall.account.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.suisung.mall.common.modules.account.AccountUserInfo;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreMember;
|
||||
|
||||
|
||||
public interface ShopStoreMemberService extends IService<ShopStoreMember> {
|
||||
|
||||
public interface ShopStoreMemberService {
|
||||
|
||||
void dealStoreMember(AccountUserInfo accountUserInfo);
|
||||
}
|
||||
|
||||
@ -1355,7 +1355,7 @@ public class AccountUserBaseServiceImpl extends BaseServiceImpl<AccountUserBaseM
|
||||
|
||||
// 检测升级
|
||||
AccountUserSns user_role_row = accountUserSnsService.get(fx_user_parent_id);
|
||||
accountUserInfoService.checkUpdateUserLevel(fx_user_parent_id, BigDecimal.ZERO, user_role_row.getUser_fans(), BigDecimal.ZERO, 0, 0, 0,null,null);
|
||||
accountUserInfoService.checkUpdateUserLevel(fx_user_parent_id, BigDecimal.ZERO, user_role_row.getUser_fans(), BigDecimal.ZERO, 0, 0, 0);
|
||||
}
|
||||
} else {
|
||||
// 判断是否需要减少用户关系
|
||||
|
||||
@ -160,9 +160,8 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl<AccountUserInfoM
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkUpdateUserLevel(Integer user_id, BigDecimal user_exp_total, Integer user_fans_total, BigDecimal user_spend_total, Integer user_store_total, Integer user_fans_vip_total, Integer user_fans_team_total,Integer store_id,BigDecimal user_store_spend_total) {
|
||||
public boolean checkUpdateUserLevel(Integer user_id, BigDecimal user_exp_total, Integer user_fans_total, BigDecimal user_spend_total, Integer user_store_total, Integer user_fans_vip_total, Integer user_fans_team_total) {
|
||||
AccountBaseUserLevel level_row = null;
|
||||
|
||||
if (CheckUtil.isNotEmpty(user_exp_total)) {
|
||||
// 需要设置经验值,设置为0否则忽略不计
|
||||
QueryWrapper<AccountBaseUserLevel> levelQueryWrapper = new QueryWrapper<>();
|
||||
@ -218,30 +217,6 @@ 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();
|
||||
params.setUserId(user_id);
|
||||
params.setStoreId(store_id);
|
||||
List<ShopStoreMemberLevel> shopStoreMemberLevels= shopStoreMemberLevelService.findShopStoreMemberLevelList(params);
|
||||
if(shopStoreMemberLevels!=null && !shopStoreMemberLevels.isEmpty()){
|
||||
ShopStoreMemberLevel updateShopStoreMemberLevel= shopStoreMemberLevels.get(0);
|
||||
BigDecimal storeSpend=NumberUtil.add(updateShopStoreMemberLevel.getUserLevelSpend(),user_store_spend_total);//店铺会员总消费
|
||||
QueryWrapper<AccountBaseUserLevel> levelQueryWrapper = new QueryWrapper<>();
|
||||
levelQueryWrapper.le("user_level_spend", storeSpend)
|
||||
.gt("user_level_spend", "0.00").orderByDesc("user_level_spend");
|
||||
level_row = accountBaseUserLevelService.findOne(levelQueryWrapper);
|
||||
updateShopStoreMemberLevel.setUserLevelSpend(storeSpend);
|
||||
if(level_row != null && CheckUtil.isNotEmpty(level_row.getUser_level_id())){
|
||||
Integer user_level_id = level_row.getUser_level_id();
|
||||
String user_level_name = level_row.getUser_level_name();
|
||||
updateShopStoreMemberLevel.setUserLevelId(user_level_id);
|
||||
updateShopStoreMemberLevel.setUserLevelName(user_level_name);
|
||||
}
|
||||
shopStoreMemberLevelService.updateById(updateShopStoreMemberLevel);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -451,7 +426,7 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl<AccountUserInfoM
|
||||
}
|
||||
}
|
||||
|
||||
if (!checkUpdateUserLevel(user_id, BigDecimal.ZERO, user_fans, BigDecimal.ZERO, 0, 0, 0,null,null)) {
|
||||
if (!checkUpdateUserLevel(user_id, BigDecimal.ZERO, user_fans, BigDecimal.ZERO, 0, 0, 0)) {
|
||||
throw new ApiException(ResultCode.FAILED);
|
||||
}
|
||||
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
package com.suisung.mall.account.service.impl;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.suisung.mall.account.mapper.AccountBaseUserLevelMapper;
|
||||
import com.suisung.mall.account.mapper.ShopStoreMemberLevelMapper;
|
||||
import com.suisung.mall.account.service.ShopStoreMemberLevelService;
|
||||
import com.suisung.mall.common.modules.account.AccountBaseUserLevel;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreMemberLevel;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.common.utils.CheckUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@ -16,26 +21,67 @@ import java.util.List;
|
||||
* 店铺会员-会员等级
|
||||
* </p>
|
||||
*/
|
||||
@Transactional
|
||||
@Service
|
||||
public class ShopStoreMemberLevelServiceImpl extends BaseServiceImpl<ShopStoreMemberLevelMapper, ShopStoreMemberLevel> implements ShopStoreMemberLevelService {
|
||||
@Slf4j
|
||||
public class ShopStoreMemberLevelServiceImpl implements ShopStoreMemberLevelService {
|
||||
@Autowired
|
||||
private ShopStoreMemberLevelMapper shopStoreMemberLevelMapper;
|
||||
@Autowired
|
||||
private AccountBaseUserLevelMapper accountBaseUserLevelMapper;
|
||||
|
||||
@Override
|
||||
public List<ShopStoreMemberLevel> findShopStoreMemberLevelList(ShopStoreMemberLevel shopStoreMemberLevel) {
|
||||
QueryWrapper<ShopStoreMemberLevel> queryWrapper = new QueryWrapper<>();
|
||||
if(shopStoreMemberLevel.getStoreId()!=null){
|
||||
queryWrapper.eq("store_id",shopStoreMemberLevel.getStoreId());
|
||||
public void checkUpdateStoreUserLevel(ShopStoreMemberLevel shopStoreMemberLevel) {
|
||||
log.info("MQ店铺会员升级开始shopStoreMemberLevel:{}", shopStoreMemberLevel);
|
||||
int maxAttempts = 3; // 最多尝试3次
|
||||
int currentAttempt = 0;
|
||||
boolean success = false;
|
||||
while (currentAttempt < maxAttempts && !success) {
|
||||
success = dealStoreUserLevel(shopStoreMemberLevel);
|
||||
if (!success) {
|
||||
currentAttempt++;
|
||||
if (currentAttempt < maxAttempts) {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
log.error("线程被中断,重试终止", e);
|
||||
Thread.currentThread().interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!success) {
|
||||
log.error("店铺会员升级失败,已达到最大重试次数");
|
||||
}
|
||||
}
|
||||
|
||||
if(shopStoreMemberLevel.getMemberLevelId()!=null){
|
||||
queryWrapper.eq("store_member_id",shopStoreMemberLevel.getStoreMemberId());
|
||||
private boolean dealStoreUserLevel(ShopStoreMemberLevel shopStoreMemberLevel){
|
||||
if(shopStoreMemberLevel.getUserLevelSpend()!=null && shopStoreMemberLevel.getStoreId()!=null && shopStoreMemberLevel.getUserId()!=null){//店铺消费
|
||||
//查找会员再,更新店铺会员等级 todo
|
||||
QueryWrapper<ShopStoreMemberLevel> params = new QueryWrapper<>();
|
||||
params.eq("user_id", shopStoreMemberLevel.getUserId());
|
||||
params.eq("store_id", shopStoreMemberLevel.getStoreId());
|
||||
List<ShopStoreMemberLevel> shopStoreMemberLevels= shopStoreMemberLevelMapper.selectList(params);
|
||||
if(shopStoreMemberLevels!=null && !shopStoreMemberLevels.isEmpty()) {
|
||||
ShopStoreMemberLevel updateShopStoreMemberLevel = shopStoreMemberLevels.get(0);
|
||||
BigDecimal storeSpend = NumberUtil.add(updateShopStoreMemberLevel.getUserLevelSpend(), shopStoreMemberLevel.getUserLevelSpend());//店铺会员总消费
|
||||
QueryWrapper<AccountBaseUserLevel> levelQueryWrapper = new QueryWrapper<>();
|
||||
levelQueryWrapper.le("user_level_spend", storeSpend)
|
||||
.gt("user_level_spend", "0.00").orderByDesc("user_level_spend");
|
||||
AccountBaseUserLevel level_row = accountBaseUserLevelMapper.selectOne(levelQueryWrapper);
|
||||
updateShopStoreMemberLevel.setUserLevelSpend(storeSpend);
|
||||
if (level_row != null && CheckUtil.isNotEmpty(level_row.getUser_level_id())) {
|
||||
Integer user_level_id = level_row.getUser_level_id();
|
||||
String user_level_name = level_row.getUser_level_name();
|
||||
updateShopStoreMemberLevel.setUserLevelId(user_level_id);
|
||||
updateShopStoreMemberLevel.setUserLevelName(user_level_name);
|
||||
}
|
||||
|
||||
if(shopStoreMemberLevel.getUserId()!=null){
|
||||
queryWrapper.eq("user_id",shopStoreMemberLevel.getUserId());
|
||||
shopStoreMemberLevelMapper.updateById(updateShopStoreMemberLevel);
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,17 +2,16 @@ package com.suisung.mall.account.service.impl;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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.AccountUserBindConnectService;
|
||||
import com.suisung.mall.account.service.ShopStoreMemberLevelService;
|
||||
import com.suisung.mall.account.service.ShopStoreMemberService;
|
||||
import com.suisung.mall.common.api.BindCode;
|
||||
import com.suisung.mall.common.constant.CommonConstant;
|
||||
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 com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -25,17 +24,24 @@ import java.util.List;
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ShopStoreMemberServiceImpl extends BaseServiceImpl<ShopStoreMemberMapper, ShopStoreMember> implements ShopStoreMemberService {
|
||||
public class ShopStoreMemberServiceImpl implements ShopStoreMemberService {
|
||||
|
||||
@Autowired
|
||||
private ShopStoreMemberLevelService shopStoreMemberLevelService;
|
||||
private ShopStoreMemberMapper shopStoreMemberMapper;
|
||||
|
||||
@Autowired
|
||||
private AccountUserBindConnectService accountUserBindConnectService;
|
||||
private AccountUserBindConnectMapper accountUserBindConnectMapper;
|
||||
|
||||
@Autowired
|
||||
private ShopStoreMemberLevelMapper shopStoreMemberLevelMapper;
|
||||
|
||||
@Autowired
|
||||
private AccountUserInfoMapper accountUserInfoMapper;
|
||||
|
||||
@Override
|
||||
public void dealStoreMember(AccountUserInfo accountUserInfo){
|
||||
AccountUserInfo updateAccountUserInfo= accountUserInfoMapper.selectById(accountUserInfo.getUser_id());
|
||||
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();
|
||||
@ -43,15 +49,15 @@ public class ShopStoreMemberServiceImpl extends BaseServiceImpl<ShopStoreMemberM
|
||||
QueryWrapper<ShopStoreMember> params=new QueryWrapper<>();
|
||||
params.eq("store_id",store_id);
|
||||
params.eq("user_id",user_id);
|
||||
List<ShopStoreMember> shopStoreMembers= this.list(params);
|
||||
List<ShopStoreMember> shopStoreMembers= shopStoreMemberMapper.selectList(params);
|
||||
if(shopStoreMembers.isEmpty()){
|
||||
AccountUserBindConnect paramAccountUserBindConnect=new AccountUserBindConnect();
|
||||
paramAccountUserBindConnect.setBind_id("+86"+accountUserInfo.getUser_mobile());
|
||||
paramAccountUserBindConnect.setBind_type(BindCode.MOBILE);
|
||||
paramAccountUserBindConnect.setUser_id(user_id);
|
||||
paramAccountUserBindConnect.setBind_active(CommonConstant.Enable);
|
||||
paramAccountUserBindConnect.setUser_type(0);
|
||||
List<AccountUserBindConnect> accountUserBindConnectList = accountUserBindConnectService.getAllBindList(paramAccountUserBindConnect);
|
||||
QueryWrapper<AccountUserBindConnect> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("bind_id", "+86"+updateAccountUserInfo.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();
|
||||
@ -61,10 +67,10 @@ public class ShopStoreMemberServiceImpl extends BaseServiceImpl<ShopStoreMemberM
|
||||
shopStoreMember.setBind_openid(accountUserBindConnect.getBind_openid());
|
||||
shopStoreMember.setUserNickname(accountUserBindConnect.getBind_nickname());
|
||||
shopStoreMember.setUserAccount(accountUserBindConnect.getBind_id());
|
||||
this.save(shopStoreMember);
|
||||
shopStoreMemberMapper.insert(shopStoreMember);
|
||||
ShopStoreMemberLevel shopStoreMemberLevel = getShopStoreMemberLevel(store_id, shopStoreMember);
|
||||
shopStoreMemberLevel.setUserId(user_id);
|
||||
shopStoreMemberLevelService.saveOrUpdate(shopStoreMemberLevel);
|
||||
shopStoreMemberLevelMapper.insert(shopStoreMemberLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user