From 433f4429288ecc9623c12cbfd15dfd8b0b1b8eaa Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 6 Apr 2023 16:58:17 +0800 Subject: [PATCH] //user --- .../controller/WxUserGrantController.java | 112 ++++++++++++++---- .../com/iformall/utils/PasswordHelper.java | 16 --- .../iformall/domain/po/sm/MouldPatchSign.java | 5 +- .../service/WxCUserBasicInfoService.java | 3 + .../impl/WxCUserBasicInfoServiceImpl.java | 23 ++++ .../com/iformall/utils/PasswordHelper.java | 5 + 6 files changed, 125 insertions(+), 39 deletions(-) delete mode 100644 suimangCApi/src/main/java/com/iformall/utils/PasswordHelper.java diff --git a/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 31df579..cfa2904 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -54,21 +54,6 @@ public class WxUserGrantController extends BaseController { @Autowired private WxMsgValidationcodeService wxMsgValidationcodeService; - @Autowired - private boolean isFmOpen; - - @Autowired - private CUserServiceFactory cuserFactory; - - @Autowired - private MallCooUserInfoService mallCooUserInfoService; - - @Autowired - private WxCUserCarService wxCUserCarService; - - @Autowired - private WxScoreRulesService wxScoreRulesService; - @Autowired WxLevelConfigService wxLevelConfigService; @@ -162,7 +147,7 @@ public class WxUserGrantController extends BaseController { return new ResultData(ErrorCode.USER_IS_EMPTY); } - String encryptPassword = PasswordHelper.encryptPassword(phone, password); + String encryptPassword = new PasswordHelper().encryptPassword(phone, password); if(!encryptPassword.equals(basicInfo.getPassword())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "手机号或密码错误"); @@ -181,6 +166,48 @@ public class WxUserGrantController extends BaseController { @ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true)}) public ResultData sendLoginPhoneCode(String phone) { logger.debug("[" + getIpAddr() + "] WxUserGrantController::sendlogincode"); + if(StringUtils.isBlank(phone)){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "请输入手机号"); + } + + WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); + wxMsgValidationcode.setPhone(phone); + wxMsgValidationcode.setType(EnumMsgModel.VALIDATION_CODE.getCode()); + return wxMsgValidationcodeService.sendvalidationcode(wxMsgValidationcode); + } + + /** + * 需要效验用户及图片验证码 + * @param phone + * @return + */ + @AuthIgnore + @ApiOperation("发送修改密码验证码") + @GetMapping("sendPhoneCode") + @ApiImplicitParams({ + @ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true)}) + public ResultData sendPhoneCode(String phone,String code) { + String ipAddr = getIpAddr(); + logger.debug("[" + ipAddr + "] WxUserGrantController::sendPhoneCode"); + if(StringUtils.isBlank(phone)){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "请输入手机号"); + } + if(StringUtils.isBlank(code)){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "请输入验证码"); + } + + String key = Constant.captchaPrev + ":" + ipAddr; + String code1 = RedisCacheUtils.getCacheString(redisTemplate, key); + if(StringUtils.isBlank(code1)){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码已过期"); + } + if(!code1.equals(code)){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码不正确"); + } + WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(getTenantInfo(), phone); + if(basicInfo == null){ + return new ResultData(ErrorCode.USER_IS_EMPTY.getCode(),"该手机号未注册"); + } WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); wxMsgValidationcode.setPhone(phone); @@ -215,7 +242,7 @@ public class WxUserGrantController extends BaseController { if(isValidCode) { WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(getTenantInfo(), phone); if(basicInfo == null){ - basicInfo = wxCUserBasicInfoService.registerByPhone(getTenantInfo(),phone,null,null,null,null); + basicInfo = wxCUserBasicInfoService.register(getTenantInfo(),phone,null); } wxCUserBasicInfoService.handleLoginUser(basicInfo); Map resultMap = new HashMap(); @@ -227,6 +254,47 @@ public class WxUserGrantController extends BaseController { } } + @AuthIgnore + @ApiOperation(value = "手机号注册", notes = "{\"phone\",\"string\",\"code\",\"string\"}") + @PostMapping("/doRegisterByPhone") + public ResultData doRegisterByPhone(@RequestBody Map params, HttpServletResponse response) { + String ipaddress = getIpAddr(); + logger.debug("[" + ipaddress + "] WxUserGrantController::doRegisterByPhone"); + // String phone,String code,String pwd + String phone = params.get("phone"); + String password = params.get("password"); + String code = params.get("code"); + + if (StringUtils.isBlank(phone)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "手机号不能为空"); + } + if (StringUtils.isBlank(password)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "密码不能为空"); + } +// if (StringUtils.isBlank(code)) { +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "验证码不能为空"); +// } + WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(getTenantInfo(), phone); + if(basicInfo != null){ + return new ResultData(ErrorCode.USER_PHONE_IS_FOUND); + } + + + // check 验证码正确 +// boolean isValidCode = false; +// try { +// isValidCode = wxMsgValidationcodeService.checkCodeValid(phone,code); +// } catch (Exception e) { +// return new ResultData(Result.ERROR, e.getMessage()); +// } +// if(isValidCode) { + basicInfo = wxCUserBasicInfoService.register(getTenantInfo(),phone,password); + return new ResultData(); +// } else { +// return new ResultData(ErrorCode.MSG_VERIFY_CODE_NOT_FOUND); +// } + } + @AuthIgnore @ApiOperation(value = "手机验证码修改密码", notes = "{\"phone\",\"string\",\"code\",\"string\"}") @PostMapping("/updPass") @@ -247,6 +315,10 @@ public class WxUserGrantController extends BaseController { if (StringUtils.isBlank(pwd)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "密码不能为空"); } + WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(getTenantInfo(), phone); + if(basicInfo == null){ + return new ResultData(ErrorCode.USER_PHONE_IS_NOT_FOUND.getCode(), "手机号还未注册"); + } // check 验证码正确 boolean isValidCode = false; @@ -256,11 +328,7 @@ public class WxUserGrantController extends BaseController { return new ResultData(Result.ERROR, e.getMessage()); } if(isValidCode) { - WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(getTenantInfo(), phone); - if(basicInfo == null){ - basicInfo = wxCUserBasicInfoService.registerByPhone(getTenantInfo(),phone,null,null,null,null); - } - String encryptPassword = PasswordHelper.encryptPassword(phone, pwd); + String encryptPassword = new PasswordHelper().encryptPassword(phone, pwd); WxCUserBasicInfo basicInfoUpd = new WxCUserBasicInfo(); basicInfoUpd.setId(basicInfo.getId()); basicInfoUpd.setPassword(encryptPassword); diff --git a/suimangCApi/src/main/java/com/iformall/utils/PasswordHelper.java b/suimangCApi/src/main/java/com/iformall/utils/PasswordHelper.java deleted file mode 100644 index 90f3a4c..0000000 --- a/suimangCApi/src/main/java/com/iformall/utils/PasswordHelper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.iformall.utils; - -import org.apache.shiro.crypto.hash.SimpleHash; -import org.apache.shiro.util.ByteSource; - - -public class PasswordHelper { - - private static String algorithmName = "md5"; - private static int hashIterations = 2; - - public static String encryptPassword(String userName,String password) { - return new SimpleHash(algorithmName, password, ByteSource.Util.bytes(userName), hashIterations).toHex(); - } - -} diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/MouldPatchSign.java b/suimangService/src/main/java/com/iformall/domain/po/sm/MouldPatchSign.java index cef2f58..863ac45 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/MouldPatchSign.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/MouldPatchSign.java @@ -7,6 +7,9 @@ import lombok.EqualsAndHashCode; import java.util.Date; +/** + * 模板标签 + */ @TableName(value = "mould_patch_sign") @Data @EqualsAndHashCode(callSuper = true) @@ -14,7 +17,7 @@ public class MouldPatchSign extends BaseEntity { protected Long id; - @io.swagger.annotations.ApiModelProperty(value="券类型",name="title") + @io.swagger.annotations.ApiModelProperty(value="",name="title") private String title; @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") diff --git a/suimangService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/suimangService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index 146ab8b..189849c 100644 --- a/suimangService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/suimangService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -184,5 +184,8 @@ public interface WxCUserBasicInfoService { void logout(WxCUserBasicInfo basicInfo); WxCUserBasicInfo getByToken(String token); + + WxCUserBasicInfo register(TenantEntity tenantInfo, String phone, String pwd); + } diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 1900930..f364527 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -25,6 +25,7 @@ import com.iformall.service.*; import cn.afterturn.easypoi.handler.inter.IExcelExportServer; import com.iformall.utils.Constant; +import com.iformall.utils.PasswordHelper; import com.iformall.utils.RedisCacheUtils; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; @@ -830,6 +831,28 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc return null; } + @Override + public WxCUserBasicInfo register(TenantEntity tenantEntity, String phone, String pwd) { + if (StringUtils.isBlank(phone)){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "手机号为空"); + } + + WxCUserBasicInfo basicInfo = this.findInfoByPhone(tenantEntity, phone); + if(basicInfo == null){ + basicInfo = new WxCUserBasicInfo(); +// basicInfo.setTenantId("," + tenantEntity.getTenantId() + ","); + basicInfo.setFinalTenantId(tenantEntity.getFinalTenantId()); + basicInfo.setPhone(phone); + if(StringUtils.isNotBlank(pwd)){ + String encryptPassword = new PasswordHelper().encryptPassword(phone, pwd); + basicInfo.setPassword(encryptPassword); + } + this.save(basicInfo); + return basicInfo; + } + throw new MallinkException(ErrorCode.USER_PHONE_IS_FOUND); + } + @Override public WxCUserBasicInfo getById(Long id,String finalTenantId) { diff --git a/suimangService/src/main/java/com/iformall/utils/PasswordHelper.java b/suimangService/src/main/java/com/iformall/utils/PasswordHelper.java index 030d311..48cb430 100644 --- a/suimangService/src/main/java/com/iformall/utils/PasswordHelper.java +++ b/suimangService/src/main/java/com/iformall/utils/PasswordHelper.java @@ -19,6 +19,11 @@ public class PasswordHelper { } + public String encryptPassword(String userName,String password) { + return new SimpleHash(algorithmName, password, ByteSource.Util.bytes(userName), hashIterations).toHex(); + } + + public static void main(String[] args) { MallUserInfo user = new MallUserInfo();