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
提交
9f893ee9
提交
9f893ee9
编写于
9月 21, 2020
作者:
yongbo.wang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'release' into 'master'
Release See merge request
!50
上级
306f1e49
936040a3
流水线
#30331
已失败 于阶段
in 2 second
变更
14
流水线
1
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
213 行增加
和
26 行删除
+213
-26
pom.xml
client/pom.xml
+4
-3
RegisterClient.java
...com/pica/cloud/account/account/client/RegisterClient.java
+5
-0
pom.xml
common/pom.xml
+3
-2
ShopAcctInit.java
...a/cloud/account/account/common/req/shop/ShopAcctInit.java
+29
-0
ShopAcctInitReq.java
...loud/account/account/common/req/shop/ShopAcctInitReq.java
+32
-0
pom.xml
server/pom.xml
+5
-3
ShopUserController.java
...account/account/server/controller/ShopUserController.java
+35
-0
LogLoginMapper.java
...a/cloud/account/account/server/mapper/LogLoginMapper.java
+4
-0
CircleAccountService.java
.../account/account/server/service/CircleAccountService.java
+3
-0
RegisterService.java
...cloud/account/account/server/service/RegisterService.java
+1
-2
CircleAccountServiceImpl.java
...account/server/service/impl/CircleAccountServiceImpl.java
+39
-0
RegisterServiceImpl.java
...ount/account/server/service/impl/RegisterServiceImpl.java
+10
-9
TokenUtils.java
...om/pica/cloud/account/account/server/util/TokenUtils.java
+32
-7
LogLoginEntityMapper.xml
server/src/main/resources/mybatis/LogLoginEntityMapper.xml
+11
-0
未找到文件。
client/pom.xml
浏览文件 @
9f893ee9
...
...
@@ -11,7 +11,7 @@
<groupId>
com.pica.cloud.account
</groupId>
<artifactId>
pica-cloud-account-client
</artifactId>
<version>
1.0.3.
6
</version>
<version>
1.0.3.
8
</version>
<name>
pica-cloud-account-client
</name>
<packaging>
jar
</packaging>
...
...
@@ -28,7 +28,7 @@
<dependency>
<groupId>
com.pica.cloud.account
</groupId>
<artifactId>
pica-cloud-account-common
</artifactId>
<version>
1.0.1.
6
</version>
<version>
1.0.1.
7
</version>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
...
...
@@ -71,7 +71,8 @@
<repository>
<id>
nexus
</id>
<name>
Pica 3rdParty Repository
</name>
<url>
http://192.168.141.133:8082/repository/pica-3rdParty/
</url>
<!-- <url>http://192.168.141.133:8082/repository/pica-3rdParty/</url>-->
<url>
http://nexus.picahealth.com:8082/repository/pica-3rdParty/
</url>
</repository>
</distributionManagement>
...
...
client/src/main/java/com/pica/cloud/account/account/client/RegisterClient.java
浏览文件 @
9f893ee9
...
...
@@ -4,6 +4,7 @@ import com.pica.cloud.account.account.common.req.EncryptEntity;
import
com.pica.cloud.account.account.common.req.LoginResult
;
import
com.pica.cloud.account.account.common.req.OCINRequest
;
import
com.pica.cloud.account.account.common.req.circle.CircleAcctInitReq
;
import
com.pica.cloud.account.account.common.req.shop.ShopAcctInitReq
;
import
com.pica.cloud.foundation.entity.PicaResponse
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
@@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
java.util.List
;
import
java.util.Map
;
/**
* Created on 2019/10/16 17:28
...
...
@@ -29,5 +31,8 @@ public interface RegisterClient {
@PostMapping
(
value
=
"/account/circle/acct"
)
PicaResponse
<
List
<
Integer
>>
register
(
@RequestBody
CircleAcctInitReq
circleAcctInitReq
,
@RequestHeader
(
value
=
"token"
)
String
token
);
@PostMapping
(
value
=
"/account/shop/acct"
)
PicaResponse
<
Map
<
String
,
Integer
>>
shopRegister
(
@RequestBody
ShopAcctInitReq
shopAcctInitReq
,
@RequestHeader
(
value
=
"token"
)
String
token
);
}
\ No newline at end of file
common/pom.xml
浏览文件 @
9f893ee9
...
...
@@ -11,7 +11,7 @@
<groupId>
com.pica.cloud.account
</groupId>
<artifactId>
pica-cloud-account-common
</artifactId>
<version>
1.0.1.
6
</version>
<version>
1.0.1.
7
</version>
<name>
pica-cloud-account-common
</name>
<packaging>
jar
</packaging>
...
...
@@ -34,7 +34,8 @@
<repository>
<id>
nexus
</id>
<name>
Pica 3rdParty Repository
</name>
<url>
http://192.168.141.133:8082/repository/pica-3rdParty/
</url>
<!-- <url>http://192.168.141.133:8082/repository/pica-3rdParty/</url>-->
<url>
http://nexus.picahealth.com:8082/repository/pica-3rdParty/
</url>
</repository>
</distributionManagement>
...
...
common/src/main/java/com/pica/cloud/account/account/common/req/shop/ShopAcctInit.java
0 → 100644
浏览文件 @
9f893ee9
package
com
.
pica
.
cloud
.
account
.
account
.
common
.
req
.
shop
;
/**
* @DESCRIPTOIN:
* @AUTHOR: joy
* @DATE:2020/6/21 11:01 上午
*/
public
class
ShopAcctInit
{
private
String
userName
;
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
private
String
mobile
;
public
String
getMobile
()
{
return
mobile
;
}
public
void
setMobile
(
String
mobile
)
{
this
.
mobile
=
mobile
;
}
}
common/src/main/java/com/pica/cloud/account/account/common/req/shop/ShopAcctInitReq.java
0 → 100644
浏览文件 @
9f893ee9
package
com
.
pica
.
cloud
.
account
.
account
.
common
.
req
.
shop
;
import
java.util.List
;
/**
* @DESCRIPTOIN:
* @AUTHOR: joy
* @DATE:2020/6/21 11:02 上午
*/
public
class
ShopAcctInitReq
{
private
List
<
ShopAcctInit
>
shopAcctInitList
;
private
Integer
registerSource
;
// 1 安卓 2 ios 3 web 4 h5 5 admin
public
Integer
getRegisterSource
()
{
return
registerSource
;
}
public
void
setRegisterSource
(
Integer
registerSource
)
{
this
.
registerSource
=
registerSource
;
}
public
List
<
ShopAcctInit
>
getShopAcctInitList
()
{
return
shopAcctInitList
;
}
public
void
setShopAcctInitList
(
List
<
ShopAcctInit
>
shopAcctInitList
)
{
this
.
shopAcctInitList
=
shopAcctInitList
;
}
}
server/pom.xml
浏览文件 @
9f893ee9
...
...
@@ -138,7 +138,7 @@
<dependency>
<groupId>
com.pica.cloud.account
</groupId>
<artifactId>
pica-cloud-account-common
</artifactId>
<version>
1.0.1.
6
</version>
<version>
1.0.1.
7
</version>
</dependency>
<dependency>
...
...
@@ -251,7 +251,8 @@
<repositories>
<repository>
<id>
nexus
</id>
<url>
http://192.168.141.133:8082/repository/maven-public/
</url>
<!-- <url>http://192.168.141.133:8082/repository/maven-public/</url>-->
<url>
http://nexus.picahealth.com:8082/repository/maven-public/
</url>
<releases>
<enabled>
true
</enabled>
<updatePolicy>
never
</updatePolicy>
...
...
@@ -266,7 +267,8 @@
<pluginRepositories>
<pluginRepository>
<id>
nexus
</id>
<url>
http://192.168.141.133:8082/repository/maven-public/
</url>
<!-- <url>http://192.168.141.133:8082/repository/maven-public/</url>-->
<url>
http://nexus.picahealth.com:8082/repository/maven-public/
</url>
<releases>
<enabled>
true
</enabled>
<updatePolicy>
never
</updatePolicy>
...
...
server/src/main/java/com/pica/cloud/account/account/server/controller/ShopUserController.java
0 → 100644
浏览文件 @
9f893ee9
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
controller
;
import
com.pica.cloud.account.account.common.req.circle.CircleAcctInitReq
;
import
com.pica.cloud.account.account.common.req.shop.ShopAcctInitReq
;
import
com.pica.cloud.account.account.server.service.CircleAccountService
;
import
com.pica.cloud.foundation.entity.PicaResponse
;
import
com.pica.cloud.foundation.service.starter.interceptor.EnabledLoginValidate
;
import
io.swagger.annotations.Api
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
@Api
(
description
=
""
)
@RestController
@RequestMapping
(
"/shop"
)
public
class
ShopUserController
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
ShopUserController
.
class
);
@Autowired
private
CircleAccountService
circleAccountService
;
@PostMapping
(
"/acct"
)
@EnabledLoginValidate
public
PicaResponse
<
List
<
Integer
>>
shopUserInit
(
@RequestBody
ShopAcctInitReq
shopAcctInitReq
)
{
return
PicaResponse
.
toResponse
(
circleAccountService
.
createShopAccount
(
shopAcctInitReq
));
}
}
server/src/main/java/com/pica/cloud/account/account/server/mapper/LogLoginMapper.java
浏览文件 @
9f893ee9
...
...
@@ -3,6 +3,8 @@ package com.pica.cloud.account.account.server.mapper;
import
com.pica.cloud.account.account.server.entity.LogLoginEntity
;
import
java.util.List
;
public
interface
LogLoginMapper
{
int
deleteByPrimaryKey
(
Integer
id
);
...
...
@@ -16,4 +18,6 @@ public interface LogLoginMapper {
int
updateByPrimaryKeySelective
(
LogLoginEntity
record
);
int
updateByPrimaryKey
(
LogLoginEntity
record
);
List
<
String
>
selectTokenByAcctId
(
Integer
id
);
}
\ No newline at end of file
server/src/main/java/com/pica/cloud/account/account/server/service/CircleAccountService.java
浏览文件 @
9f893ee9
...
...
@@ -2,6 +2,7 @@ package com.pica.cloud.account.account.server.service;
import
com.pica.cloud.account.account.common.req.circle.CircleAcctInitReq
;
import
com.pica.cloud.account.account.common.req.shop.ShopAcctInitReq
;
import
com.pica.cloud.account.account.common.req.circle.DiyAcctInitReq
;
import
com.pica.cloud.account.account.server.entity.Account
;
import
com.pica.cloud.account.account.server.entity.AccountInfoEntity
;
...
...
@@ -21,4 +22,6 @@ public interface CircleAccountService {
//批量创建用户- 手机号,姓名
List
<
Integer
>
createDiyAccount
(
DiyAcctInitReq
diyAcctInitReq
);
Map
<
String
,
Integer
>
createShopAccount
(
ShopAcctInitReq
shopAcctInitReq
);
}
server/src/main/java/com/pica/cloud/account/account/server/service/RegisterService.java
浏览文件 @
9f893ee9
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
;
import
com.pica.cloud.account.account.common.req.OCINRequest
;
import
com.pica.cloud.account.account.server.entity.LoginResult
;
import
com.pica.cloud.account.account.server.entity.QueryMobileEntity
;
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
{
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/impl/CircleAccountServiceImpl.java
浏览文件 @
9f893ee9
...
...
@@ -3,6 +3,8 @@ package com.pica.cloud.account.account.server.service.impl;
import
com.alibaba.fastjson.JSONObject
;
import
com.pica.cloud.account.account.common.req.circle.CircleAcctInit
;
import
com.pica.cloud.account.account.common.req.circle.CircleAcctInitReq
;
import
com.pica.cloud.account.account.common.req.shop.ShopAcctInit
;
import
com.pica.cloud.account.account.common.req.shop.ShopAcctInitReq
;
import
com.pica.cloud.account.account.common.req.circle.DiyAcctInit
;
import
com.pica.cloud.account.account.common.req.circle.DiyAcctInitReq
;
import
com.pica.cloud.account.account.server.entity.Account
;
...
...
@@ -19,7 +21,9 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -98,4 +102,39 @@ public class CircleAccountServiceImpl implements CircleAccountService {
return
savedIds
;
}
@Override
public
Map
<
String
,
Integer
>
createShopAccount
(
ShopAcctInitReq
shopAcctInitReq
)
{
Map
<
String
,
Integer
>
rtnMap
=
new
HashMap
();
logger
.
info
(
"createShopAccount:{}"
,
JSONObject
.
toJSONString
(
shopAcctInitReq
));
List
<
ShopAcctInit
>
shopAcctInits
=
shopAcctInitReq
.
getShopAcctInitList
();
// List<Integer> savedIds = new ArrayList<>();
try
{
for
(
ShopAcctInit
acct
:
shopAcctInits
){
String
encryMobile
=
EncryptUtils
.
encryptContent
(
acct
.
getMobile
(),
EncryptConstants
.
ENCRYPT_TYPE_MOBILE
);
Account
dbAcct
=
accountMapper
.
getByMobilePhone
(
encryMobile
);
//获取医生表账号信息
if
(
null
==
dbAcct
){
Account
account
=
new
Account
();
account
.
setName
(
acct
.
getUserName
());
account
.
setNickname
(
acct
.
getUserName
());
account
.
setMobilePhone
(
encryMobile
);
account
.
setRegisterSource
(
shopAcctInitReq
.
getRegisterSource
());
accountService
.
createAccount
(
account
,
AccountTypeEnum
.
PRODUCT_TYPE_DOCTOR
.
getCode
());
// savedIds.add(account.getId().intValue());
logger
.
info
(
"createShopAccount insert {}"
,
account
.
getId
().
intValue
());
rtnMap
.
put
(
acct
.
getMobile
(),
account
.
getId
().
intValue
());
}
else
{
// savedIds.add(dbAcct.getId().intValue());
logger
.
info
(
"createShopAccount exist {}"
,
dbAcct
.
getId
().
intValue
());
rtnMap
.
put
(
acct
.
getMobile
(),
dbAcct
.
getId
().
intValue
());
}
}
}
catch
(
Exception
e
){
logger
.
error
(
"createShopAccount error:{}"
,
e
.
getMessage
());
throw
e
;
}
return
rtnMap
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/service/impl/RegisterServiceImpl.java
浏览文件 @
9f893ee9
...
...
@@ -83,8 +83,9 @@ public class RegisterServiceImpl implements RegisterService {
//对注册接口做幂等性处理:注册成功,删除缓存,注册失败提示用户
String
nxKey
=
Constants
.
REPEAT_REGISTER_PREFIX
+
mobile
;
Long
resultNx
=
redisClient
.
setnx
(
nxKey
,
mobile
);
redisClient
.
expire
(
nxKey
,
2
);
if
(
resultNx
==
1
)
{
try
{
//
try {
String
mobileEncrypt
=
AESUtil
.
encryptV0
(
mobile
);
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
mobileEncrypt
);
if
(
accountInfoEntity
==
null
)
{
...
...
@@ -161,17 +162,17 @@ public class RegisterServiceImpl implements RegisterService {
throw
new
AccountException
(
AccountExceptionEnum
.
PICA_ALREADY_REGISTER
);
}
}
catch
(
Exception
e
)
{
//
} catch (Exception e) {
//向上抛出异常,让异常处理框架捕获到
logger
.
error
(
"registerException-"
+
e
.
getMessage
(),
e
);
intactUtil
.
sendIntact
(
batchNo
,
"register"
,
com
.
pica
.
cloud
.
foundation
.
completeness
.
contract
.
constants
.
CommonConstants
.
INTACT_CONTENT_LOG_STATUS_3
,
"注册失败"
);
//
logger.error("registerException-" + e.getMessage(), e);
//
intactUtil.sendIntact(batchNo,"register",com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3,"注册失败");
throw
new
AccountException
(
AccountExceptionEnum
.
PICA_REGISTER_FAIL
);
}
finally
{
//
throw new AccountException(AccountExceptionEnum.PICA_REGISTER_FAIL);
//
} finally {
//如果在注册过程中抛出异常,就删除redis中的注册标记
logger
.
info
(
"register-finally-del-nxKey"
);
redisClient
.
del
(
nxKey
);
}
//
logger.info("register-finally-del-nxKey");
//
redisClient.del(nxKey);
//
}
}
else
{
logger
.
info
(
"register-nxKey is exists"
);
intactUtil
.
sendIntact
(
batchNo
,
"register"
,
com
.
pica
.
cloud
.
foundation
.
completeness
.
contract
.
constants
.
CommonConstants
.
INTACT_CONTENT_LOG_STATUS_3
,
"该手机号已注册,请直接登录"
);
...
...
server/src/main/java/com/pica/cloud/account/account/server/util/TokenUtils.java
浏览文件 @
9f893ee9
...
...
@@ -5,19 +5,19 @@ import com.pica.cloud.account.account.server.entity.Account;
import
com.pica.cloud.account.account.server.entity.Doctor
;
import
com.pica.cloud.account.account.server.enums.SourceTypeEnum
;
import
com.pica.cloud.account.account.server.mapper.DoctorMapper
;
import
com.pica.cloud.account.account.server.mapper.LogLoginMapper
;
import
com.pica.cloud.foundation.redis.ICacheClient
;
import
com.pica.cloud.foundation.utils.utils.StringUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.text.SimpleDateFormat
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.*
;
/**
* Token工具类
...
...
@@ -32,6 +32,8 @@ public class TokenUtils {
@Autowired
private
DoctorMapper
doctorMapper
;
@Autowired
private
LogLoginMapper
logLoginMapper
;
/**
* 校验token的状态
*
...
...
@@ -80,8 +82,9 @@ public class TokenUtils {
return
false
;
}
try
{
cacheClient
.
set
(
key
,
value
,
expiredSeconds
);
cacheClient
.
set
(
value
+
"-"
+
sourceTypeRedis
,
key
,
expiredSeconds
);
cacheClient
.
expire
(
key
,
expiredSeconds
);
logger
.
info
(
"tokenContinueTime-{} key: {} value: {}"
,
id
,
key
,
value
);
cacheClient
.
expire
(
value
+
"-"
+
sourceTypeRedis
,
expiredSeconds
);
return
true
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"tokenContinueTime-Exception-{}"
+
e
.
getMessage
(),
e
);
...
...
@@ -109,7 +112,15 @@ public class TokenUtils {
String
oldToken
=
cacheClient
.
get
(
value
+
"-"
+
sourceType
);
if
(
StringUtils
.
isNotBlank
(
oldToken
))
{
Long
del
=
cacheClient
.
del
(
oldToken
);
logger
.
info
(
"num:---->"
+
del
);
logger
.
info
(
"oldToken: {} num: {}"
,
oldToken
,
del
);
}
// log_login 中查询出所有的token,并删除
if
(
"app"
.
equals
(
sourceType
))
{
List
<
String
>
tokenList
=
logLoginMapper
.
selectTokenByAcctId
(
account
.
getAcctId
());
if
(
StringUtil
.
isNotEmptyList
(
tokenList
))
{
delToken
(
tokenList
);
}
}
// 根据不同的产品线设置token有效期
int
expiredSeconds
=
24
*
60
*
60
;
...
...
@@ -120,6 +131,7 @@ public class TokenUtils {
String
Key
=
"token-"
+
newToken
;
//存储token对应的用户id,数据结构如:(token-FF9FCB0D93A642328A01C279701B7607:token-doctor-1)
cacheClient
.
set
(
Key
,
value
,
expiredSeconds
);
logger
.
info
(
"generateToken-{} key: {} value: {}"
,
account
.
getId
(),
Key
,
value
);
//存储不同终端对应的token,数据结构如:(token-doctor-12345678-app:token-FF9FCB0D93A642328A01C279701B7607)
//String sourceType = AccountUtils.getSourceType(registerSource);
cacheClient
.
set
(
value
+
"-"
+
sourceType
,
Key
,
expiredSeconds
);
...
...
@@ -173,4 +185,17 @@ public class TokenUtils {
}
return
newToken
;
}
@Async
public
void
delToken
(
List
<
String
>
tokenList
)
{
for
(
int
i
=
0
;
i
<
tokenList
.
size
();
i
++)
{
String
tokenTmp
=
"token-"
+
tokenList
.
get
(
i
);
if
(
StringUtils
.
isNotBlank
(
cacheClient
.
get
(
tokenTmp
)))
{
Long
del
=
cacheClient
.
del
(
tokenTmp
);
logger
.
info
(
"oldToken: {} num: {} i:{}"
,
tokenTmp
,
del
,
i
);
}
else
{
logger
.
info
(
"oldToken: {} 不存在 i:{}"
,
tokenTmp
,
i
);
}
}
}
}
server/src/main/resources/mybatis/LogLoginEntityMapper.xml
浏览文件 @
9f893ee9
...
...
@@ -202,4 +202,15 @@
delete_flag = #{deleteFlag,jdbcType=TINYINT}
where id = #{id,jdbcType=INTEGER}
</update>
<select
id=
"selectTokenByAcctId"
resultType=
"java.lang.String"
parameterType=
"java.lang.Integer"
>
select
token
from log_login
where acct_id = #{id,jdbcType=INTEGER}
and delete_flag = 1
and source_type in (1,2)
and login_type in (1,2,3,5,6,7)
and create_time > date_add(create_time, interval -3 month)
</select>
</mapper>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录