|
@@ -29,12 +29,13 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.support.TransactionTemplate;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
import java.util.Optional;
|
|
|
+import java.util.Random;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
|
* 移动端登录服务类
|
|
|
-
|
|
|
*/
|
|
|
@Service
|
|
|
public class LoginServiceImpl implements LoginService {
|
|
@@ -64,6 +65,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 发送短信验证码
|
|
|
+ *
|
|
|
* @param phone 手机号
|
|
|
* @return Boolean
|
|
|
*/
|
|
@@ -92,6 +94,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 退出登录
|
|
|
+ *
|
|
|
* @param request HttpServletRequest
|
|
|
*/
|
|
|
@Override
|
|
@@ -101,6 +104,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 手机号验证码登录
|
|
|
+ *
|
|
|
* @param loginRequest 登录信息
|
|
|
* @return LoginResponse
|
|
|
*/
|
|
@@ -124,6 +128,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 手机号密码登录
|
|
|
+ *
|
|
|
* @param loginRequest 登录信息
|
|
|
* @return LoginResponse
|
|
|
*/
|
|
@@ -150,6 +155,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 微信公众号授权登录
|
|
|
+ *
|
|
|
* @param request 登录参数
|
|
|
* @return LoginResponse
|
|
|
*/
|
|
@@ -158,7 +164,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
// 通过code获取获取公众号授权信息
|
|
|
WeChatOauthToken oauthToken = wechatService.getOauth2AccessToken(request.getCode());
|
|
|
//检测是否存在
|
|
|
- UserToken userToken = userTokenService.getByOpenidAndType(oauthToken.getOpenId(), UserConstants.USER_TOKEN_TYPE_WECHAT);
|
|
|
+ UserToken userToken = userTokenService.getByOpenidAndType(oauthToken.getOpenId(), UserConstants.USER_TOKEN_TYPE_WECHAT);
|
|
|
Integer spreadPid = Optional.ofNullable(request.getSpreadPid()).orElse(0);
|
|
|
LoginResponse loginResponse = new LoginResponse();
|
|
|
if (ObjectUtil.isNotNull(userToken)) {// 已存在,正常登录
|
|
@@ -187,6 +193,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 微信登录小程序授权登录
|
|
|
+ *
|
|
|
* @param request 用户参数
|
|
|
* @return LoginResponse
|
|
|
*/
|
|
@@ -217,6 +224,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 微信注册绑定手机号
|
|
|
+ *
|
|
|
* @param request 请求参数
|
|
|
* @return 登录信息
|
|
|
*/
|
|
@@ -264,7 +272,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
user.setAccount(request.getPhone());
|
|
|
user.setSpreadUid(0);
|
|
|
user.setPwd(CommonUtil.createPwd(request.getPhone()));
|
|
|
- user.setNickname("贵彩办公");
|
|
|
+ user.setNickname(randomChar(4));
|
|
|
user.setAvatar(systemConfigService.getValueByKey(SysConfigConstants.USER_DEFAULT_AVATAR_CONFIG_KEY));
|
|
|
user.setSex(0);
|
|
|
user.setAddress("");
|
|
@@ -315,6 +323,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 获取用户Token类型
|
|
|
+ *
|
|
|
* @param type 用户注册类型
|
|
|
*/
|
|
|
private Integer getUserTokenType(String type) {
|
|
@@ -421,10 +430,10 @@ public class LoginServiceImpl implements LoginService {
|
|
|
UserToken userToken = null;
|
|
|
|
|
|
if (request.getType().equals(UserConstants.REGISTER_TYPE_IOS_WX)) {
|
|
|
- userToken = userTokenService.getByOpenidAndType(request.getOpenId(), UserConstants.USER_TOKEN_TYPE_IOS_WX);
|
|
|
+ userToken = userTokenService.getByOpenidAndType(request.getOpenId(), UserConstants.USER_TOKEN_TYPE_IOS_WX);
|
|
|
}
|
|
|
if (request.getType().equals(UserConstants.REGISTER_TYPE_ANDROID_WX)) {
|
|
|
- userToken = userTokenService.getByOpenidAndType(request.getOpenId(), UserConstants.USER_TOKEN_TYPE_ANDROID_WX);
|
|
|
+ userToken = userTokenService.getByOpenidAndType(request.getOpenId(), UserConstants.USER_TOKEN_TYPE_ANDROID_WX);
|
|
|
}
|
|
|
if (ObjectUtil.isNotNull(userToken)) {// 已存在,正常登录
|
|
|
User user = userService.getById(userToken.getUid());
|
|
@@ -513,6 +522,7 @@ public class LoginServiceImpl implements LoginService {
|
|
|
|
|
|
/**
|
|
|
* 校验token是否有效
|
|
|
+ *
|
|
|
* @return true 有效, false 无效
|
|
|
*/
|
|
|
@Override
|
|
@@ -546,4 +556,33 @@ public class LoginServiceImpl implements LoginService {
|
|
|
loginResponse.setType(LoginConstants.LOGIN_STATUS_LOGIN);
|
|
|
return loginResponse;
|
|
|
}
|
|
|
+
|
|
|
+ private String randomChar(int j) {
|
|
|
+ String randomChar = "";
|
|
|
+ for (int i = 0; i < j; i++) {
|
|
|
+ String str = "";
|
|
|
+ int highPos;
|
|
|
+ int lowPos;
|
|
|
+ Random random = new Random();
|
|
|
+
|
|
|
+ highPos = (176 + Math.abs(random.nextInt(39)));
|
|
|
+ lowPos = (161 + Math.abs(random.nextInt(93)));
|
|
|
+
|
|
|
+ byte[] b = new byte[2];
|
|
|
+ b[0] = (Integer.valueOf(highPos)).byteValue();
|
|
|
+ b[1] = (Integer.valueOf(lowPos)).byteValue();
|
|
|
+
|
|
|
+ try {
|
|
|
+ str = new String(b, "GBK");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ char result = str.charAt(0);
|
|
|
+ randomChar += result;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return randomChar;
|
|
|
+
|
|
|
+ }
|
|
|
}
|