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
提交
27767e0d
提交
27767e0d
编写于
10月 15, 2019
作者:
dong.an
浏览文件
操作
浏览文件
下载
差异文件
merge
上级
2cec47b0
73b616fd
流水线
#15828
已失败 于阶段
in 0 second
变更
19
流水线
1
显示空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
879 行增加
和
127 行删除
+879
-127
AccountController.java
.../account/account/server/controller/AccountController.java
+20
-33
AutoCodeController.java
...account/account/server/controller/AutoCodeController.java
+57
-18
LoginController.java
...ud/account/account/server/controller/LoginController.java
+14
-13
RegisterController.java
...account/account/server/controller/RegisterController.java
+4
-3
AgreementEntity.java
.../cloud/account/account/server/entity/AgreementEntity.java
+96
-0
AgreementLogEntity.java
...oud/account/account/server/entity/AgreementLogEntity.java
+95
-0
LoginResult.java
...pica/cloud/account/account/server/entity/LoginResult.java
+65
-0
AccountAgreementEnum.java
...ud/account/account/server/enums/AccountAgreementEnum.java
+28
-0
AccountLogUtils.java
...ica/cloud/account/account/server/log/AccountLogUtils.java
+2
-6
AgreementEntityMapper.java
.../account/account/server/mapper/AgreementEntityMapper.java
+29
-0
AgreementLogEntityMapper.java
...count/account/server/mapper/AgreementLogEntityMapper.java
+18
-0
BaseRequest.java
...om/pica/cloud/account/account/server/req/BaseRequest.java
+19
-0
LoginService.java
...ca/cloud/account/account/server/service/LoginService.java
+5
-4
RegisterService.java
...cloud/account/account/server/service/RegisterService.java
+2
-1
LoginServiceImpl.java
...account/account/server/service/impl/LoginServiceImpl.java
+31
-36
RegisterServiceImpl.java
...ount/account/server/service/impl/RegisterServiceImpl.java
+64
-13
ExecutorServiceUtils.java
...oud/account/account/server/util/ExecutorServiceUtils.java
+16
-0
AgreementEntityMapper.xml
server/src/main/resources/mybatis/AgreementEntityMapper.xml
+171
-0
AgreementLogEntityMapper.xml
...r/src/main/resources/mybatis/AgreementLogEntityMapper.xml
+143
-0
未找到文件。
server/src/main/java/com/pica/cloud/account/account/server/controller/AccountController.java
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
controller
;
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.Account
;
import
com.pica.cloud.account.account.server.entity.EncryptEntity
;
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.req.AccountReq
;
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.AccountService
;
import
com.pica.cloud.account.account.server.service.CaptchaService
;
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.common.constants.EncryptConstants
;
import
com.pica.cloud.foundation.encryption.util.EncryptUtils
;
import
com.pica.cloud.foundation.encryption.util.EncryptUtils
;
import
com.pica.cloud.foundation.entity.PicaException
;
import
com.pica.cloud.foundation.entity.PicaException
;
...
@@ -25,12 +28,14 @@ import org.slf4j.LoggerFactory;
...
@@ -25,12 +28,14 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.UUID
;
/**
/**
* 账号相关controller
* 账号相关controller
*
* @author andong
* @author andong
* @create 2019/5/20
* @create 2019/5/20
*/
*/
...
@@ -43,38 +48,17 @@ public class AccountController extends AccountBaseController {
...
@@ -43,38 +48,17 @@ public class AccountController extends AccountBaseController {
private
Logger
logger
=
LoggerFactory
.
getLogger
(
AccountController
.
class
);
private
Logger
logger
=
LoggerFactory
.
getLogger
(
AccountController
.
class
);
@Autowired
@Autowired
private
AccountService
accountService
;
private
AccountService
accountService
;
@Autowired
private
CaptchaService
captchaService
;
@Autowired
@Autowired
@Qualifier
(
"cacheMigrateClient"
)
@Qualifier
(
"cacheMigrateClient"
)
private
ICacheClient
redisClient
;
private
ICacheClient
redisClient
;
@GetMapping
(
"/test"
)
@GetMapping
(
"/test"
)
public
String
test
()
{
return
"test"
;}
public
String
test
()
{
return
"test"
;
@ApiOperation
(
"获取登录验证码"
)
@GetMapping
(
"/authCode"
)
public
PicaResponse
<
String
>
getAuthCode
(
@ApiParam
(
value
=
"手机号"
,
required
=
true
)
@RequestParam
(
"mobilePhone"
)
String
mobilePhone
,
@ApiParam
(
value
=
"验证码类型 0默认 1注册 2修改密码 4微信登录绑定手机 5修改手机 6重置密码"
)
@RequestParam
(
value
=
"flag"
,
defaultValue
=
"0"
)
String
flag
,
@ApiParam
(
value
=
"图形验证码token"
,
required
=
true
)
@RequestParam
(
"captchaToken"
)
String
captchaToken
,
@ApiParam
(
value
=
"图形验证码答案"
,
required
=
true
)
@RequestParam
(
"captchaAnswer"
)
String
captchaAnswer
)
{
//校验图形验证码
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分钟
redisClient
.
set
(
this
.
getAuthCodeKey
(
mobilePhone
,
flag
),
authCode
,
600
);
//发送短信
super
.
sendMobileMessage
(
mobilePhone
,
message
,
senderId
);
return
PicaResponse
.
toResponse
(
StringUtils
.
EMPTY
);
}
}
@ApiOperation
(
"微信登录"
)
@ApiOperation
(
"微信登录"
)
@PostMapping
(
"/login/wechat"
)
@PostMapping
(
"/login/wechat"
)
public
PicaResponse
<
String
>
wechatLogin
(
@RequestBody
AccountReq
req
)
{
public
PicaResponse
<
String
>
wechatLogin
(
@RequestBody
AccountReq
req
)
{
...
@@ -93,8 +77,8 @@ public class AccountController extends AccountBaseController {
...
@@ -93,8 +77,8 @@ public class AccountController extends AccountBaseController {
return
PicaResponse
.
toResponse
(
newToken
);
return
PicaResponse
.
toResponse
(
newToken
);
}
}
@ApiOperation
(
"密码或验证码登录"
)
//
@ApiOperation("密码或验证码登录")
@PostMapping
(
"/login"
)
//
@PostMapping("/login")
public
PicaResponse
<
String
>
login
(
@RequestBody
AccountReq
req
)
{
public
PicaResponse
<
String
>
login
(
@RequestBody
AccountReq
req
)
{
this
.
checkMobilePhone
(
req
.
getMobilePhone
());
this
.
checkMobilePhone
(
req
.
getMobilePhone
());
Account
account
=
accountService
.
getByMobilePhone
(
req
.
getMobilePhone
());
//获取账号信息
Account
account
=
accountService
.
getByMobilePhone
(
req
.
getMobilePhone
());
//获取账号信息
...
@@ -128,8 +112,8 @@ public class AccountController extends AccountBaseController {
...
@@ -128,8 +112,8 @@ public class AccountController extends AccountBaseController {
return
PicaResponse
.
toResponse
(
newToken
);
return
PicaResponse
.
toResponse
(
newToken
);
}
}
@ApiOperation
(
"注册"
)
//
@ApiOperation("注册")
@PostMapping
(
"/register"
)
//
@PostMapping("/register")
public
PicaResponse
<
String
>
register
(
@RequestBody
AccountReq
req
)
{
public
PicaResponse
<
String
>
register
(
@RequestBody
AccountReq
req
)
{
this
.
checkMobilePhone
(
req
.
getMobilePhone
());
this
.
checkMobilePhone
(
req
.
getMobilePhone
());
this
.
checkAuthCode
(
req
);
this
.
checkAuthCode
(
req
);
...
@@ -157,7 +141,7 @@ public class AccountController extends AccountBaseController {
...
@@ -157,7 +141,7 @@ public class AccountController extends AccountBaseController {
return
PicaResponse
.
toResponse
(
newToken
);
return
PicaResponse
.
toResponse
(
newToken
);
}
}
@ApiOperation
(
"
登录或注册
"
)
@ApiOperation
(
"
H5端一键登录功能,无需完善信息
"
)
@PostMapping
(
"/login-register"
)
@PostMapping
(
"/login-register"
)
public
PicaResponse
<
String
>
loginRegister
(
@RequestBody
AccountReq
req
)
{
public
PicaResponse
<
String
>
loginRegister
(
@RequestBody
AccountReq
req
)
{
this
.
checkMobilePhone
(
req
.
getMobilePhone
());
this
.
checkMobilePhone
(
req
.
getMobilePhone
());
...
@@ -214,7 +198,7 @@ public class AccountController extends AccountBaseController {
...
@@ -214,7 +198,7 @@ public class AccountController extends AccountBaseController {
redisClient
.
del
(
oldToken
);
redisClient
.
del
(
oldToken
);
}
}
//生成新token
//生成新token
int
expiredSeconds
=
30
*
24
*
60
*
60
;
//H5 token有效期30天
int
expiredSeconds
=
30
*
24
*
60
*
60
;
//H5 token有效期30天
newToken
=
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
).
toUpperCase
();
newToken
=
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
).
toUpperCase
();
String
tokenKey
=
"token-"
+
newToken
;
String
tokenKey
=
"token-"
+
newToken
;
redisClient
.
set
(
tokenKey
,
tokenValue
,
expiredSeconds
);
redisClient
.
set
(
tokenKey
,
tokenValue
,
expiredSeconds
);
...
@@ -226,11 +210,14 @@ public class AccountController extends AccountBaseController {
...
@@ -226,11 +210,14 @@ public class AccountController extends AccountBaseController {
picaUser
.
setToken
(
newToken
);
picaUser
.
setToken
(
newToken
);
picaUser
.
setId
(
account
.
getId
().
intValue
());
picaUser
.
setId
(
account
.
getId
().
intValue
());
picaUser
.
setMobile
(
account
.
getMobilePhone
());
picaUser
.
setMobile
(
account
.
getMobilePhone
());
picaUser
.
setName
(
EncryptUtils
.
decryptContent
(
account
.
getMobilePhone
(),
EncryptConstants
.
ENCRYPT_TYPE_MOBILE
,
EncryptConstants
.
ENCRYPT_DECRYPT_KEY
).
replaceAll
(
"(\\d{3})\\d{4}(\\w{4})"
,
"$1****$2"
));
picaUser
.
setName
(
EncryptUtils
.
decryptContent
(
account
.
getMobilePhone
(),
EncryptConstants
.
ENCRYPT_TYPE_MOBILE
,
EncryptConstants
.
ENCRYPT_DECRYPT_KEY
).
replaceAll
(
"(\\d{3})\\d{4}(\\w{4})"
,
"$1****$2"
));
picaUser
.
setCreated_time
(
account
.
getCreatTime
());
picaUser
.
setCreated_time
(
account
.
getCreatTime
());
Map
<
String
,
String
>
data
=
Object2Map
.
objectToMapString
(
"yyyy-MM-dd HH:mm:ss"
,
picaUser
,
new
String
[
0
]);
Map
<
String
,
String
>
data
=
Object2Map
.
objectToMapString
(
"yyyy-MM-dd HH:mm:ss"
,
picaUser
,
new
String
[
0
]);
data
.
put
(
"sysCode"
,
"h5"
);
data
.
put
(
"sysCode"
,
"h5"
);
data
.
forEach
((
key
,
value
)
->
{
value
=
value
==
null
?
""
:
value
;
redisClient
.
hset
(
tokenValue
,
key
,
value
);});
data
.
forEach
((
key
,
value
)
->
{
value
=
value
==
null
?
""
:
value
;
redisClient
.
hset
(
tokenValue
,
key
,
value
);
});
}
}
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
logger
.
error
(
"生成H5 token异常:{}"
+
ex
.
getMessage
(),
ex
);
logger
.
error
(
"生成H5 token异常:{}"
+
ex
.
getMessage
(),
ex
);
...
...
server/src/main/java/com/pica/cloud/account/account/server/controller/
Sys
CodeController.java
→
server/src/main/java/com/pica/cloud/account/account/server/controller/
Auto
CodeController.java
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
controller
;
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.AccountInfoEntity
;
import
com.pica.cloud.account.account.server.entity.AccountUnionEntity
;
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.entity.EncryptEntity
;
...
@@ -8,15 +9,21 @@ import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
...
@@ -8,15 +9,21 @@ 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.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.req.BaseRequest
;
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.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.AESUtil
;
import
com.pica.cloud.account.account.server.util.AccountUtils
;
import
com.pica.cloud.account.account.server.util.AccountUtils
;
import
com.pica.cloud.account.account.server.util.CryptoUtil
;
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.PicaResponse
;
import
com.pica.cloud.foundation.entity.PicaResultCode
;
import
com.pica.cloud.foundation.redis.ICacheClient
;
import
com.pica.cloud.foundation.redis.ICacheClient
;
import
com.pica.cloud.foundation.utils.utils.CommonUtil
;
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.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
@@ -26,8 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -26,8 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
@Api
(
description
=
"短信验证码资源"
)
@Api
(
description
=
"短信验证码资源"
)
@RestController
@RestController
@RequestMapping
(
value
=
"/authCode"
)
public
class
AutoCodeController
extends
AccountBaseController
{
public
class
SysCodeController
extends
AccountBaseController
{
private
final
String
AUTH_CODE_PREFIX
=
"authCode-"
;
private
final
String
AUTH_CODE_PREFIX
=
"authCode-"
;
...
@@ -37,19 +43,19 @@ public class SysCodeController extends AccountBaseController {
...
@@ -37,19 +43,19 @@ public class SysCodeController extends AccountBaseController {
@Autowired
@Autowired
private
AccountUnionService
accountUnionService
;
private
AccountUnionService
accountUnionService
;
@Autowired
private
CaptchaService
captchaService
;
@Autowired
private
AccountService
accountService
;
@Autowired
@Autowired
@Qualifier
(
"cacheMigrateClient"
)
@Qualifier
(
"cacheMigrateClient"
)
private
ICacheClient
cacheClient
;
private
ICacheClient
cacheClient
;
/**
* 必须要传递flag类型
@ApiOperation
(
"获取短信验证码,无需图形验证码,如app端"
)
*
@PostMapping
(
value
=
"/authCode"
)
* @param entity
* @return
* @throws Exception
*/
@ApiOperation
(
"获取短信验证码"
)
@PostMapping
(
value
=
""
)
public
PicaResponse
getAuthCode
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
public
PicaResponse
getAuthCode
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
AccountUtils
.
checkMobilePhone
(
request
.
getMobile
());
AccountUtils
.
checkMobilePhone
(
request
.
getMobile
());
...
@@ -57,6 +63,31 @@ public class SysCodeController extends AccountBaseController {
...
@@ -57,6 +63,31 @@ public class SysCodeController extends AccountBaseController {
return
PicaResponse
.
toResponse
();
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
);
//发送短信
super
.
sendMobileMessage
(
mobilePhone
,
message
,
senderId
);
return
PicaResponse
.
toResponse
(
StringUtils
.
EMPTY
);
}
@ApiOperation
(
"微信获取验证码"
)
@ApiOperation
(
"微信获取验证码"
)
@PostMapping
(
value
=
"/authCode/wechat"
)
@PostMapping
(
value
=
"/authCode/wechat"
)
public
PicaResponse
getWChatSysCode
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
public
PicaResponse
getWChatSysCode
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
...
@@ -88,8 +119,8 @@ public class SysCodeController extends AccountBaseController {
...
@@ -88,8 +119,8 @@ public class SysCodeController extends AccountBaseController {
if
(
cacheClient
.
exists
(
authCodeKey
))
{
if
(
cacheClient
.
exists
(
authCodeKey
))
{
Long
time
=
cacheClient
.
get
(
this
.
getAuthCodeKey
(
mobilePhone
,
flag
.
toString
())
+
"-secure"
,
Long
.
class
);
Long
time
=
cacheClient
.
get
(
this
.
getAuthCodeKey
(
mobilePhone
,
flag
.
toString
())
+
"-secure"
,
Long
.
class
);
if
(
time
==
null
)
{
if
(
time
==
null
)
{
time
=
0L
;
processSendAuthCode
(
mobilePhone
,
flag
,
authCodeKeySecure
)
;
}
}
else
{
int
remainTime
=
59
-
(
int
)
(
System
.
currentTimeMillis
()
-
time
)
/
1000
;
int
remainTime
=
59
-
(
int
)
(
System
.
currentTimeMillis
()
-
time
)
/
1000
;
if
(
remainTime
>
0
)
{
if
(
remainTime
>
0
)
{
throw
new
AccountException
(
AccountExceptionEnum
.
PICA_SYSCODE_RETRY
.
getCode
(),
throw
new
AccountException
(
AccountExceptionEnum
.
PICA_SYSCODE_RETRY
.
getCode
(),
...
@@ -97,6 +128,7 @@ public class SysCodeController extends AccountBaseController {
...
@@ -97,6 +128,7 @@ public class SysCodeController extends AccountBaseController {
}
else
{
}
else
{
processSendAuthCode
(
mobilePhone
,
flag
,
authCodeKeySecure
);
processSendAuthCode
(
mobilePhone
,
flag
,
authCodeKeySecure
);
}
}
}
}
else
{
}
else
{
processSendAuthCode
(
mobilePhone
,
flag
,
authCodeKeySecure
);
processSendAuthCode
(
mobilePhone
,
flag
,
authCodeKeySecure
);
}
}
...
@@ -123,4 +155,11 @@ public class SysCodeController extends AccountBaseController {
...
@@ -123,4 +155,11 @@ public class SysCodeController extends AccountBaseController {
private
String
getAuthCodeKey
(
String
mobilePhone
,
String
flag
)
{
private
String
getAuthCodeKey
(
String
mobilePhone
,
String
flag
)
{
return
AUTH_CODE_PREFIX
+
flag
+
"-"
+
AESUtil
.
encryptV0
(
mobilePhone
);
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
(),
"请输入正确的手机号"
);
}
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/controller/LoginController.java
浏览文件 @
27767e0d
...
@@ -3,6 +3,7 @@ package com.pica.cloud.account.account.server.controller;
...
@@ -3,6 +3,7 @@ package com.pica.cloud.account.account.server.controller;
import
com.pica.cloud.account.account.server.entity.EncryptEntity
;
import
com.pica.cloud.account.account.server.entity.EncryptEntity
;
import
com.pica.cloud.account.account.server.entity.LogLoginEntity
;
import
com.pica.cloud.account.account.server.entity.LogLoginEntity
;
import
com.pica.cloud.account.account.server.entity.LoginResult
;
import
com.pica.cloud.account.account.server.enums.AccountExceptionEnum
;
import
com.pica.cloud.account.account.server.enums.AccountExceptionEnum
;
import
com.pica.cloud.account.account.server.enums.AccountTypeEnum
;
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.exception.AccountException
;
...
@@ -53,15 +54,15 @@ public class LoginController extends AccountBaseController {
...
@@ -53,15 +54,15 @@ public class LoginController extends AccountBaseController {
*/
*/
@ApiOperation
(
"密码登录接口"
)
@ApiOperation
(
"密码登录接口"
)
@PostMapping
(
"/login"
)
@PostMapping
(
"/login"
)
public
PicaResponse
<
String
>
loginByPassword
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
public
PicaResponse
<
LoginResult
>
loginByPassword
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
request
.
setProductType
(
super
.
getProductType
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setLoginIp
(
super
.
getIpAddr
());
request
.
setLoginIp
(
super
.
getIpAddr
());
AccountUtils
.
checkMobilePhone
(
request
.
getMobile
());
AccountUtils
.
checkMobilePhone
(
request
.
getMobile
());
AccountUtils
.
checkPassword
(
request
.
getPassword
());
AccountUtils
.
checkPassword
(
request
.
getPassword
());
String
result
=
loginService
.
login
(
request
);
LoginResult
login
=
loginService
.
login
(
request
);
return
PicaResponse
.
toResponse
(
result
);
return
PicaResponse
.
toResponse
(
login
);
}
}
/**
/**
...
@@ -71,38 +72,38 @@ public class LoginController extends AccountBaseController {
...
@@ -71,38 +72,38 @@ public class LoginController extends AccountBaseController {
* @return
* @return
* @throws Exception
* @throws Exception
*/
*/
@ApiOperation
(
"
一键登录接口
"
)
@ApiOperation
(
"
PC,App端一键登录接口,需要完善信息
"
)
@PostMapping
(
value
=
"/login-register"
)
@PostMapping
(
value
=
"/login-register"
)
public
PicaResponse
loginAndRegister
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
public
PicaResponse
<
LoginResult
>
loginAndRegister
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
accountUtils
.
checkMobilePhoneAndAuthCode
(
request
.
getMobile
(),
AccountTypeEnum
.
SYSCODE_TYPE_LOGIN
.
getCode
()
+
""
,
request
.
getAuthCode
());
accountUtils
.
checkMobilePhoneAndAuthCode
(
request
.
getMobile
(),
AccountTypeEnum
.
SYSCODE_TYPE_LOGIN
.
getCode
()
+
""
,
request
.
getAuthCode
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setLoginIp
(
super
.
getIpAddr
());
request
.
setLoginIp
(
super
.
getIpAddr
());
String
json
=
loginService
.
loginAndRegister
(
request
);
LoginResult
login
=
loginService
.
loginAndRegister
(
request
);
return
PicaResponse
.
toResponse
(
jso
n
);
return
PicaResponse
.
toResponse
(
logi
n
);
}
}
@ApiOperation
(
"微信登录接口"
)
@ApiOperation
(
"微信登录接口"
)
@PostMapping
(
value
=
"/login/wechat"
)
@PostMapping
(
value
=
"/login/wechat"
)
public
PicaResponse
loginByWeChat
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
public
PicaResponse
<
LoginResult
>
loginByWeChat
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
request
.
setProductType
(
super
.
getProductType
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setLoginIp
(
super
.
getIpAddr
());
request
.
setLoginIp
(
super
.
getIpAddr
());
String
result
=
loginService
.
loginByWeChat
(
request
);
LoginResult
result
=
loginService
.
loginByWeChat
(
request
);
return
PicaResponse
.
toResponse
(
result
);
return
PicaResponse
.
toResponse
(
result
);
}
}
@ApiOperation
(
"微信登录第二步接口"
)
@ApiOperation
(
"微信登录第二步接口"
)
@PostMapping
(
value
=
"/login/wechat/step2"
)
@PostMapping
(
value
=
"/login/wechat/step2"
)
public
PicaResponse
loginByWeChatStep
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
public
PicaResponse
<
LoginResult
>
loginByWeChatStep
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
accountUtils
.
checkMobilePhoneAndAuthCode
(
request
.
getMobile
(),
AccountTypeEnum
.
SYSCODE_TYPE_WE_CHAT
.
getCode
()
+
""
,
request
.
getAuthCode
());
accountUtils
.
checkMobilePhoneAndAuthCode
(
request
.
getMobile
(),
AccountTypeEnum
.
SYSCODE_TYPE_WE_CHAT
.
getCode
()
+
""
,
request
.
getAuthCode
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setLoginIp
(
super
.
getIpAddr
());
request
.
setLoginIp
(
super
.
getIpAddr
());
String
result
=
loginService
.
loginByWeChatStep
(
request
);
LoginResult
result
=
loginService
.
loginByWeChatStep
(
request
);
return
PicaResponse
.
toResponse
(
result
);
return
PicaResponse
.
toResponse
(
result
);
}
}
...
@@ -115,7 +116,7 @@ public class LoginController extends AccountBaseController {
...
@@ -115,7 +116,7 @@ public class LoginController extends AccountBaseController {
*/
*/
@ApiOperation
(
"绑定微信接口"
)
@ApiOperation
(
"绑定微信接口"
)
@PostMapping
(
"/login/wechat/bind"
)
@PostMapping
(
"/login/wechat/bind"
)
public
PicaResponse
<
String
>
bindWeChat
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
public
PicaResponse
bindWeChat
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
request
.
setAccId
(
super
.
getAcctId
());
request
.
setAccId
(
super
.
getAcctId
());
loginService
.
bindWeChat
(
request
);
loginService
.
bindWeChat
(
request
);
...
@@ -138,7 +139,7 @@ public class LoginController extends AccountBaseController {
...
@@ -138,7 +139,7 @@ public class LoginController extends AccountBaseController {
*/
*/
@ApiOperation
(
value
=
"退出登录接口"
)
@ApiOperation
(
value
=
"退出登录接口"
)
@GetMapping
(
"/logout"
)
@GetMapping
(
"/logout"
)
public
PicaResponse
loginOut
()
{
public
PicaResponse
<
String
>
loginOut
()
{
String
token
=
super
.
getToken
();
String
token
=
super
.
getToken
();
if
(
StringUtils
.
isNotEmpty
(
token
))
{
if
(
StringUtils
.
isNotEmpty
(
token
))
{
Integer
acctId
=
super
.
getAcctId
();
Integer
acctId
=
super
.
getAcctId
();
...
...
server/src/main/java/com/pica/cloud/account/account/server/controller/RegisterController.java
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
controller
;
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.EncryptEntity
;
import
com.pica.cloud.account.account.server.entity.LoginResult
;
import
com.pica.cloud.account.account.server.enums.AccountTypeEnum
;
import
com.pica.cloud.account.account.server.enums.AccountTypeEnum
;
import
com.pica.cloud.account.account.server.req.BaseRequest
;
import
com.pica.cloud.account.account.server.req.BaseRequest
;
import
com.pica.cloud.account.account.server.service.RegisterService
;
import
com.pica.cloud.account.account.server.service.RegisterService
;
...
@@ -26,9 +27,9 @@ public class RegisterController extends AccountBaseController {
...
@@ -26,9 +27,9 @@ public class RegisterController extends AccountBaseController {
@Autowired
@Autowired
private
AccountUtils
accountUtils
;
private
AccountUtils
accountUtils
;
@ApiOperation
(
"注册接口"
)
@ApiOperation
(
"
PC端,移动端
注册接口"
)
@PostMapping
(
value
=
""
)
@PostMapping
(
value
=
""
)
public
PicaResponse
<
String
>
register
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
public
PicaResponse
<
LoginResult
>
register
(
@RequestBody
EncryptEntity
entity
)
throws
Exception
{
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
accountUtils
.
checkMobilePhoneAndAuthCode
(
request
.
getMobile
(),
AccountTypeEnum
.
SYSCODE_TYPE_REGISTER
.
getCode
()+
""
,
request
.
getAuthCode
());
accountUtils
.
checkMobilePhoneAndAuthCode
(
request
.
getMobile
(),
AccountTypeEnum
.
SYSCODE_TYPE_REGISTER
.
getCode
()+
""
,
request
.
getAuthCode
());
accountUtils
.
checkPassword
(
request
.
getPassword
());
accountUtils
.
checkPassword
(
request
.
getPassword
());
...
@@ -36,7 +37,7 @@ public class RegisterController extends AccountBaseController {
...
@@ -36,7 +37,7 @@ public class RegisterController extends AccountBaseController {
request
.
setProductType
(
super
.
getProductType
());
request
.
setProductType
(
super
.
getProductType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setSourceType
(
super
.
getSourceType
());
request
.
setLoginIp
(
super
.
getIpAddr
());
request
.
setLoginIp
(
super
.
getIpAddr
());
String
result
=
registerService
.
register
(
request
);
LoginResult
result
=
registerService
.
register
(
request
);
return
PicaResponse
.
toResponse
(
result
);
return
PicaResponse
.
toResponse
(
result
);
}
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/entity/AgreementEntity.java
0 → 100644
浏览文件 @
27767e0d
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
server/src/main/java/com/pica/cloud/account/account/server/entity/AgreementLogEntity.java
0 → 100644
浏览文件 @
27767e0d
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
server/src/main/java/com/pica/cloud/account/account/server/entity/LoginResult.java
0 → 100644
浏览文件 @
27767e0d
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
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/enums/AccountAgreementEnum.java
0 → 100644
浏览文件 @
27767e0d
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
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/log/AccountLogUtils.java
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
log
;
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
log
;
import
com.pica.cloud.account.account.server.util.ExecutorServiceUtils
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.ExecutorService
;
...
@@ -13,17 +14,12 @@ import java.util.concurrent.Executors;
...
@@ -13,17 +14,12 @@ import java.util.concurrent.Executors;
@Component
@Component
public
class
AccountLogUtils
{
public
class
AccountLogUtils
{
/**
* 线程池
*/
ExecutorService
executor
=
Executors
.
newFixedThreadPool
(
30
);
/**
/**
* 日志记录方法
* 日志记录方法
*
*
* @param accountLogEntity
* @param accountLogEntity
*/
*/
public
void
info
(
AccountLogEntity
accountLogEntity
)
{
public
void
info
(
AccountLogEntity
accountLogEntity
)
{
executor
.
submit
(
new
AccountLogTask
(
accountLogEntity
));
ExecutorServiceUtils
.
getExecutor
()
.
submit
(
new
AccountLogTask
(
accountLogEntity
));
}
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/mapper/AgreementEntityMapper.java
0 → 100644
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
mapper
;
import
com.pica.cloud.account.account.server.entity.AgreementEntity
;
public
interface
AgreementEntityMapper
{
int
deleteByPrimaryKey
(
Long
id
);
int
insert
(
AgreementEntity
record
);
int
insertSelective
(
AgreementEntity
record
);
AgreementEntity
selectByPrimaryKey
(
Long
id
);
/**
* 根据协议类型查询协议
*
* @param agreementType
* @return
*/
Integer
selectByType
(
int
agreementType
);
int
updateByPrimaryKeySelective
(
AgreementEntity
record
);
int
updateByPrimaryKeyWithBLOBs
(
AgreementEntity
record
);
int
updateByPrimaryKey
(
AgreementEntity
record
);
}
\ No newline at end of file
server/src/main/java/com/pica/cloud/account/account/server/mapper/AgreementLogEntityMapper.java
0 → 100644
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
mapper
;
import
com.pica.cloud.account.account.server.entity.AgreementLogEntity
;
public
interface
AgreementLogEntityMapper
{
int
deleteByPrimaryKey
(
Long
id
);
int
insert
(
AgreementLogEntity
record
);
int
insertSelective
(
AgreementLogEntity
record
);
AgreementLogEntity
selectByPrimaryKey
(
Long
id
);
int
updateByPrimaryKeySelective
(
AgreementLogEntity
record
);
int
updateByPrimaryKey
(
AgreementLogEntity
record
);
}
\ No newline at end of file
server/src/main/java/com/pica/cloud/account/account/server/req/BaseRequest.java
浏览文件 @
27767e0d
...
@@ -30,7 +30,26 @@ public class BaseRequest {
...
@@ -30,7 +30,26 @@ public class BaseRequest {
private
String
weChatCode
;
private
String
weChatCode
;
@ApiModelProperty
(
"微信登录类型"
)
@ApiModelProperty
(
"微信登录类型"
)
private
Integer
weChatLoginType
;
private
Integer
weChatLoginType
;
@ApiModelProperty
(
"图片验证码token"
)
private
String
captchaToken
;
@ApiModelProperty
(
"图片验证码答案"
)
private
String
captchaAnswer
;
public
String
getCaptchaToken
()
{
return
captchaToken
;
}
public
void
setCaptchaToken
(
String
captchaToken
)
{
this
.
captchaToken
=
captchaToken
;
}
public
String
getCaptchaAnswer
()
{
return
captchaAnswer
;
}
public
void
setCaptchaAnswer
(
String
captchaAnswer
)
{
this
.
captchaAnswer
=
captchaAnswer
;
}
public
Integer
getAccId
()
{
public
Integer
getAccId
()
{
return
accId
;
return
accId
;
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/LoginService.java
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
;
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.server.req.BaseRequest
;
public
interface
LoginService
{
public
interface
LoginService
{
...
@@ -9,7 +10,7 @@ public interface LoginService {
...
@@ -9,7 +10,7 @@ public interface LoginService {
* @param request 参数模型
* @param request 参数模型
* @return
* @return
*/
*/
String
login
(
BaseRequest
request
);
LoginResult
login
(
BaseRequest
request
);
/**
/**
* 一键登录功能
* 一键登录功能
...
@@ -17,14 +18,14 @@ public interface LoginService {
...
@@ -17,14 +18,14 @@ public interface LoginService {
* @param request 参数模型
* @param request 参数模型
* @return
* @return
*/
*/
String
loginAndRegister
(
BaseRequest
request
);
LoginResult
loginAndRegister
(
BaseRequest
request
);
/**
/**
* 微信登录
* 微信登录
*
*
* @param baseRequest 参数模型
* @param baseRequest 参数模型
*/
*/
String
loginByWeChat
(
BaseRequest
baseRequest
);
LoginResult
loginByWeChat
(
BaseRequest
baseRequest
);
/**
/**
* 微信登陆第二步
* 微信登陆第二步
...
@@ -32,7 +33,7 @@ public interface LoginService {
...
@@ -32,7 +33,7 @@ public interface LoginService {
* @param request 参数模型
* @param request 参数模型
* @return
* @return
*/
*/
String
loginByWeChatStep
(
BaseRequest
request
);
LoginResult
loginByWeChatStep
(
BaseRequest
request
);
/**
/**
* 解除绑定
* 解除绑定
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/RegisterService.java
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
;
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.server.req.BaseRequest
;
...
@@ -11,7 +12,7 @@ public interface RegisterService {
...
@@ -11,7 +12,7 @@ public interface RegisterService {
* @param baseRequest 参数模型
* @param baseRequest 参数模型
* @return token和userId
* @return token和userId
*/
*/
String
register
(
BaseRequest
baseRequest
);
LoginResult
register
(
BaseRequest
baseRequest
);
}
}
server/src/main/java/com/pica/cloud/account/account/server/service/impl/LoginServiceImpl.java
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
.
impl
;
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.pica.cloud.account.account.server.constants.Constants
;
import
com.pica.cloud.account.account.server.entity.*
;
import
com.pica.cloud.account.account.server.entity.*
;
import
com.pica.cloud.account.account.server.enums.AccountExceptionEnum
;
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.enums.AccountTypeEnum
;
...
@@ -81,7 +79,7 @@ public class LoginServiceImpl implements LoginService {
...
@@ -81,7 +79,7 @@ public class LoginServiceImpl implements LoginService {
private
String
weChatURL
;
private
String
weChatURL
;
@Override
@Override
public
String
login
(
BaseRequest
request
)
{
public
LoginResult
login
(
BaseRequest
request
)
{
String
mobile
=
request
.
getMobile
();
String
mobile
=
request
.
getMobile
();
String
encrypt
=
AESUtil
.
encryptV0
(
mobile
);
String
encrypt
=
AESUtil
.
encryptV0
(
mobile
);
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
encrypt
);
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
encrypt
);
...
@@ -108,17 +106,17 @@ public class LoginServiceImpl implements LoginService {
...
@@ -108,17 +106,17 @@ public class LoginServiceImpl implements LoginService {
account
.
setMobilePhone
(
mobile
);
account
.
setMobilePhone
(
mobile
);
account
.
setRegisterSource
(
sourceType
);
account
.
setRegisterSource
(
sourceType
);
String
newToken
=
tokenUtils
.
generateToken
(
account
);
String
newToken
=
tokenUtils
.
generateToken
(
account
);
JSONObject
jsonObject
=
new
JSONObjec
t
();
LoginResult
result
=
new
LoginResul
t
();
jsonObject
.
put
(
Constants
.
TOKEN
,
newToken
);
result
.
setToken
(
newToken
);
jsonObject
.
put
(
Constants
.
USER_ID
,
userId
);
result
.
setUserId
(
userId
.
longValue
()
);
if
(
productType
==
AccountTypeEnum
.
PRODUCT_TYPE_DOCTOR
.
getCode
())
{
if
(
productType
==
AccountTypeEnum
.
PRODUCT_TYPE_DOCTOR
.
getCode
())
{
jsonObject
.
put
(
Constants
.
USER_ENTIRE_FLAG
,
doctorInfo
.
getEntireFlag
());
result
.
setEntireFlag
(
doctorInfo
.
getEntireFlag
());
}
}
LogLoginEntity
entity
=
AccountLogEntityUtils
.
getLogLoginEntity
(
acctId
,
productType
,
sourceType
,
LogLoginEntity
entity
=
AccountLogEntityUtils
.
getLogLoginEntity
(
acctId
,
productType
,
sourceType
,
AccountTypeEnum
.
LOGIN_PWD
.
getCode
(),
request
.
getLoginIp
(),
AccountTypeEnum
.
LOGIN_STATUS_SUCCESS
.
getCode
(),
AccountTypeEnum
.
LOGIN_PWD
.
getCode
(),
request
.
getLoginIp
(),
AccountTypeEnum
.
LOGIN_STATUS_SUCCESS
.
getCode
(),
AccountTypeEnum
.
LOG_TYPE_LOGIN
.
getCode
());
AccountTypeEnum
.
LOG_TYPE_LOGIN
.
getCode
());
picaLogUtils
.
info
(
entity
);
picaLogUtils
.
info
(
entity
);
return
jsonObject
.
toJSONString
()
;
return
result
;
}
else
{
}
else
{
logger
.
info
(
"login failure:"
+
mobile
);
logger
.
info
(
"login failure:"
+
mobile
);
throw
new
PicaException
(
AccountExceptionEnum
.
PICA_PASSWORD_ERROR
.
getCode
(),
AccountExceptionEnum
.
PICA_PASSWORD_ERROR
.
getMessage
());
throw
new
PicaException
(
AccountExceptionEnum
.
PICA_PASSWORD_ERROR
.
getCode
(),
AccountExceptionEnum
.
PICA_PASSWORD_ERROR
.
getMessage
());
...
@@ -129,7 +127,7 @@ public class LoginServiceImpl implements LoginService {
...
@@ -129,7 +127,7 @@ public class LoginServiceImpl implements LoginService {
}
}
@Override
@Override
public
String
loginAndRegister
(
BaseRequest
baseRequest
)
{
public
LoginResult
loginAndRegister
(
BaseRequest
baseRequest
)
{
String
mobile
=
baseRequest
.
getMobile
();
String
mobile
=
baseRequest
.
getMobile
();
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
AESUtil
.
encryptV0
(
mobile
));
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
AESUtil
.
encryptV0
(
mobile
));
if
(
accountInfoEntity
==
null
)
{
if
(
accountInfoEntity
==
null
)
{
...
@@ -144,7 +142,7 @@ public class LoginServiceImpl implements LoginService {
...
@@ -144,7 +142,7 @@ public class LoginServiceImpl implements LoginService {
*
*
* @param baseRequest
* @param baseRequest
*/
*/
private
String
processLogin
(
BaseRequest
baseRequest
,
Integer
acctId
,
Integer
loginType
)
{
private
LoginResult
processLogin
(
BaseRequest
baseRequest
,
Integer
acctId
,
Integer
loginType
)
{
Date
currentTime
=
new
Date
();
Date
currentTime
=
new
Date
();
Long
userId
=
accountUtils
.
getUserIdByAcctId
(
baseRequest
.
getProductType
(),
acctId
);
Long
userId
=
accountUtils
.
getUserIdByAcctId
(
baseRequest
.
getProductType
(),
acctId
);
Account
account
=
new
Account
();
Account
account
=
new
Account
();
...
@@ -154,24 +152,24 @@ public class LoginServiceImpl implements LoginService {
...
@@ -154,24 +152,24 @@ public class LoginServiceImpl implements LoginService {
account
.
setMobilePhone
(
baseRequest
.
getMobile
());
account
.
setMobilePhone
(
baseRequest
.
getMobile
());
account
.
setRegisterSource
(
baseRequest
.
getSourceType
());
account
.
setRegisterSource
(
baseRequest
.
getSourceType
());
String
newToken
=
tokenUtils
.
generateToken
(
account
);
String
newToken
=
tokenUtils
.
generateToken
(
account
);
JSONObject
jsonObject
=
new
JSONObjec
t
();
LoginResult
result
=
new
LoginResul
t
();
jsonObject
.
put
(
Constants
.
TOKEN
,
newToken
);
result
.
setToken
(
newToken
);
jsonObject
.
put
(
Constants
.
USER_ID
,
userId
);
result
.
setUserId
(
userId
);
//是否完善过个人信息(云鹊医app才需要)
//是否完善过个人信息(云鹊医app才需要)
if
(
baseRequest
.
getProductType
()
==
AccountTypeEnum
.
PRODUCT_TYPE_DOCTOR
.
getCode
())
{
if
(
baseRequest
.
getProductType
()
==
AccountTypeEnum
.
PRODUCT_TYPE_DOCTOR
.
getCode
())
{
Doctor
doctorEntity
=
doctorInfoMapper
.
selectByPrimaryKey
(
userId
.
intValue
());
Doctor
doctorEntity
=
doctorInfoMapper
.
selectByPrimaryKey
(
userId
.
intValue
());
jsonObject
.
put
(
Constants
.
USER_ENTIRE_FLAG
,
doctorEntity
.
getEntireFlag
());
result
.
setEntireFlag
(
doctorEntity
.
getEntireFlag
());
}
}
//记录登录日志
//记录登录日志
LogLoginEntity
entity
=
AccountLogEntityUtils
.
getLogLoginEntity
(
acctId
,
baseRequest
.
getProductType
(),
baseRequest
.
getSourceType
(),
LogLoginEntity
entity
=
AccountLogEntityUtils
.
getLogLoginEntity
(
acctId
,
baseRequest
.
getProductType
(),
baseRequest
.
getSourceType
(),
loginType
,
baseRequest
.
getLoginIp
(),
AccountTypeEnum
.
LOGIN_STATUS_SUCCESS
.
getCode
(),
AccountTypeEnum
.
LOG_TYPE_LOGIN
.
getCode
());
loginType
,
baseRequest
.
getLoginIp
(),
AccountTypeEnum
.
LOGIN_STATUS_SUCCESS
.
getCode
(),
AccountTypeEnum
.
LOG_TYPE_LOGIN
.
getCode
());
;
;
picaLogUtils
.
info
(
entity
);
picaLogUtils
.
info
(
entity
);
return
jsonObject
.
toJSONString
()
;
return
result
;
}
}
@Override
@Override
public
String
loginByWeChat
(
BaseRequest
request
)
{
public
LoginResult
loginByWeChat
(
BaseRequest
request
)
{
WeChatEntity
weChatEntity
=
WeChatUtils
.
getAuthorizationInfo
(
appId
,
appSecret
,
request
.
getWeChatCode
());
WeChatEntity
weChatEntity
=
WeChatUtils
.
getAuthorizationInfo
(
appId
,
appSecret
,
request
.
getWeChatCode
());
//todo:微信登录获取个人信息
//todo:微信登录获取个人信息
Map
map
=
new
HashMap
();
Map
map
=
new
HashMap
();
...
@@ -193,50 +191,47 @@ public class LoginServiceImpl implements LoginService {
...
@@ -193,50 +191,47 @@ public class LoginServiceImpl implements LoginService {
account
.
setMobilePhone
(
""
);
account
.
setMobilePhone
(
""
);
account
.
setRegisterSource
(
request
.
getSourceType
());
account
.
setRegisterSource
(
request
.
getSourceType
());
String
newToken
=
tokenUtils
.
generateToken
(
account
);
String
newToken
=
tokenUtils
.
generateToken
(
account
);
JSONObject
jsonObject
=
new
JSONObjec
t
();
LoginResult
result
=
new
LoginResul
t
();
jsonObject
.
put
(
Constants
.
TOKEN
,
newToken
);
result
.
setToken
(
newToken
);
jsonObject
.
put
(
Constants
.
USER_ID
,
userId
);
result
.
setUserId
(
userId
);
jsonObject
.
put
(
Constants
.
BIND_FLAG
,
AccountTypeEnum
.
BIND_STATUS_SUCCESS
.
getCode
()
);
result
.
setBindFlag
(
AccountTypeEnum
.
BIND_STATUS_SUCCESS
.
getCode
()+
""
);
return
jsonObject
.
toJSONString
()
;
return
result
;
}
else
{
}
else
{
AccountWeChatInfoEntity
entity
=
accountWeChatInfoMapper
.
selectByUnionId
(
unionId
);
AccountWeChatInfoEntity
entity
=
accountWeChatInfoMapper
.
selectByUnionId
(
unionId
);
if
(
entity
==
null
)
{
if
(
entity
==
null
)
{
processWeChatInfoUser
(
weChatUserInfoEntity
,
request
.
getWeChatLoginType
());
processWeChatInfoUser
(
weChatUserInfoEntity
,
request
.
getWeChatLoginType
());
}
}
JSONObject
jsonObject
=
new
JSONObjec
t
();
LoginResult
result
=
new
LoginResul
t
();
jsonObject
.
put
(
Constants
.
BIND_FLAG
,
AccountTypeEnum
.
BIND_STATUS_FAILURE
.
getCode
()
);
result
.
setUnionId
(
unionId
);
jsonObject
.
put
(
Constants
.
UNION_ID
,
unionId
);
result
.
setBindFlag
(
AccountTypeEnum
.
BIND_STATUS_FAILURE
.
getCode
()+
""
);
return
jsonObject
.
toJSONString
()
;
return
result
;
}
}
}
}
@Override
@Override
public
String
loginByWeChatStep
(
BaseRequest
request
)
{
public
LoginResult
loginByWeChatStep
(
BaseRequest
request
)
{
//判断当前手机号是否注册过,注册过,直接登录;没有注册过,进行注册操操作
//判断当前手机号是否注册过,注册过,直接登录;没有注册过,进行注册操操作
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
AESUtil
.
encryptV0
(
request
.
getMobile
()));
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
AESUtil
.
encryptV0
(
request
.
getMobile
()));
String
json
;
LoginResult
result
;
if
(
accountInfoEntity
==
null
)
{
if
(
accountInfoEntity
==
null
)
{
json
=
registerService
.
register
(
request
);
result
=
registerService
.
register
(
request
);
/*
if
(
doubleWritingMode
)
{
if
(
doubleWritingMode
)
{
//双写模式下,要在doctor表存储unionId
//双写模式下,要在doctor表存储unionId
JSONObject jsonObject = JSONObject.parseObject(json);
if (jsonObject.containsKey("userId")) {
if
(
result
.
getUserId
()!=
null
)
{
Integer userId = jsonObject.getInteger("userId");
Doctor
doctor
=
new
Doctor
();
Doctor
doctor
=
new
Doctor
();
doctor.setId(
userId
);
doctor
.
setId
(
result
.
getUserId
().
intValue
()
);
doctor
.
setUnionid
(
request
.
getUnionId
());
doctor
.
setUnionid
(
request
.
getUnionId
());
doctorInfoMapper
.
updateByPrimaryKeySelective
(
doctor
);
doctorInfoMapper
.
updateByPrimaryKeySelective
(
doctor
);
}
}
}
}
*/
}
else
{
}
else
{
json
=
processLogin
(
request
,
accountInfoEntity
.
getId
(),
AccountTypeEnum
.
LOGIN_WE_CHAT
.
getCode
());
result
=
processLogin
(
request
,
accountInfoEntity
.
getId
(),
AccountTypeEnum
.
LOGIN_WE_CHAT
.
getCode
());
}
}
AccountInfoEntity
accountInfo
=
accountInfoDetailMapper
.
selectByMobile
(
AESUtil
.
encryptV0
(
request
.
getMobile
()));
AccountInfoEntity
accountInfo
=
accountInfoDetailMapper
.
selectByMobile
(
AESUtil
.
encryptV0
(
request
.
getMobile
()));
Integer
acctId
=
accountInfo
.
getId
();
Integer
acctId
=
accountInfo
.
getId
();
processAccountUnion
(
acctId
,
request
.
getUnionId
());
processAccountUnion
(
acctId
,
request
.
getUnionId
());
return
json
;
return
result
;
}
}
@Override
@Override
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/impl/RegisterServiceImpl.java
浏览文件 @
27767e0d
...
@@ -2,36 +2,40 @@ package com.pica.cloud.account.account.server.service.impl;
...
@@ -2,36 +2,40 @@ package com.pica.cloud.account.account.server.service.impl;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.pica.cloud.account.account.server.constants.Constants
;
import
com.pica.cloud.account.account.server.constants.Constants
;
import
com.pica.cloud.account.account.server.entity.Account
;
import
com.pica.cloud.account.account.server.entity.*
;
import
com.pica.cloud.account.account.server.entity.AccountInfoEntity
;
import
com.pica.cloud.account.account.server.enums.AccountAgreementEnum
;
import
com.pica.cloud.account.account.server.entity.AccountPatientInfoEntity
;
import
com.pica.cloud.account.account.server.entity.LogLoginEntity
;
import
com.pica.cloud.account.account.server.enums.AccountExceptionEnum
;
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.enums.AccountTypeEnum
;
import
com.pica.cloud.account.account.server.exception.AccountException
;
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.AccountLogEntityUtils
;
import
com.pica.cloud.account.account.server.log.AccountLogUtils
;
import
com.pica.cloud.account.account.server.log.AccountLogUtils
;
import
com.pica.cloud.account.account.server.mapper.AccountInfoDetailMapper
;
import
com.pica.cloud.account.account.server.mapper.*
;
import
com.pica.cloud.account.account.server.mapper.AccountMapper
;
import
com.pica.cloud.account.account.server.mapper.AccountPatientInfoMapper
;
import
com.pica.cloud.account.account.server.queue.QueueProducer
;
import
com.pica.cloud.account.account.server.queue.QueueProducer
;
import
com.pica.cloud.account.account.server.req.BaseRequest
;
import
com.pica.cloud.account.account.server.req.BaseRequest
;
import
com.pica.cloud.account.account.server.service.RegisterService
;
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.AccountUtils
;
import
com.pica.cloud.account.account.server.util.AccountUtils
;
import
com.pica.cloud.account.account.server.util.ExecutorServiceUtils
;
import
com.pica.cloud.account.account.server.util.TokenUtils
;
import
com.pica.cloud.account.account.server.util.TokenUtils
;
import
org.apache.commons.lang3.StringUtils
;
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.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.io.ByteArrayOutputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.DataOutputStream
;
import
java.io.DataOutputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.ExecutorService
;
@Service
@Service
public
class
RegisterServiceImpl
implements
RegisterService
{
public
class
RegisterServiceImpl
implements
RegisterService
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
this
.
getClass
());
@Autowired
@Autowired
private
AccountInfoDetailMapper
accountInfoDetailMapper
;
private
AccountInfoDetailMapper
accountInfoDetailMapper
;
...
@@ -53,6 +57,12 @@ public class RegisterServiceImpl implements RegisterService {
...
@@ -53,6 +57,12 @@ public class RegisterServiceImpl implements RegisterService {
@Autowired
@Autowired
private
QueueProducer
queueProducer
;
private
QueueProducer
queueProducer
;
@Autowired
private
AgreementEntityMapper
agreementEntityMapper
;
@Autowired
private
AgreementLogEntityMapper
agreementLogEntityMapper
;
/**
/**
* 1)注册功能:默认未完善信息;
* 1)注册功能:默认未完善信息;
* 2)注册成功后发送mq消息,让别的服务初始化数据;
* 2)注册成功后发送mq消息,让别的服务初始化数据;
...
@@ -62,10 +72,11 @@ public class RegisterServiceImpl implements RegisterService {
...
@@ -62,10 +72,11 @@ public class RegisterServiceImpl implements RegisterService {
* @return
* @return
*/
*/
@Override
@Override
public
String
register
(
BaseRequest
baseRequest
)
{
public
LoginResult
register
(
BaseRequest
baseRequest
)
{
String
mobile
=
baseRequest
.
getMobile
();
String
mobile
=
baseRequest
.
getMobile
();
String
mobileEncrypt
=
AESUtil
.
encryptV0
(
mobile
);
String
mobileEncrypt
=
AESUtil
.
encryptV0
(
mobile
);
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
mobileEncrypt
);
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
mobileEncrypt
);
if
(
accountInfoEntity
==
null
)
{
if
(
accountInfoEntity
==
null
)
{
Date
currentTime
=
new
Date
();
Date
currentTime
=
new
Date
();
int
productType
=
baseRequest
.
getProductType
();
int
productType
=
baseRequest
.
getProductType
();
...
@@ -120,10 +131,13 @@ public class RegisterServiceImpl implements RegisterService {
...
@@ -120,10 +131,13 @@ public class RegisterServiceImpl implements RegisterService {
account
.
setMobilePhone
(
mobile
);
account
.
setMobilePhone
(
mobile
);
account
.
setRegisterSource
(
sourceType
);
account
.
setRegisterSource
(
sourceType
);
String
newToken
=
tokenUtils
.
generateToken
(
account
);
String
newToken
=
tokenUtils
.
generateToken
(
account
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
Constants
.
TOKEN
,
newToken
);
LoginResult
result
=
new
LoginResult
();
jsonObject
.
put
(
Constants
.
USER_ID
,
userId
);
result
.
setToken
(
newToken
);
jsonObject
.
put
(
Constants
.
USER_ENTIRE_FLAG
,
1
);
result
.
setUserId
(
userId
);
result
.
setEntireFlag
(
1
);
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
DataOutputStream
dos
=
new
DataOutputStream
(
bos
);
DataOutputStream
dos
=
new
DataOutputStream
(
bos
);
try
{
try
{
...
@@ -136,9 +150,46 @@ public class RegisterServiceImpl implements RegisterService {
...
@@ -136,9 +150,46 @@ public class RegisterServiceImpl implements RegisterService {
AccountTypeEnum
.
LOGIN_REGISTER
.
getCode
(),
baseRequest
.
getLoginIp
(),
AccountTypeEnum
.
LOGIN_STATUS_SUCCESS
.
getCode
(),
AccountTypeEnum
.
LOGIN_REGISTER
.
getCode
(),
baseRequest
.
getLoginIp
(),
AccountTypeEnum
.
LOGIN_STATUS_SUCCESS
.
getCode
(),
AccountTypeEnum
.
LOG_TYPE_LOGIN
.
getCode
());
AccountTypeEnum
.
LOG_TYPE_LOGIN
.
getCode
());
picaLogUtils
.
info
(
entity
);
picaLogUtils
.
info
(
entity
);
return
jsonObject
.
toJSONString
();
processAgreement
(
userId
);
return
result
;
}
else
{
}
else
{
throw
new
AccountException
(
AccountExceptionEnum
.
PICA_ALREADY_REGISTER
);
throw
new
AccountException
(
AccountExceptionEnum
.
PICA_ALREADY_REGISTER
);
}
}
}
}
/**
* 异步处理协议信息
* 1)从协议表中获取最新的协议信息;
* 2)将协议加入到用户协议表中
*/
private
void
processAgreement
(
Long
userId
)
{
ExecutorService
executor
=
ExecutorServiceUtils
.
getExecutor
();
executor
.
submit
(()
->
{
//用户协议
Date
currentTime
=
new
Date
();
Integer
userVersion
=
agreementEntityMapper
.
selectByType
(
AccountAgreementEnum
.
USER_AGREEMENT
.
getCode
());
AgreementLogEntity
userAgreementLogEntity
=
new
AgreementLogEntity
();
userAgreementLogEntity
.
setAgreement_type
(
AccountAgreementEnum
.
USER_AGREEMENT
.
getCode
());
userAgreementLogEntity
.
setDoctor_id
(
userId
);
userAgreementLogEntity
.
setVersion
(
userVersion
.
toString
());
userAgreementLogEntity
.
setCreated_id
(
userId
);
userAgreementLogEntity
.
setCreated_time
(
currentTime
);
userAgreementLogEntity
.
setModified_id
(
userId
);
userAgreementLogEntity
.
setModified_time
(
currentTime
);
userAgreementLogEntity
.
setDelete_flag
(
1
);
agreementLogEntityMapper
.
insert
(
userAgreementLogEntity
);
//隐私协议
Integer
privateVersion
=
agreementEntityMapper
.
selectByType
(
AccountAgreementEnum
.
PRIVACY_AGREEMENT
.
getCode
());
AgreementLogEntity
privateAgreementLogEntity
=
new
AgreementLogEntity
();
privateAgreementLogEntity
.
setAgreement_type
(
AccountAgreementEnum
.
PRIVACY_AGREEMENT
.
getCode
());
privateAgreementLogEntity
.
setDoctor_id
(
userId
);
privateAgreementLogEntity
.
setVersion
(
privateVersion
.
toString
());
privateAgreementLogEntity
.
setCreated_id
(
userId
);
privateAgreementLogEntity
.
setCreated_time
(
currentTime
);
privateAgreementLogEntity
.
setModified_id
(
userId
);
privateAgreementLogEntity
.
setModified_time
(
currentTime
);
privateAgreementLogEntity
.
setDelete_flag
(
1
);
agreementLogEntityMapper
.
insert
(
privateAgreementLogEntity
);
});
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/util/ExecutorServiceUtils.java
0 → 100644
浏览文件 @
27767e0d
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
util
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
/**
* Created on 2019/10/11 18:58
* author:crs
* Description:线程池工具类
*/
public
class
ExecutorServiceUtils
{
public
static
ExecutorService
getExecutor
()
{
return
Executors
.
newFixedThreadPool
(
30
);
}
}
server/src/main/resources/mybatis/AgreementEntityMapper.xml
0 → 100644
浏览文件 @
27767e0d
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pica.cloud.account.account.server.mapper.AgreementEntityMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pica.cloud.account.account.server.entity.AgreementEntity"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"agreement_type"
property=
"agreement_type"
jdbcType=
"INTEGER"
/>
<result
column=
"version"
property=
"version"
jdbcType=
"VARCHAR"
/>
<result
column=
"delete_flag"
property=
"delete_flag"
jdbcType=
"INTEGER"
/>
<result
column=
"created_id"
property=
"created_id"
jdbcType=
"BIGINT"
/>
<result
column=
"created_time"
property=
"created_time"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"modified_id"
property=
"modified_id"
jdbcType=
"BIGINT"
/>
<result
column=
"modified_time"
property=
"modified_time"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<resultMap
id=
"ResultMapWithBLOBs"
type=
"com.pica.cloud.account.account.server.entity.AgreementEntity"
extends=
"BaseResultMap"
>
<result
column=
"agreement_content"
property=
"agreement_content"
jdbcType=
"LONGVARCHAR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, agreement_type, version, delete_flag, created_id, created_time, modified_id,
modified_time
</sql>
<sql
id=
"Blob_Column_List"
>
agreement_content
</sql>
<!--通过类型获取用户同意的协议的版本-->
<select
id=
"selectByType"
parameterType=
"Integer"
resultType=
"Integer"
>
select version from doctor_agreement
where agreement_type = #{agreementType}
</select>
<select
id=
"selectByPrimaryKey"
resultMap=
"ResultMapWithBLOBs"
parameterType=
"java.lang.Long"
>
select
<include
refid=
"Base_Column_List"
/>
,
<include
refid=
"Blob_Column_List"
/>
from doctor_agreement
where id = #{id,jdbcType=BIGINT}
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Long"
>
delete from doctor_agreement
where id = #{id,jdbcType=BIGINT}
</delete>
<insert
id=
"insert"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementEntity"
>
insert into doctor_agreement (id, agreement_type, version,
delete_flag, created_id, created_time,
modified_id, modified_time, agreement_content
)
values (#{id,jdbcType=BIGINT}, #{agreement_type,jdbcType=INTEGER}, #{version,jdbcType=VARCHAR},
#{delete_flag,jdbcType=INTEGER}, #{created_id,jdbcType=BIGINT}, #{created_time,jdbcType=TIMESTAMP},
#{modified_id,jdbcType=BIGINT}, #{modified_time,jdbcType=TIMESTAMP}, #{agreement_content,jdbcType=LONGVARCHAR}
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementEntity"
>
insert into doctor_agreement
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
id,
</if>
<if
test=
"agreement_type != null"
>
agreement_type,
</if>
<if
test=
"version != null"
>
version,
</if>
<if
test=
"delete_flag != null"
>
delete_flag,
</if>
<if
test=
"created_id != null"
>
created_id,
</if>
<if
test=
"created_time != null"
>
created_time,
</if>
<if
test=
"modified_id != null"
>
modified_id,
</if>
<if
test=
"modified_time != null"
>
modified_time,
</if>
<if
test=
"agreement_content != null"
>
agreement_content,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
#{id,jdbcType=BIGINT},
</if>
<if
test=
"agreement_type != null"
>
#{agreement_type,jdbcType=INTEGER},
</if>
<if
test=
"version != null"
>
#{version,jdbcType=VARCHAR},
</if>
<if
test=
"delete_flag != null"
>
#{delete_flag,jdbcType=INTEGER},
</if>
<if
test=
"created_id != null"
>
#{created_id,jdbcType=BIGINT},
</if>
<if
test=
"created_time != null"
>
#{created_time,jdbcType=TIMESTAMP},
</if>
<if
test=
"modified_id != null"
>
#{modified_id,jdbcType=BIGINT},
</if>
<if
test=
"modified_time != null"
>
#{modified_time,jdbcType=TIMESTAMP},
</if>
<if
test=
"agreement_content != null"
>
#{agreement_content,jdbcType=LONGVARCHAR},
</if>
</trim>
</insert>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementEntity"
>
update doctor_agreement
<set>
<if
test=
"agreement_type != null"
>
agreement_type = #{agreement_type,jdbcType=INTEGER},
</if>
<if
test=
"version != null"
>
version = #{version,jdbcType=VARCHAR},
</if>
<if
test=
"delete_flag != null"
>
delete_flag = #{delete_flag,jdbcType=INTEGER},
</if>
<if
test=
"created_id != null"
>
created_id = #{created_id,jdbcType=BIGINT},
</if>
<if
test=
"created_time != null"
>
created_time = #{created_time,jdbcType=TIMESTAMP},
</if>
<if
test=
"modified_id != null"
>
modified_id = #{modified_id,jdbcType=BIGINT},
</if>
<if
test=
"modified_time != null"
>
modified_time = #{modified_time,jdbcType=TIMESTAMP},
</if>
<if
test=
"agreement_content != null"
>
agreement_content = #{agreement_content,jdbcType=LONGVARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update
id=
"updateByPrimaryKeyWithBLOBs"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementEntity"
>
update doctor_agreement
set agreement_type = #{agreement_type,jdbcType=INTEGER},
version = #{version,jdbcType=VARCHAR},
delete_flag = #{delete_flag,jdbcType=INTEGER},
created_id = #{created_id,jdbcType=BIGINT},
created_time = #{created_time,jdbcType=TIMESTAMP},
modified_id = #{modified_id,jdbcType=BIGINT},
modified_time = #{modified_time,jdbcType=TIMESTAMP},
agreement_content = #{agreement_content,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementEntity"
>
update doctor_agreement
set agreement_type = #{agreement_type,jdbcType=INTEGER},
version = #{version,jdbcType=VARCHAR},
delete_flag = #{delete_flag,jdbcType=INTEGER},
created_id = #{created_id,jdbcType=BIGINT},
created_time = #{created_time,jdbcType=TIMESTAMP},
modified_id = #{modified_id,jdbcType=BIGINT},
modified_time = #{modified_time,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
\ No newline at end of file
server/src/main/resources/mybatis/AgreementLogEntityMapper.xml
0 → 100644
浏览文件 @
27767e0d
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pica.cloud.account.account.server.mapper.AgreementLogEntityMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pica.cloud.account.account.server.entity.AgreementLogEntity"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"doctor_id"
property=
"doctor_id"
jdbcType=
"BIGINT"
/>
<result
column=
"agreement_type"
property=
"agreement_type"
jdbcType=
"INTEGER"
/>
<result
column=
"version"
property=
"version"
jdbcType=
"VARCHAR"
/>
<result
column=
"delete_flag"
property=
"delete_flag"
jdbcType=
"INTEGER"
/>
<result
column=
"created_id"
property=
"created_id"
jdbcType=
"BIGINT"
/>
<result
column=
"created_time"
property=
"created_time"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"modified_id"
property=
"modified_id"
jdbcType=
"BIGINT"
/>
<result
column=
"modified_time"
property=
"modified_time"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, doctor_id, agreement_type, version, delete_flag, created_id, created_time, modified_id,
modified_time
</sql>
<select
id=
"selectByPrimaryKey"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Long"
>
select
<include
refid=
"Base_Column_List"
/>
from doctor_agreement_log
where id = #{id,jdbcType=BIGINT}
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Long"
>
delete from doctor_agreement_log
where id = #{id,jdbcType=BIGINT}
</delete>
<insert
id=
"insert"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementLogEntity"
>
insert into doctor_agreement_log (id, doctor_id, agreement_type,
version, delete_flag, created_id,
created_time, modified_id, modified_time)
values (#{id,jdbcType=BIGINT}, #{doctor_id,jdbcType=BIGINT}, #{agreement_type,jdbcType=INTEGER},
#{version,jdbcType=VARCHAR}, #{delete_flag,jdbcType=INTEGER}, #{created_id,jdbcType=BIGINT},
#{created_time,jdbcType=TIMESTAMP}, #{modified_id,jdbcType=BIGINT}, #{modified_time,jdbcType=TIMESTAMP}
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementLogEntity"
>
insert into doctor_agreement_log
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
id,
</if>
<if
test=
"doctor_id != null"
>
doctor_id,
</if>
<if
test=
"agreement_type != null"
>
agreement_type,
</if>
<if
test=
"version != null"
>
version,
</if>
<if
test=
"delete_flag != null"
>
delete_flag,
</if>
<if
test=
"created_id != null"
>
created_id,
</if>
<if
test=
"created_time != null"
>
created_time,
</if>
<if
test=
"modified_id != null"
>
modified_id,
</if>
<if
test=
"modified_time != null"
>
modified_time,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
#{id,jdbcType=BIGINT},
</if>
<if
test=
"doctor_id != null"
>
#{doctor_id,jdbcType=BIGINT},
</if>
<if
test=
"agreement_type != null"
>
#{agreement_type,jdbcType=INTEGER},
</if>
<if
test=
"version != null"
>
#{version,jdbcType=VARCHAR},
</if>
<if
test=
"delete_flag != null"
>
#{delete_flag,jdbcType=INTEGER},
</if>
<if
test=
"created_id != null"
>
#{created_id,jdbcType=BIGINT},
</if>
<if
test=
"created_time != null"
>
#{created_time,jdbcType=TIMESTAMP},
</if>
<if
test=
"modified_id != null"
>
#{modified_id,jdbcType=BIGINT},
</if>
<if
test=
"modified_time != null"
>
#{modified_time,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementLogEntity"
>
update doctor_agreement_log
<set
>
<if
test=
"doctor_id != null"
>
doctor_id = #{doctor_id,jdbcType=BIGINT},
</if>
<if
test=
"agreement_type != null"
>
agreement_type = #{agreement_type,jdbcType=INTEGER},
</if>
<if
test=
"version != null"
>
version = #{version,jdbcType=VARCHAR},
</if>
<if
test=
"delete_flag != null"
>
delete_flag = #{delete_flag,jdbcType=INTEGER},
</if>
<if
test=
"created_id != null"
>
created_id = #{created_id,jdbcType=BIGINT},
</if>
<if
test=
"created_time != null"
>
created_time = #{created_time,jdbcType=TIMESTAMP},
</if>
<if
test=
"modified_id != null"
>
modified_id = #{modified_id,jdbcType=BIGINT},
</if>
<if
test=
"modified_time != null"
>
modified_time = #{modified_time,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"com.pica.cloud.account.account.server.entity.AgreementLogEntity"
>
update doctor_agreement_log
set doctor_id = #{doctor_id,jdbcType=BIGINT},
agreement_type = #{agreement_type,jdbcType=INTEGER},
version = #{version,jdbcType=VARCHAR},
delete_flag = #{delete_flag,jdbcType=INTEGER},
created_id = #{created_id,jdbcType=BIGINT},
created_time = #{created_time,jdbcType=TIMESTAMP},
modified_id = #{modified_id,jdbcType=BIGINT},
modified_time = #{modified_time,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录