Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
haoban3.0
haoban-manage3.0
Commits
2a723934
Commit
2a723934
authored
Jan 04, 2022
by
墨竹
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:bug修改
parent
068d8aae
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
59 additions
and
51 deletions
+59
-51
ExternalClerkRelatedApiServiceImpl.java
.../service/out/impl/ExternalClerkRelatedApiServiceImpl.java
+59
-51
No files found.
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/ExternalClerkRelatedApiServiceImpl.java
View file @
2a723934
...
...
@@ -12,7 +12,10 @@ import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum;
import
com.gic.haoban.base.api.common.BasePageInfo
;
import
com.gic.haoban.base.api.common.ServiceResponse
;
import
com.gic.haoban.common.utils.PageUtil
;
import
com.gic.haoban.manage.api.dto.*
;
import
com.gic.haoban.manage.api.dto.AlertMessageDTO
;
import
com.gic.haoban.manage.api.dto.ClerkStaffWxUserDTO
;
import
com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO
;
import
com.gic.haoban.manage.api.dto.ExternalClerkRelatedShortInfoDTO
;
import
com.gic.haoban.manage.api.enums.AlertTypeEnum
;
import
com.gic.haoban.manage.api.service.CheckQywxSettingApiService
;
import
com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService
;
...
...
@@ -320,10 +323,10 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
String
lockKey
=
"updateNewExternalUserid_"
+
wxEnterpriseId
;
if
(
RedisUtil
.
isLocked
(
lockKey
))
{
log
.
info
(
"redis锁,lockKey:{}"
,
lockKey
);
log
.
info
(
"redis锁,lockKey:{}"
,
lockKey
);
return
false
;
}
RedisUtil
.
lock
(
lockKey
,
1L
,
TimeUnit
.
DAYS
,
0L
);
RedisUtil
.
lock
(
lockKey
,
1L
,
TimeUnit
.
DAYS
,
0L
);
try
{
updateNewExUserId
(
tabHaobanWxEnterprise
.
getWxEnterpriseId
(),
tabHaobanWxEnterprise
.
getCorpid
());
log
.
info
(
"企业外部联系人id end,wxEnterpriseId:{}"
,
wxEnterpriseId
);
...
...
@@ -339,55 +342,60 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
@Override
public
void
updateNewExternalUseridMq
(
String
res
)
{
log
.
info
(
"更新新的外部联系人id mq,start"
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
res
);
String
corpid
=
jsonObject
.
getString
(
"corpid"
);
String
wxEnterpriseId
=
jsonObject
.
getString
(
"wxEnterpriseId"
);
Boolean
isLastPage
=
jsonObject
.
getBoolean
(
"isLastPage"
);
log
.
info
(
"更新新的外部联系人id mq,corpid:{},wxEnterpriseId:{}"
,
corpid
,
wxEnterpriseId
);
String
externalUserIdLists
=
jsonObject
.
getString
(
"externalUserIdList"
);
List
<
String
>
externalUserIdList
=
JSON
.
parseArray
(
externalUserIdLists
,
String
.
class
);
//查询企微接口,更新新的external_user_id
List
<
QywxNewExternalUseridDTO
>
newExternalUseridList
=
qywxUserApiService
.
getNewExternalUseridByList
(
corpid
,
config
.
getWxSuiteid
(),
externalUserIdList
);
if
(
CollectionUtils
.
isEmpty
(
newExternalUseridList
))
{
log
.
info
(
"更新新的外部联系人id,查询企业微信接口报错"
);
wxEnterriseMapper
.
updateExternalFlagById
(
3
,
wxEnterpriseId
);
return
;
}
List
<
TabExternalUseridLog
>
tabExternalUseridLogList
=
new
ArrayList
<>();
for
(
QywxNewExternalUseridDTO
qywxNewExternalUseridDTO
:
newExternalUseridList
)
{
String
new_external_userid
=
qywxNewExternalUseridDTO
.
getNew_external_userid
();
String
external_userid
=
qywxNewExternalUseridDTO
.
getExternal_userid
();
//好友关系表
tabHaobanExternalClerkRelatedMapper
.
updateExternalUserIdByOldExternalUserId
(
new_external_userid
,
external_userid
,
wxEnterpriseId
);
//会员关系表
memberUnionidRelatedMapper
.
updateExternalUserIdByOldExternalUserId
(
new_external_userid
,
external_userid
,
wxEnterpriseId
);
TabExternalUseridLog
tabExternalUseridLog
=
new
TabExternalUseridLog
();
tabExternalUseridLog
.
setId
(
UniqueIdUtils
.
uniqueLong
());
tabExternalUseridLog
.
setOldExternalUserId
(
external_userid
);
tabExternalUseridLog
.
setNewExternalUserId
(
new_external_userid
);
tabExternalUseridLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
tabExternalUseridLog
.
setCreatorId
(
"admin"
);
tabExternalUseridLog
.
setCreatorName
(
"系统管理员"
);
tabExternalUseridLogList
.
add
(
tabExternalUseridLog
);
}
externalUseridLogMapper
.
insertBatch
(
tabExternalUseridLogList
);
//最后一页
if
(
isLastPage
)
{
//serviceCorpid 默认为:达摩网络
boolean
flag
=
qywxUserApiService
.
finishExternalUseridMigration
(
corpid
,
config
.
getCorpid
());
log
.
info
(
"更新新的外部联系人id最后一页,设置迁移完成:flag:{}"
,
flag
);
if
(
flag
)
{
//成功
wxEnterriseMapper
.
updateExternalFlagById
(
1
,
wxEnterpriseId
);
}
else
{
//失败
try
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
res
);
String
corpid
=
jsonObject
.
getString
(
"corpid"
);
String
wxEnterpriseId
=
jsonObject
.
getString
(
"wxEnterpriseId"
);
Boolean
isLastPage
=
jsonObject
.
getBoolean
(
"isLastPage"
);
log
.
info
(
"更新新的外部联系人id mq,corpid:{},wxEnterpriseId:{}"
,
corpid
,
wxEnterpriseId
);
String
externalUserIdLists
=
jsonObject
.
getString
(
"externalUserIdList"
);
List
<
String
>
externalUserIdList
=
JSON
.
parseArray
(
externalUserIdLists
,
String
.
class
);
//查询企微接口,更新新的external_user_id
List
<
QywxNewExternalUseridDTO
>
newExternalUseridList
=
qywxUserApiService
.
getNewExternalUseridByList
(
corpid
,
config
.
getWxSuiteid
(),
externalUserIdList
);
if
(
CollectionUtils
.
isEmpty
(
newExternalUseridList
))
{
log
.
info
(
"更新新的外部联系人id,查询企业微信接口报错"
);
wxEnterriseMapper
.
updateExternalFlagById
(
3
,
wxEnterpriseId
);
externalUseridLogMapper
.
updateStatusFlagByWxEnterpriseId
(
0
,
wxEnterpriseId
);
//回退老的
externalUseridLogMapper
.
updateOldExternalUserId
(
wxEnterpriseId
);
return
;
}
List
<
TabExternalUseridLog
>
tabExternalUseridLogList
=
new
ArrayList
<>();
for
(
QywxNewExternalUseridDTO
qywxNewExternalUseridDTO
:
newExternalUseridList
)
{
String
new_external_userid
=
qywxNewExternalUseridDTO
.
getNew_external_userid
();
String
external_userid
=
qywxNewExternalUseridDTO
.
getExternal_userid
();
//好友关系表
tabHaobanExternalClerkRelatedMapper
.
updateExternalUserIdByOldExternalUserId
(
new_external_userid
,
external_userid
,
wxEnterpriseId
);
//会员关系表
memberUnionidRelatedMapper
.
updateExternalUserIdByOldExternalUserId
(
new_external_userid
,
external_userid
,
wxEnterpriseId
);
TabExternalUseridLog
tabExternalUseridLog
=
new
TabExternalUseridLog
();
tabExternalUseridLog
.
setId
(
UniqueIdUtils
.
uniqueLong
());
tabExternalUseridLog
.
setOldExternalUserId
(
external_userid
);
tabExternalUseridLog
.
setNewExternalUserId
(
new_external_userid
);
tabExternalUseridLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
tabExternalUseridLog
.
setCreatorId
(
"admin"
);
tabExternalUseridLog
.
setCreatorName
(
"系统管理员"
);
tabExternalUseridLogList
.
add
(
tabExternalUseridLog
);
}
externalUseridLogMapper
.
insertBatch
(
tabExternalUseridLogList
);
//最后一页
if
(
isLastPage
)
{
//serviceCorpid 默认为:达摩网络
boolean
flag
=
qywxUserApiService
.
finishExternalUseridMigration
(
corpid
,
config
.
getCorpid
());
log
.
info
(
"更新新的外部联系人id最后一页,设置迁移完成:flag:{}"
,
flag
);
if
(
flag
)
{
//成功
wxEnterriseMapper
.
updateExternalFlagById
(
1
,
wxEnterpriseId
);
}
else
{
//失败
wxEnterriseMapper
.
updateExternalFlagById
(
3
,
wxEnterpriseId
);
externalUseridLogMapper
.
updateStatusFlagByWxEnterpriseId
(
0
,
wxEnterpriseId
);
//回退老的
externalUseridLogMapper
.
updateOldExternalUserId
(
wxEnterpriseId
);
}
}
log
.
info
(
"更新新的外部联系人id mq,end"
);
}
catch
(
Exception
e
)
{
log
.
info
(
"更新新的外部联系人id mq报错:{},res:{}"
,
e
.
getMessage
(),
res
,
e
);
}
log
.
info
(
"更新新的外部联系人id mq,end"
);
}
/**
...
...
@@ -400,7 +408,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
*/
private
void
updateNewExUserId
(
String
wxEnterpriseId
,
String
corpid
)
{
wxEnterriseMapper
.
updateExternalFlagById
(
2
,
wxEnterpriseId
);
messageAlert
(
wxEnterpriseId
,
"更新新的外部联系人id"
);
messageAlert
(
wxEnterpriseId
,
"更新新的外部联系人id"
);
// 限流器
RRateLimiter
rateLimiter
=
RedisUtil
.
getRedisClient
().
getRateLimiter
(
"haoban:manage3:updateNewExUserId:limit"
);
// 每1秒产生5个令牌
...
...
@@ -462,7 +470,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
* @param wxEnterpriseId wx企业标识
* @param titleSub 子标题
*/
private
void
messageAlert
(
String
wxEnterpriseId
,
String
titleSub
)
{
private
void
messageAlert
(
String
wxEnterpriseId
,
String
titleSub
)
{
ProviderLocalTag
providerLocalTag
=
ProviderLocalTag
.
tag
.
get
();
String
traceId
=
providerLocalTag
.
traceId
;
AlertMessageDTO
messageDTO
=
new
AlertMessageDTO
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment