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
0eaf2942
Commit
0eaf2942
authored
Sep 13, 2022
by
徐高华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
外部联系人修复查询
parent
6660f2bb
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
240 additions
and
12 deletions
+240
-12
HaobanTimerApiService.java
.../gic/haoban/manage/api/service/HaobanTimerApiService.java
+11
-0
MemberUnionidRelatedMapper.java
...manage/service/dao/mapper/MemberUnionidRelatedMapper.java
+3
-0
TabHaobanExternalClerkRelatedMapper.java
...rvice/dao/mapper/TabHaobanExternalClerkRelatedMapper.java
+3
-0
ExternalClerkRelatedService.java
...n/manage/service/service/ExternalClerkRelatedService.java
+2
-0
WxEnterpriseService.java
...ic/haoban/manage/service/service/WxEnterpriseService.java
+0
-2
ExternalClerkRelatedServiceImpl.java
...service/service/impl/ExternalClerkRelatedServiceImpl.java
+190
-10
HaobanTimerApiServiceImpl.java
...e/service/service/out/impl/HaobanTimerApiServiceImpl.java
+12
-0
MemberUnionidRelatedMapper.xml
.../src/main/resources/mapper/MemberUnionidRelatedMapper.xml
+12
-0
TabHaobanExternalClerkRelatedMapper.xml
.../resources/mapper/TabHaobanExternalClerkRelatedMapper.xml
+7
-0
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/HaobanTimerApiService.java
View file @
0eaf2942
...
...
@@ -23,4 +23,15 @@ public interface HaobanTimerApiService {
*/
public
ServiceResponse
<
Void
>
deleteTempWxHm
(
String
params
)
;
/**
*
* @Title: repairExternalUserId
* @Description: 检查修复外部联系人ID
* @author xugh
* @param wxEnterpriseId
* @return
* @throws
*/
public
ServiceResponse
<
Void
>
repairExternalUserId
(
String
wxEnterpriseId
)
;
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/MemberUnionidRelatedMapper.java
View file @
0eaf2942
...
...
@@ -62,4 +62,6 @@ public interface MemberUnionidRelatedMapper {
*/
List
<
MemberUnionidRelated
>
listByWxEnterpriseId
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
);
List
<
MemberUnionidRelated
>
listByWxEnterpriseIdAndExternalUserId
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"list"
)
List
<
String
>
externalUserIdList
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/TabHaobanExternalClerkRelatedMapper.java
View file @
0eaf2942
...
...
@@ -355,4 +355,6 @@ public interface TabHaobanExternalClerkRelatedMapper {
int
countByMemberId
(
@Param
(
"memberId"
)
String
memberId
,
@Param
(
"enterpriseId"
)
String
enterpriseId
);
List
<
TabHaobanExternalClerkRelated
>
listPageByWxenterpriseId
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"startItem"
)
int
startItem
,
@Param
(
"pageSize"
)
int
pageSize
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/ExternalClerkRelatedService.java
View file @
0eaf2942
...
...
@@ -71,4 +71,6 @@ public interface ExternalClerkRelatedService {
*/
String
checkAndUpdateMemberByUnonId
(
String
enterpriseId
,
String
memberId
,
String
unionId
);
void
repairExternalUserId
(
String
wxEnterpriseId
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/WxEnterpriseService.java
View file @
0eaf2942
...
...
@@ -6,8 +6,6 @@ import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
public
interface
WxEnterpriseService
{
String
add
(
WxEnterpriseDTO
wxDTO
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/ExternalClerkRelatedServiceImpl.java
View file @
0eaf2942
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
impl
;
import
static
org
.
slf4j
.
LoggerFactory
.
getLogger
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.dubbo.entity.ProviderLocalTag
;
import
com.gic.haoban.common.utils.DingUtils
;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.common.utils.StringUtil
;
import
com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO
;
import
com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO
;
import
com.gic.haoban.manage.api.dto.SecretSettingDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.qdto.hm.WxUserAddLogQDTO
;
import
com.gic.haoban.manage.api.enums.SecretTypeEnum
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper
;
import
com.gic.haoban.manage.service.dao.mapper.StaffMapper
;
import
com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper
;
import
com.gic.haoban.manage.service.dao.mapper.TabHaobanRepairExternalUserMapper
;
import
com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper
;
import
com.gic.haoban.manage.service.entity.MemberUnionidRelated
;
import
com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated
;
import
com.gic.haoban.manage.service.entity.TabHaobanRepairExternalUser
;
import
com.gic.haoban.manage.service.entity.TabHaobanStaff
;
import
com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation
;
import
com.gic.haoban.manage.service.service.ExternalClerkRelatedService
;
import
com.gic.haoban.manage.service.service.SecretSettingService
;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.haoban.manage.service.service.hm.WxUserAddLogService
;
import
com.gic.member.api.dto.MemberDTO
;
import
com.gic.member.api.service.MemberApiService
;
import
com.gic.member.api.service.MemberService
;
import
com.gic.mq.sdk.util.ProviderLocalTagUtil
;
import
com.gic.redis.data.util.RedisUtil
;
import
com.gic.search.engine.api.dto.ESResponseQuerySingle
;
import
com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO
;
import
com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
static
org
.
slf4j
.
LoggerFactory
.
getLogger
;
import
com.gic.wechat.api.dto.qywx.QywxNewExternalUseridDTO
;
import
com.gic.wechat.api.service.qywx.QywxUserApiService
;
@Service
public
class
ExternalClerkRelatedServiceImpl
implements
ExternalClerkRelatedService
{
...
...
@@ -39,7 +66,6 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
@Autowired
private
TabHaobanExternalClerkRelatedMapper
mapper
;
@Autowired
private
ESDataDynamicOperationApiService
esDataDynamicOperationApiService
;
@Autowired
...
...
@@ -52,6 +78,18 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
private
TabHaobanStaffClerkRelationMapper
staffClerkRelationMapper
;
@Autowired
private
WxUserAddLogService
wxUserAddLogService
;
@Autowired
private
WxEnterpriseService
wxEnterpriseService
;
@Autowired
private
MemberUnionidRelatedMapper
memberUnionidRelatedMapper
;
@Autowired
private
QywxUserApiService
qywxUserApiService
;
@Autowired
private
Config
config
;
@Autowired
private
TabHaobanRepairExternalUserMapper
tabHaobanRepairExternalUserMapper
;
@Autowired
private
SecretSettingService
secretSettingService
;
@Override
public
void
insert
(
TabHaobanExternalClerkRelated
related
)
{
...
...
@@ -229,4 +267,146 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
}
return
null
;
}
@Override
public
void
repairExternalUserId
(
String
wxEnterpriseIds
)
{
DingUtils
.
send
(
"外部联系人修复消息,企业="
+
wxEnterpriseIds
+
",tranceid="
+
ProviderLocalTag
.
tag
.
get
(),
false
);
if
(
StringUtils
.
isEmpty
(
wxEnterpriseIds
))
{
return
;
}
Object
cache
=
RedisUtil
.
getCache
(
"repairExternalUserId"
)
;
String
[]
arr
=
wxEnterpriseIds
.
split
(
","
)
;
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++)
{
String
wxEnterpriseId
=
arr
[
i
]
;
if
(
StringUtils
.
isEmpty
(
wxEnterpriseId
))
{
continue
;
}
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
)
;
if
(
null
==
qwDTO
)
{
logger
.
info
(
"外部联系人检查,企业不存在,wxEnterpriseId={}"
,
wxEnterpriseId
);
continue
;
}
SecretSettingDTO
secret
=
this
.
secretSettingService
.
getSecretSetting
(
wxEnterpriseId
,
SecretTypeEnum
.
CUSTOMIZED_APP
.
getVal
())
;
int
pageSize
=
800
;
int
pageNum
=
0
;
while
(
true
)
{
List
<
TabHaobanExternalClerkRelated
>
list
=
this
.
mapper
.
listPageByWxenterpriseId
(
wxEnterpriseId
,
pageNum
*
pageSize
,
pageSize
)
;
if
(
CollectionUtils
.
isEmpty
(
list
))
{
break
;
}
pageNum
++;
Set
<
String
>
externalUserIdSet
=
list
.
stream
().
map
(
dto
->
dto
.
getExternalUserId
()).
collect
(
Collectors
.
toSet
())
;
List
<
String
>
externalUserIdList
=
new
ArrayList
<>();
externalUserIdList
.
addAll
(
externalUserIdSet
)
;
List
<
MemberUnionidRelated
>
unionidlist
=
this
.
memberUnionidRelatedMapper
.
listByWxEnterpriseIdAndExternalUserId
(
wxEnterpriseId
,
externalUserIdList
)
;
Map
<
String
,
String
>
map
=
unionidlist
.
stream
().
collect
(
Collectors
.
toMap
(
MemberUnionidRelated:
:
getExternalUserid
,
MemberUnionidRelated:
:
getSelfExternalUserid
,(
k1
,
k2
)->
k1
))
;
logger
.
info
(
"外部联系人检查,第{}次,好友数={},unionid表数={}"
,
pageNum
,
externalUserIdList
.
size
(),
unionidlist
.
size
());
List
<
String
>
delList
=
new
ArrayList
<>()
;
Set
<
String
>
checkSet
=
unionidlist
.
stream
().
map
(
dto
->
dto
.
getExternalUserid
()).
collect
(
Collectors
.
toSet
())
;
List
<
String
>
checkList
=
new
ArrayList
<>();
checkList
.
addAll
(
checkSet
)
;
for
(
String
item
:
externalUserIdList
)
{
if
(!
checkList
.
contains
(
item
))
{
delList
.
add
(
item
)
;
}
}
logger
.
info
(
"外部联系人检查,unionid表不存在记录的数量={},待检查数={}"
,
delList
.
size
(),
checkList
.
size
());
List
<
String
>
notExistQwList
=
new
ArrayList
<>();
List
<
TabHaobanRepairExternalUser
>
errorList
=
new
ArrayList
<>()
;
if
(
CollectionUtils
.
isNotEmpty
(
checkList
))
{
List
<
String
>
qwList
=
new
ArrayList
<>();
List
<
QywxNewExternalUseridDTO
>
newExternalUseridList
=
null
;
if
(
null
!=
cache
)
{
newExternalUseridList
=
this
.
qywxUserApiService
.
getNewExternalUseridByList
(
qwDTO
.
getThirdCorpid
(),
config
.
getWxSuiteid
(),
checkList
)
;
}
else
{
newExternalUseridList
=
this
.
qywxUserApiService
.
getSelfNewExternalUseridByList
(
qwDTO
.
getDkCorpid
(),
secret
.
getSecretVal
(),
checkList
)
;
}
if
(
null
!=
newExternalUseridList
)
{
logger
.
info
(
"外部联系人检查,查询企微数={},返回数={}"
,
checkList
.
size
(),
newExternalUseridList
.
size
());
for
(
QywxNewExternalUseridDTO
qywxNewExternalUseridDTO
:
newExternalUseridList
)
{
String
new_external_userid
=
qywxNewExternalUseridDTO
.
getNew_external_userid
();
String
external_userid
=
qywxNewExternalUseridDTO
.
getExternal_userid
();
qwList
.
add
(
external_userid
)
;
if
(
new_external_userid
.
equals
(
external_userid
))
{
continue
;
}
else
{
logger
.
info
(
"外部联系人检查,数据异常={}"
,
new_external_userid
,
external_userid
);
TabHaobanRepairExternalUser
user
=
new
TabHaobanRepairExternalUser
();
user
.
setId
(
UniqueIdUtils
.
uniqueLong
());
user
.
setUserId
(
external_userid
);
user
.
setWxEnterpriseId
(
wxEnterpriseId
);
user
.
setStatusFlag
(
111
);
user
.
setRemark
(
new_external_userid
);
errorList
.
add
(
user
)
;
}
}
if
(
checkList
.
size
()!=
newExternalUseridList
.
size
())
{
for
(
String
item
:
checkList
)
{
if
(!
qwList
.
contains
(
item
))
{
notExistQwList
.
add
(
item
)
;
}
}
}
}
else
{
logger
.
info
(
"外部联系人检查,调用企业异常"
);
}
// 通过外部联系人查询不到
if
(
CollectionUtils
.
isNotEmpty
(
notExistQwList
))
{
// 需要用自建的查询的
List
<
String
>
selfList
=
new
ArrayList
<>();
List
<
TabHaobanRepairExternalUser
>
addList
=
new
ArrayList
<>();
for
(
String
item
:
notExistQwList
)
{
TabHaobanRepairExternalUser
user
=
new
TabHaobanRepairExternalUser
();
user
.
setId
(
UniqueIdUtils
.
uniqueLong
());
user
.
setUserId
(
item
);
if
(
StringUtils
.
isNotBlank
(
map
.
get
(
item
))
&&
!
map
.
get
(
item
).
equals
(
item
))
{
selfList
.
add
(
map
.
get
(
item
))
;
}
user
.
setSelfUserId
(
map
.
get
(
item
));
user
.
setWxEnterpriseId
(
wxEnterpriseId
);
user
.
setStatusFlag
(
11
);
user
.
setRemark
(
"企微查询不到"
);
addList
.
add
(
user
)
;
}
if
(
CollectionUtils
.
isNotEmpty
(
selfList
))
{
newExternalUseridList
=
null
;
if
(
null
!=
cache
)
{
newExternalUseridList
=
this
.
qywxUserApiService
.
getNewExternalUseridByList
(
qwDTO
.
getThirdCorpid
(),
config
.
getWxSuiteid
(),
selfList
)
;
}
else
{
newExternalUseridList
=
this
.
qywxUserApiService
.
getSelfNewExternalUseridByList
(
qwDTO
.
getDkCorpid
(),
secret
.
getSecretVal
(),
selfList
)
;
}
Map
<
String
,
String
>
selfMap
=
new
HashMap
<>()
;
if
(
null
!=
newExternalUseridList
)
{
selfMap
=
newExternalUseridList
.
stream
().
collect
(
Collectors
.
toMap
(
QywxNewExternalUseridDTO:
:
getExternal_userid
,
QywxNewExternalUseridDTO:
:
getNew_external_userid
,(
k1
,
k2
)->
k1
))
;
}
for
(
TabHaobanRepairExternalUser
item
:
addList
)
{
item
.
setNewUserId
(
selfMap
.
get
(
item
.
getSelfUserId
()));
}
}
this
.
tabHaobanRepairExternalUserMapper
.
batchInsert
(
addList
)
;
}
// unionid表不存在的记录
if
(
CollectionUtils
.
isNotEmpty
(
delList
))
{
List
<
TabHaobanRepairExternalUser
>
addList
=
new
ArrayList
<>();
for
(
String
item
:
delList
)
{
TabHaobanRepairExternalUser
user
=
new
TabHaobanRepairExternalUser
();
user
.
setId
(
UniqueIdUtils
.
uniqueLong
());
user
.
setUserId
(
item
);
user
.
setWxEnterpriseId
(
wxEnterpriseId
);
user
.
setStatusFlag
(
1
);
user
.
setRemark
(
"unionid不存在记录"
);
addList
.
add
(
user
)
;
}
this
.
tabHaobanRepairExternalUserMapper
.
batchInsert
(
addList
)
;
}
// 错误的ID
if
(
CollectionUtils
.
isNotEmpty
(
errorList
))
{
this
.
tabHaobanRepairExternalUserMapper
.
batchInsert
(
errorList
)
;
}
}
}
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/HaobanTimerApiServiceImpl.java
View file @
0eaf2942
...
...
@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.service.HaobanTimerApiService
;
import
com.gic.haoban.manage.service.service.ExternalClerkRelatedService
;
import
com.gic.haoban.manage.service.service.hm.HmQrcodeTempService
;
@Service
(
"haobanTimerApiService"
)
...
...
@@ -13,10 +14,21 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
@Autowired
private
HmQrcodeTempService
hmQrcodeTempService
;
@Autowired
private
ExternalClerkRelatedService
externalClerkRelatedService
;
@Override
public
ServiceResponse
<
Void
>
deleteTempWxHm
(
String
params
)
{
this
.
hmQrcodeTempService
.
deleteForTimer
();
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Void
>
repairExternalUserId
(
String
wxEnterpriseId
)
{
this
.
externalClerkRelatedService
.
repairExternalUserId
(
wxEnterpriseId
)
;
return
ServiceResponse
.
success
();
}
}
haoban-manage3-service/src/main/resources/mapper/MemberUnionidRelatedMapper.xml
View file @
0eaf2942
...
...
@@ -186,4 +186,15 @@
and status_flag = 1
</select>
<select
id=
"listByWxEnterpriseIdAndExternalUserId"
resultMap=
"BaseResultMap"
>
select
external_userid, self_external_userid from tab_haoban_member_unionid_related
where wx_enterprise_id = #{wxEnterpriseId}
and external_userid in
<foreach
collection=
"list"
item=
"id"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{id,jdbcType=VARCHAR}
</foreach>
and status_flag = 1
</select>
</mapper>
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/TabHaobanExternalClerkRelatedMapper.xml
View file @
0eaf2942
...
...
@@ -661,4 +661,10 @@
and status_flag = 1
</select>
<select
id=
"listPageByWxenterpriseId"
resultMap=
"BaseResultMap"
>
select DISTINCT(external_user_id) from tab_haoban_external_clerk_related where wx_enterprise_id = #{wxEnterpriseId} and status_flag = 1
limit ${startItem},${pageSize}
</select>
</mapper>
\ No newline at end of file
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