Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-cloud-account
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.account
pica-cloud-account
提交
8f015820
提交
8f015820
编写于
10月 17, 2019
作者:
rushui.chen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
201911017 注册接口幂等性校验
上级
1dd0b78f
流水线
#15943
已失败 于阶段
in 0 second
变更
5
流水线
1
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
61 行增加
和
19 行删除
+61
-19
RegisterController.java
...account/account/server/controller/RegisterController.java
+32
-11
DoctorMapper.java
...ica/cloud/account/account/server/mapper/DoctorMapper.java
+7
-0
RegisterService.java
...cloud/account/account/server/service/RegisterService.java
+2
-1
RegisterServiceImpl.java
...ount/account/server/service/impl/RegisterServiceImpl.java
+12
-7
DoctorMapper.xml
server/src/main/resources/mybatis/DoctorMapper.xml
+8
-0
未找到文件。
server/src/main/java/com/pica/cloud/account/account/server/controller/RegisterController.java
浏览文件 @
8f015820
...
...
@@ -2,16 +2,21 @@ 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.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
;
...
...
@@ -22,31 +27,47 @@ import org.springframework.web.bind.annotation.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
);
accountUtils
.
checkMobilePhoneAndAuthCode
(
request
.
getMobile
(),
AccountTypeEnum
.
SYSCODE_TYPE_REGISTER
.
getCode
()+
""
,
request
.
getAuthCode
());
accountUtils
.
checkPassword
(
request
.
getPassword
());
request
.
setFlag
(
AccountTypeEnum
.
SYSCODE_TYPE_REGISTER
.
getCode
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setLoginIp
(
super
.
getIpAddr
());
LoginResult
result
=
registerService
.
register
(
request
);
return
PicaResponse
.
toResponse
(
result
);
String
mobile
=
request
.
getMobile
();
//接口幂等性处理(redis中没有就进行注册逻辑,如果已经存在,就不处理)
String
exist
=
redisClient
.
get
(
REPEAT_REGISTER_PREFIX
+
mobile
);
if
(
StringUtils
.
isBlank
(
exist
)){
redisClient
.
set
(
REPEAT_REGISTER_PREFIX
+
mobile
,
mobile
);
accountUtils
.
checkMobilePhoneAndAuthCode
(
mobile
,
AccountTypeEnum
.
SYSCODE_TYPE_REGISTER
.
getCode
()+
""
,
request
.
getAuthCode
());
accountUtils
.
checkPassword
(
request
.
getPassword
());
request
.
setFlag
(
AccountTypeEnum
.
SYSCODE_TYPE_REGISTER
.
getCode
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setLoginIp
(
super
.
getIpAddr
());
LoginResult
result
=
registerService
.
register
(
request
);
redisClient
.
del
(
REPEAT_REGISTER_PREFIX
+
mobile
);
return
PicaResponse
.
toResponse
(
result
);
}
else
{
return
PicaResponse
.
toResponse
(
null
,
AccountExceptionEnum
.
PICA_ALREADY_REGISTER
.
getCode
(),
AccountExceptionEnum
.
PICA_ALREADY_REGISTER
.
getMessage
());
}
}
//"sourceType":6 表示长海项目
@ApiOperation
(
"OCIN项目"
)
@PostMapping
(
value
=
"/ocin"
)
public
PicaResponse
register
(
@RequestBody
OCINRequest
ocinRequest
)
throws
Exception
{
registerService
.
ocinRegister
(
ocinRequest
);
return
PicaResponse
.
toResponse
()
;
public
PicaResponse
register
(
@RequestBody
OCINRequest
ocinRequest
)
{
PicaResponse
picaResponse
=
registerService
.
ocinRegister
(
ocinRequest
);
return
picaResponse
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/mapper/DoctorMapper.java
浏览文件 @
8f015820
...
...
@@ -72,4 +72,11 @@ public interface DoctorMapper {
int
unbindWeChat
(
@Param
(
"acctId"
)
int
acctId
);
PICAPDoctor
queryDoctor
(
long
doctorId
);
/**
* 通过手机号获取用户id
* @param mobile
* @return
*/
Long
selectDoctorIdByMobile
(
String
mobile
);
}
\ No newline at end of file
server/src/main/java/com/pica/cloud/account/account/server/service/RegisterService.java
浏览文件 @
8f015820
...
...
@@ -3,6 +3,7 @@ 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
;
import
com.pica.cloud.account.account.common.req.OCINRequest
;
import
com.pica.cloud.foundation.entity.PicaResponse
;
public
interface
RegisterService
{
...
...
@@ -21,7 +22,7 @@ public interface RegisterService {
*
* @param request
*/
void
ocinRegister
(
OCINRequest
request
);
PicaResponse
ocinRegister
(
OCINRequest
request
);
}
server/src/main/java/com/pica/cloud/account/account/server/service/impl/RegisterServiceImpl.java
浏览文件 @
8f015820
...
...
@@ -18,6 +18,7 @@ import com.pica.cloud.account.account.server.util.ExecutorServiceUtils;
import
com.pica.cloud.account.account.server.util.TokenUtils
;
import
com.pica.cloud.base.doctor.doctor.client.DoctorServiceClient
;
import
com.pica.cloud.base.doctor.doctor.common.req.PrefectInfoReq
;
import
com.pica.cloud.foundation.entity.PicaResponse
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -33,7 +34,7 @@ import java.util.concurrent.ExecutorService;
@Service
public
class
RegisterServiceImpl
implements
RegisterService
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
this
.
getClass
());
private
Logger
logger
=
LoggerFactory
.
getLogger
(
this
.
getClass
());
@Autowired
private
AccountInfoDetailMapper
accountInfoDetailMapper
;
...
...
@@ -65,6 +66,9 @@ public class RegisterServiceImpl implements RegisterService {
@Autowired
private
DoctorServiceClient
doctorServiceClient
;
@Autowired
private
DoctorMapper
doctorMapper
;
/**
* 1)注册功能:默认未完善信息;
* 2)注册成功后发送mq消息,让别的服务初始化数据;
...
...
@@ -78,7 +82,6 @@ public class RegisterServiceImpl implements RegisterService {
String
mobile
=
baseRequest
.
getMobile
();
String
mobileEncrypt
=
AESUtil
.
encryptV0
(
mobile
);
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
mobileEncrypt
);
if
(
accountInfoEntity
==
null
)
{
Date
currentTime
=
new
Date
();
int
productType
=
baseRequest
.
getProductType
();
...
...
@@ -159,13 +162,14 @@ public class RegisterServiceImpl implements RegisterService {
/**
* 长海项目医生自动注册,并完善信息
*
* @param request
*/
@Override
public
void
ocinRegister
(
OCINRequest
request
)
{
public
PicaResponse
ocinRegister
(
OCINRequest
request
)
{
String
mobile
=
request
.
getMobile
();
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
mobile
);
if
(
accountInfoEntity
==
null
)
{
if
(
accountInfoEntity
==
null
)
{
Date
currentTime
=
new
Date
();
int
productType
=
request
.
getProductType
();
int
sourceType
=
request
.
getSourceType
();
...
...
@@ -203,10 +207,11 @@ public class RegisterServiceImpl implements RegisterService {
prefectInfoReq
.
setHospitalId
(
request
.
getHospitalId
().
longValue
());
prefectInfoReq
.
setName
(
request
.
getName
());
doctorServiceClient
.
prefectInfo
(
prefectInfoReq
);
}
else
{
throw
new
AccountException
(
AccountExceptionEnum
.
PICA_ALREADY_REGISTER
);
return
PicaResponse
.
toResponse
();
}
else
{
Long
id
=
doctorMapper
.
selectDoctorIdByMobile
(
mobile
);
return
PicaResponse
.
toResponse
(
id
,
AccountExceptionEnum
.
PICA_ALREADY_REGISTER
.
getCode
(),
AccountExceptionEnum
.
PICA_ALREADY_REGISTER
.
getCode
());
}
}
/**
...
...
server/src/main/resources/mybatis/DoctorMapper.xml
浏览文件 @
8f015820
...
...
@@ -82,6 +82,14 @@
and delete_flag = 1
</select>
<!--通过手机号查询用户id-->
<select
id=
"selectDoctorIdByMobile"
parameterType=
"java.lang.String"
resultType=
"java.lang.Long"
>
SELECT id
FROM p_doctor
where mobile_phone = #{mobile}
and delete_flag = 1
</select>
<!--通过手机号码查询医生信息-->
<select
id=
"getDoctorInfoByMobile"
parameterType=
"java.lang.String"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录