店铺会员mq新增
This commit is contained in:
parent
0597b03f8d
commit
9b558f2bd3
@ -0,0 +1,9 @@
|
||||
package com.suisung.mall.account.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreMemberLevel;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public interface ShopStoreMemberLevelMapper extends BaseMapper<ShopStoreMemberLevel> {
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package com.suisung.mall.account.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreMember;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface ShopStoreMemberMapper extends BaseMapper<ShopStoreMember> {
|
||||
}
|
||||
@ -113,4 +113,6 @@ public interface AccountUserBindConnectService extends IBaseService<AccountUserB
|
||||
* @return
|
||||
*/
|
||||
ThirdApiRes updateBatchAccountUserBindConnect(List<AccountUserBindConnect> accountUserBindConnectList);
|
||||
|
||||
List<AccountUserBindConnect> getAllBindList(AccountUserBindConnect accountUserBindConnect);
|
||||
}
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
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> {
|
||||
|
||||
List<ShopStoreMemberLevel> findShopStoreMemberLevelList(ShopStoreMemberLevel shopStoreMemberLevel);
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
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);
|
||||
}
|
||||
@ -516,6 +516,17 @@ public class AccountUserBindConnectServiceImpl extends BaseServiceImpl<AccountUs
|
||||
return new ThirdApiRes().fail(250, "保存异常");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AccountUserBindConnect> getAllBindList(AccountUserBindConnect accountUserBindConnect) {
|
||||
QueryWrapper<AccountUserBindConnect> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("bind_id", accountUserBindConnect.getBind_id());
|
||||
queryWrapper.eq("bind_type", BindCode.MOBILE)
|
||||
.eq("user_type", 0)
|
||||
.eq("user_id", accountUserBindConnect.getUser_id())
|
||||
.orderByAsc("bind_time");
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 用户绑定手机号和openid
|
||||
|
||||
@ -81,6 +81,10 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl<AccountUserInfoM
|
||||
@Autowired
|
||||
private PayService payService;
|
||||
|
||||
@Autowired
|
||||
private ShopStoreMemberLevelService shopStoreMemberLevelService;
|
||||
|
||||
|
||||
/**
|
||||
* 实名认证页面
|
||||
*
|
||||
@ -214,12 +218,12 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl<AccountUserInfoM
|
||||
throw new ApiException(ResultCode.FAILED);
|
||||
}
|
||||
}
|
||||
if(level_row != null && user_store_spend_total!=null){//店铺消费
|
||||
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= shopService.findShopStoreMemberLevelList(params);
|
||||
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);//店铺会员总消费
|
||||
@ -234,11 +238,10 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl<AccountUserInfoM
|
||||
updateShopStoreMemberLevel.setUserLevelId(user_level_id);
|
||||
updateShopStoreMemberLevel.setUserLevelName(user_level_name);
|
||||
}
|
||||
shopService.saveShopStoreMemberLevel(updateShopStoreMemberLevel);
|
||||
shopStoreMemberLevelService.updateById(updateShopStoreMemberLevel);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
package com.suisung.mall.account.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.suisung.mall.account.mapper.ShopStoreMemberLevelMapper;
|
||||
import com.suisung.mall.account.service.ShopStoreMemberLevelService;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreMemberLevel;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 店铺会员-会员等级
|
||||
* </p>
|
||||
*/
|
||||
@Transactional
|
||||
@Service
|
||||
public class ShopStoreMemberLevelServiceImpl extends BaseServiceImpl<ShopStoreMemberLevelMapper, ShopStoreMemberLevel> implements ShopStoreMemberLevelService {
|
||||
|
||||
@Override
|
||||
public List<ShopStoreMemberLevel> findShopStoreMemberLevelList(ShopStoreMemberLevel shopStoreMemberLevel) {
|
||||
QueryWrapper<ShopStoreMemberLevel> queryWrapper = new QueryWrapper<>();
|
||||
if(shopStoreMemberLevel.getStoreId()!=null){
|
||||
queryWrapper.eq("store_id",shopStoreMemberLevel.getStoreId());
|
||||
}
|
||||
|
||||
if(shopStoreMemberLevel.getMemberLevelId()!=null){
|
||||
queryWrapper.eq("store_member_id",shopStoreMemberLevel.getStoreMemberId());
|
||||
}
|
||||
|
||||
if(shopStoreMemberLevel.getUserId()!=null){
|
||||
queryWrapper.eq("user_id",shopStoreMemberLevel.getUserId());
|
||||
}
|
||||
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,165 @@
|
||||
package com.suisung.mall.account.service.impl;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.domain.UserDto;
|
||||
import com.suisung.mall.common.exception.ApiException;
|
||||
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.common.utils.ContextUtil;
|
||||
import com.suisung.mall.common.utils.StringUtils;
|
||||
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;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 店铺会员-店铺会员
|
||||
* </p>
|
||||
*/
|
||||
@Transactional
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ShopStoreMemberServiceImpl extends BaseServiceImpl<ShopStoreMemberMapper, ShopStoreMember> implements ShopStoreMemberService {
|
||||
|
||||
@Autowired
|
||||
private ShopStoreMemberLevelService shopStoreMemberLevelService;
|
||||
|
||||
@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){
|
||||
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= this.list(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);
|
||||
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());
|
||||
this.save(shopStoreMember);
|
||||
ShopStoreMemberLevel shopStoreMemberLevel = getShopStoreMemberLevel(store_id, shopStoreMember);
|
||||
shopStoreMemberLevel.setUserId(user_id);
|
||||
shopStoreMemberLevelService.saveOrUpdate(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;
|
||||
}
|
||||
|
||||
|
||||
// 设置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("文件名编码失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -126,4 +126,8 @@ public class AccountUserInfo implements Serializable {
|
||||
@ApiModelProperty(value = "店铺id")
|
||||
@TableField(exist = false)
|
||||
private Integer store_id;
|
||||
|
||||
@ApiModelProperty(value = "店铺名称")
|
||||
@TableField(exist = false)
|
||||
private String store_name;
|
||||
}
|
||||
|
||||
@ -3389,6 +3389,8 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
||||
BigDecimal min = NumberUtil.min(NumberUtil.mul(exp_consume_rate, exp_consume_rate), exp_consume_max);
|
||||
|
||||
AccountUserInfo info_data = shopUserExpHistoryService.experience(user_id, min, LevelCode.EXP_TYPE_CONSUME, "");
|
||||
info_data.setStore_id(store_id);
|
||||
info_data.setStore_name(shopStoreBaseService.get(store_id).getStore_name());
|
||||
// 更新用户等级
|
||||
mqMessageVos.add(new MqMessageVo(MqConstant.ACCOUNT_EXCHANGE, MqConstant.ACCOUNT_INFO_ROUTING_KEY, JSONUtil.parseObj(info_data)));
|
||||
|
||||
@ -3412,6 +3414,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
||||
if (analytics != null) {
|
||||
UserLevelTO userLevelTO = new UserLevelTO(user_id, BigDecimal.ZERO, 0, analytics.getUser_spend(), 0, 0, 0,store_id,order_payment_amount);
|
||||
mqMessageVos.add(new MqMessageVo(MqConstant.ACCOUNT_EXCHANGE, MqConstant.ACCOUNT_UPGRADE_ROUTING_KEY, JSONUtil.parseObj(userLevelTO)));
|
||||
//异步处理升级和店铺会员
|
||||
// todo do_action("init_order_paid", order_base_rows, order_item_rows);
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,7 +23,6 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user