提交 1e78adc0 编写于 作者: minghao.wu's avatar minghao.wu

feature: 注册账号

上级 71376863
流水线 #43226 已取消 于阶段
...@@ -8,6 +8,9 @@ public class CreateAccountReq { ...@@ -8,6 +8,9 @@ public class CreateAccountReq {
@ApiModelProperty("机构id") @ApiModelProperty("机构id")
private Integer hospitalId; private Integer hospitalId;
@ApiModelProperty("机构名称")
private String hospitalName;
@ApiModelProperty("输入姓名") @ApiModelProperty("输入姓名")
private String doctorName; private String doctorName;
...@@ -22,6 +25,14 @@ public class CreateAccountReq { ...@@ -22,6 +25,14 @@ public class CreateAccountReq {
this.hospitalId = hospitalId; this.hospitalId = hospitalId;
} }
public String getHospitalName() {
return hospitalName;
}
public void setHospitalName(String hospitalName) {
this.hospitalName = hospitalName;
}
public String getDoctorName() { public String getDoctorName() {
return doctorName; return doctorName;
} }
......
...@@ -80,18 +80,6 @@ public class Account { ...@@ -80,18 +80,6 @@ public class Account {
private Date birthday; private Date birthday;
private Integer hospitalId;
private String hospital;
public Integer getHospitalId() {
return hospitalId;
}
public void setHospitalId(Integer hospitalId) {
this.hospitalId = hospitalId;
}
public String getNativePlace() { public String getNativePlace() {
return nativePlace; return nativePlace;
} }
...@@ -355,12 +343,4 @@ public class Account { ...@@ -355,12 +343,4 @@ public class Account {
public void setBirthday(Date birthday) { public void setBirthday(Date birthday) {
this.birthday = birthday; this.birthday = birthday;
} }
public String getHospital() {
return hospital;
}
public void setHospital(String hospital) {
this.hospital = hospital;
}
} }
...@@ -24,6 +24,8 @@ public enum AccountTypeEnum { ...@@ -24,6 +24,8 @@ public enum AccountTypeEnum {
PRODUCT_TYPE_DOCTOR(1, "云鹊医产品系"), PRODUCT_TYPE_DOCTOR(1, "云鹊医产品系"),
PRODUCT_TYPE_HEALTH(2, "云鹊健康产品系"), PRODUCT_TYPE_HEALTH(2, "云鹊健康产品系"),
PRODUCT_TYPE_ECO_LIVE(3, "生态直播"), PRODUCT_TYPE_ECO_LIVE(3, "生态直播"),
PRODUCT_TYPE_CRM(4, "销售crm"),
//终端类型 //终端类型
DEVICE_TYPE_ANDROID(1, "安卓"), DEVICE_TYPE_ANDROID(1, "安卓"),
...@@ -31,6 +33,10 @@ public enum AccountTypeEnum { ...@@ -31,6 +33,10 @@ public enum AccountTypeEnum {
DEVICE_TYPE_WEB(3, "web"), DEVICE_TYPE_WEB(3, "web"),
DEVICE_TYPE_H5(4, "H5"), DEVICE_TYPE_H5(4, "H5"),
DEVICE_TYPE_ADMIN(5, "admin"), DEVICE_TYPE_ADMIN(5, "admin"),
DEVICE_TYPE_SAAS(6, "saas"),
DEVICE_TYPE_SSO(7, "sso"),
DEVICE_TYPE_CRM(8, "crm"),
//验证码获取类型: flag:0登录(默认)1注册 2微信登录绑定手机 3修改手机 4重置密码 //验证码获取类型: flag:0登录(默认)1注册 2微信登录绑定手机 3修改手机 4重置密码
//5忘记密码 7患者招募提交问卷(效验) 8Appe登录绑定手机 //5忘记密码 7患者招募提交问卷(效验) 8Appe登录绑定手机
......
...@@ -27,4 +27,5 @@ public interface RegisterService { ...@@ -27,4 +27,5 @@ public interface RegisterService {
LoginResult register(BaseRequest baseRequest, QueryMobileEntity queryMobileEntity); LoginResult register(BaseRequest baseRequest, QueryMobileEntity queryMobileEntity);
void processRoleMap(Long userId);
} }
...@@ -9,6 +9,7 @@ import com.pica.cloud.account.account.server.exception.AccountException; ...@@ -9,6 +9,7 @@ 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.mapper.AccountInfoDetailMapper;
import com.pica.cloud.account.account.server.mapper.AccountMapper; import com.pica.cloud.account.account.server.mapper.AccountMapper;
import com.pica.cloud.account.account.server.service.AccountService; import com.pica.cloud.account.account.server.service.AccountService;
import com.pica.cloud.account.account.server.service.RegisterService;
import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants; import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants;
import com.pica.cloud.foundation.encryption.util.EncryptUtils; import com.pica.cloud.foundation.encryption.util.EncryptUtils;
import com.pica.cloud.foundation.redis.ICacheClient; import com.pica.cloud.foundation.redis.ICacheClient;
...@@ -48,6 +49,9 @@ public class AccountServiceImpl implements AccountService { ...@@ -48,6 +49,9 @@ public class AccountServiceImpl implements AccountService {
@Value("${doubleWritingMode}") @Value("${doubleWritingMode}")
private boolean doubleWritingMode; private boolean doubleWritingMode;
@Autowired
private RegisterService registerService;
//根据ID获取账号 //根据ID获取账号
@Override @Override
public Account getById(long id) { public Account getById(long id) {
...@@ -144,16 +148,55 @@ public class AccountServiceImpl implements AccountService { ...@@ -144,16 +148,55 @@ public class AccountServiceImpl implements AccountService {
/** 手机号已被占用,且机构不存在或机构为空 */ /** 手机号已被占用,且机构不存在或机构为空 */
String encryptMobilePhone = EncryptUtils.encryptContent(req.getMobilePhone(), EncryptConstants.ENCRYPT_TYPE_MOBILE); String encryptMobilePhone = EncryptUtils.encryptContent(req.getMobilePhone(), EncryptConstants.ENCRYPT_TYPE_MOBILE);
Account account = accountMapper.getByMobilePhone(encryptMobilePhone); Account existAccount = accountMapper.getByMobilePhone(encryptMobilePhone);
if (account == null) { if (existAccount == null) {
/** TODO: 新增流程 */ Date now = Calendar.getInstance().getTime();
return 0; /** account info */
AccountInfoEntity accountInfo = new AccountInfoEntity();
accountInfo.setMobilePhone(encryptMobilePhone);
accountInfo.setPassword("");
accountInfo.setCreatedTime(now);
accountInfo.setCreatedId(0);
accountInfo.setModifiedId(0);
accountInfo.setModifiedTime(now);
accountInfo.setRegTime(now);
accountInfo.setDeleteFlag(1);
accountInfo.setSex(0);
accountInfo.setRegisterProduct(AccountTypeEnum.PRODUCT_TYPE_CRM.getCode());
accountInfo.setRegisterSource(AccountTypeEnum.DEVICE_TYPE_CRM.getCode());
accountInfo.setRegTime(now);
accountInfoDetailMapper.insertSelective(accountInfo);
Integer acctId = accountInfo.getId();
accountInfoDetailMapper.updateCreateInfo(acctId);
/** doctor */
Account account = new Account();
account.setAcctId(acctId);
account.setMobilePhone(encryptMobilePhone);
account.setPassword("");
account.setEntireFlag(3);
account.setComment("");
account.setHospitalId(req.getHospitalId());
account.setHospital(req.getHospitalName());
account.setCreatId(0L);
account.setModifyId(0L);
account.setDeleteFlag(1);
account.setCreatTime(now);
account.setRegTime(now);
account.setModifyTime(now);
account.setFirstLoginTime(now);
account.setLastLoginTime(now);
account.setRegisterSource(AccountTypeEnum.DEVICE_TYPE_H5.getCode());
accountMapper.insertSelective(account);
registerService.processRoleMap(account.getId());
return account.getId().intValue();
} }
if (account.getHospitalId() == null || account.getHospitalId() == 0) { if (existAccount.getHospitalId() == null || existAccount.getHospitalId() == 0) {
throw new AccountException(AccountExceptionEnum.CRM_MOBILE_NOT_IN_HOSPITAL); throw new AccountException(AccountExceptionEnum.CRM_MOBILE_NOT_IN_HOSPITAL);
} }
if (!req.getHospitalId().equals(account.getHospitalId())) { if (!req.getHospitalId().equals(existAccount.getHospitalId())) {
throw new AccountException(AccountExceptionEnum.CRM_MOBILE_IN_ANOTHER_HOSPITAL.getCode(), AccountExceptionEnum.CRM_MOBILE_IN_ANOTHER_HOSPITAL.getMessage().replace("{hospitalName}", account.getHospital())); throw new AccountException(AccountExceptionEnum.CRM_MOBILE_IN_ANOTHER_HOSPITAL.getCode(), AccountExceptionEnum.CRM_MOBILE_IN_ANOTHER_HOSPITAL.getMessage().replace("{hospitalName}", existAccount.getHospital()));
} }
throw new AccountException(AccountExceptionEnum.CRM_MOBILE_EXIST_IN_HOSPITAL); throw new AccountException(AccountExceptionEnum.CRM_MOBILE_EXIST_IN_HOSPITAL);
} }
......
...@@ -11,6 +11,7 @@ import com.pica.cloud.account.account.server.resp.*; ...@@ -11,6 +11,7 @@ import com.pica.cloud.account.account.server.resp.*;
import com.pica.cloud.account.account.server.service.AccountService; import com.pica.cloud.account.account.server.service.AccountService;
import com.pica.cloud.account.account.server.service.HospitalSaasUserService; import com.pica.cloud.account.account.server.service.HospitalSaasUserService;
import com.pica.cloud.account.account.server.service.PasswordService; import com.pica.cloud.account.account.server.service.PasswordService;
import com.pica.cloud.account.account.server.service.RegisterService;
import com.pica.cloud.account.account.server.util.AESUtil; import com.pica.cloud.account.account.server.util.AESUtil;
import com.pica.cloud.account.account.server.util.ExecutorServiceUtils; import com.pica.cloud.account.account.server.util.ExecutorServiceUtils;
import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants; import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants;
...@@ -65,6 +66,8 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService { ...@@ -65,6 +66,8 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
@Autowired @Autowired
private PasswordService passwordService; private PasswordService passwordService;
@Autowired
private RegisterService registerService;
@Override @Override
@Transactional @Transactional
...@@ -117,7 +120,7 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService { ...@@ -117,7 +120,7 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
// doctor // doctor
Account account = buildDoctorMsg(req, mobileEncrypt, currentTime, req.getSourceType(), md5Pwd, acctId); Account account = buildDoctorMsg(req, mobileEncrypt, currentTime, req.getSourceType(), md5Pwd, acctId);
accountMapper.insertSelective(account); accountMapper.insertSelective(account);
insertAppRole(account.getId()); registerService.processRoleMap(account.getId());
insertSaasRole(req.getRoleId(), req.getHospitalId().longValue(), account.getId(), account.getId()); insertSaasRole(req.getRoleId(), req.getHospitalId().longValue(), account.getId(), account.getId());
redisClient.del(nxKey); redisClient.del(nxKey);
return 1; return 1;
...@@ -338,32 +341,6 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService { ...@@ -338,32 +341,6 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
return resp; return resp;
} }
//处理app端 用户-角色关系
private void insertAppRole(Long userId) {
ExecutorServiceUtils.getExecutor().submit(new Runnable() {
@Override
public void run() {
Date date = new Date();
PUserRole pUserRole = new PUserRole();
pUserRole.setSystemId(5);
pUserRole.setUserRoleId(2);
pUserRole.setUserId(userId.intValue());
pUserRole.setUserType(1);
pUserRole.setStatus(2);
pUserRole.setDeleteFlag(1);
pUserRole.setCreatId(userId.intValue());
pUserRole.setCreatTime(date);
pUserRole.setModifyId(userId.intValue());
pUserRole.setModifyTime(date);
pUserRoleMapper.insertSelective(pUserRole);
pUserRole.setSystemId(1);
pUserRoleMapper.insertSelective(pUserRole);
pUserRole.setSystemId(3);
pUserRoleMapper.insertSelective(pUserRole);
}
});
}
private AccountInfoEntity buildAccountInfo(String mobileEncrypt, Date currentTime, int productType, int sourceType, String password) { private AccountInfoEntity buildAccountInfo(String mobileEncrypt, Date currentTime, int productType, int sourceType, String password) {
AccountInfoEntity accountInfo = new AccountInfoEntity(); AccountInfoEntity accountInfo = new AccountInfoEntity();
accountInfo.setMobilePhone(mobileEncrypt); accountInfo.setMobilePhone(mobileEncrypt);
......
...@@ -218,7 +218,8 @@ public class RegisterServiceImpl implements RegisterService { ...@@ -218,7 +218,8 @@ public class RegisterServiceImpl implements RegisterService {
* *
* @param userId * @param userId
*/ */
private void processRoleMap(Long userId) { @Override
public void processRoleMap(Long userId) {
ExecutorServiceUtils.getExecutor().submit(new Runnable() { ExecutorServiceUtils.getExecutor().submit(new Runnable() {
@Override @Override
public void run() { public void run() {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册