From 262cdc113a44bbd51f98a56ce91966dc7b2ea938 Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期六, 08 一月 2022 17:55:25 +0800 Subject: [PATCH] 数字商业街代码提交 --- springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 45 insertions(+), 3 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java index 72a70d3..29f7924 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java @@ -10,11 +10,14 @@ import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.Set; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import javax.annotation.Resource; +import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO; import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.BeanUtils; @@ -83,6 +86,7 @@ import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.common.utlis.IdCard; import com.panzhihua.common.utlis.SensitiveUtil; +import com.panzhihua.common.utlis.SmsUtil; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.common.utlis.WxUtil; @@ -2818,16 +2822,18 @@ } // sys_user 表 sysUserDO = new SysUserDO(); + String encode = new BCryptPasswordEncoder().encode(mcsMerchantDTO.getPassword()); BeanUtils.copyProperties(mcsMerchantDTO, sysUserDO); sysUserDO.setAccount(mcsMerchantDTO.getAccount()); sysUserDO.setType(11); sysUserDO.setAreaId(null); sysUserDO.setStatus(mcsMerchantDTO.getAccountStatus()); sysUserDO.setPhone(mcsMerchantDTO.getPhone()); - sysUserDO.setPassword(mcsMerchantDTO.getPassword()); + sysUserDO.setPassword(encode); + sysUserDO.setPlaintextPassword(mcsMerchantDTO.getPassword()); try { userDao.insert(sysUserDO); - LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO(); + McsLoginUserInfoVO loginUserInfoVO = new McsLoginUserInfoVO(); BeanUtils.copyProperties(sysUserDO, loginUserInfoVO); return R.ok(loginUserInfoVO); } catch (Exception e) { @@ -2910,10 +2916,46 @@ @Override public R getSysUserByPhone(String phone, Integer type) { SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, type)); - LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO(); + McsLoginUserInfoVO loginUserInfoVO = null; if (nonNull(sysUserDO)) { + loginUserInfoVO = new McsLoginUserInfoVO(); BeanUtils.copyProperties(sysUserDO, loginUserInfoVO); } return R.ok(loginUserInfoVO); } + + /** + * 发送验证码登录 + * @param phone 手机号 + * @param clientIP 用户ip + * @param prefixKey redis Key 前缀 + * @param limit 获取次数限制 + * @param timeout 超次数获取时间等待 + * @return + */ + @Override + public R sendMessageCodeForLogin(String phone, String clientIP, String prefixKey, Integer limit, Integer timeout) { + ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue(); + if (isNotBlank(clientIP)) { + String redisKey = String.join("::", prefixKey, clientIP); + Long increment = opsForValue.increment(redisKey, 1); + if (increment > limit) { + return R.fail("请求频繁,请稍后再试"); + } + stringRedisTemplate.expire(redisKey, timeout, TimeUnit.SECONDS); + } + Random r = new Random(); + StringBuilder rs = new StringBuilder(); + for (int i = 0; i < 5; i++) { + rs.append(r.nextInt(10)); + } + String code = rs.toString(); + int result = SmsUtil.sendCode(phone, code); + if (result == 1) { + String codeKey = String.join("::", phone, code); + opsForValue.set(codeKey, code, timeout, TimeUnit.SECONDS); + return R.ok(); + } + return R.fail(); + } } -- Gitblit v1.7.1