|
@@ -23,6 +23,7 @@ import com.example.xiaoshiweixinback.entity.vo.person.PersonVO;
|
|
|
import com.example.xiaoshiweixinback.mapper.PersonMapper;
|
|
|
import com.example.xiaoshiweixinback.okhttp.RequestManager;
|
|
|
import com.example.xiaoshiweixinback.okhttp.ResponseManager;
|
|
|
+import com.example.xiaoshiweixinback.service.common.SmsService;
|
|
|
import org.apache.commons.codec.binary.Base64;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
@@ -50,12 +51,16 @@ public class LoginService {
|
|
|
private RedisService redisService;
|
|
|
|
|
|
@Autowired
|
|
|
- private RedisUtil redisUtil;
|
|
|
+ private SmsService smsService;
|
|
|
|
|
|
@Autowired
|
|
|
private PersonMapper personMapper;
|
|
|
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 手机号/账号登录
|
|
|
+ * @param dto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
|
|
public LoginVO loginByPhone(LoginDTO dto) {
|
|
|
LogHelper.log("登录开始");
|
|
@@ -178,7 +183,7 @@ public class LoginService {
|
|
|
|
|
|
wxVO.setIfFirst(true);
|
|
|
}
|
|
|
- wxVO.setPhone(phoneNumber);
|
|
|
+ wxVO.setPhoneNum(phoneNumber);
|
|
|
wxVO.setName(name);
|
|
|
wxVO.setFileGuid(fileGuid);
|
|
|
}
|
|
@@ -189,23 +194,33 @@ public class LoginService {
|
|
|
return wxVO;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 发送验证码
|
|
|
+ * @param vo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public boolean sendCode(SendCodeDTO vo) {
|
|
|
+ boolean flag = false;
|
|
|
if (!RegexUtil.isPhoneLegal(vo.getPhoneNum())) {
|
|
|
throw new BusinessException(ExceptionEnum.PHONE_FORMAT_ERROR);
|
|
|
}
|
|
|
- String checkCode = redisService.get(AppCacheKeyUtil.getCheckCode(vo.getPhoneNum())).toString();
|
|
|
- if (ToolUtil.isNotEmpty(checkCode) && ToolUtil.equals(checkCode,vo.getCheckCode())) {
|
|
|
+ Object checkCode = redisService.get(AppCacheKeyUtil.getCheckCode(vo.getPhoneNum()));
|
|
|
+ if (ToolUtil.isEmpty(checkCode)) {
|
|
|
+ throw new BusinessException(ExceptionEnum.VERIFY_CODE);
|
|
|
+ }
|
|
|
+ if (ToolUtil.isNotEmpty(checkCode.toString()) && ToolUtil.equals(checkCode.toString(),vo.getCheckCode())) {
|
|
|
+ //删除校验码
|
|
|
+ redisService.delete(AppCacheKeyUtil.getCheckCode(vo.getPhoneNum()));
|
|
|
//生成验证码
|
|
|
String random = RandomUtil.getSixRandom();
|
|
|
- //手机号和验证码放进缓存 设置过期时间15m
|
|
|
+ //手机号和验证码放进缓存 设置过期时间5min
|
|
|
redisService. set(AppCacheKeyUtil.getLoginMessageCode(vo.getPhoneNum()), random);
|
|
|
redisService.expire(AppCacheKeyUtil.getLoginMessageCode(vo.getPhoneNum()), CacheTTLEnum.FIVE_MINUTE);
|
|
|
//发送短信
|
|
|
-// smsService.sendMessage(vo.getPhoneNo(), random);
|
|
|
- return true;
|
|
|
- } else {
|
|
|
- return false;
|
|
|
+ smsService.sendMessage(vo.getPhoneNum(), random);
|
|
|
+ flag = true;
|
|
|
}
|
|
|
+ return flag;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -227,10 +242,15 @@ public class LoginService {
|
|
|
result.put("captcha", ImgUtil.toBase64DataUri(captcha.getImage(), "png"));
|
|
|
result.put("uuid", uuid);
|
|
|
//4.将验证码存放到Redis里面并设置过期时间为 60 单位:秒 KEY值格式为: 验证码:UUID VALUE值为:验证码生成工具所生成的验证码
|
|
|
-// redisUtil.setEx(AppCacheKeyUtil.getCheckCode(vo.getPhoneNum()), captcha.getCode(), 60, TimeUnit.SECONDS);
|
|
|
+ redisService.set(AppCacheKeyUtil.getCheckCode(vo.getPhoneNum()), captcha.getCode());
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询个人信息
|
|
|
+ * @param vo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public PersonVO selectPerson(PersonIdDTO vo) {
|
|
|
Person person = personMapper.selectById(vo.getId());
|
|
|
PersonVO personVO = new PersonVO();
|
|
@@ -238,6 +258,11 @@ public class LoginService {
|
|
|
return personVO;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 修改个人信息
|
|
|
+ * @param vo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Throwable.class)
|
|
|
public boolean editPerson(EditPersonDTO vo) {
|
|
|
if (!RegexUtil.isPhoneLegal(vo.getPhoneNum())) {
|
|
@@ -254,13 +279,6 @@ public class LoginService {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- public String getToken() {
|
|
|
- String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
|
|
- com.bjbz.common.jwt.JwtUserInfo jwtUserInfo = new com.bjbz.common.jwt.JwtUserInfo();
|
|
|
- jwtUserInfo.setToken(uuid);
|
|
|
- return jwtTokenUtil.generateToken(jwtUserInfo.toJsonString(), jwtTokenUtil.getRandomKey());
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 退出登录
|
|
|
*
|
|
@@ -278,6 +296,13 @@ public class LoginService {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ public String getToken() {
|
|
|
+ String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
|
|
+ com.bjbz.common.jwt.JwtUserInfo jwtUserInfo = new com.bjbz.common.jwt.JwtUserInfo();
|
|
|
+ jwtUserInfo.setToken(uuid);
|
|
|
+ return jwtTokenUtil.generateToken(jwtUserInfo.toJsonString(), jwtTokenUtil.getRandomKey());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 解密用户数据
|
|
|
*
|