From feb9efd440c1a36e5575b0a9ed6293808198e024 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 14 May 2025 09:54:31 +0800
Subject: [PATCH] feat(mall): 更新会员钱包相关功能
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 76 +++++++++++++++++++++++++++++++-------
1 files changed, 62 insertions(+), 14 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index eecd7a2..d9bab10 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -89,6 +89,7 @@
private final MallStoreItemMapper mallStoreItemMapper;
private final MallStoreMemberMapper mallStoreMemberMapper;
private final MallDoctorMapper mallDoctorMapper;
+ private final HappyMemberLevelMapper happyMemberLevelMapper;
@Value("${spring.profiles.active}")
@@ -264,7 +265,18 @@
Long id = LoginUserUtil.getLoginUser().getId();
MallMember mallMember = this.baseMapper.selectById(id);
+
+
MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember);
+
+ HappyMemberLevel happyMemberLevel = happyMemberLevelMapper.selectOne(
+ new LambdaQueryWrapper<HappyMemberLevel>()
+ .select(HappyMemberLevel::getName)
+ .eq(HappyMemberLevel::getCode, mallMember.getDirector())
+ );
+ if(happyMemberLevel != null){
+ mallMemberVo.setLevelName(happyMemberLevel.getName());
+ }
if(StrUtil.isNotEmpty(mallMember.getReferrerId())){
MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId());
if (referMember != null) {
@@ -302,7 +314,7 @@
mallMemberVo.setVipInfo(mallVipConfig);
mallMemberVo.setBalance(wallet.getBalance());
-// mallMemberVo.setScore(wallet.getScore());
+ mallMemberVo.setScore(wallet.getScore());
mallMemberVo.setPrizeScore(wallet.getPrizeScore());
// mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
return new FebsResponse().success().data(mallMemberVo);
@@ -678,6 +690,9 @@
wallet.setMemberId(mallMember.getId());
mallMemberWalletMapper.insert(wallet);
} else {
+ if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) {
+ throw new FebsException("账号已停用");
+ }
mallMember.setSessionKey(sessionKey);
this.baseMapper.updateById(mallMember);
}
@@ -1097,10 +1112,12 @@
MallMember member = this.baseMapper.selectById(loginUser.getId());
- MallMember mallMember = new MallMember();
- mallMember.setId(member.getId());
- mallMember.setLastLoginTime(new Date());
- this.baseMapper.updateById(mallMember);
+// MallMember mallMember = new MallMember();
+// mallMember.setId(member.getId());
+// mallMember.setLastLoginTime(new Date());
+// this.baseMapper.updateById(mallMember);
+
+ this.baseMapper.updateLastLoginTime(member.getId(),new Date());
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNALIVE_COUPON.getType(), DataDictionaryEnum.UNALIVE_COUPON.getCode());
if (dic == null || StrUtil.isBlank(dic.getValue())) {
@@ -1340,18 +1357,19 @@
// 获取当前登录用户的ID
Long memberId = LoginUserUtil.getLoginUser().getId();
+ log.info("开始绑定医生{}",memberId);
// 从DTO中提取邀请ID和门店会员ID
String inviteId = dto.getInviteId();
Long storeMemberId = dto.getStoreMemberId();
// 根据门店会员ID查询门店会员信息
- MallStoreMember mallStoreMember = mallStoreMemberMapper.selectById(storeMemberId);
+ MallStoreMember mallStoreMember = mallStoreMemberMapper.selectOne(
+ new LambdaQueryWrapper<MallStoreMember>()
+ .eq(MallStoreMember::getId,storeMemberId)
+ .eq(MallStoreMember::getMemberId,memberId)
+ );
// 如果门店会员信息为空,抛出异常
if(null == mallStoreMember){
- throw new FebsException("当前检测记录无法绑定!");
- }
- // 如果门店会员的会员ID与当前登录用户ID不匹配,抛出异常
- if(mallStoreMember.getMemberId() != memberId){
throw new FebsException("当前检测记录无法绑定!");
}
@@ -1363,7 +1381,11 @@
}
// 查询与当前门店会员ID关联的医生列表
- List<MallDoctor> mallDoctors = mallDoctorMapper.selectList(new LambdaQueryWrapper<MallDoctor>().eq(MallDoctor::getStoreMemberId, mallStoreMember.getId()));
+ List<MallDoctor> mallDoctors = mallDoctorMapper.selectList(
+ new LambdaQueryWrapper<MallDoctor>()
+ .eq(MallDoctor::getStoreMemberId, mallStoreMember.getId())
+ .eq(MallDoctor::getMemberId, mallMember.getId())
+ );
// 如果医生列表为空,创建新的医生对象并设置相关信息,然后插入数据库
if(CollUtil.isEmpty(mallDoctors)){
MallDoctor mallDoctor = new MallDoctor();
@@ -1372,8 +1394,13 @@
mallDoctor.setBindMemberId(mallStoreMember.getMemberId());
mallDoctor.setBindPhone(mallStoreMember.getPhone());
mallDoctor.setBindName(mallStoreMember.getName());
- mallDoctor.setBindInfo(mallStoreMember.getAccount());
mallDoctor.setBindAge(mallStoreMember.getAge());
+
+ Long storeId = mallStoreMember.getStoreId();
+ Long storeItemId = mallStoreMember.getStoreItemId();
+ MallStore mallStore = mallStoreMapper.selectById(storeId);
+ MallStoreItem mallStoreItem = mallStoreItemMapper.selectById(storeItemId);
+ mallDoctor.setBindInfo(mallStore.getName()+"-"+mallStoreItem.getCode());
mallDoctorMapper.insert(mallDoctor);
}
@@ -1447,7 +1474,8 @@
ApiDoctorListVo apiDoctorListVo = new ApiDoctorListVo();
apiDoctorListVo.setId(mallDoctor.getId());
apiDoctorListVo.setStoreMemberId(mallDoctor.getStoreMemberId());
- apiDoctorListVo.setName(mallDoctor.getBindName());
+ MallMember mallMember = this.baseMapper.selectById(mallDoctor.getMemberId());
+ apiDoctorListVo.setName(mallMember.getName());
apiDoctorListVo.setPhone(mallDoctor.getBindPhone());
apiDoctorListVo.setBindAge(mallDoctor.getBindAge());
apiDoctorListVo.setBindInfo(mallDoctor.getBindInfo());
@@ -1466,13 +1494,33 @@
Long memberId = LoginUserUtil.getLoginUser().getId();
MallDoctor mallDoctor = mallDoctorMapper.selectById(dto.getId());
- if(memberId != mallDoctor.getBindMemberId()){
+ if(!memberId.equals(mallDoctor.getBindMemberId())){
throw new FebsException("当前授权无法删除!");
}
mallDoctorMapper.deleteById(dto.getId());
return new FebsResponse().success().message("操作成功");
}
+ @Override
+ public FebsResponse flowList(ApiMoneyFlowDto dto) {
+ Long id = LoginUserUtil.getLoginUser().getId();
+ IPage<ApiMoneyFlowVo> page = new Page<>(dto.getPageNum(), dto.getPageSize());
+ dto.setMemberId(id);
+ IPage<ApiMoneyFlowVo> pages = mallMoneyFlowMapper.selectFlowInPage(page, dto);
+ return new FebsResponse().success().data(pages);
+ }
+
+ @Override
+ public FebsResponse flowHeader() {
+ // 获取当前登录用户的ID
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ ApiMoneyFlowHeaderVo apiMoneyFlowHeaderVo = new ApiMoneyFlowHeaderVo();
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+ apiMoneyFlowHeaderVo.setBalance(mallMemberWallet.getBalance());
+ apiMoneyFlowHeaderVo.setPrizeScore(mallMemberWallet.getPrizeScore());
+ return new FebsResponse().success().data(apiMoneyFlowHeaderVo);
+ }
+
public static void main(String[] args) {
Long userld = 16425L;
String shopAccount = "爱和美医疗";
--
Gitblit v1.9.1