From 6539b325b5ce95d1fafa864c75a32279c954167f Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 07 Feb 2025 11:03:31 +0800
Subject: [PATCH] refactor(mall): 重构订单退款流程

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |  106 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 56 insertions(+), 50 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 83373b4..194a26d 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
@@ -1,11 +1,16 @@
 package cc.mrbird.febs.mall.service.impl;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.enumerates.*;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
+import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.properties.XcxProperties;
 import cc.mrbird.febs.common.utils.*;
-import cc.mrbird.febs.mall.conversion.*;
+import cc.mrbird.febs.mall.conversion.MallMemberConversion;
+import cc.mrbird.febs.mall.conversion.MallShopApplyConversion;
+import cc.mrbird.febs.mall.conversion.MallStoreConversion;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
@@ -14,7 +19,6 @@
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
 import cc.mrbird.febs.pay.util.MD5;
-import cc.mrbird.febs.pay.util.Util;
 import cc.mrbird.febs.vip.VipSettingUnAliveSettingBo;
 import cc.mrbird.febs.vip.entity.MallVipConfig;
 import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
@@ -38,19 +42,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.protocol.HttpClientContext;
-import org.apache.http.entity.ByteArrayEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.security.SecurityProperties;
-import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -103,20 +95,21 @@
     @Transactional(rollbackFor = Exception.class)
     @Override
     public FebsResponse register(RegisterDto registerDto) {
-        MallMember mallMember = this.baseMapper.selectInfoByAccount(registerDto.getAccount());
-        if (mallMember != null) {
-            throw new FebsException("该账号已被占用");
-        }
-
-        List<MallMember> mallMembers = this.baseMapper.selectMemberByName(registerDto.getName());
-        if (CollUtil.isNotEmpty(mallMembers)) {
-            MallRegisterAppeal registerAppeal = mallRegisterAppealMapper.selectByPhoneAndName(registerDto.getName(), registerDto.getAccount());
-            if (registerAppeal == null || registerAppeal.getStatus() != 1) {
-                return new FebsResponse().code(HttpStatus.ACCEPTED).message("用户名已存在");
-            }
-        }
-
         String account = registerDto.getAccount();
+        MallMember mallMember = this.baseMapper.selectInfoByAccount(account);
+        if (mallMember != null) {
+            throw new FebsException("手机号已注册");
+        }
+        /**
+         * 验证两次密码是否一致
+         */
+        String password = registerDto.getPassword();
+        String passwordAgain = registerDto.getPasswordAgain();
+        if(!password.equals(passwordAgain)){
+            throw new FebsException("密码不一致");
+        }
+
+        //邀请码为admin的时候(后台添加用户),不需要验证验证码
         if (!"admin".equals(registerDto.getRegistType())) {
             String code = registerDto.getCode();
             boolean flags = commonService.verifyCode(account, code);
@@ -134,22 +127,23 @@
         } else {
             mallMember.setEmail(registerDto.getAccount());
         }
-
+        //对于邀请码的验证和上级联系人的验证
         Integer count = this.baseMapper.selectCount(null);
         if (count != null && count != 0) {
-            MallMember inviteMember = this.baseMapper.selectInfoByInviteId(registerDto.getInviteId());
-            if (inviteMember == null) {
-                throw new FebsException("邀请码不存在");
+            if(!StrUtil.isEmpty(registerDto.getInviteId())){
+                String inviteId = registerDto.getInviteId();
+                MallMember inviteMember = this.baseMapper.selectInfoByInviteId(inviteId);
+                if (inviteMember == null) {
+                    throw new FebsException("邀请码不存在");
+                }
+                mallMember.setReferrerId(registerDto.getInviteId());
             }
-
-            mallMember.setReferrerId(registerDto.getInviteId());
-
         }
-        mallMember.setName(registerDto.getName());
+        mallMember.setName(account);
         mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
         mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
         mallMember.setSex("男");
-        mallMember.setBindPhone(registerDto.getAccount());
+        mallMember.setBindPhone(account);
 
         this.baseMapper.insert(mallMember);
 
@@ -181,6 +175,12 @@
 
         if (StrUtil.isNotBlank(ids)) {
             mallMember.setReferrerIds(ids);
+        }
+        //会员VIP等级
+        List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
+        if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
+            MallVipConfig mallVipConfig = configs.get(0);
+            mallMember.setLevel(mallVipConfig.getCode());
         }
         this.baseMapper.updateById(mallMember);
 
@@ -252,7 +252,7 @@
     public FebsResponse logout() {
         Long id = LoginUserUtil.getLoginUser().getId();
 
-        String redisKey = AppContants.XCX_LOGIN_PREFIX + id;
+        String redisKey = AppContants.APP_LOGIN_PREFIX + id;
         String existToken = redisUtils.getString(redisKey);
         if (StrUtil.isNotBlank(existToken)) {
             Object o = redisUtils.get(existToken);
@@ -260,7 +260,7 @@
                 redisUtils.del(existToken);
             }
         }
-        redisUtils.del(AppContants.XCX_LOGIN_PREFIX + id);
+        redisUtils.del(AppContants.APP_LOGIN_PREFIX + id);
         redisUtils.del(AppContants.XCX_LOGIN_PHONE_PREFIX + id);
         return new FebsResponse().success().message("退出登录");
     }
@@ -353,8 +353,8 @@
 
     @Override
     public FebsResponse modifyMemberInfo(ModifyMemberInfoDto modifyMemberInfoDto) {
-        MallMember member = LoginUserUtil.getLoginUser();
-        MallMember mallMember = this.baseMapper.selectById(member.getId());
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        MallMember mallMember = this.baseMapper.selectById(memberId);
         if (StrUtil.isNotBlank(modifyMemberInfoDto.getName())) {
             mallMember.setName(modifyMemberInfoDto.getName());
         }
@@ -362,6 +362,9 @@
         if (StrUtil.isNotBlank(modifyMemberInfoDto.getPhoto())) {
             mallMember.setAvatar(modifyMemberInfoDto.getPhoto());
         }
+
+        mallMember.setSex(modifyMemberInfoDto.getSex());
+        mallMember.setBirthday(DateUtil.parseDate(modifyMemberInfoDto.getBirthday()));
 
         this.baseMapper.updateById(mallMember);
         return new FebsResponse().success().message("修改成功");
@@ -1103,10 +1106,7 @@
 
         MallMember member = this.baseMapper.selectById(loginUser.getId());
 
-        MallMember mallMember = new MallMember();
-        mallMember.setId(member.getId());
-        mallMember.setLastLoginTime(new Date());
-        this.baseMapper.updateById(mallMember);
+        this.baseMapper.updateLastLogin(member.getId(),new Date());
 
         DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNALIVE_COUPON.getType(), DataDictionaryEnum.UNALIVE_COUPON.getCode());
         if (dic == null || StrUtil.isBlank(dic.getValue())) {
@@ -1174,7 +1174,7 @@
     public FebsResponse storeList(MallStoreDto mallStoreDto) {
         QueryWrapper<MallStore> mallStoreQueryWrapper = new QueryWrapper<>();
         if(StrUtil.isNotEmpty(mallStoreDto.getName())){
-            mallStoreQueryWrapper.like("name",mallStoreQueryWrapper);
+            mallStoreQueryWrapper.like("name",mallStoreDto.getName());
         }
         List<MallStore> mallStores = mallStoreMapper.selectList(mallStoreQueryWrapper);
         List<MallStoreVo> mallStoreVos = MallStoreConversion.INSTANCE.entitysToVos(mallStores);
@@ -1201,6 +1201,9 @@
             mallStoreMemberMapper.delete(objectQueryWrapper);
         }
 
+        MallMember mallMember = this.baseMapper.selectById(memberId);
+        Integer sex = "女".equals(mallMember.getSex()) ? 3 : 2;
+
         MallStoreItem mallStoreItem = mallStoreItemMapper.selectById(storeItemId);
         HashMap<String, String> objectObjectHashMap = new HashMap<>();
         String shopAccount = mallStoreItem.getAccount();
@@ -1216,6 +1219,7 @@
         objectObjectHashMap.put("address",address);
         objectObjectHashMap.put("age",age.toString());
         objectObjectHashMap.put("phoneNumber",phoneNumber);
+        objectObjectHashMap.put("sex",sex.toString());
 
         //sign= MD5(address+age+name+phoneNumber+shopAccount+shopPwd)
         StringBuffer stringBuffer = new StringBuffer();
@@ -1223,6 +1227,7 @@
         stringBuffer.append(age);
         stringBuffer.append(name);
         stringBuffer.append(phoneNumber);
+        stringBuffer.append(sex);
         stringBuffer.append(shopAccount);
         stringBuffer.append(shopPwd);
         String sign = MD5.MD5Encode(stringBuffer.toString());
@@ -1286,15 +1291,16 @@
 
         objectObjectHashMap.put("shopAccount",shopAccount);
         objectObjectHashMap.put("shopPwd",shopPwd);
-        objectObjectHashMap.put("userld",userld.toString());
+        objectObjectHashMap.put("userId",userld.toString());
 
-        //sign= MD5(address+age+name+phoneNumber+shopAccount+shopPwd)
+        //sign= MD5(shopAccount+shopPwd+userId)
         StringBuffer stringBuffer = new StringBuffer();
         stringBuffer.append(shopAccount);
         stringBuffer.append(shopPwd);
         stringBuffer.append(userld);
         String sign = MD5.MD5Encode(stringBuffer.toString());
         objectObjectHashMap.put("sign",sign);
+
         String url = "https://data.muchun.co/api/getCustomerCheckRecords";
         String result = HttpCurlUtil.sendPost(url, objectObjectHashMap);
         Integer retCode = JSONUtil.parseObj(result).getInt("retCode");
@@ -1307,7 +1313,7 @@
     }
 
     public static void main(String[] args) {
-        Long userld = 177L;
+        Long userld = 173L;
         String shopAccount = "luohu";
         String shopPwd = "123456";
 
@@ -1315,7 +1321,7 @@
 
         objectObjectHashMap.put("shopAccount",shopAccount);
         objectObjectHashMap.put("shopPwd",shopPwd);
-        objectObjectHashMap.put("userld",userld.toString());
+        objectObjectHashMap.put("userId",userld.toString());
 
         //sign= MD5(shopAccount+shopPwd+userId)
         StringBuffer stringBuffer = new StringBuffer();

--
Gitblit v1.9.1