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
提交
7870244a
提交
7870244a
编写于
9月 22, 2020
作者:
Peijun.zhao
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev-0922' into 'release'
Dev 0922 reviewCoder:于蛟 See merge request
!51
上级
936040a3
e42b6a5d
流水线
#30359
已失败 于阶段
in 1 second
变更
13
流水线
1
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
261 行增加
和
7 行删除
+261
-7
pom.xml
client/pom.xml
+1
-1
AccountInfoClient.java
.../pica/cloud/account/account/client/AccountInfoClient.java
+4
-0
AccountInfoController.java
...ount/account/server/controller/AccountInfoController.java
+24
-1
LoginController.java
...ud/account/account/server/controller/LoginController.java
+44
-5
AccountWeChatInfoMapper.java
...ccount/account/server/mapper/AccountWeChatInfoMapper.java
+4
-0
DoctorMapper.java
...ica/cloud/account/account/server/mapper/DoctorMapper.java
+5
-0
WechatInfoDto.java
...ica/cloud/account/account/server/model/WechatInfoDto.java
+35
-0
LoginService.java
...ca/cloud/account/account/server/service/LoginService.java
+2
-0
WechatService.java
...a/cloud/account/account/server/service/WechatService.java
+15
-0
LoginServiceImpl.java
...account/account/server/service/impl/LoginServiceImpl.java
+25
-0
WechatServiceImpl.java
...ccount/account/server/service/impl/WechatServiceImpl.java
+71
-0
AccountWeChatInfoEntityMapper.xml
.../main/resources/mybatis/AccountWeChatInfoEntityMapper.xml
+12
-0
DoctorMapper.xml
server/src/main/resources/mybatis/DoctorMapper.xml
+19
-0
未找到文件。
client/pom.xml
浏览文件 @
7870244a
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
<groupId>
com.pica.cloud.account
</groupId>
<groupId>
com.pica.cloud.account
</groupId>
<artifactId>
pica-cloud-account-client
</artifactId>
<artifactId>
pica-cloud-account-client
</artifactId>
<version>
1.0.
3.8
</version>
<version>
1.0.
4.0
</version>
<name>
pica-cloud-account-client
</name>
<name>
pica-cloud-account-client
</name>
<packaging>
jar
</packaging>
<packaging>
jar
</packaging>
...
...
client/src/main/java/com/pica/cloud/account/account/client/AccountInfoClient.java
浏览文件 @
7870244a
...
@@ -6,6 +6,7 @@ import org.springframework.cloud.netflix.feign.FeignClient;
...
@@ -6,6 +6,7 @@ import org.springframework.cloud.netflix.feign.FeignClient;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author andong
* @author andong
...
@@ -25,4 +26,7 @@ public interface AccountInfoClient {
...
@@ -25,4 +26,7 @@ public interface AccountInfoClient {
@RequestHeader
(
value
=
"sourceType"
)
Integer
sourceType
,
@RequestHeader
(
value
=
"sourceType"
)
Integer
sourceType
,
@RequestParam
(
value
=
"seconds"
,
required
=
false
)
Integer
seconds
);
@RequestParam
(
value
=
"seconds"
,
required
=
false
)
Integer
seconds
);
@PostMapping
(
"/account/info/wechat/batch"
)
PicaResponse
<
Map
<
Integer
,
String
>>
getWechatInfoBatch
(
@RequestBody
List
<
Integer
>
docIds
);
}
}
server/src/main/java/com/pica/cloud/account/account/server/controller/AccountInfoController.java
浏览文件 @
7870244a
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
controller
;
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
controller
;
import
com.pica.cloud.account.account.common.req.AccountInfoReq
;
import
com.pica.cloud.account.account.common.req.AccountInfoReq
;
import
com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity
;
import
com.pica.cloud.account.account.server.service.AccountInfoService
;
import
com.pica.cloud.account.account.server.service.AccountInfoService
;
import
com.pica.cloud.account.account.server.service.WechatService
;
import
com.pica.cloud.foundation.entity.PicaResponse
;
import
com.pica.cloud.foundation.entity.PicaResponse
;
import
com.pica.cloud.foundation.service.starter.interceptor.EnabledLoginValidate
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.models.auth.In
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author andong
* @author andong
...
@@ -18,11 +23,14 @@ import java.util.List;
...
@@ -18,11 +23,14 @@ import java.util.List;
@Api
(
description
=
"账号信息"
)
@Api
(
description
=
"账号信息"
)
@RestController
@RestController
@RequestMapping
(
"/info"
)
@RequestMapping
(
"/info"
)
public
class
AccountInfoController
{
public
class
AccountInfoController
extends
AccountBaseController
{
@Autowired
@Autowired
private
AccountInfoService
accountInfoService
;
private
AccountInfoService
accountInfoService
;
@Autowired
private
WechatService
wechatService
;
@ApiOperation
(
"获取用户数量"
)
@ApiOperation
(
"获取用户数量"
)
@PostMapping
(
"/count"
)
@PostMapping
(
"/count"
)
public
PicaResponse
<
Integer
>
getCount
(
@RequestBody
AccountInfoReq
req
)
{
public
PicaResponse
<
Integer
>
getCount
(
@RequestBody
AccountInfoReq
req
)
{
...
@@ -43,4 +51,19 @@ public class AccountInfoController {
...
@@ -43,4 +51,19 @@ public class AccountInfoController {
return
PicaResponse
.
toResponse
(
accountInfoService
.
getDoctorIds
(
req
));
return
PicaResponse
.
toResponse
(
accountInfoService
.
getDoctorIds
(
req
));
}
}
@ApiOperation
(
"获取医生wechat信息"
)
@GetMapping
(
"/wechat"
)
@EnabledLoginValidate
public
PicaResponse
<
AccountWeChatInfoEntity
>
getWechatInfo
(
@RequestHeader
String
token
)
{
return
PicaResponse
.
toResponse
(
wechatService
.
getAccountWechatInfo
(
fetchPicaUser
()));
}
@ApiOperation
(
"批量获取医生wechat信息"
)
@PostMapping
(
"/wechat/batch"
)
public
PicaResponse
<
Map
<
Integer
,
String
>>
getWechatInfoBatch
(
@RequestBody
List
<
Integer
>
docIds
)
{
return
PicaResponse
.
toResponse
(
wechatService
.
getAccountWechatInfoBatch
(
docIds
));
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/controller/LoginController.java
浏览文件 @
7870244a
...
@@ -11,6 +11,7 @@ import com.pica.cloud.account.account.server.log.AccountLogEntityUtils;
...
@@ -11,6 +11,7 @@ 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.req.BaseRequest
;
import
com.pica.cloud.account.account.server.req.BaseRequest
;
import
com.pica.cloud.account.account.server.req.OneClickLoginReq
;
import
com.pica.cloud.account.account.server.req.OneClickLoginReq
;
import
com.pica.cloud.account.account.server.service.CaptchaService
;
import
com.pica.cloud.account.account.server.service.DoctorService
;
import
com.pica.cloud.account.account.server.service.DoctorService
;
import
com.pica.cloud.account.account.server.service.LoginService
;
import
com.pica.cloud.account.account.server.service.LoginService
;
import
com.pica.cloud.account.account.server.service.TokenService
;
import
com.pica.cloud.account.account.server.service.TokenService
;
...
@@ -18,11 +19,13 @@ import com.pica.cloud.account.account.server.util.AccountUtils;
...
@@ -18,11 +19,13 @@ 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.account.account.server.util.RSAUtil
;
import
com.pica.cloud.account.account.server.util.RSAUtil
;
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.entity.PicaWarnException
;
import
com.pica.cloud.foundation.entity.PicaWarnException
;
import
com.pica.cloud.foundation.redis.CacheClient
;
import
com.pica.cloud.foundation.redis.CacheClient
;
import
com.pica.cloud.foundation.redis.ICacheClient
;
import
com.pica.cloud.foundation.redis.ICacheClient
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.catalina.servlet4preview.http.HttpServletRequest
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -58,8 +61,11 @@ public class LoginController extends AccountBaseController {
...
@@ -58,8 +61,11 @@ public class LoginController extends AccountBaseController {
private
String
cache_prifix
=
"cache-"
;
private
String
cache_prifix
=
"cache-"
;
@Autowired
private
CaptchaService
captchaService
;
/**
/**
* 密码登录接口(app、H5)
* 密码登录接口(app、H5
、web
)
*
*
* @param authCodeReq
* @param authCodeReq
* @return
* @return
...
@@ -199,12 +205,14 @@ public class LoginController extends AccountBaseController {
...
@@ -199,12 +205,14 @@ public class LoginController extends AccountBaseController {
cacheClient
.
expire
(
cache_prifix
+
request
.
getWeChatCode
(),
60
);
cacheClient
.
expire
(
cache_prifix
+
request
.
getWeChatCode
(),
60
);
long
doctorId
=
super
.
getDoctorIdByToken
();
long
doctorId
=
super
.
getDoctorIdByToken
();
logger
.
info
(
"bindWeChat doctorId:{}"
,
doctorId
);
logger
.
info
(
"bindWeChat doctorId:{}"
,
doctorId
);
String
nickname
=
loginService
.
bindWeChat
(
doctorId
,
request
);
// String nickname = loginService.bindWeChat(doctorId, request);
Map
<
String
,
String
>
map
=
new
HashMap
();
Map
<
String
,
String
>
rtnMap
=
loginService
.
bindWeChatMap
(
doctorId
,
request
);
map
.
put
(
"nickname"
,
nickname
);
// Map<String, String> map = new HashMap();
// map.put("nickname", rtnMap.get("nickname"));
//成功以后释放锁
//成功以后释放锁
cacheClient
.
del
(
cache_prifix
+
request
.
getWeChatCode
());
cacheClient
.
del
(
cache_prifix
+
request
.
getWeChatCode
());
return
PicaResponse
.
toResponse
(
m
ap
);
return
PicaResponse
.
toResponse
(
rtnM
ap
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
cacheClient
.
del
(
cache_prifix
+
request
.
getWeChatCode
());
cacheClient
.
del
(
cache_prifix
+
request
.
getWeChatCode
());
logger
.
error
(
"bindWeChat-"
+
e
.
getMessage
(),
e
);
logger
.
error
(
"bindWeChat-"
+
e
.
getMessage
(),
e
);
...
@@ -363,4 +371,35 @@ public class LoginController extends AccountBaseController {
...
@@ -363,4 +371,35 @@ public class LoginController extends AccountBaseController {
LoginResult
oneClickLoginResultVo
=
loginService
.
oneClickLogin
(
req
);
LoginResult
oneClickLoginResultVo
=
loginService
.
oneClickLogin
(
req
);
return
PicaResponse
.
toResponse
(
oneClickLoginResultVo
);
return
PicaResponse
.
toResponse
(
oneClickLoginResultVo
);
}
}
@ApiOperation
(
value
=
"web登录-图形码"
)
@PostMapping
(
"/web/captchaPwd"
)
public
PicaResponse
<
LoginResult
>
webCaptchaPwd
(
@RequestBody
EncryptEntity
entity
,
HttpServletRequest
req
)
throws
Exception
{
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
logger
.
info
(
"webCaptchaPwd:{}"
,
JSONObject
.
toJSONString
(
request
));
String
captchaToken
=
request
.
getCaptchaToken
();
String
captchaAnswer
=
request
.
getCaptchaAnswer
();
//校验图形验证码
if
(!
captchaService
.
acknowledge
(
captchaToken
,
captchaAnswer
))
{
return
PicaResponse
.
toResponse
(
null
,
PicaResultCode
.
PARAM_IS_INVALID
.
code
(),
"图形验证码错误"
);
}
//原登录逻辑
request
.
setProductType
(
super
.
getProductType
());
Integer
sourceType
=
super
.
getSourceType
();
request
.
setSourceType
(
sourceType
==
null
?
0
:
sourceType
);
request
.
setLoginIp
(
super
.
getIpAddr
());
request
.
setUserTokenTourist
(
super
.
getUserTokenTourist
());
AccountUtils
.
checkMobilePhone
(
request
.
getMobile
());
AccountUtils
.
checkPassword
(
request
.
getPassword
());
LoginResult
login
=
loginService
.
login
(
request
);
if
(
SourceTypeEnum
.
SAAS
.
getCode
().
equals
(
sourceType
))
{
login
.
setDoctorId
(
""
);
}
else
{
login
.
setUserId
(
null
);
}
return
PicaResponse
.
toResponse
(
login
);
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/mapper/AccountWeChatInfoMapper.java
浏览文件 @
7870244a
...
@@ -3,6 +3,8 @@ package com.pica.cloud.account.account.server.mapper;
...
@@ -3,6 +3,8 @@ package com.pica.cloud.account.account.server.mapper;
import
com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity
;
import
com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Component
@Component
public
interface
AccountWeChatInfoMapper
{
public
interface
AccountWeChatInfoMapper
{
...
@@ -25,5 +27,7 @@ public interface AccountWeChatInfoMapper {
...
@@ -25,5 +27,7 @@ public interface AccountWeChatInfoMapper {
int
updateByPrimaryKey
(
AccountWeChatInfoEntity
record
);
int
updateByPrimaryKey
(
AccountWeChatInfoEntity
record
);
List
<
AccountWeChatInfoEntity
>
selectBatchByUnionId
(
List
<
String
>
list
);
}
}
\ No newline at end of file
server/src/main/java/com/pica/cloud/account/account/server/mapper/DoctorMapper.java
浏览文件 @
7870244a
...
@@ -4,6 +4,7 @@ package com.pica.cloud.account.account.server.mapper;
...
@@ -4,6 +4,7 @@ package com.pica.cloud.account.account.server.mapper;
import
com.pica.cloud.account.account.server.entity.Doctor
;
import
com.pica.cloud.account.account.server.entity.Doctor
;
import
com.pica.cloud.account.account.server.entity.DoctorEntity
;
import
com.pica.cloud.account.account.server.entity.DoctorEntity
;
import
com.pica.cloud.account.account.server.entity.PICAPDoctor
;
import
com.pica.cloud.account.account.server.entity.PICAPDoctor
;
import
com.pica.cloud.account.account.server.model.WechatInfoDto
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -112,5 +113,9 @@ public interface DoctorMapper {
...
@@ -112,5 +113,9 @@ public interface DoctorMapper {
*/
*/
Integer
updateDoctorModifyRecord
();
Integer
updateDoctorModifyRecord
();
String
getUnionIdByDoctorId
(
@Param
(
"doctorId"
)
Integer
doctorId
);
List
<
WechatInfoDto
>
getBatchUnionIdByDoctorId
(
List
<
Integer
>
list
);
}
}
\ No newline at end of file
server/src/main/java/com/pica/cloud/account/account/server/model/WechatInfoDto.java
0 → 100644
浏览文件 @
7870244a
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
model
;
public
class
WechatInfoDto
{
private
Integer
doctorId
;
private
String
unionId
;
private
String
openId
;
public
Integer
getDoctorId
()
{
return
doctorId
;
}
public
void
setDoctorId
(
Integer
doctorId
)
{
this
.
doctorId
=
doctorId
;
}
public
String
getOpenId
()
{
return
openId
;
}
public
void
setOpenId
(
String
openId
)
{
this
.
openId
=
openId
;
}
public
String
getUnionId
()
{
return
unionId
;
}
public
void
setUnionId
(
String
unionId
)
{
this
.
unionId
=
unionId
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/service/LoginService.java
浏览文件 @
7870244a
...
@@ -59,6 +59,8 @@ public interface LoginService {
...
@@ -59,6 +59,8 @@ public interface LoginService {
*/
*/
String
bindWeChat
(
long
doctorId
,
BaseRequest
request
);
String
bindWeChat
(
long
doctorId
,
BaseRequest
request
);
Map
bindWeChatMap
(
long
doctorId
,
BaseRequest
request
);
PICAPDoctor
queryDoctor
(
long
doctorId
);
PICAPDoctor
queryDoctor
(
long
doctorId
);
/**
/**
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/WechatService.java
0 → 100644
浏览文件 @
7870244a
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
;
import
com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity
;
import
com.pica.cloud.foundation.utils.entity.PicaUser
;
import
java.util.List
;
import
java.util.Map
;
public
interface
WechatService
{
AccountWeChatInfoEntity
getAccountWechatInfo
(
PicaUser
user
);
Map
<
Integer
,
String
>
getAccountWechatInfoBatch
(
List
<
Integer
>
docIds
);
}
server/src/main/java/com/pica/cloud/account/account/server/service/impl/LoginServiceImpl.java
浏览文件 @
7870244a
...
@@ -523,6 +523,31 @@ public class LoginServiceImpl implements LoginService {
...
@@ -523,6 +523,31 @@ public class LoginServiceImpl implements LoginService {
return
weChatUserInfoEntity
.
getNickname
();
return
weChatUserInfoEntity
.
getNickname
();
}
}
@Override
@Transactional
public
Map
bindWeChatMap
(
long
doctorId
,
BaseRequest
request
)
{
WeChatEntity
weChatEntity
=
WeChatUtils
.
getAuthorizationInfo
(
appId
,
appSecret
,
request
.
getWeChatCode
());
Map
map
=
new
HashMap
();
map
.
put
(
"access_token"
,
weChatEntity
.
getAccess_token
());
map
.
put
(
"openid"
,
weChatEntity
.
getOpenid
());
Map
weChatUserInfo
=
WeChatUtils
.
getWeChatUserInfo
(
map
,
weChatURL
);
WeChatUserInfoEntity
weChatUserInfoEntity
=
WeChatUtils
.
mergeWechatUserInfo
(
weChatUserInfo
,
weChatEntity
.
getOpenid
());
String
unionId
=
weChatUserInfoEntity
.
getUnionid
();
AccountWeChatInfoEntity
entity
=
accountWeChatInfoMapper
.
selectByUnionId
(
unionId
);
if
(
entity
==
null
)
{
processWeChatInfoUser
(
weChatUserInfoEntity
,
request
.
getWeChatLoginType
());
}
else
{
updateWechatInfoUser
(
entity
,
weChatUserInfoEntity
);
}
Integer
acctId
=
doctorInfoMapper
.
getAcctIdByDoctorId
(
doctorId
);
processAccountUnion
(
acctId
,
unionId
,
request
.
getProductType
());
Map
<
String
,
String
>
rtnMap
=
new
HashMap
();
rtnMap
.
put
(
"openId"
,
weChatEntity
.
getOpenid
());
rtnMap
.
put
(
"nickname"
,
weChatUserInfoEntity
.
getNickname
());
return
rtnMap
;
}
/**
/**
* 把unionId存储到联合登录表中
* 把unionId存储到联合登录表中
*
*
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/impl/WechatServiceImpl.java
0 → 100644
浏览文件 @
7870244a
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
.
impl
;
import
com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity
;
import
com.pica.cloud.account.account.server.mapper.AccountWeChatInfoMapper
;
import
com.pica.cloud.account.account.server.mapper.DoctorMapper
;
import
com.pica.cloud.account.account.server.model.WechatInfoDto
;
import
com.pica.cloud.account.account.server.service.WechatService
;
import
com.pica.cloud.foundation.utils.entity.PicaUser
;
import
com.pica.cloud.foundation.utils.utils.StringUtil
;
import
io.swagger.models.auth.In
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Service
public
class
WechatServiceImpl
implements
WechatService
{
@Autowired
private
DoctorMapper
doctorMapper
;
@Autowired
private
AccountWeChatInfoMapper
weChatInfoMapper
;
@Override
public
AccountWeChatInfoEntity
getAccountWechatInfo
(
PicaUser
user
)
{
String
unionId
=
doctorMapper
.
getUnionIdByDoctorId
(
user
.
getId
());
if
(
StringUtil
.
isEmpty
(
unionId
)){
return
new
AccountWeChatInfoEntity
();
}
else
{
return
weChatInfoMapper
.
selectByUnionId
(
unionId
);
}
}
@Override
public
Map
<
Integer
,
String
>
getAccountWechatInfoBatch
(
List
<
Integer
>
docIds
)
{
if
(
CollectionUtils
.
isEmpty
(
docIds
)){
return
null
;
}
Map
<
Integer
,
String
>
doctorOpenMap
=
new
HashMap
<>();
List
<
WechatInfoDto
>
wechatInfoDtos
=
doctorMapper
.
getBatchUnionIdByDoctorId
(
docIds
);
Map
<
String
,
Integer
>
unionMap
=
new
HashMap
<>();
for
(
WechatInfoDto
dto
:
wechatInfoDtos
){
unionMap
.
put
(
dto
.
getUnionId
(),
dto
.
getDoctorId
());
}
List
<
String
>
unionIds
=
wechatInfoDtos
.
stream
().
map
(
obj
->
obj
.
getUnionId
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
unionIds
)){
List
<
AccountWeChatInfoEntity
>
wechatList
=
weChatInfoMapper
.
selectBatchByUnionId
(
unionIds
);
for
(
AccountWeChatInfoEntity
entity
:
wechatList
){
if
(
unionMap
.
containsKey
(
entity
.
getUnionid
())){
doctorOpenMap
.
put
(
unionMap
.
get
(
entity
.
getUnionid
()),
entity
.
getOpenid
());
}
}
}
for
(
Integer
docId
:
docIds
){
if
(!
doctorOpenMap
.
containsKey
(
docId
)){
doctorOpenMap
.
put
(
docId
,
null
);
}
}
return
doctorOpenMap
;
}
}
server/src/main/resources/mybatis/AccountWeChatInfoEntityMapper.xml
浏览文件 @
7870244a
...
@@ -48,6 +48,18 @@
...
@@ -48,6 +48,18 @@
limit 1
limit 1
</select>
</select>
<select
id=
"selectBatchByUnionId"
resultMap=
"BaseResultMap"
parameterType=
"java.util.List"
>
select
<include
refid=
"Base_Column_List"
/>
from account_wechat_info
where unionid in
<foreach
collection=
"list"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
and delete_flag = 1
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Integer"
>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Integer"
>
delete from account_wechat_info
delete from account_wechat_info
where id = #{id,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
...
...
server/src/main/resources/mybatis/DoctorMapper.xml
浏览文件 @
7870244a
...
@@ -1063,5 +1063,24 @@
...
@@ -1063,5 +1063,24 @@
</foreach>
</foreach>
</update>
</update>
<select
id=
"getUnionIdByDoctorId"
resultType=
"java.lang.String"
parameterType=
"java.lang.Integer"
>
select u.union_id from p_doctor d
join account_info a on d.acct_id = a.id
join account_union u on a.id = u.acct_id
where d.id = #{doctorId} and u.union_type = 1
and d.delete_flag = 1 and a.delete_flag = 1 and u.delete_flag = 1
</select>
<select
id=
"getBatchUnionIdByDoctorId"
resultType=
"com.pica.cloud.account.account.server.model.WechatInfoDto"
parameterType=
"java.util.List"
>
select u.union_id as unionId, d.id as doctorId from p_doctor d
join account_info a on d.acct_id = a.id
join account_union u on a.id = u.acct_id
where d.id in
<foreach
collection=
"list"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
and u.union_type = 1
and d.delete_flag = 1 and a.delete_flag = 1 and u.delete_flag = 1
</select>
</mapper>
</mapper>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录