From 6e94674acf4db24c5d4b4eda3ea5bf912325dff1 Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Wed, 14 Jan 2026 15:23:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=97=E9=93=BA=E4=BC=9A=E5=91=98mq=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ShopStoreMemberLevelMapper.java | 9 + .../account/mapper/ShopStoreMemberMapper.java | 9 + .../AccountUserBindConnectService.java | 2 + .../service/ShopStoreMemberLevelService.java | 12 ++ .../service/ShopStoreMemberService.java | 23 +++ .../AccountUserBindConnectServiceImpl.java | 11 ++ .../impl/AccountUserInfoServiceImpl.java | 17 +- .../impl/ShopStoreMemberLevelServiceImpl.java | 42 +++++ .../impl/ShopStoreMemberServiceImpl.java | 165 ++++++++++++++++++ .../modules/account/AccountUserInfo.java | 4 + .../impl/ShopOrderBaseServiceImpl.java | 3 + .../impl/ShopStoreMemberServiceImpl.java | 1 - 12 files changed, 290 insertions(+), 8 deletions(-) create mode 100644 mall-account/src/main/java/com/suisung/mall/account/mapper/ShopStoreMemberLevelMapper.java create mode 100644 mall-account/src/main/java/com/suisung/mall/account/mapper/ShopStoreMemberMapper.java create mode 100644 mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberLevelService.java create mode 100644 mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberService.java create mode 100644 mall-account/src/main/java/com/suisung/mall/account/service/impl/ShopStoreMemberLevelServiceImpl.java create mode 100644 mall-account/src/main/java/com/suisung/mall/account/service/impl/ShopStoreMemberServiceImpl.java diff --git a/mall-account/src/main/java/com/suisung/mall/account/mapper/ShopStoreMemberLevelMapper.java b/mall-account/src/main/java/com/suisung/mall/account/mapper/ShopStoreMemberLevelMapper.java new file mode 100644 index 00000000..9753537c --- /dev/null +++ b/mall-account/src/main/java/com/suisung/mall/account/mapper/ShopStoreMemberLevelMapper.java @@ -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 { +} diff --git a/mall-account/src/main/java/com/suisung/mall/account/mapper/ShopStoreMemberMapper.java b/mall-account/src/main/java/com/suisung/mall/account/mapper/ShopStoreMemberMapper.java new file mode 100644 index 00000000..699d1570 --- /dev/null +++ b/mall-account/src/main/java/com/suisung/mall/account/mapper/ShopStoreMemberMapper.java @@ -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 { +} diff --git a/mall-account/src/main/java/com/suisung/mall/account/service/AccountUserBindConnectService.java b/mall-account/src/main/java/com/suisung/mall/account/service/AccountUserBindConnectService.java index 8ad03781..81d35e0b 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/service/AccountUserBindConnectService.java +++ b/mall-account/src/main/java/com/suisung/mall/account/service/AccountUserBindConnectService.java @@ -113,4 +113,6 @@ public interface AccountUserBindConnectService extends IBaseService accountUserBindConnectList); + + List getAllBindList(AccountUserBindConnect accountUserBindConnect); } diff --git a/mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberLevelService.java b/mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberLevelService.java new file mode 100644 index 00000000..55943f2e --- /dev/null +++ b/mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberLevelService.java @@ -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 { + + List findShopStoreMemberLevelList(ShopStoreMemberLevel 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 new file mode 100644 index 00000000..b569a552 --- /dev/null +++ b/mall-account/src/main/java/com/suisung/mall/account/service/ShopStoreMemberService.java @@ -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 { + + 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/AccountUserBindConnectServiceImpl.java b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBindConnectServiceImpl.java index b18f484a..fa1091b9 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBindConnectServiceImpl.java +++ b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBindConnectServiceImpl.java @@ -516,6 +516,17 @@ public class AccountUserBindConnectServiceImpl extends BaseServiceImpl getAllBindList(AccountUserBindConnect accountUserBindConnect) { + QueryWrapper 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 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 5b6d715b..36fbf476 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 @@ -81,6 +81,10 @@ public class AccountUserInfoServiceImpl extends BaseServiceImpl shopStoreMemberLevels= shopService.findShopStoreMemberLevelList(params); + ShopStoreMemberLevel params = new ShopStoreMemberLevel(); + params.setUserId(user_id); + params.setStoreId(store_id); + List 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 + * 店铺会员-会员等级 + *

+ */ +@Transactional +@Service +public class ShopStoreMemberLevelServiceImpl extends BaseServiceImpl implements ShopStoreMemberLevelService { + + @Override + public List findShopStoreMemberLevelList(ShopStoreMemberLevel shopStoreMemberLevel) { + QueryWrapper 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); + } + + +} diff --git a/mall-account/src/main/java/com/suisung/mall/account/service/impl/ShopStoreMemberServiceImpl.java b/mall-account/src/main/java/com/suisung/mall/account/service/impl/ShopStoreMemberServiceImpl.java new file mode 100644 index 00000000..bf891d47 --- /dev/null +++ b/mall-account/src/main/java/com/suisung/mall/account/service/impl/ShopStoreMemberServiceImpl.java @@ -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; + +/** + *

+ * 店铺会员-店铺会员 + *

+ */ +@Transactional +@Service +@Slf4j +public class ShopStoreMemberServiceImpl extends BaseServiceImpl implements ShopStoreMemberService { + + @Autowired + private ShopStoreMemberLevelService shopStoreMemberLevelService; + + @Autowired + private AccountUserBindConnectService accountUserBindConnectService; + + @Override + public Page 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){ + 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= 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 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("文件名编码失败"); + } + } + + + +} diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/account/AccountUserInfo.java b/mall-common/src/main/java/com/suisung/mall/common/modules/account/AccountUserInfo.java index 7d8df49e..a305b4d2 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/account/AccountUserInfo.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/account/AccountUserInfo.java @@ -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; } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index 19a3a11a..9a5fcce7 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -3389,6 +3389,8 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl