提交 753091e7 编写于 作者: dong.an's avatar dong.an

merge

流水线 #16217 已失败 于阶段
in 0 second
......@@ -11,7 +11,7 @@
<groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-client</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
<name>pica-cloud-account-client</name>
<packaging>jar</packaging>
......@@ -28,7 +28,7 @@
<dependency>
<groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
......
package com.pica.cloud.account.account.client;
import com.pica.cloud.account.account.common.req.EncryptEntity;
import com.pica.cloud.account.account.common.req.LoginResult;
import com.pica.cloud.account.account.common.req.OCINRequest;
import com.pica.cloud.foundation.entity.PicaResponse;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* Created on 2019/10/16 17:28
* author:crs
* Description:RegisterClient
*/
@FeignClient(name = "13201-pica-cloud-account")
public interface RegisterClient {
@PostMapping(value = "/account/register")
PicaResponse<LoginResult> register(@RequestBody EncryptEntity entity);
@PostMapping(value = "/account/register/ocin")
PicaResponse register(@RequestBody OCINRequest ocinRequest);
}
......@@ -11,7 +11,7 @@
<groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
<name>pica-cloud-account-common</name>
<packaging>jar</packaging>
......
package com.pica.cloud.account.account.common.req;
/**
* 加解密数据模型
*/
public class EncryptEntity {
/**
* 加密后的密文
*/
private String key;
/**
* 加密后的数据
*/
private String content;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
// @Override
// public String toString() {
// return "EncryptEntity{" +
// "key='" + key + '\'' +
// ", content='" + content + '\'' +
// '}';
// }
}
package com.pica.cloud.account.account.common.req;
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.common.req;
import io.swagger.annotations.ApiModelProperty;
/**
* Created on 2019/10/16 16:46
* author:crs
* Description:ocin项目
*/
public class OCINRequest {
public String mobile;
private String name;
private Integer hospitalId;
private Integer flag;
@ApiModelProperty("产品线类型")
private Integer productType;
@ApiModelProperty("渠道来源")
private Integer sourceType;
@ApiModelProperty("登录ip")
private String loginIp;
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getHospitalId() {
return hospitalId;
}
public void setHospitalId(Integer hospitalId) {
this.hospitalId = hospitalId;
}
public Integer getFlag() {
return flag;
}
public void setFlag(Integer flag) {
this.flag = flag;
}
public Integer getProductType() {
return productType;
}
public void setProductType(Integer productType) {
this.productType = productType;
}
public Integer getSourceType() {
return sourceType;
}
public void setSourceType(Integer sourceType) {
this.sourceType = sourceType;
}
public String getLoginIp() {
return loginIp;
}
public void setLoginIp(String loginIp) {
this.loginIp = loginIp;
}
}
......@@ -74,6 +74,11 @@
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
<dependency>
<groupId>com.pica.cloud.foundation</groupId>
<artifactId>pica-cloud-utils</artifactId>
......@@ -111,7 +116,7 @@
<dependency>
<groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</dependency>
<dependency>
......
package com.pica.cloud.account.account.server;
import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.entity.Doctor;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.req.PatientReq;
import com.pica.cloud.account.account.server.util.AESUtil;
import com.pica.cloud.account.account.server.util.RSAUtil;
public class Test {
public static void main(String[] args) throws Exception {
// String json="{\"key\":\"密钥\",\"content\": {\"mobilePhone\" : \"1302412588\", \"flag\": \"1\"}}\n" +
// " }";
//获取验证码参数
BaseRequest request = new BaseRequest();
request.setFlag(1);
request.setMobile("13024112070");
String string = JSONObject.toJSONString(request);
System.out.println(string);
EncryptEntity encryptEntity = new EncryptEntity();
encryptEntity.setContent(string);
System.out.println(JSONObject.toJSONString(encryptEntity));
System.out.println("------------------------------>");
//获取注册参数
// BaseRequest register = null;
// register = new BaseRequest();
// register.setMobile("13024112588");
// register.setPassword("qq123456");
// register.setAuthCode("111111");
// String registerString = JSONObject.toJSONString(register);
// System.out.println(registerString);
// EncryptEntity registerEncryptEntity = new EncryptEntity();
// registerEncryptEntity.setContent(registerString);
// System.out.println(JSONObject.toJSONString(registerEncryptEntity));
// System.out.println("------------------------------>");
//
// //修改用户信息接口
// PatientReq req=new PatientReq();
// req.setAddress("测试数据");
// req.setEmail("2586622608@qq.com");
// req.setTelephone("座机号码");
// String json = JSONObject.toJSONString(req);
// System.out.println(json);
// EncryptEntity patientReqEncryptEntity = new EncryptEntity();
// patientReqEncryptEntity.setContent(json);
// System.out.println(JSONObject.toJSONString(patientReqEncryptEntity));
// Doctor doctor = new Doctor();
// doctor.setName("crs");
// doctor.setMobilePhone("13024112222");
// doctor.setPassword("qq123456");
// doctor.setCard("412702195468146814821");
// doctor.setCityName("上海市");
// String doctorJson = JSONObject.toJSONString(doctor);
// System.out.println(doctorJson);
// String mobile = jsonObject.getString("mobile");
// String authCode = jsonObject.getString("authCode");
// String password = jsonObject.getString("password");
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("mobile","13024112565");
// jsonObject.put("authCode","13024112565");
// jsonObject.put("password","qq123456");
// System.out.println(jsonObject.toJSONString());
// System.out.println("--------------------》");
//
//
// EncryptEntity encryptEntity1 = new EncryptEntity();
// encryptEntity1.setContent("content");
// encryptEntity1.setKey("awgvsfgwgv");
// String encryptEntity1Json = JSONObject.toJSONString(encryptEntity1);
// System.out.println(encryptEntity1Json);
System.out.println("--------------------登录接口-------------");
String publicKey="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCa6j3SJwXr/pLLwb6Pq8pi9StPq+Wvm6vu+LWQB1hNqClWk0jQm5GnF6Kj0ac2gqgsMsutc3hhMaaX2QZvLX+gFQHC/ufGBdBbpPtDeGWsQItsMf/xqqlkLPkc7eVTyfsmrpQM7BG9LVvaPVXPVUcZfJNBaYuR4+Sf6Zi2ayI/hQIDAQAB";
BaseRequest login = new BaseRequest();
login.setMobile("13024112080");
login.setPassword("D0DCBF0D12A6B1E7FBFA2CE5848F3EFF");
String con = JSONObject.toJSONString(login);
String contentResult = AESUtil.aesEncrypt(con, "YCPQPx4qpQjEjDea");
String keyResult = RSAUtil.encrypt("YCPQPx4qpQjEjDea",publicKey);
EncryptEntity encryptTest = new EncryptEntity();
encryptTest.setContent(contentResult);
encryptTest.setKey(keyResult);
System.out.println(JSONObject.toJSONString(encryptTest));
System.out.println("--------------------修改密码接口-------------");
BaseRequest changePwd = new BaseRequest();
changePwd.setOldPwd("D0DCBF0D12A6B1E7FBFA2CE5848F3EFF");
changePwd.setPassword("0B9A75D6A88721A4BCF94F0FD668C56B");
String changePwdStr = JSONObject.toJSONString(changePwd);
System.out.println(changePwdStr);
String contentResult1 = AESUtil.aesEncrypt(changePwdStr, "YCPQPx4qpQjEjDea");
String keyResult1 = RSAUtil.encrypt("YCPQPx4qpQjEjDea",publicKey);
EncryptEntity encryptTest1 = new EncryptEntity();
encryptTest1.setContent(contentResult1);
encryptTest1.setKey(keyResult1);
System.out.println(JSONObject.toJSONString(encryptTest1));
System.out.println("--------------------获取验证码接口-------------");
BaseRequest authCode = new BaseRequest();
authCode.setFlag(1);
authCode.setMobile("13024112081");
String authCodeStr = JSONObject.toJSONString(authCode);
System.out.println(authCodeStr);
String contentResult2 = AESUtil.aesEncrypt(authCodeStr, "YCPQPx4qpQjEjDea");
String keyResult2 = RSAUtil.encrypt("YCPQPx4qpQjEjDea",publicKey);
EncryptEntity encryptTest2 = new EncryptEntity();
encryptTest2.setContent(contentResult2);
encryptTest2.setKey(keyResult2);
System.out.println(JSONObject.toJSONString(encryptTest2));
System.out.println("--------------------注册接口-------------");
//获取注册参数
BaseRequest register = null;
register = new BaseRequest();
register.setMobile("13024112080");
register.setPassword("D0DCBF0D12A6B1E7FBFA2CE5848F3EFF");
register.setAuthCode("012082");
String registerString3 = JSONObject.toJSONString(register);
String contentResult3 = AESUtil.aesEncrypt(registerString3, "YCPQPx4qpQjEjDea");
String keyResult3 = RSAUtil.encrypt("YCPQPx4qpQjEjDea",publicKey);
EncryptEntity encryptTest3 = new EncryptEntity();
encryptTest3.setContent(contentResult3);
encryptTest3.setKey(keyResult3);
System.out.println(JSONObject.toJSONString(encryptTest3));
System.out.println("--------------------一键登录接口-------------");
BaseRequest loginRegister = null;
loginRegister = new BaseRequest();
loginRegister.setMobile("13024112081");
loginRegister.setAuthCode("393791");
String registerString4 = JSONObject.toJSONString(loginRegister);
String contentResult4 = AESUtil.aesEncrypt(registerString4, "YCPQPx4qpQjEjDea");
String keyResult4 = RSAUtil.encrypt("YCPQPx4qpQjEjDea",publicKey);
EncryptEntity encryptTest4 = new EncryptEntity();
encryptTest4.setContent(contentResult4);
encryptTest4.setKey(keyResult4);
System.out.println(JSONObject.toJSONString(encryptTest4));
}
}
......@@ -6,11 +6,43 @@ package com.pica.cloud.account.account.server.constants;
*/
public class Constants {
private Constants() {}
private Constants() {
}
public static final String SEND_MESSAGE = "/sms/send";
/** 批量短信url */
/**
* 批量短信url
*/
public static final String BATCH_SEND_MESSAGE = "/sms/send_batch_dif";
//token
public static final String TOKEN = "token";
//用户id
public static final String USER_ID = "userId";
//是否绑定
public static final String BIND_FLAG = "bindFlag";
//联合登录id
public static final String UNION_ID = "unionId";
//用户是否完善过信息
public static final String USER_ENTIRE_FLAG = "entireFlag";
/**
* 请求头信息
*/
public static final String HEADER_MOBILE = "mobile";
public static final String HEADER_USER_TYPE = "游客";
public static final String HEADER_BROWSER = "browser";
public static final String HEADER_OPERATOR_SYSTEM = "os";
public static final String HEADER_TERMINAL_TYPE = "terminalType";
public static final String HEADER_SYS_CODE = "sysCode";
public static final String HEADER_SYS_SOURCE = "app";
public static final String HEADER_GUEST_ID = "guest_id";
public static final String HEADER_IP = "ip";
/**
* 时间格式化
*/
public static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
}
......@@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.configuration.PropertiesConfiguration;
import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.entity.AccountUser;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.exception.AccountException;
import com.pica.cloud.account.account.server.util.PICAPSendMsgModel;
import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResultCode;
......@@ -17,10 +20,13 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
* controller基类
*
* @author andong
* @create 2019/5/21
*/
......@@ -76,7 +82,7 @@ public abstract class AccountBaseController extends BaseController {
try {
Map<String, String> data = Object2Map.objectToMapString("yyyy-MM-dd HH:mm:ss", picaUser, new String[0]);
data.put("sysCode", sysCode);
return super.getRedisClient().saveToken(data, 365*24*3600); //token有效期365天
return super.getRedisClient().saveToken(data, 365 * 24 * 3600); //token有效期365天
} catch (Exception ex) {
logger.error("保存token失败,doctorId: {}", picaUser.getId());
return StringUtils.EMPTY;
......@@ -110,7 +116,6 @@ public abstract class AccountBaseController extends BaseController {
picapSendMsgModel.setExtend("");
picapSendMsgModel.setSupplementFlag(true);
picapSendMsgModel.setSms_entity_id(0);
long currentTimeMillis = System.currentTimeMillis();
picapSendMsgModel.setTime(String.valueOf(currentTimeMillis));
picapSendMsgModel.setKey(MD5Util.MD5("pica" + currentTimeMillis));
......@@ -125,4 +130,62 @@ public abstract class AccountBaseController extends BaseController {
logger.error("发送短信失败");
}
}
/**
* 账户信息
*
* @return
*/
public AccountUser getAccountUser() {
//把所有请求头信息都封装到当前模型中
String token = this.getToken();
AccountUser accountUser = super.getRedisClient().getToken(token, AccountUser.class);
accountUser.setLoginFrom(this.getSourceType());
accountUser.setLoginPlatform(this.getProductType());
accountUser.setLoginIp(super.getIpAddr());
return accountUser;
}
/**
* 获取账户id
*
* @return
*/
public Integer getAcctId() {
try {
AccountUser accountUser = getAccountUser();
return accountUser.getAcctId();
} catch (Exception e) {
e.printStackTrace();
throw new AccountException(AccountExceptionEnum.PICA_LOGIN_AGAIN);
}
}
/**
* 产品线类型:productType: 1.云鹊医(默认值) 2云鹊健康
*
* @return
*/
public Integer getProductType() {
HttpServletRequest request = super.getRequest();
String str = request.getHeader("productType");
if (StringUtils.isNotEmpty(str)) {
return Integer.parseInt(str);
}
return null;
}
/**
* 终端来源 sourceType:1.android 2.ios 3.web 4.wechat(例如微信小程序) 5.h5
*
* @return
*/
public Integer getSourceType() {
HttpServletRequest request = super.getRequest();
String str = request.getHeader("sourceType");
if (StringUtils.isNotEmpty(str)) {
return Integer.parseInt(str);
}
return null;
}
}
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.Account;
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.mapper.AccountMapper;
import com.pica.cloud.account.account.server.req.AccountReq;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.AccountService;
import com.pica.cloud.account.account.server.service.CaptchaService;
import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants;
import com.pica.cloud.foundation.encryption.util.EncryptUtils;
import com.pica.cloud.foundation.entity.PicaException;
......@@ -46,6 +51,7 @@ public class AccountController extends AccountBaseController {
private AccountService accountService;
@Autowired
private CaptchaService captchaService;
@Autowired
@Qualifier("cacheMigrateClient")
private ICacheClient redisClient;
......@@ -95,6 +101,7 @@ public class AccountController extends AccountBaseController {
return PicaResponse.toResponse();
}
@ApiOperation("微信登录")
@PostMapping("/login/wechat")
public PicaResponse<String> wechatLogin(@RequestBody AccountReq req) {
......@@ -148,14 +155,14 @@ public class AccountController extends AccountBaseController {
return PicaResponse.toResponse(newToken);
}
@ApiOperation("注册")
@PostMapping("/register")
public PicaResponse<String> register(@RequestBody AccountReq req) {
// @ApiOperation("注册")
// @PostMapping("/register")
public PicaResponse<LoginResult> register(@RequestBody AccountReq req) {
this.checkMobilePhone(req.getMobilePhone());
this.checkAuthCode(req);
String deviceType = super.getDeviceInfo("device_type"); //1:pc 2:android 3:ios
Account account = new Account();
account.setMobilePhone(req.getMobilePhone());
account.setMobilePhone(EncryptUtils.encryptContent(req.getMobilePhone(), EncryptConstants.ENCRYPT_TYPE_MOBILE));
switch (deviceType) { //注册来源
case "1":
account.setRegisterSource(CommonConstants.SYSTEM_TYPE_P024_NO_3); //pc
......@@ -169,23 +176,39 @@ public class AccountController extends AccountBaseController {
default:
account.setRegisterSource(7); //H5注册
}
accountService.createAccount(account); //创建账号
//创建账号
accountService.createAccount(account);
//生成token并返回
String newToken = this.generateToken(account, deviceType);
return PicaResponse.toResponse(newToken);
LoginResult result = new LoginResult();
result.setToken(newToken);
return PicaResponse.toResponse(result);
}
@ApiOperation("登录或注册")
@PostMapping("/login-register")
public PicaResponse<String> loginRegister(@RequestBody AccountReq req) {
this.checkMobilePhone(req.getMobilePhone());
req.setPassword(null); //登录或注册,只能使用验证码
@ApiOperation("H5端一键登录功能,无需完善信息")
@PostMapping("/login-register/v1")
public PicaResponse loginRegister(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
this.checkMobilePhone(request.getMobile());
AccountReq req = new AccountReq();
req.setMobilePhone(request.getMobile());
req.setPassword(null);//登录或注册,只能使用验证码
req.setAuthCode(request.getAuthCode());
req.setFlag("0");
req.setUnionid(request.getUnionId());
//判断账号是否已经存在
Account account = accountService.getByMobilePhone(req.getMobilePhone());
if (account != null) {
return this.login(req); //登录
PicaResponse response = this.login(req); //登录
if (response.getData() != null) {
LoginResult result = new LoginResult();
result.setToken(response.getData().toString());
return PicaResponse.toResponse(result);
}
return response;
} else {
return this.register(req); //注册
}
......@@ -200,6 +223,7 @@ public class AccountController extends AccountBaseController {
//获取验证码redis key
private String getAuthCodeKey(String mobilePhone, String flag) {
logger.info(AUTH_CODE_PREFIX + flag + "-" + EncryptUtils.encryptContent(mobilePhone, EncryptConstants.ENCRYPT_TYPE_MOBILE));
return AUTH_CODE_PREFIX + flag + "-" + EncryptUtils.encryptContent(mobilePhone, EncryptConstants.ENCRYPT_TYPE_MOBILE);
}
......@@ -212,7 +236,9 @@ public class AccountController extends AccountBaseController {
}
String authCodeKey = this.getAuthCodeKey(req.getMobilePhone(), flag);
logger.info(authCodeKey);
String cacheCode = redisClient.get(authCodeKey); //从redis获取验证码
if (StringUtils.isBlank(cacheCode)) {
throw new PicaException(PicaResultCode.RESULE_DATA_NONE.code(), "短信验证码已过期,请重新获取");
}
......@@ -279,4 +305,49 @@ public class AccountController extends AccountBaseController {
return newToken;
}
/**
* 旧的注册接口,下个版本可以去掉
* @param req
* @return
*/
@ApiOperation("H5端一键登录功能,无需完善信息 旧接口")
@PostMapping("/login-register")
public PicaResponse<String> loginRegister(@RequestBody AccountReq req) {
this.checkMobilePhone(req.getMobilePhone());
req.setPassword(null); //登录或注册,只能使用验证码
//判断账号是否已经存在
Account account = accountService.getByMobilePhone(req.getMobilePhone());
if (account != null) {
return this.login(req); //登录
} else {
return this.registerOld(req); //注册
}
}
public PicaResponse<String> registerOld(@RequestBody AccountReq req) {
this.checkMobilePhone(req.getMobilePhone());
this.checkAuthCode(req);
String deviceType = super.getDeviceInfo("device_type"); //1:pc 2:android 3:ios
Account account = new Account();
account.setMobilePhone(EncryptUtils.encryptContent(req.getMobilePhone(), EncryptConstants.ENCRYPT_TYPE_MOBILE));
switch (deviceType) { //注册来源
case "1":
account.setRegisterSource(CommonConstants.SYSTEM_TYPE_P024_NO_3); //pc
break;
case "2":
account.setRegisterSource(CommonConstants.SYSTEM_TYPE_P024_NO_1); //android
break;
case "3":
account.setRegisterSource(CommonConstants.SYSTEM_TYPE_P024_NO_2); //ios
break;
default:
account.setRegisterSource(7); //H5注册
}
//创建账号
accountService.createAccount(account);
//生成token并返回
String newToken = this.generateToken(account, deviceType);
return PicaResponse.toResponse(newToken);
}
}
package com.pica.cloud.account.account.server.controller;
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.AccountUnionEntity;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
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;
import com.pica.cloud.account.account.server.mapper.AccountInfoDetailMapper;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.AccountService;
import com.pica.cloud.account.account.server.service.AccountUnionService;
import com.pica.cloud.account.account.server.service.CaptchaService;
import com.pica.cloud.account.account.server.util.AESUtil;
import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.utils.CommonUtil;
import com.pica.cloud.foundation.utils.utils.ValidateUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(description = "短信验证码资源")
@RestController
public class AutoCodeController extends AccountBaseController {
private final String AUTH_CODE_PREFIX = "authCode-";
private Logger logger = LoggerFactory.getLogger(AccountController.class);
@Autowired
private AccountInfoDetailMapper accountInfoDetailMapper;
@Autowired
private AccountUnionService accountUnionService;
@Autowired
private CaptchaService captchaService;
@Autowired
private AccountService accountService;
@Autowired
@Qualifier("cacheMigrateClient")
private ICacheClient cacheClient;
@ApiOperation("获取短信验证码,无需图形验证码,如app端")
@PostMapping(value = "/authCode")
public PicaResponse getAuthCode(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
AccountUtils.checkMobilePhone(request.getMobile());
processSysCode(request.getMobile(), request.getFlag());
return PicaResponse.toResponse();
}
@ApiOperation("获取短信验证码,需要图形验证码,如H5端和PC端;验证码类型 0默认 1注册 2微信登录绑定手机 3修改手机 4重置密码 5忘记密码 7患者招募提交问卷(效验)")
@PostMapping("/account/authCode")
public PicaResponse<String> getAuthCodeWithCaptcha(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
String mobilePhone = request.getMobile();
String flag = request.getFlag() + "";
String captchaToken = request.getCaptchaToken();
String captchaAnswer = request.getCaptchaAnswer();
//校验图形验证码
if (!captchaService.acknowledge(captchaToken, captchaAnswer)) {
return PicaResponse.toResponse(null, PicaResultCode.PARAM_IS_INVALID.code(), "图形验证码错误");
}
this.checkMobilePhone(mobilePhone);
String authCode = CommonUtil.createValidateCode(); //随机生成验证码
String message = "您的验证码是" + authCode + ",在10分钟内有效。如非本人操作,请忽略本短信!";
//判断账号是否已经存在
Account account = accountService.getByMobilePhone(mobilePhone);
long senderId = account == null ? 0L : account.getId();
//验证码保存到redis,失效时间10分钟
cacheClient.set(this.getAuthCodeKey(mobilePhone, flag), authCode, 600);
logger.info(this.getAuthCodeKey(mobilePhone, flag));
//发送短信
super.sendMobileMessage(mobilePhone, message, senderId);
return PicaResponse.toResponse(StringUtils.EMPTY);
}
@ApiOperation("微信获取验证码")
@PostMapping(value = "/authCode/wechat")
public PicaResponse getWChatSysCode(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
request.setFlag(AccountTypeEnum.SYSCODE_TYPE_WE_CHAT.getCode());
AccountUtils.checkMobilePhone(request.getMobile());
AccountUnionEntity accountUnionEntity = accountUnionService.selectInfoByUnionId(request.getUnionId());
if (accountUnionEntity != null) {
processSysCode(request.getMobile(), request.getFlag());
return PicaResponse.toResponse();
}
throw new AccountException(AccountExceptionEnum.PICA_UNBIND_MOBILE);
}
/**
* 验证码发送逻辑
* 1)随机数生成验证码;
* 2)验证码失效时间十分钟;
* 3)同一个业务一个手机号一分钟只能发送一次:提示:请X秒后重试.(用手机号区别用户,用flag区别业务类型)
*
* @param mobilePhone
* @param flag
*/
private void processSysCode(String mobilePhone, Integer flag) {
String authCodeKey = this.getAuthCodeKey(mobilePhone, flag.toString());
String authCodeKeySecure = authCodeKey + "-secure";
//如果存在,说明刚刚发送过验证码
if (cacheClient.exists(authCodeKey)) {
Long time = cacheClient.get(this.getAuthCodeKey(mobilePhone, flag.toString()) + "-secure", Long.class);
if (time == null) {
processSendAuthCode(mobilePhone, flag, authCodeKeySecure);
} else {
int remainTime = 59 - (int) (System.currentTimeMillis() - time) / 1000;
if (remainTime > 0) {
throw new AccountException(AccountExceptionEnum.PICA_SYSCODE_RETRY.getCode(),
AccountExceptionEnum.PICA_SYSCODE_RETRY.getMessage().replace("X", String.valueOf(remainTime)));
} else {
processSendAuthCode(mobilePhone, flag, authCodeKeySecure);
}
}
} else {
processSendAuthCode(mobilePhone, flag, authCodeKeySecure);
}
}
/**
* 调用发送验证码的接口
*
* @param mobilePhone
* @param flag
* @param authCodeKeySecure
*/
private void processSendAuthCode(String mobilePhone, Integer flag, String authCodeKeySecure) {
String authCode = CommonUtil.createValidateCode();
String message = "您的验证码是" + authCode + ",在10分钟内有效。如非本人操作,请忽略本短信!";
AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(mobilePhone);
long senderId = accountInfoEntity == null ? 0L : accountInfoEntity.getId();
cacheClient.set(this.getAuthCodeKey(mobilePhone, flag.toString()), authCode, 600);
cacheClient.set(authCodeKeySecure, System.currentTimeMillis(), 60);
super.sendMobileMessage(mobilePhone, message, senderId);
}
//获取验证码redis key
private String getAuthCodeKey(String mobilePhone, String flag) {
return AUTH_CODE_PREFIX + flag + "-" + AESUtil.encryptV0(mobilePhone);
}
//手机格式校验
private void checkMobilePhone(String mobilePhone) {
if (StringUtils.isBlank(mobilePhone) || !ValidateUtils.isMobile(mobilePhone)) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "请输入正确的手机号");
}
}
}
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.util.RSAUtil;
import com.pica.cloud.foundation.entity.PicaResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created on 2019/9/16 15:29
* author:crs
* Description:H5端获取公钥资源
*/
@Api(description = "密钥接口资源")
@RestController
public class CipherController {
@Value("${rsapublickey}")
private String rsaPublicKey;
@ApiOperation("获取公钥Key接口")
@GetMapping(value = "/cipher/key")
public PicaResponse<String> getPublicKey() {
return PicaResponse.toResponse(rsaPublicKey);
}
}
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.AccountUser;
import com.pica.cloud.account.account.server.entity.Doctor;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.exception.AccountException;
import com.pica.cloud.account.account.server.service.DoctorService;
import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants;
import com.pica.cloud.foundation.encryption.util.EncryptUtils;
import com.pica.cloud.foundation.entity.PicaResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* Created on 2019/9/10 18:51
* author:crs
* Description:云鹊医 获取用户信息资源
*/
@Api(description = "云鹊医用户信息信息资源")
@RestController
@RequestMapping("/doctor")
public class DoctorController extends AccountBaseController {
@Autowired
private DoctorService doctorService;
@ApiOperation("获取医生信息用接口")
@GetMapping(value = "/info", produces = "application/json;charset=utf-8")
public PicaResponse<Doctor> getDoctorInfo() {
AccountUser accountUser = null;
try {
accountUser = super.getAccountUser();
} catch (Exception e) {
throw new AccountException(AccountExceptionEnum.PICA_LOGIN_AGAIN);
}
Integer userId = accountUser.getId();
Doctor doctorInfo = doctorService.getDoctorInfo(userId);
String mobilePhone = doctorInfo.getMobilePhone();
String dencrypt = EncryptUtils.decryptContent(mobilePhone, EncryptConstants.ENCRYPT_TYPE_MOBILE, super.getToken());
mobilePhone = dencrypt.substring(0, 3) + "****" + dencrypt.substring(7, 11);
doctorInfo.setMobilePhone(mobilePhone);
return PicaResponse.toResponse(doctorInfo);
}
@ApiOperation("修改医生信息接口")
@PutMapping(value = "/info", produces = "application/json;charset=utf-8")
public PicaResponse modifyDoctorInfo(@RequestBody Doctor doctor) {
doctorService.modifyDoctorInfo(doctor);
return PicaResponse.toResponse();
}
/**
* 当前医生是哪个admin账户添加的
*
* @param doctor
* @return
*/
@ApiOperation("客服系统新增医生")
@PostMapping(value = "/info", produces = "application/json;charset=utf-8")
public PicaResponse addDoctorInfo(@RequestBody Doctor doctor) {
if (doctor != null && doctor.getMobilePhone() != null) {
AccountUtils.checkMobilePhone(doctor.getMobilePhone());
AccountUtils.checkPassword(doctor.getPassword());
Integer userId = doctorService.addDoctorInfo(doctor);
return PicaResponse.toResponse(userId);
} else {
throw new AccountException(AccountExceptionEnum.PICA_PARAMS_ERROR);
}
}
}
package com.pica.cloud.account.account.server.controller;
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;
import com.pica.cloud.account.account.server.log.AccountLogEntityUtils;
import com.pica.cloud.account.account.server.log.AccountLogUtils;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.LoginService;
import com.pica.cloud.account.account.server.service.TokenService;
import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.utils.CommonUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@Api(description = "登录资源")
@RestController
public class LoginController extends AccountBaseController {
@Autowired
private LoginService loginService;
@Autowired
@Qualifier("cacheMigrateClient")
private ICacheClient redisClient;
@Autowired
private AccountLogUtils picaLogUtils;
@Autowired
private AccountUtils accountUtils;
@Autowired
private TokenService tokenService;
/**
* 密码登录接口
*
* @param entity
* @return
* @throws Exception
*/
@ApiOperation("密码登录接口")
@PostMapping("/login")
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());
LoginResult login = loginService.login(request);
return PicaResponse.toResponse(login);
}
/**
* 一键登录
*
* @param entity
* @return
* @throws Exception
*/
@ApiOperation("PC,App端一键登录接口,需要完善信息")
@PostMapping(value = "/login-register")
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());
LoginResult login =loginService.loginAndRegister(request);
return PicaResponse.toResponse(login);
}
@ApiOperation("微信登录接口")
@PostMapping(value = "/login/wechat")
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());
LoginResult result = loginService.loginByWeChat(request);
return PicaResponse.toResponse(result);
}
@ApiOperation("微信登录第二步接口")
@PostMapping(value = "/login/wechat/step2")
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());
LoginResult result = loginService.loginByWeChatStep(request);
return PicaResponse.toResponse(result);
}
/**
* 绑定微信接口
*
* @param entity
* @return
* @throws Exception
*/
@ApiOperation("绑定微信接口")
@PostMapping("/login/wechat/bind")
public PicaResponse bindWeChat(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
request.setAccId(super.getAcctId());
loginService.bindWeChat(request);
return PicaResponse.toResponse();
}
@ApiOperation("微信解除绑定接口")
@PutMapping("/login/wechat/unbind")
public PicaResponse unbindWeChat() {
Integer acctId = super.getAcctId();
loginService.unbindWeChat(acctId);
return PicaResponse.toResponse();
}
/**
* 退出登录接口,返回一个随机token
* 1)登录状态调用,2)清除token
*
* @return
*/
@ApiOperation(value = "退出登录接口")
@GetMapping("/logout")
public PicaResponse<String> loginOut() {
String token = super.getToken();
if (StringUtils.isNotEmpty(token)) {
Integer acctId = super.getAcctId();
redisClient.deleteToken(token);
Map<String, Object> headersMap = super.getHeaders();
String newToken = tokenService.getToken(headersMap);
LogLoginEntity entity = AccountLogEntityUtils.getLogLoginEntity(acctId, super.getProductType(), super.getSourceType(),
AccountTypeEnum.LOGIN_OUT.getCode(), super.getIpAddr(), AccountTypeEnum.LOGIN_STATUS_SUCCESS.getCode(), AccountTypeEnum.LOG_TYPE_LOGIN.getCode());
picaLogUtils.info(entity);
return PicaResponse.toResponse(newToken);
} else {
throw new AccountException(AccountExceptionEnum.PICA_LOGIN_AGAIN);
}
}
@ApiOperation(value = "web登录获取用户信息")
@GetMapping("/login/web")
public PicaResponse<LoginResultWeb> getLoginResult() {
LoginResultWeb resultWeb = new LoginResultWeb();
long doctorId = super.getDoctorIdByToken();
if (doctorId <= 0) {
resultWeb.setIsExist(2);
return PicaResponse.toResponse(resultWeb);
}
PICAPDoctor doctor = loginService.queryDoctor(doctorId);
resultWeb.setPicapDoctor(doctor);
if (doctor.getStatus() != null) {
resultWeb.setCertifyDoc(doctor.getStatus().intValue());
}
return PicaResponse.toResponse(resultWeb);
}
}
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
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.ModifyMobileService;
import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@Api(description="修改手机号资源")
@RestController
public class ModifyMobileController extends AccountBaseController {
@Autowired
private AccountUtils accountUtils;
@Autowired
private ModifyMobileService modifyMobileService;
@ApiOperation("修改手机号")
@PostMapping("/mobile/modify")
public PicaResponse modifyMobile(@RequestBody EncryptEntity entity) throws Exception {
Integer acctId = super.getAcctId();
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
String mobile = request.getMobile();
accountUtils.checkMobilePhoneAndAuthCode(mobile, AccountTypeEnum.SYSCODE_TYPE_MODIFY_MOBILE.getCode() + "", request.getAuthCode());
modifyMobileService.modify(acctId, mobile);
return PicaResponse.toResponse();
}
}
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.exception.AccountException;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.PasswordService;
import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(description = "密码资源")
@RestController
@RequestMapping("/password")
public class PasswordController extends AccountBaseController {
@Autowired
private PasswordService passwordService;
@Autowired
private AccountUtils accountUtils;
/**
* 修改密码
*
* @return
*/
@ApiOperation("修改密码接口")
@PostMapping(value = "/modify")
public PicaResponse modifyPassword(@RequestBody EncryptEntity entity) throws Exception {
Integer acctId = super.getAcctId();
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
String oldPwd = request.getOldPwd();
String password = request.getPassword();
if (!StringUtils.isEmpty(password) && !StringUtils.isEmpty(oldPwd)) {
if (!password.equals(oldPwd)) {
passwordService.modifyPassword(acctId, oldPwd, password);
return PicaResponse.toResponse();
} else {
throw new AccountException(AccountExceptionEnum.PICA_PASSWORD_EQUAL);
}
} else {
throw new AccountException(AccountExceptionEnum.PICA_PASSWORD_NULL);
}
}
/**
* 忘记密码
*
* @return
*/
@ApiOperation("忘记密码接口")
@PostMapping(value = "/reset")
public PicaResponse forgetPassword(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
accountUtils.checkMobilePhoneAndAuthCode(request.getMobile(), AccountTypeEnum.SYSCODE_TYPE_RESET_PASSWORD.getCode() + "", request.getAuthCode());
if (StringUtils.isEmpty(request.getPassword())) {
throw new AccountException(AccountExceptionEnum.PICA_PASSWORD_ERROR);
}
passwordService.forgetPassword(request);
return PicaResponse.toResponse();
}
}
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.AccountPatientInfoEntity;
import com.pica.cloud.account.account.server.entity.AccountUser;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
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;
import com.pica.cloud.account.account.server.req.PatientReq;
import com.pica.cloud.account.account.server.service.PatientInfoService;
import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Api(description = "云鹊健康用户信息资源")
@RestController
@RequestMapping(value = "/patient")
public class PatientInfoController extends AccountBaseController {
@Autowired
private PatientInfoService patientInfoService;
/**
* 获取用户信息接口,产品线不同,用户信息不同(云鹊医,云鹊健康)
*
* @return
*/
@ApiOperation("获取居民信息")
@GetMapping(value = "/info", produces = "application/json;charset=utf-8")
public PicaResponse getUserInfo() {
AccountUser accountUser = super.getAccountUser();
AccountPatientInfoEntity userInfo = null;
Integer loginFrom = accountUser.getLoginFrom();
Integer userId = accountUser.getId();
if (loginFrom == 2) {
userInfo = patientInfoService.getUserInfo(userId);
}
return PicaResponse.toResponse(userInfo);
}
/**
* 修改用户信息接口
*
* @return
*/
@ApiOperation("修改居民信息")
@PutMapping(value = "/info", produces = "application/json;charset=utf-8")
public PicaResponse putUserInfo(@RequestBody EncryptEntity entity) throws Exception {
Integer id = super.getAccountUser().getId();
PatientReq request = CryptoUtil.decrypt(entity, PatientReq.class);
request.setId(id);
request.setAcctId(super.getAcctId());
AccountPatientInfoEntity accountPatientInfoEntity = new AccountPatientInfoEntity();
BeanUtils.copyProperties(accountPatientInfoEntity, request);
patientInfoService.updateUserInfo(accountPatientInfoEntity);
return PicaResponse.toResponse();
}
@ApiOperation("客服系统添加居民信息")
@PostMapping(value = "/info", produces = "application/json;charset=utf-8")
public PicaResponse addPatientInfo(AccountPatientInfoEntity entity) {
Integer userId = super.getAccountUser().getId();
AccountUtils.checkMobilePhone(entity.getMobilePhone());
if (StringUtils.isBlank(entity.getName())) {
patientInfoService.addPatientInfo(entity, userId);
} else {
throw new AccountException(AccountExceptionEnum.PICA_PARAMS_ERROR);
}
return PicaResponse.toResponse();
}
}
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.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.exception.AccountException;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.common.req.OCINRequest;
import com.pica.cloud.account.account.server.service.RegisterService;
import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.redis.ICacheClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(description = "注册资源")
@RestController
@RequestMapping("/register")
public class RegisterController extends AccountBaseController {
private final String REPEAT_REGISTER_PREFIX = "repeat-register—";
@Autowired
private RegisterService registerService;
@Autowired
private AccountUtils accountUtils;
@Autowired
@Qualifier("cacheMigrateClient")
private ICacheClient redisClient;
@ApiOperation("PC端,移动端注册接口")
@PostMapping(value = "")
public PicaResponse<LoginResult> register(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
String mobile = request.getMobile();
//接口幂等性处理(redis中没有就进行注册逻辑,如果已经存在,就不处理)
String exist = redisClient.get(REPEAT_REGISTER_PREFIX + mobile);
if (StringUtils.isBlank(exist)) {
accountUtils.checkMobilePhoneAndAuthCode(mobile, AccountTypeEnum.SYSCODE_TYPE_REGISTER.getCode() + "", request.getAuthCode());
accountUtils.checkPassword(request.getPassword());
redisClient.set(REPEAT_REGISTER_PREFIX + mobile, mobile, 30);
LoginResult result = null;
try {
request.setFlag(AccountTypeEnum.SYSCODE_TYPE_REGISTER.getCode());
request.setProductType(super.getProductType());
request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
result = registerService.register(request);
} catch (Exception e) {
//向上抛出异常,让异常处理框架捕获到
throw new AccountException(AccountExceptionEnum.PICA_REGISTER_FAIL);
} finally {
//如果在注册过程中抛出异常,就删除redis中的注册标记
redisClient.del(REPEAT_REGISTER_PREFIX + mobile);
}
redisClient.del(REPEAT_REGISTER_PREFIX + mobile);
return PicaResponse.toResponse(result);
} else {
return PicaResponse.toResponse(null, AccountExceptionEnum.PICA_ALREADY_REGISTER.getCode(), "正在注册中,请勿重复提交");
}
}
//"sourceType":6 表示长海项目
@ApiOperation("OCIN项目")
@PostMapping(value = "/ocin")
public PicaResponse register(@RequestBody OCINRequest ocinRequest) {
registerService.ocinRegister(ocinRequest);
return PicaResponse.toResponse();
}
}
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.service.TokenService;
import com.pica.cloud.foundation.entity.PicaResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* Created on 2019/9/10 9:35
* author:crs
* Description:获取随机token
*/
@Api(description = "获取游客token")
@RestController
public class TokenController extends AccountBaseController {
@Autowired
private TokenService tokenService;
@ApiOperation(value = "获取token接口")
@GetMapping(value = "/token")
public PicaResponse<String> getRandomToken() {
Map<String, Object> headersMap = super.getHeaders();
String token = tokenService.getToken(headersMap);
return PicaResponse.toResponse(token);
}
}
......@@ -13,6 +13,8 @@ public class Account {
private Long id;
private Integer acctId;
private Integer sex;
private String name;
......@@ -75,6 +77,14 @@ public class Account {
this.id = id;
}
public Integer getAcctId() {
return acctId;
}
public void setAcctId(Integer acctId) {
this.acctId = acctId;
}
public Integer getSex() {
return sex;
}
......
package com.pica.cloud.account.account.server.entity;
import java.util.Date;
public class AccountInfoEntity {
private Integer id;
private String mobilePhone;
private String password;
private Integer registerProduct;
private Integer registerSource;
private String name;
private Integer age;
private Date birthday;
private Integer sex;
private String idCard;
private Date regTime;
private Integer deleteFlag;
private Integer createdId;
private Date createdTime;
private Integer modifiedId;
private Date modifiedTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getMobilePhone() {
return mobilePhone;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getRegisterProduct() {
return registerProduct;
}
public void setRegisterProduct(Integer registerProduct) {
this.registerProduct = registerProduct;
}
public Integer getRegisterSource() {
return registerSource;
}
public void setRegisterSource(Integer registerSource) {
this.registerSource = registerSource;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public Date getRegTime() {
return regTime;
}
public void setRegTime(Date regTime) {
this.regTime = regTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getCreatedId() {
return createdId;
}
public void setCreatedId(Integer createdId) {
this.createdId = createdId;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Integer getModifiedId() {
return modifiedId;
}
public void setModifiedId(Integer modifiedId) {
this.modifiedId = modifiedId;
}
public Date getModifiedTime() {
return modifiedTime;
}
public void setModifiedTime(Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
import java.util.Date;
public class AccountPatientInfoEntity {
private Integer id;
private Integer acctId;
private String villageName;
private String mobilePhone;
private String name;
private Long villageId;
private String townName;
private Long townId;
private String countyName;
private Long countyId;
private String cityName;
private Long cityId;
private String provinceName;
private Long provinceId;
private Long country;
private String headImgUrl;
private String address;
private String patientAddress;
private String telephone;
private String socialCard;
private String workUnit;
private String healthFileNumber;
private String paymentType;
private String remarks;
private String email;
private String nation;
private Integer createId;
private Date createTime;
private Integer modifyId;
private Date modifyTime;
private int deleteFlag;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAcctId() {
return acctId;
}
public void setAcctId(Integer acctId) {
this.acctId = acctId;
}
public String getVillageName() {
return villageName;
}
public void setVillageName(String villageName) {
this.villageName = villageName == null ? null : villageName.trim();
}
public String getMobilePhone() {
return mobilePhone;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getVillageId() {
return villageId;
}
public void setVillageId(Long villageId) {
this.villageId = villageId;
}
public String getTownName() {
return townName;
}
public void setTownName(String townName) {
this.townName = townName == null ? null : townName.trim();
}
public Long getTownId() {
return townId;
}
public void setTownId(Long townId) {
this.townId = townId;
}
public String getCountyName() {
return countyName;
}
public void setCountyName(String countyName) {
this.countyName = countyName == null ? null : countyName.trim();
}
public Long getCountyId() {
return countyId;
}
public void setCountyId(Long countyId) {
this.countyId = countyId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName == null ? null : cityName.trim();
}
public Long getCityId() {
return cityId;
}
public void setCityId(Long cityId) {
this.cityId = cityId;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName == null ? null : provinceName.trim();
}
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public Long getCountry() {
return country;
}
public void setCountry(Long country) {
this.country = country;
}
public String getHeadImgUrl() {
return headImgUrl;
}
public void setHeadImgUrl(String headImgUrl) {
this.headImgUrl = headImgUrl == null ? null : headImgUrl.trim();
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address == null ? null : address.trim();
}
public String getPatientAddress() {
return patientAddress;
}
public void setPatientAddress(String patientAddress) {
this.patientAddress = patientAddress == null ? null : patientAddress.trim();
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone == null ? null : telephone.trim();
}
public String getSocialCard() {
return socialCard;
}
public void setSocialCard(String socialCard) {
this.socialCard = socialCard == null ? null : socialCard.trim();
}
public String getWorkUnit() {
return workUnit;
}
public void setWorkUnit(String workUnit) {
this.workUnit = workUnit == null ? null : workUnit.trim();
}
public String getHealthFileNumber() {
return healthFileNumber;
}
public void setHealthFileNumber(String healthFileNumber) {
this.healthFileNumber = healthFileNumber == null ? null : healthFileNumber.trim();
}
public String getPaymentType() {
return paymentType;
}
public void setPaymentType(String paymentType) {
this.paymentType = paymentType == null ? null : paymentType.trim();
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks == null ? null : remarks.trim();
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email == null ? null : email.trim();
}
public String getNation() {
return nation;
}
public void setNation(String nation) {
this.nation = nation == null ? null : nation.trim();
}
public Integer getCreateId() {
return createId;
}
public void setCreateId(Integer createId) {
this.createId = createId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getModifyId() {
return modifyId;
}
public void setModifyId(Integer modifyId) {
this.modifyId = modifyId;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public int getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(int deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
import java.util.Date;
public class AccountUnionEntity {
private Integer id;
private Long acctId;
private Integer unionType;
private String unionId;
private Integer deleteFlag;
private Integer createdId;
private Date createdTime;
private Integer modifiedId;
private Date modifiedTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Long getAcctId() {
return acctId;
}
public void setAcctId(Long acctId) {
this.acctId = acctId;
}
public Integer getUnionType() {
return unionType;
}
public void setUnionType(Integer unionType) {
this.unionType = unionType;
}
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId == null ? null : unionId.trim();
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getCreatedId() {
return createdId;
}
public void setCreatedId(Integer createdId) {
this.createdId = createdId;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Integer getModifiedId() {
return modifiedId;
}
public void setModifiedId(Integer modifiedId) {
this.modifiedId = modifiedId;
}
public Date getModifiedTime() {
return modifiedTime;
}
public void setModifiedTime(Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
import com.pica.cloud.foundation.utils.entity.PicaUser;
public class AccountUser extends PicaUser {
//账户id
private Integer acctId;
//渠道来源
private Integer loginFrom;
//平台来源
private Integer loginPlatform;
//账户名
private String acctName;
//登录ip
private String loginIp;
public Integer getAcctId() {
return acctId;
}
public void setAcctId(Integer acctId) {
this.acctId = acctId;
}
public Integer getLoginFrom() {
return loginFrom;
}
public void setLoginFrom(Integer loginFrom) {
this.loginFrom = loginFrom;
}
public Integer getLoginPlatform() {
return loginPlatform;
}
public void setLoginPlatform(Integer loginPlatform) {
this.loginPlatform = loginPlatform;
}
public String getAcctName() {
return acctName;
}
public void setAcctName(String acctName) {
this.acctName = acctName;
}
public String getLoginIp() {
return loginIp;
}
public void setLoginIp(String loginIp) {
this.loginIp = loginIp;
}
}
package com.pica.cloud.account.account.server.entity;
import java.util.Date;
public class AccountWeChatInfoEntity {
private Integer id;
private String unionid;
private String openid;
private String nickname;
private String headImgUrl;
private int sex;
private String country;
private String province;
private String city;
private String language;
private Integer type;
private String privilege;
private Integer subscribe;
private Date subscribeTime;
private String remark;
private String groupid;
private String tagidList;
private Integer deleteFlag;
private Integer createdId;
private Date createdTime;
private Integer modifiedId;
private Date modifiedTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUnionid() {
return unionid;
}
public void setUnionid(String unionid) {
this.unionid = unionid;
}
public String getOpenid() {
return openid;
}
public void setOpenid(String openid) {
this.openid = openid;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getHeadImgUrl() {
return headImgUrl;
}
public void setHeadImgUrl(String headImgUrl) {
this.headImgUrl = headImgUrl;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getPrivilege() {
return privilege;
}
public void setPrivilege(String privilege) {
this.privilege = privilege;
}
public Integer getSubscribe() {
return subscribe;
}
public void setSubscribe(Integer subscribe) {
this.subscribe = subscribe;
}
public Date getSubscribeTime() {
return subscribeTime;
}
public void setSubscribeTime(Date subscribeTime) {
this.subscribeTime = subscribeTime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getGroupid() {
return groupid;
}
public void setGroupid(String groupid) {
this.groupid = groupid;
}
public String getTagidList() {
return tagidList;
}
public void setTagidList(String tagidList) {
this.tagidList = tagidList;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getCreatedId() {
return createdId;
}
public void setCreatedId(Integer createdId) {
this.createdId = createdId;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Integer getModifiedId() {
return modifiedId;
}
public void setModifiedId(Integer modifiedId) {
this.modifiedId = modifiedId;
}
public Date getModifiedTime() {
return modifiedTime;
}
public void setModifiedTime(Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
import java.util.Date;
public class AgreementEntity {
private Long id;
private Integer agreement_type;
private String version;
private String agreement_content;
private Integer delete_flag;
private Long created_id;
private Date created_time;
private Long modified_id;
private Date modified_time;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getAgreement_type() {
return agreement_type;
}
public void setAgreement_type(Integer agreement_type) {
this.agreement_type = agreement_type;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version == null ? null : version.trim();
}
public Integer getDelete_flag() {
return delete_flag;
}
public void setDelete_flag(Integer delete_flag) {
this.delete_flag = delete_flag;
}
public Long getCreated_id() {
return created_id;
}
public void setCreated_id(Long created_id) {
this.created_id = created_id;
}
public Date getCreated_time() {
return created_time;
}
public void setCreated_time(Date created_time) {
this.created_time = created_time;
}
public Long getModified_id() {
return modified_id;
}
public void setModified_id(Long modified_id) {
this.modified_id = modified_id;
}
public Date getModified_time() {
return modified_time;
}
public void setModified_time(Date modified_time) {
this.modified_time = modified_time;
}
public String getAgreement_content() {
return agreement_content;
}
public void setAgreement_content(String agreement_content) {
this.agreement_content = agreement_content == null ? null : agreement_content.trim();
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
import java.util.Date;
public class AgreementLogEntity {
private Long id;
private Long doctor_id;
private Integer agreement_type;
private String version;
private Integer delete_flag;
private Long created_id;
private Date created_time;
private Long modified_id;
private Date modified_time;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getDoctor_id() {
return doctor_id;
}
public void setDoctor_id(Long doctor_id) {
this.doctor_id = doctor_id;
}
public Integer getAgreement_type() {
return agreement_type;
}
public void setAgreement_type(Integer agreement_type) {
this.agreement_type = agreement_type;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version == null ? null : version.trim();
}
public Integer getDelete_flag() {
return delete_flag;
}
public void setDelete_flag(Integer delete_flag) {
this.delete_flag = delete_flag;
}
public Long getCreated_id() {
return created_id;
}
public void setCreated_id(Long created_id) {
this.created_id = created_id;
}
public Date getCreated_time() {
return created_time;
}
public void setCreated_time(Date created_time) {
this.created_time = created_time;
}
public Long getModified_id() {
return modified_id;
}
public void setModified_id(Long modified_id) {
this.modified_id = modified_id;
}
public Date getModified_time() {
return modified_time;
}
public void setModified_time(Date modified_time) {
this.modified_time = modified_time;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
/**
* 加解密数据模型
*/
public class EncryptEntity {
/**
* 加密后的密文
*/
private String key;
/**
* 加密后的数据
*/
private String content;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
// @Override
// public String toString() {
// return "EncryptEntity{" +
// "key='" + key + '\'' +
// ", content='" + content + '\'' +
// '}';
// }
}
package com.pica.cloud.account.account.server.entity;
import com.pica.cloud.account.account.server.log.AccountLogEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
@ApiModel
public class LogLoginEntity extends AccountLogEntity {
private Integer id;
private Integer acctId;
private String acctName;
private int productType;
private int sourceType;
private int loginType;
private String loginIp;
private Date loginTime;
//成功,失败
@ApiModelProperty("登陆状态")
private int loginStatus;
private Integer createId;
private Date createTime;
private Integer modifyId;
private Date modifyTime;
private int deleteFlag;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAcctId() {
return acctId;
}
public void setAcctId(Integer acctId) {
this.acctId = acctId;
}
public String getAcctName() {
return acctName;
}
public void setAcctName(String acctName) {
this.acctName = acctName;
}
public int getProductType() {
return productType;
}
public void setProductType(int productType) {
this.productType = productType;
}
public int getSourceType() {
return sourceType;
}
public void setSourceType(int sourceType) {
this.sourceType = sourceType;
}
public int getLoginType() {
return loginType;
}
public void setLoginType(int loginType) {
this.loginType = loginType;
}
public String getLoginIp() {
return loginIp;
}
public void setLoginIp(String loginIp) {
this.loginIp = loginIp;
}
public Date getLoginTime() {
return loginTime;
}
public void setLoginTime(Date loginTime) {
this.loginTime = loginTime;
}
public int getLoginStatus() {
return loginStatus;
}
public void setLoginStatus(int loginStatus) {
this.loginStatus = loginStatus;
}
public Integer getCreateId() {
return createId;
}
public void setCreateId(Integer createId) {
this.createId = createId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getModifyId() {
return modifyId;
}
public void setModifyId(Integer modifyId) {
this.modifyId = modifyId;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public int getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(int deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
import com.pica.cloud.account.account.server.log.AccountLogEntity;
import java.util.Date;
public class LogPWDModifyEntity extends AccountLogEntity {
private Integer id;
private String mobilePhone;
private Date modifiedTime;
private Integer modifiedId;
private String oldPwd;
private String newPwd;
private Integer deleteFlag;
private Integer createdId;
private Date createdTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getMobilePhone() {
return mobilePhone;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone == null ? null : mobilePhone.trim();
}
public Date getModifiedTime() {
return modifiedTime;
}
public void setModifiedTime(Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
public Integer getModifiedId() {
return modifiedId;
}
public void setModifiedId(Integer modifiedId) {
this.modifiedId = modifiedId;
}
public String getOldPwd() {
return oldPwd;
}
public void setOldPwd(String oldPwd) {
this.oldPwd = oldPwd == null ? null : oldPwd.trim();
}
public String getNewPwd() {
return newPwd;
}
public void setNewPwd(String newPwd) {
this.newPwd = newPwd == null ? null : newPwd.trim();
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getCreatedId() {
return createdId;
}
public void setCreatedId(Integer createdId) {
this.createdId = createdId;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
import com.pica.cloud.account.account.server.log.AccountLogEntity;
import java.util.Date;
public class LogUserInfoEntity extends AccountLogEntity {
private Integer id;
private Integer acctId;
private String villageName;
private Long villageId;
private String townName;
private Long townId;
private String countyName;
private Long countyId;
private String cityName;
private Long cityId;
private String provinceName;
private Long provinceId;
private Long country;
private String headImgUrl;
private String address;
private String patientAddress;
private String telephone;
private String socialCard;
private String workUnit;
private String healthFileNumber;
private String paymentType;
private String remarks;
private String email;
private String nation;
private Integer createId;
private Date createTime;
private Integer modifyId;
private Date modifyTime;
private int deleteFlag;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAcctId() {
return acctId;
}
public void setAcctId(Integer acctId) {
this.acctId = acctId;
}
public String getVillageName() {
return villageName;
}
public void setVillageName(String villageName) {
this.villageName = villageName == null ? null : villageName.trim();
}
public Long getVillageId() {
return villageId;
}
public void setVillageId(Long villageId) {
this.villageId = villageId;
}
public String getTownName() {
return townName;
}
public void setTownName(String townName) {
this.townName = townName == null ? null : townName.trim();
}
public Long getTownId() {
return townId;
}
public void setTownId(Long townId) {
this.townId = townId;
}
public String getCountyName() {
return countyName;
}
public void setCountyName(String countyName) {
this.countyName = countyName == null ? null : countyName.trim();
}
public Long getCountyId() {
return countyId;
}
public void setCountyId(Long countyId) {
this.countyId = countyId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName == null ? null : cityName.trim();
}
public Long getCityId() {
return cityId;
}
public void setCityId(Long cityId) {
this.cityId = cityId;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName == null ? null : provinceName.trim();
}
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public Long getCountry() {
return country;
}
public void setCountry(Long country) {
this.country = country;
}
public String getHeadImgUrl() {
return headImgUrl;
}
public void setHeadImgUrl(String headImgUrl) {
this.headImgUrl = headImgUrl == null ? null : headImgUrl.trim();
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address == null ? null : address.trim();
}
public String getPatientAddress() {
return patientAddress;
}
public void setPatientAddress(String patientAddress) {
this.patientAddress = patientAddress == null ? null : patientAddress.trim();
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone == null ? null : telephone.trim();
}
public String getSocialCard() {
return socialCard;
}
public void setSocialCard(String socialCard) {
this.socialCard = socialCard == null ? null : socialCard.trim();
}
public String getWorkUnit() {
return workUnit;
}
public void setWorkUnit(String workUnit) {
this.workUnit = workUnit == null ? null : workUnit.trim();
}
public String getHealthFileNumber() {
return healthFileNumber;
}
public void setHealthFileNumber(String healthFileNumber) {
this.healthFileNumber = healthFileNumber == null ? null : healthFileNumber.trim();
}
public String getPaymentType() {
return paymentType;
}
public void setPaymentType(String paymentType) {
this.paymentType = paymentType == null ? null : paymentType.trim();
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks == null ? null : remarks.trim();
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email == null ? null : email.trim();
}
public String getNation() {
return nation;
}
public void setNation(String nation) {
this.nation = nation == null ? null : nation.trim();
}
public Integer getCreateId() {
return createId;
}
public void setCreateId(Integer createId) {
this.createId = createId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getModifyId() {
return modifyId;
}
public void setModifyId(Integer modifyId) {
this.modifyId = modifyId;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public int getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(int deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.entity;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* Created on 2019/10/9 17:41
* author:crs
* Description: 登录状态返回
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
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.entity;
import io.swagger.annotations.ApiModel;
/**
* @author andong
* @create 2019/10/16
*/
@ApiModel
public class LoginResultWeb {
private int certifyDoc = 1;
private int isExist = 1;
private PICAPDoctor picapDoctor;
public int getCertifyDoc() {
return certifyDoc;
}
public void setCertifyDoc(int certifyDoc) {
this.certifyDoc = certifyDoc;
}
public int getIsExist() {
return isExist;
}
public void setIsExist(int isExist) {
this.isExist = isExist;
}
public PICAPDoctor getPicapDoctor() {
return picapDoctor;
}
public void setPicapDoctor(PICAPDoctor picapDoctor) {
this.picapDoctor = picapDoctor;
}
}
package com.pica.cloud.account.account.server.entity;
import java.util.Date;
public class WeChatEntity {
/** 获取到的凭证 */
private String access_token;
/** 凭证有效时间,单位:秒 */
private int expires_in;
/** 用户刷新access_token */
private String refresh_token;
/** 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID */
private String openid;
/** 用户授权的作用域,使用逗号(,)分隔 */
private String scope;
private Date createdAt;
public String getAccess_token() {
return access_token;
}
public void setAccess_token(String access_token) {
this.access_token = access_token;
}
public int getExpires_in() {
return expires_in;
}
public void setExpires_in(int expires_in) {
this.expires_in = expires_in;
}
public String getRefresh_token() {
return refresh_token;
}
public void setRefresh_token(String refresh_token) {
this.refresh_token = refresh_token;
}
public String getOpenid() {
return openid;
}
public void setOpenid(String openid) {
this.openid = openid;
}
public String getScope() {
return scope;
}
public void setScope(String scope) {
this.scope = scope;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
}
package com.pica.cloud.account.account.server.enums;
/**
* Created on 2019/10/11 19:08
* author:crs
* Description:账户协议类型
*/
public enum AccountAgreementEnum {
USER_AGREEMENT(1, "用户协议"),
PRIVACY_AGREEMENT(5, "隐私协议");
private int code;
private String desc;
AccountAgreementEnum(int code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
}
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.entity.AccountUnionEntity;
public interface AccountUnionService {
/**
* 通过unionId查询绑定信息
*
* @param unionId 联合id
* @return
*/
AccountUnionEntity selectInfoByUnionId(String unionId);
}
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册