Просмотр исходного кода

修复婵道上的bug和优化接口请求

mac 2 лет назад
Родитель
Сommit
1eabf08430
20 измененных файлов с 371 добавлено и 21 удалено
  1. 4 0
      kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/CommonConstants.java
  2. 21 6
      kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/exception/GlobalBizExceptionHandler.java
  3. 87 0
      kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/model/KxsOpenBank.java
  4. 49 0
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/kxsapp/OpenBankController.java
  5. 17 0
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/mapper/KxsOpenBankMapper.java
  6. 15 0
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/KxsOpenBankService.java
  7. 19 0
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsOpenBankServiceImpl.java
  8. 2 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/app/ForgetPwdDTO.java
  9. 3 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/app/RegisterDTO.java
  10. 58 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/ForgetPayPwdDTO.java
  11. 15 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserUpdateBankInfoDTO.java
  12. 8 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserUpdateLoginPhoneDTO.java
  13. 3 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserUpdatePwdDTO.java
  14. 0 7
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/userAccount/WithdrawDetailVO.java
  15. 13 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsUserController.java
  16. 9 1
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java
  17. 9 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserBankServiceImpl.java
  18. 34 2
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java
  19. 3 3
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserWithdrawalServiceImpl.java
  20. 2 2
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsUserWithdrawalMapper.xml

+ 4 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/CommonConstants.java

@@ -80,5 +80,9 @@ public interface CommonConstants {
 	String REQUEST_START_TIME = "REQUEST-START-TIME";
 	String REQUEST_START_TIME = "REQUEST-START-TIME";
 
 
 	String KXS_USER_NUMBER_PREFIX = "K";
 	String KXS_USER_NUMBER_PREFIX = "K";
+	/**
+	 * KXS提现订单号前缀
+	 */
+	String KXS_WITHDRAWAL_PREFIX = "BC";
 
 
 }
 }

+ 21 - 6
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/exception/GlobalBizExceptionHandler.java

@@ -10,6 +10,7 @@ import org.springframework.util.Assert;
 import org.springframework.validation.BindException;
 import org.springframework.validation.BindException;
 import org.springframework.validation.FieldError;
 import org.springframework.validation.FieldError;
 import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.ServletRequestBindingException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
@@ -95,7 +96,7 @@ public class GlobalBizExceptionHandler {
 	@ResponseStatus(HttpStatus.OK)
 	@ResponseStatus(HttpStatus.OK)
 	public R handleBodyValidException(MethodArgumentNotValidException exception) {
 	public R handleBodyValidException(MethodArgumentNotValidException exception) {
 		List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();
 		List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();
-		log.warn("参数绑定异常,ex = {}", fieldErrors.get(0).getDefaultMessage());
+		log.error("参数绑定异常,ex = {}", fieldErrors.get(0).getDefaultMessage());
 		return R.failed(String.format("%s %s", fieldErrors.get(0).getField(), fieldErrors.get(0).getDefaultMessage()));
 		return R.failed(String.format("%s %s", fieldErrors.get(0).getField(), fieldErrors.get(0).getDefaultMessage()));
 	}
 	}
 
 
@@ -108,7 +109,7 @@ public class GlobalBizExceptionHandler {
 	@ResponseStatus(HttpStatus.BAD_REQUEST)
 	@ResponseStatus(HttpStatus.BAD_REQUEST)
 	public R bindExceptionHandler(BindException exception) {
 	public R bindExceptionHandler(BindException exception) {
 		List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();
 		List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();
-		log.warn("参数绑定异常,ex = {}", fieldErrors.get(0).getDefaultMessage());
+		log.error("参数绑定异常,ex = {}", fieldErrors.get(0).getDefaultMessage());
 		return R.failed(fieldErrors.get(0).getDefaultMessage());
 		return R.failed(fieldErrors.get(0).getDefaultMessage());
 	}
 	}
 
 
@@ -132,7 +133,7 @@ public class GlobalBizExceptionHandler {
 	@ExceptionHandler({ AesDecodeException.class })
 	@ExceptionHandler({ AesDecodeException.class })
 	@ResponseStatus(HttpStatus.OK)
 	@ResponseStatus(HttpStatus.OK)
 	public R<Object> bindAesDecodeException(AesDecodeException exception) {
 	public R<Object> bindAesDecodeException(AesDecodeException exception) {
-		log.error("解密异常:{}", exception.getMessage(), exception);
+		log.error("解密异常:{}", exception.getMessage());
 		return R.failed(exception.getMessage());
 		return R.failed(exception.getMessage());
 	}
 	}
 
 
@@ -147,15 +148,29 @@ public class GlobalBizExceptionHandler {
 
 
 		return R.failed(e.getMessage());
 		return R.failed(e.getMessage());
 	}
 	}
+
 	/**
 	/**
 	 * 参数绑定异常
 	 * 参数绑定异常
-	 * @param e 错误类型
+	 * @param exception 错误类型
 	 * @return {@link R}
 	 * @return {@link R}
 	 */
 	 */
 	@ExceptionHandler(HttpMessageNotReadableException.class)
 	@ExceptionHandler(HttpMessageNotReadableException.class)
-	public R handlerParamException(HttpMessageNotReadableException e){
+	public R handlerParamException(HttpMessageNotReadableException exception){
 
 
-		return R.failed(e.getMessage());
+		log.error("参数绑定异常:{}", exception.getMessage());
+		return R.failed(exception.getMessage());
+	}
+
+	/**
+	 * 参数绑定异常
+	 * @param exception 错误类型
+	 * @return {@link R}
+	 */
+	@ExceptionHandler(ServletRequestBindingException.class)
+	public R handlerParamException(ServletRequestBindingException exception){
+
+		log.error("参数绑定异常:{}", exception.getMessage());
+		return R.failed(exception.getMessage());
 	}
 	}
 
 
 }
 }

+ 87 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/model/KxsOpenBank.java

@@ -0,0 +1,87 @@
+package com.kxs.system.api.model;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 银行开户行表(KxsOpenBank)表实体类
+ *
+ * @author 系统
+ * @since 2024-04-11 15:30:21
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class KxsOpenBank extends Model<KxsOpenBank> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    
+    
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 删除标记,0未删除,1已删除
+     */
+    @Schema(description = "删除标记,0未删除,1已删除")
+    private Integer delFlag;
+
+
+    /**
+     * 版本
+     */
+    @Schema(description = "版本")
+    private Integer version;
+
+
+    /**
+     * 开户行名称
+     */
+    @Schema(description = "开户行名称")
+    private String bankName;
+
+
+    /**
+     * 开户行编码
+     */
+    @Schema(description = "开户行编码")
+    private String bankCode;
+
+
+
+
+}
+

+ 49 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/kxsapp/OpenBankController.java

@@ -0,0 +1,49 @@
+package com.kxs.system.biz.controller.kxsapp;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.common.core.util.R;
+import com.kxs.system.api.model.KxsOpenBank;
+import com.kxs.system.biz.service.KxsOpenBankService;
+import lombok.RequiredArgsConstructor;
+import org.springdoc.core.annotations.ParameterObject;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 用户相关(OpenBank)控制层
+ *
+ * @author 系统
+ * @since 2024-04-11 15:30:26
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("openBank")
+public class OpenBankController {
+
+    /**
+     * 服务对象
+     */
+    private final KxsOpenBankService kxsOpenBankService;
+
+
+
+    /**
+     * 设置-模糊搜索开户银行
+     *
+     * @param page 分页对象
+     * @param keyword 查询字符串
+     * @return 设置-模糊搜索开户银行
+     */
+    @GetMapping("/search")
+    public R search(@ParameterObject Page<KxsOpenBank> page, @RequestParam("keyword") String keyword) {
+
+        return R.ok(kxsOpenBankService.page(page, Wrappers.<KxsOpenBank>lambdaQuery().like(KxsOpenBank::getBankName, keyword)));
+    }
+
+}
+

+ 17 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/mapper/KxsOpenBankMapper.java

@@ -0,0 +1,17 @@
+package com.kxs.system.biz.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.system.api.model.KxsOpenBank;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 银行开户行表(KxsOpenBank)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-04-11 15:30:21
+ */
+@Mapper
+public interface KxsOpenBankMapper extends BaseMapper<KxsOpenBank> {
+
+}
+

+ 15 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/KxsOpenBankService.java

@@ -0,0 +1,15 @@
+package com.kxs.system.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.kxs.system.api.model.KxsOpenBank;
+
+/**
+ * 银行开户行表(KxsOpenBank)表服务接口
+ *
+ * @author 系统
+ * @since 2024-04-11 15:30:21
+ */
+public interface KxsOpenBankService extends IService<KxsOpenBank> {
+
+}
+

+ 19 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsOpenBankServiceImpl.java

@@ -0,0 +1,19 @@
+package com.kxs.system.biz.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.system.biz.mapper.KxsOpenBankMapper;
+import com.kxs.system.api.model.KxsOpenBank;
+import com.kxs.system.biz.service.KxsOpenBankService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 银行开户行表(KxsOpenBank)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-04-11 15:30:21
+ */
+@Service("kxsOpenBankService")
+public class KxsOpenBankServiceImpl extends ServiceImpl<KxsOpenBankMapper, KxsOpenBank> implements KxsOpenBankService {
+
+}
+

+ 2 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/app/ForgetPwdDTO.java

@@ -1,5 +1,6 @@
 package com.kxs.user.api.dto.kxsapp.app;
 package com.kxs.user.api.dto.kxsapp.app;
 
 
+import com.kxs.common.core.valid.Phone;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 import lombok.Data;
@@ -27,6 +28,7 @@ public class ForgetPwdDTO {
      */
      */
     @Schema(description = "手机号")
     @Schema(description = "手机号")
     @NotBlank(message = "手机号不能为空")
     @NotBlank(message = "手机号不能为空")
+    @Phone
     private String phone;
     private String phone;
 
 
 
 

+ 3 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/app/RegisterDTO.java

@@ -3,6 +3,7 @@ package com.kxs.user.api.dto.kxsapp.app;
 import com.kxs.common.core.valid.Phone;
 import com.kxs.common.core.valid.Phone;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 import lombok.Data;
+import org.hibernate.validator.constraints.Length;
 
 
 /**
 /**
  * @author lengleng
  * @author lengleng
@@ -28,12 +29,14 @@ public class RegisterDTO {
 	 * 密码
 	 * 密码
 	 */
 	 */
 	@NotBlank(message = "密码不能为空")
 	@NotBlank(message = "密码不能为空")
+	@Length(min = 6, max = 18, message = "密码长度在6-18位之间")
 	private String password;
 	private String password;
 
 
 	/**
 	/**
 	 * 重复密码
 	 * 重复密码
 	 */
 	 */
 	@NotBlank(message = "确认密码不能为空")
 	@NotBlank(message = "确认密码不能为空")
+	@Length(min = 6, max = 18, message = "密码长度在6-18位之间")
 	private String confirmPwd;
 	private String confirmPwd;
 
 
 	/**
 	/**

+ 58 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/ForgetPayPwdDTO.java

@@ -0,0 +1,58 @@
+package com.kxs.user.api.dto.kxsapp.user;
+
+import com.kxs.common.core.valid.Phone;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+
+/**
+ * 忘记支付密码-dto
+ *
+ * @author 系统
+ * @date 2024-01-03 09:39:59
+ */
+@Data
+public class ForgetPayPwdDTO {
+
+    /**
+     * 密码
+     */
+    @Schema(description = "密码")
+    @NotBlank(message = "密码不能为空")
+    private String payPwd;
+
+
+    /**
+     * 手机号
+     */
+    @Schema(description = "手机号")
+    @NotBlank(message = "手机号不能为空")
+    @Phone
+    private String phone;
+
+
+    /**
+     * 真实姓名
+     */
+    @Schema(description = "真实姓名")
+    @NotBlank(message = "真实姓名不能为空")
+    private String username;
+
+    /**
+     * 身份证
+     */
+    @Schema(description = "身份证")
+    @NotBlank(message = "身份证不能为空")
+    private String idCard;
+
+
+    /**
+     * 验证码
+     */
+    @Schema(description = "验证码")
+    @NotBlank(message = "验证码不能为空")
+    private String code;
+
+
+}

+ 15 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserUpdateBankInfoDTO.java

@@ -22,6 +22,13 @@ public class UserUpdateBankInfoDTO {
     @NotBlank(message = "银行名称不能为空")
     @NotBlank(message = "银行名称不能为空")
     private String bankName;
     private String bankName;
 
 
+    /**
+     * 手机号码
+     */
+    @Schema(description = "手机号码")
+    @NotBlank(message = "手机号码不能为空")
+    @Phone
+    private String phone;
 
 
     /**
     /**
      * 开户行
      * 开户行
@@ -56,6 +63,14 @@ public class UserUpdateBankInfoDTO {
     private String bankPic;
     private String bankPic;
 
 
 
 
+    /**
+     * 验证码
+     */
+    @Schema(description = "验证码")
+    @NotBlank(message = "验证码不能为空")
+    private String code;
+
+
 
 
 
 
 }
 }

+ 8 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserUpdateLoginPhoneDTO.java

@@ -39,6 +39,14 @@ public class UserUpdateLoginPhoneDTO {
     private String password;
     private String password;
 
 
 
 
+    /**
+     * 验证码
+     */
+    @Schema(description = "验证码")
+    @NotBlank(message = "验证码不能为空")
+    private String code;
+
+
 
 
 
 
 }
 }

+ 3 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserUpdatePwdDTO.java

@@ -3,6 +3,7 @@ package com.kxs.user.api.dto.kxsapp.user;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 import lombok.Data;
+import org.hibernate.validator.constraints.Length;
 
 
 
 
 /**
 /**
@@ -27,6 +28,7 @@ public class UserUpdatePwdDTO {
      */
      */
     @Schema(description = "新密码")
     @Schema(description = "新密码")
     @NotBlank(message = "新密码不能为空")
     @NotBlank(message = "新密码不能为空")
+    @Length(min = 6, max = 18, message = "密码长度在6-18位之间")
     private String newPwd;
     private String newPwd;
 
 
 
 
@@ -35,6 +37,7 @@ public class UserUpdatePwdDTO {
      */
      */
     @Schema(description = "确认密码")
     @Schema(description = "确认密码")
     @NotBlank(message = "确认密码不能为空")
     @NotBlank(message = "确认密码不能为空")
+    @Length(min = 6, max = 18, message = "密码长度在6-18位之间")
     private String confirmPwd;
     private String confirmPwd;
 
 
 
 

+ 0 - 7
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/userAccount/WithdrawDetailVO.java

@@ -71,13 +71,6 @@ public class WithdrawDetailVO implements Serializable {
     private String remark;
     private String remark;
 
 
 
 
-    /**
-     * 银行卡ID
-     */
-    @Schema(description = "银行卡ID")
-    private Integer bankId;
-
-
     /**
     /**
      * 状态 0处理中 1成功 2失败
      * 状态 0处理中 1成功 2失败
      */
      */

+ 13 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsUserController.java

@@ -130,6 +130,18 @@ public class KxsUserController {
         return kxsUserService.modifyPayPwd(param);
         return kxsUserService.modifyPayPwd(param);
     }
     }
 
 
+    /**
+     * 设置-忘记支付密码
+     *
+     * @param param 实体对象
+     * @return 设置-忘记支付密码
+     */
+    @PostMapping("/forgetPayPwd")
+    public R forgetPayPwd(@RequestBody ForgetPayPwdDTO param) {
+
+        return kxsUserService.forgetPayPwd(param);
+    }
+
 
 
     /**
     /**
      * 设置-修改登陆密码
      * 设置-修改登陆密码
@@ -166,6 +178,7 @@ public class KxsUserController {
     @PostMapping("/updateBankInfo")
     @PostMapping("/updateBankInfo")
     public R updateBankInfo(@Valid @RequestBody UserUpdateBankInfoDTO param) {
     public R updateBankInfo(@Valid @RequestBody UserUpdateBankInfoDTO param) {
 
 
+        kxsUserService.checkValidateCode(param.getPhone(), param.getCode());
         return kxsUserBankService.updateBankInfo(param);
         return kxsUserBankService.updateBankInfo(param);
     }
     }
 
 

+ 9 - 1
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java

@@ -9,7 +9,6 @@ import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserInfoVO;
-import com.kxs.user.api.vo.kxsapp.userLevel.AmountDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
 
 
 /**
 /**
@@ -201,5 +200,14 @@ public interface KxsUserService extends IService<KxsUser> {
     LevelDetailVO levelDetail();
     LevelDetailVO levelDetail();
 
 
 
 
+    void checkValidateCode(String mobile, String code);
+
+    /**
+     * 忘记支付 PWD
+     *
+     * @param param 参数
+     * @return {@link R}
+     */
+    R forgetPayPwd(ForgetPayPwdDTO param);
 }
 }
 
 

+ 9 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserBankServiceImpl.java

@@ -5,11 +5,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.user.api.dto.kxsapp.user.UserUpdateBankInfoDTO;
 import com.kxs.user.api.dto.kxsapp.user.UserUpdateBankInfoDTO;
+import com.kxs.user.api.model.KxsUser;
+import com.kxs.user.api.model.KxsUserReal;
 import com.kxs.user.api.vo.kxsapp.userAccount.BindBankInfoVO;
 import com.kxs.user.api.vo.kxsapp.userAccount.BindBankInfoVO;
 import com.kxs.user.biz.constant.enums.UserErrorTypeEnum;
 import com.kxs.user.biz.constant.enums.UserErrorTypeEnum;
 import com.kxs.user.biz.mapper.KxsUserBankMapper;
 import com.kxs.user.biz.mapper.KxsUserBankMapper;
 import com.kxs.user.api.model.KxsUserBank;
 import com.kxs.user.api.model.KxsUserBank;
+import com.kxs.user.biz.mapper.KxsUserMapper;
+import com.kxs.user.biz.mapper.KxsUserRealMapper;
 import com.kxs.user.biz.service.KxsUserBankService;
 import com.kxs.user.biz.service.KxsUserBankService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -20,17 +25,21 @@ import org.springframework.stereotype.Service;
  * @since 2024-01-03 09:39:55
  * @since 2024-01-03 09:39:55
  */
  */
 @Service("kxsUserBankService")
 @Service("kxsUserBankService")
+@RequiredArgsConstructor
 public class KxsUserBankServiceImpl extends ServiceImpl<KxsUserBankMapper, KxsUserBank> implements KxsUserBankService {
 public class KxsUserBankServiceImpl extends ServiceImpl<KxsUserBankMapper, KxsUserBank> implements KxsUserBankService {
 
 
+    private final KxsUserRealMapper kxsUserRealMapper;
 
 
     @Override
     @Override
     public R updateBankInfo(UserUpdateBankInfoDTO param) {
     public R updateBankInfo(UserUpdateBankInfoDTO param) {
 
 
         KxsUserBank userBank = this.getOne(Wrappers.<KxsUserBank>lambdaQuery().eq(KxsUserBank::getUserId, SecurityUtils.getUser().getId()));
         KxsUserBank userBank = this.getOne(Wrappers.<KxsUserBank>lambdaQuery().eq(KxsUserBank::getUserId, SecurityUtils.getUser().getId()));
+        KxsUserReal userReal = kxsUserRealMapper.selectOne(Wrappers.<KxsUserReal>lambdaQuery().eq(KxsUserReal::getUserId, SecurityUtils.getUser().getId()));
 
 
         if(userBank == null){
         if(userBank == null){
             return R.failed(UserErrorTypeEnum.NOT_REAL.getDescription());
             return R.failed(UserErrorTypeEnum.NOT_REAL.getDescription());
         }
         }
+        //TODO 提交调用三方验证实名信息
 
 
         userBank.setBankCode(param.getBankCode());
         userBank.setBankCode(param.getBankCode());
         userBank.setBankName(param.getBankName());
         userBank.setBankName(param.getBankName());

+ 34 - 2
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java

@@ -30,7 +30,6 @@ import com.kxs.user.api.model.*;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserInfoVO;
-import com.kxs.user.api.vo.kxsapp.userLevel.AmountDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelsVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelsVO;
 import com.kxs.user.biz.constant.UserConstants;
 import com.kxs.user.biz.constant.UserConstants;
@@ -339,6 +338,12 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
     @Override
     @Override
     public R modifyPayPwd(KxsUser param) {
     public R modifyPayPwd(KxsUser param) {
 
 
+        if(StrUtil.isEmpty(param.getPayPwd())){
+            return R.failed("密码不能为空");
+        }
+        if(param.getPayPwd().length() != 6){
+            return R.failed("密码长度必须为6位");
+        }
         KxsUser user = this.getById(SecurityUtils.getUser().getId());
         KxsUser user = this.getById(SecurityUtils.getUser().getId());
         user.setPayPwd(SecureUtil.md5(param.getPayPwd() + user.getSalt()));
         user.setPayPwd(SecureUtil.md5(param.getPayPwd() + user.getSalt()));
 
 
@@ -347,6 +352,29 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         return R.ok();
         return R.ok();
     }
     }
 
 
+    @Override
+    public R forgetPayPwd(ForgetPayPwdDTO param) {
+
+        checkValidateCode(param.getPhone(), param.getCode());
+
+        KxsUser user = getById(SecurityUtils.getUser().getId());
+        KxsUserReal userReal = kxsUserRealMapper.selectOne(Wrappers.<KxsUserReal>lambdaQuery().eq(KxsUserReal::getUserId, SecurityUtils.getUser().getId()));
+        if(!param.getUsername().equals(userReal.getRealName())
+                || !param.getIdCard().equals(userReal.getIdCard())
+                ||!param.getPhone().equals(user.getPhone())){
+
+            return R.failed("用户信息不匹配");
+        }
+        if(param.getPayPwd().length() != 6){
+            return R.failed("密码长度必须为6位");
+        }
+        user.setPayPwd(SecureUtil.md5(param.getPayPwd() + user.getSalt()));
+
+        this.update(Wrappers.<KxsUser>lambdaUpdate().eq(KxsUser::getId, user.getId()).set(KxsUser::getPayPwd, user.getPayPwd()));
+
+        return R.ok();
+    }
+
     @Override
     @Override
     public R updatePwd(UserUpdatePwdDTO param) {
     public R updatePwd(UserUpdatePwdDTO param) {
 
 
@@ -368,6 +396,8 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
     @Override
     @Override
     public R updateLoginPhone(UserUpdateLoginPhoneDTO param) {
     public R updateLoginPhone(UserUpdateLoginPhoneDTO param) {
 
 
+        checkValidateCode(param.getNewPhone(), param.getCode());
+
         AssertUtil.isPhone(param.getPhone());
         AssertUtil.isPhone(param.getPhone());
         AssertUtil.isPhone(param.getNewPhone());
         AssertUtil.isPhone(param.getNewPhone());
 
 
@@ -587,7 +617,8 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
      * @param mobile 手机号码
      * @param mobile 手机号码
      * @param code   密码
      * @param code   密码
      */
      */
-    private void checkValidateCode(String mobile, String code){
+    @Override
+    public void checkValidateCode(String mobile, String code){
 
 
         if (CharSequenceUtil.isBlank(code)) {
         if (CharSequenceUtil.isBlank(code)) {
             throw new ValidateCodeException("验证码不能为空");
             throw new ValidateCodeException("验证码不能为空");
@@ -604,5 +635,6 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         redisTemplate.delete(key);
         redisTemplate.delete(key);
     }
     }
 
 
+
 }
 }
 
 

+ 3 - 3
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserWithdrawalServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.user.api.dto.kxsapp.userAccount.WithdrawDepositDTO;
 import com.kxs.user.api.dto.kxsapp.userAccount.WithdrawDepositDTO;
@@ -98,12 +99,11 @@ public class KxsUserWithdrawalServiceImpl extends ServiceImpl<KxsUserWithdrawalM
         }
         }
 
 
         //订单号
         //订单号
-        Snowflake snowflake = IdUtil.getSnowflake(1, userId);
-        long orderSn = snowflake.nextId();
+        String orderSn = CommonConstants.KXS_WITHDRAWAL_PREFIX + IdUtil.getSnowflakeNextIdStr();
 
 
         KxsUserWithdrawal kxsUserWithdrawal = new KxsUserWithdrawal();
         KxsUserWithdrawal kxsUserWithdrawal = new KxsUserWithdrawal();
         kxsUserWithdrawal.setUserId(userId.intValue());
         kxsUserWithdrawal.setUserId(userId.intValue());
-        kxsUserWithdrawal.setApplyNo(String.valueOf(orderSn));
+        kxsUserWithdrawal.setApplyNo(orderSn);
         kxsUserWithdrawal.setBankCode(userBank.getBankCode());
         kxsUserWithdrawal.setBankCode(userBank.getBankCode());
         kxsUserWithdrawal.setBankName(userBank.getBankName());
         kxsUserWithdrawal.setBankName(userBank.getBankName());
         kxsUserWithdrawal.setApplyAmount(param.getApplyAmount());
         kxsUserWithdrawal.setApplyAmount(param.getApplyAmount());

+ 2 - 2
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsUserWithdrawalMapper.xml

@@ -25,11 +25,11 @@
 
 
     </resultMap>
     </resultMap>
     <select id="getByPage" resultType="com.kxs.user.api.vo.kxsapp.userAccount.WithdrawListVO">
     <select id="getByPage" resultType="com.kxs.user.api.vo.kxsapp.userAccount.WithdrawListVO">
-        select a.*, CONCAT(b.bank_name,'(', bank_code,')') as title  from kxs_user_withdrawal a
-        left join  kxs_user_bank b on a.bank_id = b.id
+        select a.*, CONCAT(a.bank_name,'(', a.bank_code,')') as title  from kxs_user_withdrawal a
         <where>
         <where>
             a.del_flag = 0
             a.del_flag = 0
         </where>
         </where>
+        order by  a.create_time desc
     </select>
     </select>
 
 
 </mapper>
 </mapper>