提交 0e6499d8 编写于 作者: rushui.chen's avatar rushui.chen

20191009 修改返回的数据模型

上级 72f1d57a
流水线 #15549 已失败 于阶段
in 0 second
......@@ -3,6 +3,7 @@ package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.entity.LogLoginEntity;
import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.exception.AccountException;
......@@ -56,15 +57,15 @@ public class LoginController extends AccountBaseController {
*/
@ApiOperation("密码登录接口")
@PostMapping("/login")
public PicaResponse<String> loginByPassword(@RequestBody EncryptEntity entity) throws Exception {
public PicaResponse<LoginResult> loginByPassword(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
request.setProductType(super.getProductType());
request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
AccountUtils.checkMobilePhone(request.getMobile());
AccountUtils.checkPassword(request.getPassword());
String result = loginService.login(request);
return PicaResponse.toResponse(result);
LoginResult login = loginService.login(request);
return PicaResponse.toResponse(login);
}
/**
......@@ -76,36 +77,36 @@ public class LoginController extends AccountBaseController {
*/
@ApiOperation("一键登录接口")
@PostMapping(value = "/login-register")
public PicaResponse loginAndRegister(@RequestBody EncryptEntity entity) throws Exception {
public PicaResponse<LoginResult> loginAndRegister(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
accountUtils.checkMobilePhoneAndAuthCode(request.getMobile(), AccountTypeEnum.SYSCODE_TYPE_LOGIN.getCode() + "",request.getAuthCode());
request.setProductType(super.getProductType());
request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
String json = loginService.loginAndRegister(request);
return PicaResponse.toResponse(json);
LoginResult login =loginService.loginAndRegister(request);
return PicaResponse.toResponse(login);
}
@ApiOperation("微信登录接口")
@PostMapping(value = "/login/wechat")
public PicaResponse loginByWeChat(@RequestBody EncryptEntity entity) throws Exception {
public PicaResponse<LoginResult> loginByWeChat(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
request.setProductType(super.getProductType());
request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
String result = loginService.loginByWeChat(request);
LoginResult result = loginService.loginByWeChat(request);
return PicaResponse.toResponse(result);
}
@ApiOperation("微信登录第二步接口")
@PostMapping(value = "/login/wechat/step2")
public PicaResponse loginByWeChatStep(@RequestBody EncryptEntity entity) throws Exception {
public PicaResponse<LoginResult> loginByWeChatStep(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
accountUtils.checkMobilePhoneAndAuthCode(request.getMobile(), AccountTypeEnum.SYSCODE_TYPE_WE_CHAT.getCode() + "", request.getAuthCode());
request.setProductType(super.getProductType());
request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
String result = loginService.loginByWeChatStep(request);
LoginResult result = loginService.loginByWeChatStep(request);
return PicaResponse.toResponse(result);
}
......@@ -118,7 +119,7 @@ public class LoginController extends AccountBaseController {
*/
@ApiOperation("绑定微信接口")
@PostMapping("/login/wechat/bind")
public PicaResponse<String> bindWeChat(@RequestBody EncryptEntity entity) throws Exception {
public PicaResponse bindWeChat(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
loginService.bindWeChat(request);
request.setAccId(super.getAcctId());
......@@ -141,7 +142,7 @@ public class LoginController extends AccountBaseController {
*/
@ApiOperation(value = "退出登录接口")
@GetMapping("/logout")
public PicaResponse loginOut() {
public PicaResponse<String> loginOut() {
String token = super.getToken();
if (StringUtils.isNotEmpty(token)) {
Integer acctId = super.getAcctId();
......
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.RegisterService;
......@@ -28,7 +29,7 @@ public class RegisterController extends AccountBaseController {
@ApiOperation("注册接口")
@PostMapping(value = "")
public PicaResponse<String> register(@RequestBody EncryptEntity entity) throws Exception {
public PicaResponse<LoginResult> register(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
accountUtils.checkMobilePhoneAndAuthCode(request.getMobile(),AccountTypeEnum.SYSCODE_TYPE_REGISTER.getCode()+"", request.getAuthCode());
accountUtils.checkPassword(request.getPassword());
......@@ -36,7 +37,7 @@ public class RegisterController extends AccountBaseController {
request.setProductType(super.getProductType());
request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
String result = registerService.register(request);
LoginResult result = registerService.register(request);
return PicaResponse.toResponse(result);
}
}
package com.pica.cloud.account.account.server.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* Created on 2019/10/9 17:41
* author:crs
* Description: 登录状态返回
*/
@ApiModel
public class LoginResult {
@ApiModelProperty("token")
private String token;
@ApiModelProperty("用户id")
private Long userId;
@ApiModelProperty("是否绑定")
private String bindFlag;
@ApiModelProperty("联合登录id")
private String unionId;
@ApiModelProperty("是否完善过信息,1.信息未补全, 2信息已补全,3已补全密码")
private int entireFlag;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getBindFlag() {
return bindFlag;
}
public void setBindFlag(String bindFlag) {
this.bindFlag = bindFlag;
}
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId;
}
public int getEntireFlag() {
return entireFlag;
}
public void setEntireFlag(int entireFlag) {
this.entireFlag = entireFlag;
}
}
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.req.BaseRequest;
public interface LoginService {
......@@ -9,7 +10,7 @@ public interface LoginService {
* @param request 参数模型
* @return
*/
String login(BaseRequest request);
LoginResult login(BaseRequest request);
/**
* 一键登录功能
......@@ -17,14 +18,14 @@ public interface LoginService {
* @param request 参数模型
* @return
*/
String loginAndRegister(BaseRequest request);
LoginResult loginAndRegister(BaseRequest request);
/**
* 微信登录
*
* @param baseRequest 参数模型
*/
String loginByWeChat(BaseRequest baseRequest);
LoginResult loginByWeChat(BaseRequest baseRequest);
/**
* 微信登陆第二步
......@@ -32,7 +33,7 @@ public interface LoginService {
* @param request 参数模型
* @return
*/
String loginByWeChatStep(BaseRequest request);
LoginResult loginByWeChatStep(BaseRequest request);
/**
* 解除绑定
......
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.req.BaseRequest;
......@@ -11,7 +12,7 @@ public interface RegisterService {
* @param baseRequest 参数模型
* @return token和userId
*/
String register(BaseRequest baseRequest);
LoginResult register(BaseRequest baseRequest);
}
package com.pica.cloud.account.account.server.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
......@@ -76,7 +74,7 @@ public class LoginServiceImpl implements LoginService {
private String weChatURL;
@Override
public String login(BaseRequest request) {
public LoginResult login(BaseRequest request) {
String mobile = request.getMobile();
String encrypt = AESUtil.encryptV0(mobile);
AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(encrypt);
......@@ -103,17 +101,17 @@ public class LoginServiceImpl implements LoginService {
account.setMobilePhone(mobile);
account.setRegisterSource(sourceType);
String newToken = tokenUtils.generateToken(account);
JSONObject jsonObject = new JSONObject();
jsonObject.put(Constants.TOKEN, newToken);
jsonObject.put(Constants.USER_ID, userId);
LoginResult result = new LoginResult();
result.setToken(newToken);
result.setUserId(userId.longValue());
if (productType == AccountTypeEnum.PRODUCT_TYPE_DOCTOR.getCode()) {
jsonObject.put(Constants.USER_ENTIRE_FLAG, doctorInfo.getEntireFlag());
result.setEntireFlag(doctorInfo.getEntireFlag());
}
LogLoginEntity entity = AccountLogEntityUtils.getLogLoginEntity(acctId, productType, sourceType,
AccountTypeEnum.LOGIN_PWD.getCode(), request.getLoginIp(), AccountTypeEnum.LOGIN_STATUS_SUCCESS.getCode(),
AccountTypeEnum.LOG_TYPE_LOGIN.getCode());
picaLogUtils.info(entity);
return jsonObject.toJSONString();
return result;
} else {
logger.info("login failure:" + mobile);
throw new PicaException(AccountExceptionEnum.PICA_PASSWORD_ERROR.getCode(), AccountExceptionEnum.PICA_PASSWORD_ERROR.getMessage());
......@@ -124,7 +122,7 @@ public class LoginServiceImpl implements LoginService {
}
@Override
public String loginAndRegister(BaseRequest baseRequest) {
public LoginResult loginAndRegister(BaseRequest baseRequest) {
String mobile = baseRequest.getMobile();
AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(AESUtil.encryptV0(mobile));
if (accountInfoEntity == null) {
......@@ -139,7 +137,7 @@ public class LoginServiceImpl implements LoginService {
*
* @param baseRequest
*/
private String processLogin(BaseRequest baseRequest, Integer acctId, Integer loginType) {
private LoginResult processLogin(BaseRequest baseRequest, Integer acctId, Integer loginType) {
Date currentTime = new Date();
Long userId = accountUtils.getUserIdByAcctId(baseRequest.getProductType(), acctId);
Account account = new Account();
......@@ -149,24 +147,24 @@ public class LoginServiceImpl implements LoginService {
account.setMobilePhone(baseRequest.getMobile());
account.setRegisterSource(baseRequest.getSourceType());
String newToken = tokenUtils.generateToken(account);
JSONObject jsonObject = new JSONObject();
jsonObject.put(Constants.TOKEN, newToken);
jsonObject.put(Constants.USER_ID, userId);
LoginResult result = new LoginResult();
result.setToken(newToken);
result.setUserId(userId);
//是否完善过个人信息(云鹊医app才需要)
if (baseRequest.getProductType() == AccountTypeEnum.PRODUCT_TYPE_DOCTOR.getCode()) {
Doctor doctorEntity = doctorInfoMapper.selectByPrimaryKey(userId.intValue());
jsonObject.put(Constants.USER_ENTIRE_FLAG, doctorEntity.getEntireFlag());
result.setEntireFlag(doctorEntity.getEntireFlag());
}
//记录登录日志
LogLoginEntity entity = AccountLogEntityUtils.getLogLoginEntity(acctId, baseRequest.getProductType(), baseRequest.getSourceType(),
loginType, baseRequest.getLoginIp(), AccountTypeEnum.LOGIN_STATUS_SUCCESS.getCode(), AccountTypeEnum.LOG_TYPE_LOGIN.getCode());
;
picaLogUtils.info(entity);
return jsonObject.toJSONString();
return result;
}
@Override
public String loginByWeChat(BaseRequest request) {
public LoginResult loginByWeChat(BaseRequest request) {
WeChatEntity weChatEntity = WeChatUtils.getAuthorizationInfo(appId, appSecret, request.getWeChatCode());
//todo:微信登录获取个人信息
Map map = new HashMap();
......@@ -187,48 +185,47 @@ public class LoginServiceImpl implements LoginService {
account.setMobilePhone(request.getMobile());
account.setRegisterSource(request.getSourceType());
String newToken = tokenUtils.generateToken(account);
JSONObject jsonObject = new JSONObject();
jsonObject.put(Constants.TOKEN, newToken);
jsonObject.put(Constants.USER_ID, userId);
jsonObject.put(Constants.BIND_FLAG, AccountTypeEnum.BIND_STATUS_SUCCESS.getCode());
return jsonObject.toJSONString();
LoginResult result = new LoginResult();
result.setToken(newToken);
result.setUserId(userId);
result.setBindFlag(AccountTypeEnum.BIND_STATUS_SUCCESS.getCode()+"");
return result;
} else {
AccountWeChatInfoEntity entity = accountWeChatInfoMapper.selectByUnionId(unionId);
if (entity == null) {
processWeChatInfoUser(weChatUserInfoEntity, request.getWeChatLoginType());
}
JSONObject jsonObject = new JSONObject();
jsonObject.put(Constants.BIND_FLAG, AccountTypeEnum.BIND_STATUS_FAILURE.getCode());
jsonObject.put(Constants.UNION_ID, unionId);
return jsonObject.toJSONString();
LoginResult result = new LoginResult();
result.setUnionId(unionId);
result.setBindFlag(AccountTypeEnum.BIND_STATUS_FAILURE.getCode()+"");
return result;
}
}
@Override
public String loginByWeChatStep(BaseRequest request) {
public LoginResult loginByWeChatStep(BaseRequest request) {
//判断当前手机号是否注册过,注册过,直接登录;没有注册过,进行注册操操作
AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(AESUtil.encryptV0(request.getMobile()));
String json;
LoginResult result;
if (accountInfoEntity == null) {
json = registerService.register(request);
result = registerService.register(request);
if (doubleWritingMode) {
//双写模式下,要在doctor表存储unionId
JSONObject jsonObject = JSONObject.parseObject(json);
if (jsonObject.containsKey("userId")) {
Integer userId = jsonObject.getInteger("userId");
if (result.getUserId()!=null) {
Doctor doctor = new Doctor();
doctor.setId(userId);
doctor.setId(result.getUserId().intValue());
doctor.setUnionid(request.getUnionId());
doctorInfoMapper.updateByPrimaryKeySelective(doctor);
}
}
} else {
json = processLogin(request, accountInfoEntity.getId(), AccountTypeEnum.LOGIN_WE_CHAT.getCode());
result = processLogin(request, accountInfoEntity.getId(), AccountTypeEnum.LOGIN_WE_CHAT.getCode());
}
AccountInfoEntity accountInfo = accountInfoDetailMapper.selectByMobile(AESUtil.encryptV0(request.getMobile()));
Integer acctId = accountInfo.getId();
processAccountUnion(acctId, request.getUnionId());
return json;
return result;
}
@Override
......
......@@ -2,10 +2,7 @@ package com.pica.cloud.account.account.server.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.entity.Account;
import com.pica.cloud.account.account.server.entity.AccountInfoEntity;
import com.pica.cloud.account.account.server.entity.AccountPatientInfoEntity;
import com.pica.cloud.account.account.server.entity.LogLoginEntity;
import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.exception.AccountException;
......@@ -62,7 +59,7 @@ public class RegisterServiceImpl implements RegisterService {
* @return
*/
@Override
public String register(BaseRequest baseRequest) {
public LoginResult register(BaseRequest baseRequest) {
String mobile = baseRequest.getMobile();
String mobileEncrypt = AESUtil.encryptV0(mobile);
AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(mobileEncrypt);
......@@ -120,10 +117,13 @@ public class RegisterServiceImpl implements RegisterService {
account.setMobilePhone(mobile);
account.setRegisterSource(sourceType);
String newToken = tokenUtils.generateToken(account);
JSONObject jsonObject = new JSONObject();
jsonObject.put(Constants.TOKEN, newToken);
jsonObject.put(Constants.USER_ID, userId);
jsonObject.put(Constants.USER_ENTIRE_FLAG, 1);
LoginResult result = new LoginResult();
result.setToken(newToken);
result.setUserId(userId);
result.setEntireFlag(1);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
try {
......@@ -136,7 +136,7 @@ public class RegisterServiceImpl implements RegisterService {
AccountTypeEnum.LOGIN_REGISTER.getCode(), baseRequest.getLoginIp(), AccountTypeEnum.LOGIN_STATUS_SUCCESS.getCode(),
AccountTypeEnum.LOG_TYPE_LOGIN.getCode());
picaLogUtils.info(entity);
return jsonObject.toJSONString();
return result;
} else {
throw new AccountException(AccountExceptionEnum.PICA_ALREADY_REGISTER);
}
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册