guomengjiao 4 mēneši atpakaļ
vecāks
revīzija
6f00e3f2fc

+ 11 - 4
ruoyi-api/src/main/java/com/ruoyi/api/controller/user/ApiUserController.java

@@ -13,10 +13,7 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.SysOss;
 import com.ruoyi.system.service.ISysOssService;
 import com.ruoyi.user.domain.User;
-import com.ruoyi.user.domain.bo.MobileUpdateBo;
-import com.ruoyi.user.domain.bo.PersonalDataBo;
-import com.ruoyi.user.domain.bo.ThirdLoginBo;
-import com.ruoyi.user.domain.bo.UserThirdIdentityBo;
+import com.ruoyi.user.domain.bo.*;
 import com.ruoyi.user.domain.vo.UserBindingVo;
 import com.ruoyi.user.domain.vo.UserVo;
 import com.ruoyi.user.mapper.UserMapper;
@@ -148,6 +145,16 @@ public class ApiUserController extends AbstractApiController {
         return R.ok();
     }
 
+    /**
+     * 设置支付密码
+     */
+    @ApiOperation("设置支付密码")
+    @PostMapping("/setPayPassword")
+    public R<Void> setPayPassword(@Validated @RequestBody PasswordUpdateBo bo) {
+        iUserService.setPayPassword(bo, getUserId());
+        return R.ok();
+    }
+
 
     private String getSceneType(WxMinQrCode wxMinQrCode) {
         switch (wxMinQrCode.getSceneType()){

+ 4 - 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsSend.java

@@ -69,13 +69,14 @@ public class SmsSend {
      */
     public void check(String phone, String checkCode) {
         if (openSmsCode()) {
+            String key = redisKey + phone;
             String code;
             //如果手机号是18688888888,则验证码是1024
             if (appListingPhone.equals(phone)) {
                 code = appListingCode;
             } else {
                 //获取验证码
-                code = RedisUtils.getCacheObject(redisKey + phone);
+                code = RedisUtils.getCacheObject(key);
             }
 
             if (StrUtil.isEmpty(code)) {
@@ -85,6 +86,8 @@ public class SmsSend {
                     throw new ServiceException("手机验证码不正确");
                 }
             }
+            //删除
+            RedisUtils.deleteObject(key);
         }
     }
 

+ 5 - 0
ruoyi-user/src/main/java/com/ruoyi/user/domain/User.java

@@ -116,4 +116,9 @@ public class User  {
      * 账户余额
      */
     private BigDecimal balance;
+
+    /**
+     * 支付密码
+     */
+    private String payPassword;
 }

+ 27 - 0
ruoyi-user/src/main/java/com/ruoyi/user/domain/bo/PasswordUpdateBo.java

@@ -0,0 +1,27 @@
+package com.ruoyi.user.domain.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+@Data
+public class PasswordUpdateBo implements Serializable {
+
+
+    /**
+     * 密码
+     */
+    @ApiModelProperty(value = "密码", required = true)
+    @NotBlank(message = "密码不能为空")
+    private String password;
+
+    /**
+     * 验证码
+     */
+    @ApiModelProperty(value = "验证码", required = true)
+    @NotBlank(message = "验证码不能为空")
+    private String captcha;
+
+}

+ 5 - 0
ruoyi-user/src/main/java/com/ruoyi/user/domain/vo/UserVo.java

@@ -164,4 +164,9 @@ public class UserVo {
     @ApiModelProperty("账户余额")
     private BigDecimal balance;
 
+    /**
+     * 支付密码
+     */
+    @ApiModelProperty("支付密码")
+    private String payPassword;
 }

+ 2 - 0
ruoyi-user/src/main/java/com/ruoyi/user/service/IUserService.java

@@ -173,4 +173,6 @@ public interface IUserService {
     BigDecimal totalBalance(Long userId);
 
     void updateMobile(MobileUpdateBo bo, Long userId);
+
+    void setPayPassword(PasswordUpdateBo bo, Long userId);
 }

+ 10 - 0
ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.user.service.impl;
 
+import cn.dev33.satoken.secure.BCrypt;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
@@ -601,6 +602,15 @@ public class UserServiceImpl implements IUserService {
         this.baseMapper.updateById(user);
     }
 
+    @Override
+    public void setPayPassword(PasswordUpdateBo bo, Long userId) {
+        User user = loadByIdForLock(userId, true);
+        //验证短信验证码
+        smsSend.check(user.getMobile(), bo.getCaptcha());
+        user.setPayPassword(BCrypt.hashpw(bo.getPassword()));
+        this.baseMapper.updateById(user);
+    }
+
     /**
      * 获取微信OpenId
      *