From 0fb3a76c8f7c161daeee597075ef1dfebc67badc Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 25 Jul 2024 11:20:50 +0800
Subject: [PATCH] 后台

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   59 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 48 insertions(+), 11 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 f4abe29..fcd196b 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
@@ -94,6 +94,12 @@
          * 生成用户信息
          * 返回账号和密钥给前端
          */
+        String passwordAgain = registerDto.getPasswordAgain();
+        String password = registerDto.getPassword();
+        if(!passwordAgain.equals(password)){
+            throw new FebsException("两次密码不一致。");
+        }
+
         String accountLogin = registerDto.getAccountLogin();
         boolean isValid = validateAccount(accountLogin);
         if(!isValid){
@@ -179,8 +185,8 @@
         if (mallMember == null) {
             throw new FebsException("账号或密码错误");
         }
-        if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) {
-            throw new FebsException("账号限制登录");
+        if (ProductEnum.MEMBER_FROZEN.getValue() == mallMember.getIsFrozen()) {
+            throw new FebsException("账号已冻结");
         }
 
         String redisKey = AppContants.APP_LOGIN_PREFIX + mallMember.getId();
@@ -230,7 +236,15 @@
     @Override
     public FebsResponse logout() {
         Long id = LoginUserUtil.getLoginUser().getId();
-        redisUtils.del(AppContants.APP_LOGIN_PREFIX + id);
+
+        String redisKey = AppContants.APP_LOGIN_PREFIX + id;
+        String existToken = redisUtils.getString(redisKey);
+        if (StrUtil.isNotBlank(existToken)) {
+            Object o = redisUtils.get(existToken);
+            if (ObjectUtil.isNotEmpty(o)) {
+                redisUtils.del(existToken);
+            }
+        }
         return new FebsResponse().success().message("退出登录");
     }
 
@@ -242,6 +256,12 @@
         MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember);
         MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallMember.getId());
         mallMemberVo.setBalance(mallMemberWallet.getBalance());
+
+        DataDictionaryCustom chargeAddressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.CHARGE_ADDRESS.getType(),
+                DataDictionaryEnum.CHARGE_ADDRESS.getCode()
+        );
+        mallMemberVo.setSysAddress(chargeAddressDic.getValue());
         return new FebsResponse().success().data(mallMemberVo);
     }
 
@@ -935,6 +955,10 @@
     public FebsResponse chargeBalance(ApiChargeBalanceDto apiChargeBalanceDto) {
         Long memberId = LoginUserUtil.getLoginUser().getId();
         MallMember mallMember = this.baseMapper.selectById(memberId);
+        if(ObjectUtil.isEmpty(mallMember.getBindPhone())){
+            throw new FebsException("请绑定充值提取地址");
+        }
+        String address = mallMember.getBindPhone();
         BigDecimal amount = apiChargeBalanceDto.getAmount();
         DataDictionaryCustom chargeAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                 DataDictionaryEnum.CHARGE_AMOUNT.getType(),
@@ -945,21 +969,34 @@
             throw new FebsException("充值金额需要大于"+chargeAmount);
         }
 
-        if (StrUtil.isBlank(mallMember.getTradePassword())) {
-            throw new FebsException("请设置交易密码");
-        }
-
-        if (!mallMember.getTradePassword().equals(SecureUtil.md5(apiChargeBalanceDto.getTradePassword()))) {
-            throw new FebsException("交易密码错误");
-        }
         MallMemberCharge mallMemberCharge = new MallMemberCharge();
         mallMemberCharge.setMemberId(memberId);
         mallMemberCharge.setAmount(amount);
-        mallMemberCharge.setAddress(apiChargeBalanceDto.getAddress());
+        mallMemberCharge.setAddress(address);
         mallMemberCharge.setState(1);
         mallMemberChargeMapper.insert(mallMemberCharge);
 
+        return new FebsResponse().success().message("操作成功");
+    }
 
+    @Override
+    public FebsResponse bindAddress(ApiBindAddressDto apiBindAddressDto) {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+
+        MallMember mallMember = this.baseMapper.selectById(memberId);
+        if(ObjectUtil.isNotEmpty(mallMember.getBindPhone())){
+            throw new FebsException("账号已绑定,请勿重复提交");
+        }
+
+        String address = apiBindAddressDto.getAddress().toLowerCase();
+        QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("bind_phone",address);
+        List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper);
+        if(CollUtil.isNotEmpty(mallMembers)){
+            throw new FebsException("请使用未绑定的地址");
+        }
+        mallMember.setBindPhone(address);
+        this.baseMapper.updateById(mallMember);
         return new FebsResponse().success().message("操作成功");
     }
 

--
Gitblit v1.9.1