Преглед на файлове

更新portal相关功能

master
梁超 преди 3 месеца
родител
ревизия
60bb3fe1fa

+ 3
- 3
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginByCodeManager.java Целия файл

@@ -2,12 +2,12 @@ package cn.com.taiji.ias.manager.portal;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.manager.cache.LoginCacheFinals;
import cn.com.taiji.core.manager.cache.RedisKeyGenerator;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginByCodeRequest;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginByCodeResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo;
import cn.com.taiji.ias.model.LoginFinals;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@@ -30,7 +30,7 @@ public class LoginByCodeManager extends AbstractLoginManager {
if (accountInfo == null) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("手机号输入错误");
findAndValidStaff(accountInfo.getOpenId(), request.getLoginSource());
String code = UUID.randomUUID().toString().replaceAll("-", "");// code用于换Token,还完Token就没用了
redisManager.set(RedisKeyGenerator.getLoginOpenIdByCodeKey(code, request.getLoginSource().name()), accountInfo.getOpenId(), LoginFinals.LOGIN_CODE_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginOpenIdByCodeKey(code, request.getLoginSource().name()), accountInfo.getOpenId(), LoginCacheFinals.LOGIN_CODE_EXPIRED, TimeUnit.MINUTES);
LoginByCodeResponse response = new LoginByCodeResponse();
response.setInfo("登录成功");
return response;

+ 1
- 1
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginConfirmManager.java Целия файл

@@ -4,12 +4,12 @@ import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.manager.cache.RedisKeyGenerator;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginConfirmRequest;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginConfirmResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo;
import cn.com.taiji.ias.manager.RedisWrapManager;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


+ 6
- 6
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginManager.java Целия файл

@@ -3,13 +3,13 @@ package cn.com.taiji.ias.manager.portal;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.manager.cache.LoginCacheFinals;
import cn.com.taiji.core.manager.cache.RedisKeyGenerator;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginRequest;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo;
import cn.com.taiji.ias.manager.RedisWrapManager;
import cn.com.taiji.ias.model.LoginFinals;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -47,7 +47,7 @@ public class LoginManager extends AbstractLoginManager {
//校验是否是已经被停用的员工,停用则不允许登录web和app端
findAndValidStaff(accountInfo.getOpenId(), request.getLoginSource());
String code = UUID.randomUUID().toString().replaceAll("-", "");// code用于换Token,还完Token就没用了
redisManager.set(RedisKeyGenerator.getLoginOpenIdByCodeKey(code, request.getLoginSource().name()), accountInfo.getOpenId(), LoginFinals.LOGIN_CODE_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginOpenIdByCodeKey(code, request.getLoginSource().name()), accountInfo.getOpenId(), LoginCacheFinals.LOGIN_CODE_EXPIRED, TimeUnit.MINUTES);
LoginResponse response = new LoginResponse(code);
response.setInfo("登录成功");
return response;
@@ -56,14 +56,14 @@ public class LoginManager extends AbstractLoginManager {

private void addFailedCount(String loginName, SourceType sourceType) {
redisManager.increment(RedisKeyGenerator.getFailCountKey(loginName, sourceType), 1L);
redisManager.expire(RedisKeyGenerator.getFailCountKey(loginName, sourceType), LoginFinals.LOGIN_FAILED_EXPIRE, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getFailCountKey(loginName, sourceType), LoginCacheFinals.LOGIN_FAILED_EXPIRE, TimeUnit.MINUTES);
}

private void checkFailedCount(String loginName, SourceType sourceType) throws ServiceHandleException {
String countStr = redisManager.get(RedisKeyGenerator.getFailCountKey(loginName, sourceType));
int count = hasText(countStr) ? Integer.parseInt(countStr) : 0;
if (count >= LoginFinals.LOGIN_TRY_COUNT) {
String msg = toLogString("登录失败次数超过{}次,{}分钟内禁止登录", LoginFinals.LOGIN_TRY_COUNT, LoginFinals.LOGIN_FAILED_EXPIRE);
if (count >= LoginCacheFinals.LOGIN_TRY_COUNT) {
String msg = toLogString("登录失败次数超过{}次,{}分钟内禁止登录", LoginCacheFinals.LOGIN_TRY_COUNT, LoginCacheFinals.LOGIN_FAILED_EXPIRE);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException(msg);
}
}

+ 3
- 3
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/SendCodeManager.java Целия файл

@@ -1,11 +1,11 @@
package cn.com.taiji.ias.manager.portal;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.manager.cache.LoginCacheFinals;
import cn.com.taiji.core.manager.cache.RedisKeyGenerator;
import cn.com.taiji.core.model.comm.protocol.ias.portal.SendCodeRequest;
import cn.com.taiji.core.model.comm.protocol.ias.portal.SendCodeResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.ias.model.LoginFinals;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;
@@ -20,7 +20,7 @@ public class SendCodeManager extends AbstractLoginManager {
code = (Math.random() * 1000000 + "").substring(0, 6);
logger.info("短信验证码:{}", code);
//TODO 短信接口
redisManager.set(RedisKeyGenerator.getSmsCodeKey(request.getMobile(), request.getLoginSource().name(), request.getBusinessType()), code, LoginFinals.LOGIN_SMS_CODE_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getSmsCodeKey(request.getMobile(), request.getLoginSource().name(), request.getBusinessType()), code, LoginCacheFinals.LOGIN_SMS_CODE_EXPIRED, TimeUnit.MINUTES);
SendCodeResponse response = new SendCodeResponse();
response.setInfo("短信验证码发送成功");
return response;

+ 0
- 14
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/LoginFinals.java Целия файл

@@ -1,14 +0,0 @@
package cn.com.taiji.ias.model;

import cn.com.taiji.common.model.finals.SysFinals;

public class LoginFinals extends SysFinals {

public final static int LOGIN_TRY_COUNT = 5;// 次
public final static int LOGIN_FAILED_EXPIRE = 5;// 分钟
public final static int LOGIN_CODE_EXPIRED = 5 * 60;// 分钟
public final static int LOGIN_TOKEN_EXPIRED = 24 * 60;// 分钟
public final static int LOGIN_SMS_CODE_EXPIRED = 1;// 分钟


}

+ 0
- 46
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/RedisKeyGenerator.java Целия файл

@@ -1,46 +0,0 @@
package cn.com.taiji.ias.model;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.core.entity.dict.basic.SourceType;


public class RedisKeyGenerator extends AbstractManager {

private final static String COLON = ":";
private final static String FAIL_COUNT_KEY_PREFIX = "issues:failedcount:";
private final static String LOGIN_KEY_PREFIX = "issues:login:";


public static String getFailCountKey(String accountName, SourceType sourceType) {
return FAIL_COUNT_KEY_PREFIX + accountName + COLON + sourceType;
}

public static String getLoginOpenIdByCodeKey(String code, String loginSource) {
return LOGIN_KEY_PREFIX + COLON + "getopenIdByCode" + COLON + code + COLON + loginSource;
}

public static String getLoginOpenIdKey(String accessToken) {
return LOGIN_KEY_PREFIX + COLON + "getopenId" + COLON + accessToken;
}

public static String getLoginSourceTypeKey(String accessToken) {
return LOGIN_KEY_PREFIX + COLON + "getsourcetype" + COLON + accessToken;
}

public static String getLoginAccountInfoKey(String accessToken) {
return LOGIN_KEY_PREFIX + COLON + "getaccountinfo" + COLON + accessToken;
}

public static String getLoginAgencyIdKey(String accessToken) {
return LOGIN_KEY_PREFIX + COLON + "getagencyid" + COLON + accessToken;
}

public static String getLoginTokenKey(String openId) {
return LOGIN_KEY_PREFIX + COLON + "gettoken" + COLON + openId;
}

public static String getSmsCodeKey(String mobile, String loginSource, Integer businessType) {
return LOGIN_KEY_PREFIX + COLON + "getsmscode" + COLON + mobile + COLON + loginSource + COLON + businessType;
}

}

Loading…
Отказ
Запис