Преглед изворни кода

更新portal相关功能

master
梁超 пре 1 месец
родитељ
комит
56b5f983ba
19 измењених фајлова са 227 додато и 73 уклоњено
  1. 1
    5
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginByCodeRequest.java
  2. 15
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginByCodeResponse.java
  3. 0
    4
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginCodeResponse.java
  4. 2
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginConfirmResponse.java
  5. 1
    1
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/PortalServiceCmd.java
  6. 8
    5
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/SendCodeRequest.java
  7. 4
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/SendCodeResponse.java
  8. 19
    17
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/api/portal/PortalController.java
  9. 5
    9
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/portal/PortalManager.java
  10. 12
    25
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/portal/PortalManagerImpl.java
  11. 36
    0
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/model/portal/LoginByCodeDto.java
  12. 38
    0
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/model/portal/SendCodeDto.java
  13. 5
    4
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/handler/PortalServiceHandler.java
  14. 1
    1
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/AbstractLoginManager.java
  15. 38
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginByCodeManager.java
  16. 8
    2
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LogoutManager.java
  17. 28
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/SendCodeManager.java
  18. 2
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/LoginFinals.java
  19. 4
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/RedisKeyGenerator.java

+ 1
- 5
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginByCodeRequest.java Прегледај датотеку

@@ -1,7 +1,6 @@
package cn.com.taiji.core.model.comm.protocol.ias.portal;

import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.core.model.comm.protocol.valid.RegexConstant;
import lombok.Getter;
@@ -23,13 +22,10 @@ public class LoginByCodeRequest extends AbstractPortalRequest<LoginByCodeRespons
@Pattern(regexp = RegexConstant.SMS_CODE, message = "请传入正确格式的手机验证码")
@NotBlank(message = "手机验证码不能为空")
private String code;
@IntegerConstant(values = "1,2,99")
@NotNull(message = "业务类型不能为空")
private Integer businessType;//1-ETC用户登录 2-业务员登录 99-用户注册
@NotNull(message = "来源不能为空")
private SourceType loginSource;

protected LoginByCodeRequest() {
public LoginByCodeRequest() {
super(PortalServiceCmd.LOGINBYCODE);
}


+ 15
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginByCodeResponse.java Прегледај датотеку

@@ -1,4 +1,19 @@
package cn.com.taiji.core.model.comm.protocol.ias.portal;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(chain = true)
public class LoginByCodeResponse extends AbstractPortalResponse {
private String code;

public LoginByCodeResponse(String code) {
this.code = code;
}

public LoginByCodeResponse() {
}
}

+ 0
- 4
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginCodeResponse.java Прегледај датотеку

@@ -1,4 +0,0 @@
package cn.com.taiji.core.model.comm.protocol.ias.portal;

public class LoginCodeResponse extends AbstractPortalResponse {
}

+ 2
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginConfirmResponse.java Прегледај датотеку

@@ -2,9 +2,11 @@ package cn.com.taiji.core.model.comm.protocol.ias.portal;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(chain = true)
public class LoginConfirmResponse extends AbstractPortalResponse{
private String accessToken;
private String openId;

+ 1
- 1
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/PortalServiceCmd.java Прегледај датотеку

@@ -13,7 +13,7 @@ public enum PortalServiceCmd implements SignServiceCommand {
/**
* 如下接口同时给渠道提供
*/
LOGINCODE("发送登录短信验证码", LoginCodeRequest.class),//
SENDCODE("发送登录短信验证码", SendCodeRequest.class),//
LOGINBYCODE("手机验证码登录", LoginByCodeRequest.class),//
LOGINCONFIRM("登录确认", LoginConfirmRequest.class),
LOGOUT("退出登录", LogoutRequest.class),//

gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LoginCodeRequest.java → gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/SendCodeRequest.java Прегледај датотеку

@@ -1,5 +1,6 @@
package cn.com.taiji.core.model.comm.protocol.ias.portal;

import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.core.model.comm.protocol.valid.RegexConstant;
@@ -14,18 +15,20 @@ import javax.validation.constraints.Pattern;
@Getter
@Setter
@Accessors(chain = true)
public class LoginCodeRequest extends AbstractPortalRequest<LoginCodeResponse> {
public class SendCodeRequest extends AbstractPortalRequest<SendCodeResponse> {

@Pattern(regexp = RegexConstant.REGEX_MOBILE, message = "请传入正确格式的11位手机号码")
@NotBlank(message = "手机号不能为空")
private String mobile;
@IntegerConstant(values = "1,2,99")
@IntegerConstant(values = "0,1,2")
@NotNull(message = "业务类型不能为空")
private Integer businessType;//1-ETC用户登录 2-业务员登录 99-用户注册
private Integer businessType;//0-登录 1-注册 2-忘记密码
@NotNull(message = "来源不能为空")
private SourceType loginSource;


protected LoginCodeRequest() {
super(PortalServiceCmd.LOGINCODE);
public SendCodeRequest() {
super(PortalServiceCmd.SENDCODE);
}

@Override

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/SendCodeResponse.java Прегледај датотеку

@@ -0,0 +1,4 @@
package cn.com.taiji.core.model.comm.protocol.ias.portal;

public class SendCodeResponse extends AbstractPortalResponse {
}

+ 19
- 17
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/api/portal/PortalController.java Прегледај датотеку

@@ -2,16 +2,10 @@ package cn.com.taiji.iaw.api.portal;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.web.ApiResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.AccessTokenCheckResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginConfirmResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LogoutResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.*;
import cn.com.taiji.iaw.api.MyValidController;
import cn.com.taiji.iaw.manager.portal.PortalManager;
import cn.com.taiji.iaw.model.portal.AccessTokenCheckDto;
import cn.com.taiji.iaw.model.portal.LoginConfirmDto;
import cn.com.taiji.iaw.model.portal.LoginDto;
import cn.com.taiji.iaw.model.portal.LogoutDto;
import cn.com.taiji.iaw.model.portal.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

@Api(tags = {"IAS-门户接口:PORTAL"})
@@ -56,6 +51,13 @@ public class PortalController extends MyValidController {
// return ApiResponse.of(res).setMessage("操作成功");
// }

@ApiOperation(value = "获取短信验证码")
@PostMapping(value = "/sendCode")
public ApiResponse<SendCodeResponse> sendCode(@Valid @RequestBody SendCodeDto dto) throws ManagerException {
SendCodeResponse res = portalManager.sendCode(dto);
return ApiResponse.of(res).setMessage("操作成功");
}

@ApiOperation(value = "密码登录")
@PostMapping(value = "/login")
public ApiResponse<LoginResponse> login(@Valid @RequestBody LoginDto dto) throws ManagerException {
@@ -63,15 +65,15 @@ public class PortalController extends MyValidController {
return ApiResponse.of(res).setMessage("操作成功");
}

// @ApiOperation(value = "验证码登录")
// @PostMapping(value = "/loginByCode")
// public ApiResponse<LoginByCodeResponseDto> loginByCode(@Valid @RequestBody LoginByCodeRequestDto req,
// HttpServletRequest request) throws ManagerException {
// LoginByCodeResponseDto res = portalManager.loginByCode(req);
// logger.info("request url:{},port:{}", request.getRequestURL(), request.getRemotePort());
// return ApiResponse.of(res).setMessage("操作成功");
// }
//
@ApiOperation(value = "验证码登录")
@PostMapping(value = "/loginByCode")
public ApiResponse<LoginByCodeResponse> loginByCode(@Valid @RequestBody LoginByCodeDto dto,
HttpServletRequest request) throws ManagerException {
LoginByCodeResponse res = portalManager.loginByCode(dto);
logger.info("request url:{},port:{}", request.getRequestURL(), request.getRemotePort());
return ApiResponse.of(res).setMessage("操作成功");
}
@ApiOperation(value = "原1006-登录确认")
@PostMapping(value = "/loginConfirm")
public ApiResponse<LoginConfirmResponse> loginConfirm(@Valid @RequestBody LoginConfirmDto dto)

+ 5
- 9
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/portal/PortalManager.java Прегледај датотеку

@@ -1,14 +1,8 @@
package cn.com.taiji.iaw.manager.portal;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.core.model.comm.protocol.ias.portal.AccessTokenCheckResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginConfirmResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LogoutResponse;
import cn.com.taiji.iaw.model.portal.AccessTokenCheckDto;
import cn.com.taiji.iaw.model.portal.LoginConfirmDto;
import cn.com.taiji.iaw.model.portal.LoginDto;
import cn.com.taiji.iaw.model.portal.LogoutDto;
import cn.com.taiji.core.model.comm.protocol.ias.portal.*;
import cn.com.taiji.iaw.model.portal.*;

import javax.validation.Valid;

@@ -25,9 +19,11 @@ public interface PortalManager {
//
// RegisterFullResponse registerFull(@Valid RegisterFullRequest req) throws ManagerException;

SendCodeResponse sendCode(@Valid SendCodeDto dto) throws ManagerException;

LoginResponse login(@Valid LoginDto dto) throws ManagerException;

// LoginByCodeResponseDto loginByCode(@Valid LoginByCodeRequestDto req) throws ManagerException;
LoginByCodeResponse loginByCode(@Valid LoginByCodeDto dto) throws ManagerException;

LoginConfirmResponse loginConfirm(LoginConfirmDto dto) throws ManagerException;


+ 12
- 25
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/portal/PortalManagerImpl.java Прегледај датотеку

@@ -2,26 +2,15 @@ package cn.com.taiji.iaw.manager.portal;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.core.manager.tools.encryption.SM4Util;
import cn.com.taiji.core.model.comm.protocol.ias.portal.AccessTokenCheckResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginConfirmResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LogoutResponse;
import cn.com.taiji.core.model.comm.protocol.ias.portal.*;
import cn.com.taiji.iaw.manager.AbstractCommManager;
import cn.com.taiji.iaw.model.portal.AccessTokenCheckDto;
import cn.com.taiji.iaw.model.portal.LoginConfirmDto;
import cn.com.taiji.iaw.model.portal.LoginDto;
import cn.com.taiji.iaw.model.portal.LogoutDto;
import cn.com.taiji.iaw.model.portal.*;
import org.springframework.stereotype.Service;

/**
* @Author weicailin
* @Date 2023/3/14 16:34
* @Email 13079168756@163.com
*/
@Service
public class PortalManagerImpl extends AbstractCommManager implements PortalManager {

// @Override
// @Override
// public RegisterResponse register(RegisterRequest req) throws ManagerException {
// return jsonPostRepeat(req);
// }
@@ -35,23 +24,21 @@ public class PortalManagerImpl extends AbstractCommManager implements PortalMana
// public RegisterFullResponse registerFull(RegisterFullRequest req) throws ManagerException {
// return jsonPostRepeat(req);
// }
@Override
public SendCodeResponse sendCode(SendCodeDto dto) throws ManagerException {
return jsonPostRepeat(dto.toRequest());
}

@Override
public LoginResponse login(LoginDto dto) throws ManagerException {
return jsonPostRepeat(dto.toRequest());
}

// @Override
// public LoginByCodeResponseDto loginByCode(LoginByCodeRequestDto reqDto) throws ManagerException {
// reqDto.validate();
// LoginByCodeRequest loginByCodeRequest = new LoginByCodeRequest();
// BeanTools.copyProperties(reqDto,loginByCodeRequest);
// LoginByCodeResponse loginByCodeResponse = jsonPostRepeat(loginByCodeRequest);
// LoginByCodeResponseDto responseDto = new LoginByCodeResponseDto();
// BeanTools.copyProperties(loginByCodeResponse,responseDto);
// return responseDto;
// }
//
@Override
public LoginByCodeResponse loginByCode(LoginByCodeDto dto) throws ManagerException {
return jsonPostRepeat(dto.toRequest());
}

@Override
public LoginConfirmResponse loginConfirm(LoginConfirmDto dto) throws ManagerException {
return jsonPostRepeat(dto.toRequest());

+ 36
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/model/portal/LoginByCodeDto.java Прегледај датотеку

@@ -0,0 +1,36 @@
package cn.com.taiji.iaw.model.portal;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.model.BaseModel;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginByCodeRequest;
import cn.com.taiji.core.model.comm.protocol.valid.RegexConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;

@Getter
@Setter
@Accessors(chain = true)
public class LoginByCodeDto extends BaseModel {
@Pattern(regexp = RegexConstant.REGEX_MOBILE, message = "手机号格式不正确")
@NotBlank(message = "手机号不能为空")
private String mobile;
@Pattern(regexp = RegexConstant.SMS_CODE, message = "请传入正确格式的手机验证码")
@NotBlank(message = "手机验证码不能为空")
private String code;
@NotBlank(message = "来源不能为空")
private String loginSource;

public LoginByCodeRequest toRequest() throws ManagerException {
LoginByCodeRequest request = new LoginByCodeRequest();
request.setMobile(mobile);
request.setCode(code);
if (SourceType.findByCode(loginSource) == null) throw new ManagerException("未知的登录来源方");
request.setLoginSource(SourceType.findByCode(loginSource));
return request;
}
}

+ 38
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/model/portal/SendCodeDto.java Прегледај датотеку

@@ -0,0 +1,38 @@
package cn.com.taiji.iaw.model.portal;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.model.BaseModel;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import cn.com.taiji.core.model.comm.protocol.ias.portal.SendCodeRequest;
import cn.com.taiji.core.model.comm.protocol.valid.RegexConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

@Getter
@Setter
@Accessors(chain = true)
public class SendCodeDto extends BaseModel {
@Pattern(regexp = RegexConstant.REGEX_MOBILE, message = "请传入正确格式的11位手机号码")
@NotBlank(message = "手机号不能为空")
private String mobile;
@IntegerConstant(values = "0,1,2")
@NotNull(message = "业务类型不能为空")
private Integer businessType;//0-登录 1-注册 2-忘记密码
@NotBlank(message = "来源不能为空")
private String loginSource;

public SendCodeRequest toRequest() throws ManagerException {
SendCodeRequest request = new SendCodeRequest();
request.setMobile(mobile);
request.setBusinessType(businessType);
if (SourceType.findByCode(loginSource) == null) throw new ManagerException("未知的登录来源方");
request.setLoginSource(SourceType.findByCode(loginSource));
return request;
}
}

+ 5
- 4
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/handler/PortalServiceHandler.java Прегледај датотеку

@@ -7,10 +7,7 @@ import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.SignJsonRequest;
import cn.com.taiji.core.model.comm.protocol.ias.IasServiceType;
import cn.com.taiji.core.model.comm.protocol.ias.portal.*;
import cn.com.taiji.ias.manager.portal.AccessTokenCheckManager;
import cn.com.taiji.ias.manager.portal.LoginConfirmManager;
import cn.com.taiji.ias.manager.portal.LoginManager;
import cn.com.taiji.ias.manager.portal.LogoutManager;
import cn.com.taiji.ias.manager.portal.*;
import com.zgglyun.common.model.AbstractHttpRequestInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -25,6 +22,8 @@ public class PortalServiceHandler extends AbstractIasServiceHandler<PortalServic
private LoginConfirmManager loginConfirmManager;
@Autowired
private AccessTokenCheckManager accessTokenCheckManager;
@Autowired
private SendCodeManager sendCodeManager;

public PortalServiceHandler() {
super(IasServiceType.PORTAL);
@@ -42,6 +41,8 @@ public class PortalServiceHandler extends AbstractIasServiceHandler<PortalServic
return loginConfirmManager.serviceHandle((LoginConfirmRequest) request);
case ACCESSTOKENCHECK:
return accessTokenCheckManager.serviceHandle((AccessTokenCheckRequest) request);
case SENDCODE:
return sendCodeManager.serviceHandle((SendCodeRequest) request);
default:
throw FileProtocolSystemError.NOT_SUPPORT.toHandleException(jsonReq.getIfCode());
}

+ 1
- 1
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/AbstractLoginManager.java Прегледај датотеку

@@ -24,7 +24,7 @@ public abstract class AbstractLoginManager extends AbstractManager {
@Autowired
private StaffRepo staffRepo;
@Autowired
private RedisWrapManager redisManager;
protected RedisWrapManager redisManager;

protected Staff findAndValidStaff(String openId, SourceType loginSource) throws ServiceHandleException {
if (loginSource != SourceType.SERVICE_HALL && loginSource != SourceType.WEB) return null;

+ 38
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginByCodeManager.java Прегледај датотеку

@@ -0,0 +1,38 @@
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.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;

import java.util.UUID;
import java.util.concurrent.TimeUnit;

@Service
public class LoginByCodeManager extends AbstractLoginManager {

@Autowired
private AccountInfoRepo accountInfoRepo;

public LoginByCodeResponse serviceHandle(LoginByCodeRequest request) throws ServiceHandleException {
String smsCode = redisManager.get(RedisKeyGenerator.getSmsCodeKey(request.getMobile(), request.getLoginSource().name(), 1));
if (!hasText(smsCode))
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("短信验证码已过期,请重新发送");
if (!smsCode.equals(request.getCode()))
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("短信验证码错误!");
AccountInfo accountInfo = accountInfoRepo.findByAccount(request.getMobile());
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);
LoginByCodeResponse response = new LoginByCodeResponse();
response.setInfo("登录成功");
return response;
}
}

+ 8
- 2
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LogoutManager.java Прегледај датотеку

@@ -9,8 +9,14 @@ import org.springframework.stereotype.Service;
@Service
public class LogoutManager extends AbstractLoginManager {

public LogoutResponse serviceHandle(LogoutRequest request) throws ServiceHandleException {
checkTokenCache(request.getAccessToken(), request.getOpenId(), request.getLoginSource());
public LogoutResponse serviceHandle(LogoutRequest request) {
try {
checkTokenCache(request.getAccessToken(), request.getOpenId(), request.getLoginSource());
} catch (ServiceHandleException e) {
LogoutResponse response = new LogoutResponse();
response.setInfo("退出成功");
return response;
}
deleteTokenCache(request.getAccessToken(), request.getOpenId());
LogoutResponse response = new LogoutResponse();
response.setInfo("退出成功");

+ 28
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/SendCodeManager.java Прегледај датотеку

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

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
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;

@Service
public class SendCodeManager extends AbstractLoginManager {

public SendCodeResponse serviceHandle(SendCodeRequest request) throws ServiceHandleException {
String code = redisManager.get(RedisKeyGenerator.getSmsCodeKey(request.getMobile(), request.getLoginSource().name(), request.getBusinessType()));
if (hasText(code))
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("短信验证码在有效期内,请勿重复发送");
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);
SendCodeResponse response = new SendCodeResponse();
response.setInfo("短信验证码发送成功");
return response;
}
}

+ 2
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/LoginFinals.java Прегледај датотеку

@@ -8,5 +8,7 @@ public class LoginFinals extends SysFinals {
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;// 分钟


}

+ 4
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/RedisKeyGenerator.java Прегледај датотеку

@@ -39,4 +39,8 @@ public class RedisKeyGenerator extends AbstractManager {
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…
Откажи
Сачувај