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
QianQiXiang
haoban-manage3.0
Commits
3ef55f37
Commit
3ef55f37
authored
Jun 25, 2021
by
fudahua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
企业微信标签同步fix
parent
8394deee
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
486 additions
and
37 deletions
+486
-37
PreDealTypeEnum.java
...java/com/gic/haoban/manage/api/enums/PreDealTypeEnum.java
+3
-1
SyncTaskStatusEnum.java
...a/com/gic/haoban/manage/api/enums/SyncTaskStatusEnum.java
+3
-1
SyncTaskTypeEnum.java
...ava/com/gic/haoban/manage/api/enums/SyncTaskTypeEnum.java
+2
-1
DealSyncOperationApiService.java
...aoban/manage/api/service/DealSyncOperationApiService.java
+20
-1
ExternalClerkRelatedApiService.java
...an/manage/api/service/ExternalClerkRelatedApiService.java
+8
-0
QywxTagApiService.java
.../com/gic/haoban/manage/api/service/QywxTagApiService.java
+9
-0
WxEnterpriseRelatedApiService.java
...ban/manage/api/service/WxEnterpriseRelatedApiService.java
+12
-5
pom.xml
haoban-manage3-service/pom.xml
+8
-2
TabHaobanExternalClerkRelatedMapper.java
...rvice/dao/mapper/TabHaobanExternalClerkRelatedMapper.java
+10
-0
QywxTagSyncLogService.java
.../haoban/manage/service/service/QywxTagSyncLogService.java
+40
-0
QywxTagSyncLogServiceImpl.java
...anage/service/service/impl/QywxTagSyncLogServiceImpl.java
+26
-0
DealSyncOperationApiServiceImpl.java
...ice/service/out/impl/DealSyncOperationApiServiceImpl.java
+57
-16
ExternalClerkRelatedApiServiceImpl.java
.../service/out/impl/ExternalClerkRelatedApiServiceImpl.java
+7
-0
QywxTagApiServiceImpl.java
...anage/service/service/out/impl/QywxTagApiServiceImpl.java
+16
-2
WxEnterpriseRelatedApiServiceImpl.java
...e/service/out/impl/WxEnterpriseRelatedApiServiceImpl.java
+9
-0
FriendMemberTagSyncOperation.java
...manage/service/task/tag/FriendMemberTagSyncOperation.java
+223
-0
FriendTagSyncOperation.java
...aoban/manage/service/task/tag/FriendTagSyncOperation.java
+0
-0
TabHaobanExternalClerkRelatedMapper.xml
.../resources/mapper/TabHaobanExternalClerkRelatedMapper.xml
+10
-0
StaffController.java
...com/gic/haoban/manage/web/controller/StaffController.java
+13
-4
StoreController.java
...com/gic/haoban/manage/web/controller/StoreController.java
+10
-4
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/PreDealTypeEnum.java
View file @
3ef55f37
...
@@ -11,7 +11,9 @@ public enum PreDealTypeEnum {
...
@@ -11,7 +11,9 @@ public enum PreDealTypeEnum {
friend_clerk
(
6
),
friend_clerk
(
6
),
friend
(
8
),
friend
(
8
),
self_friend
(
7
),
self_friend
(
7
),
friend_merge
(
9
);
friend_merge
(
9
),
tag
(
10
),
tag_member
(
11
);
private
int
val
;
private
int
val
;
PreDealTypeEnum
(
int
val
)
{
PreDealTypeEnum
(
int
val
)
{
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/SyncTaskStatusEnum.java
View file @
3ef55f37
...
@@ -14,7 +14,9 @@ public enum SyncTaskStatusEnum {
...
@@ -14,7 +14,9 @@ public enum SyncTaskStatusEnum {
friend_clerk_sync
(
7
),
friend_clerk_sync
(
7
),
self_friend_sync
(
8
),
self_friend_sync
(
8
),
friend_sync
(
9
),
friend_sync
(
9
),
merge_friend_sync
(
10
);
merge_friend_sync
(
10
),
tag
(
10
),
member_tag
(
10
);
private
int
val
;
private
int
val
;
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/SyncTaskTypeEnum.java
View file @
3ef55f37
...
@@ -6,7 +6,8 @@ package com.gic.haoban.manage.api.enums;
...
@@ -6,7 +6,8 @@ package com.gic.haoban.manage.api.enums;
public
enum
SyncTaskTypeEnum
{
public
enum
SyncTaskTypeEnum
{
QYWX_CONTACT
(
1
,
"后门同步企业微信架构"
),
QYWX_CONTACT
(
1
,
"后门同步企业微信架构"
),
FRIEND_SINGLE
(
4
,
"单个成员刷新好友"
),
FRIEND_SINGLE
(
4
,
"单个成员刷新好友"
),
FRIEND_STORE
(
5
,
"刷新门店好友"
),;
FRIEND_STORE
(
5
,
"刷新门店好友"
),
MEMBER_TAG
(
6
,
"企业微信标签刷新"
);
private
int
type
;
private
int
type
;
private
String
taskName
;
private
String
taskName
;
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/DealSyncOperationApiService.java
View file @
3ef55f37
...
@@ -162,7 +162,8 @@ public interface DealSyncOperationApiService {
...
@@ -162,7 +162,8 @@ public interface DealSyncOperationApiService {
* 定时
* 定时
* @param res
* @param res
*/
*/
public
void
quartWxFriendClerk
(
String
res
);
@Deprecated
public
void
quartWxFriendClerk
(
String
res
);
void
test
(
String
wxEnterpriseId
,
String
taskId
);
void
test
(
String
wxEnterpriseId
,
String
taskId
);
...
@@ -174,4 +175,22 @@ public interface DealSyncOperationApiService {
...
@@ -174,4 +175,22 @@ public interface DealSyncOperationApiService {
* @return true 刷新中 false 没刷新或刷新完成
* @return true 刷新中 false 没刷新或刷新完成
*/
*/
public
boolean
getFreshFriendSyncTask
(
String
wxEnterpriseId
,
String
staffId
);
public
boolean
getFreshFriendSyncTask
(
String
wxEnterpriseId
,
String
staffId
);
/**
* 创建标签任务
*
* @param wxEnterpriseId
* @return
*/
public
String
createTagTask
(
String
wxEnterpriseId
,
String
addUser
,
String
memberTagId
);
/**
* 执行任务
*
* @param wxEnterpriseId
* @param enterpriseId
* @param tagIds
* @param taskId
*/
public
void
dealTagTask
(
String
wxEnterpriseId
,
String
enterpriseId
,
List
<
String
>
tagIds
,
String
taskId
);
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/ExternalClerkRelatedApiService.java
View file @
3ef55f37
...
@@ -97,6 +97,14 @@ public interface ExternalClerkRelatedApiService {
...
@@ -97,6 +97,14 @@ public interface ExternalClerkRelatedApiService {
*/
*/
List
<
ExternalClerkRelatedDTO
>
listByIds
(
String
wxEnterpriseId
,
List
<
String
>
ids
);
List
<
ExternalClerkRelatedDTO
>
listByIds
(
String
wxEnterpriseId
,
List
<
String
>
ids
);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page
<
String
>
pageExternalByEnterpriseId
(
String
wxEnterpriseId
,
String
enterpriseId
,
BasePageInfo
pageInfo
);
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/QywxTagApiService.java
View file @
3ef55f37
...
@@ -65,4 +65,13 @@ public interface QywxTagApiService {
...
@@ -65,4 +65,13 @@ public interface QywxTagApiService {
*/
*/
public
void
editQywxTag
(
QywxTagCallbackDTO
callbackDTO
);
public
void
editQywxTag
(
QywxTagCallbackDTO
callbackDTO
);
/**
* 同步好友标签到企业微信
*
* @param wxEnterpriseId
* @param enterpriseId
* @param externalUserId
*/
public
void
syncFriendTagToQywxByExternalUserId
(
String
wxEnterpriseId
,
String
enterpriseId
,
String
externalUserId
,
String
tagItemId
);
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/WxEnterpriseRelatedApiService.java
View file @
3ef55f37
...
@@ -135,10 +135,17 @@ public interface WxEnterpriseRelatedApiService {
...
@@ -135,10 +135,17 @@ public interface WxEnterpriseRelatedApiService {
public
boolean
initHistoryEnterprise
(
String
wxEnterpriseId
);
public
boolean
initHistoryEnterprise
(
String
wxEnterpriseId
);
/**
/**
* 初始化历史门店数据
* 初始化历史门店数据
*
*
* @return
* @return
*/
*/
public
boolean
setClerkEditFlag
(
String
wxEnterprieseRelatedId
,
int
clerkEditFlag
);
public
boolean
setClerkEditFlag
(
String
wxEnterprieseRelatedId
,
int
clerkEditFlag
);
/**
* 判断企业是否是总部 true是 false 不是
*
* @return
*/
public
boolean
checkIsGeneral
(
String
wxEnterpriseId
,
String
enterpriseId
);
}
}
haoban-manage3-service/pom.xml
View file @
3ef55f37
...
@@ -145,7 +145,7 @@
...
@@ -145,7 +145,7 @@
<dependency>
<dependency>
<groupId>
com.gic
</groupId>
<groupId>
com.gic
</groupId>
<artifactId>
gic-member-api
</artifactId>
<artifactId>
gic-member-api
</artifactId>
<version>
3.0-SNAPSHOT
</version>
<version>
${gic-member-api}
</version>
<scope>
compile
</scope>
<scope>
compile
</scope>
</dependency>
</dependency>
...
@@ -181,7 +181,13 @@
...
@@ -181,7 +181,13 @@
<artifactId>
sql-check-sdk
</artifactId>
<artifactId>
sql-check-sdk
</artifactId>
<version>
${sql-check-sdk}
</version>
<version>
${sql-check-sdk}
</version>
</dependency>
</dependency>
</dependencies>
<dependency>
<groupId>
com.gic
</groupId>
<artifactId>
gic-member-tag-api
</artifactId>
<version>
${gic-member-tag-api}
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
<build>
<finalName>
haoban-manage3-service
</finalName>
<finalName>
haoban-manage3-service
</finalName>
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/TabHaobanExternalClerkRelatedMapper.java
View file @
3ef55f37
...
@@ -148,4 +148,13 @@ public interface TabHaobanExternalClerkRelatedMapper {
...
@@ -148,4 +148,13 @@ public interface TabHaobanExternalClerkRelatedMapper {
*/
*/
List
<
TabHaobanExternalClerkRelated
>
listByIds
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
List
<
TabHaobanExternalClerkRelated
>
listByIds
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"ids"
)
List
<
String
>
ids
);
@Param
(
"ids"
)
List
<
String
>
ids
);
/**
* 根据企业id 查询列表
*
* @param wxEnterpriseId
* @return
*/
List
<
String
>
listMemberIdByEnterpriseId
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"enterpriseId"
)
String
enterpriseId
);
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/QywxTagSyncLogService.java
0 → 100644
View file @
3ef55f37
package
com
.
gic
.
haoban
.
manage
.
service
.
service
;
import
com.gic.api.base.commons.Page
;
import
com.gic.haoban.manage.api.dto.QywxTagInfoDTO
;
import
com.gic.haoban.manage.api.dto.QywxTagItemDTO
;
import
com.gic.haoban.manage.service.entity.TabQywxSyncLog
;
import
com.gic.haoban.manage.service.entity.TabQywxTag
;
import
com.gic.haoban.manage.service.entity.TabQywxTagItem
;
import
com.gic.haoban.manage.service.entity.TabQywxTagRelation
;
import
com.gic.member.tag.api.base.BasePageInfo
;
import
com.gic.wechat.api.dto.qywx.QywxTagGroupDTO
;
import
org.apache.commons.lang3.tuple.Pair
;
import
java.util.List
;
/**
* Created 2021/6/21.
*
* @author hua
*/
public
interface
QywxTagSyncLogService
{
/**
* 分页查询日志
*
* @param wxEnterpriseId
* @param enterpriseId
* @param search
* @param pageInfo
* @return
*/
public
Page
<
TabQywxSyncLog
>
pageLog
(
String
wxEnterpriseId
,
String
enterpriseId
,
String
search
,
BasePageInfo
pageInfo
);
/**
* 保存日志
*
* @param tabQywxSyncLog
* @return
*/
public
boolean
saveSyncLog
(
TabQywxSyncLog
tabQywxSyncLog
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/QywxTagSyncLogServiceImpl.java
0 → 100644
View file @
3ef55f37
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
impl
;
import
com.gic.api.base.commons.Page
;
import
com.gic.haoban.manage.service.entity.TabQywxSyncLog
;
import
com.gic.haoban.manage.service.service.QywxTagSyncLogService
;
import
com.gic.member.tag.api.base.BasePageInfo
;
import
org.springframework.stereotype.Service
;
/**
* Created 2021/6/23.
*
* @author hua
*/
@Service
public
class
QywxTagSyncLogServiceImpl
implements
QywxTagSyncLogService
{
@Override
public
Page
<
TabQywxSyncLog
>
pageLog
(
String
wxEnterpriseId
,
String
enterpriseId
,
String
search
,
BasePageInfo
pageInfo
)
{
return
null
;
}
@Override
public
boolean
saveSyncLog
(
TabQywxSyncLog
tabQywxSyncLog
)
{
return
false
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/DealSyncOperationApiServiceImpl.java
View file @
3ef55f37
...
@@ -110,6 +110,8 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
...
@@ -110,6 +110,8 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
private
static
final
String
FRIEND_LOCK
=
"haoban_fresh_wx_friend_lock_"
;
private
static
final
String
FRIEND_LOCK
=
"haoban_fresh_wx_friend_lock_"
;
private
static
final
String
FRIEND_TAG_LOCK
=
"haoban_sync_tag_lock_"
;
@Override
@Override
public
void
departmentDealMq
(
String
params
)
{
public
void
departmentDealMq
(
String
params
)
{
logger
.
info
(
"mq处理中:{}"
,
params
);
logger
.
info
(
"mq处理中:{}"
,
params
);
...
@@ -156,7 +158,14 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
...
@@ -156,7 +158,14 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
friend_merge
.
getVal
())){
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
friend_merge
.
getVal
())){
operationMap
.
get
(
"friendMergeSyncOperation"
).
dealSingleByMq
(
dealParamMqDTO
,
dataPre
);
operationMap
.
get
(
"friendMergeSyncOperation"
).
dealSingleByMq
(
dealParamMqDTO
,
dataPre
);
logger
.
info
(
"好友合并处理:{}"
,
params
);
logger
.
info
(
"好友合并处理:{}"
,
params
);
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
tag
.
getVal
()))
{
operationMap
.
get
(
"friendTagSyncOperation"
).
dealSingleByMq
(
dealParamMqDTO
,
dataPre
);
logger
.
info
(
"会员标签处理:{}"
,
params
);
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
tag_member
.
getVal
()))
{
operationMap
.
get
(
"friendMemberTagSyncOperation"
).
dealSingleByMq
(
dealParamMqDTO
,
dataPre
);
logger
.
info
(
"会员标签处理标签项:{}"
,
params
);
}
else
{
}
else
{
logger
.
info
(
"不是正常数据:{}"
,
params
);
logger
.
info
(
"不是正常数据:{}"
,
params
);
}
}
...
@@ -386,21 +395,6 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
...
@@ -386,21 +395,6 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
private
void
dealDepartmentToMq
(
String
taskId
,
Set
<
String
>
dealList
,
SyncTaskStatusEnum
syncTaskStatusEnum
)
{
private
void
dealDepartmentToMq
(
String
taskId
,
Set
<
String
>
dealList
,
SyncTaskStatusEnum
syncTaskStatusEnum
)
{
//预处理分组任务
//预处理分组任务
syncTaskService
.
updateTaskStatus
(
taskId
,
syncTaskStatusEnum
.
getVal
());
syncTaskService
.
updateTaskStatus
(
taskId
,
syncTaskStatusEnum
.
getVal
());
//
// dealList.forEach(relationId -> {
// DealParamMqDTO dealParamMqDTO = new DealParamMqDTO();
// dealParamMqDTO.setTaskId(taskId);
// dealParamMqDTO.setData(relationId);
// dealParamMqDTO.setType(syncTaskStatusEnum.getVal());
// GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
// try {
// clientInstance.sendMessage("departmentSyncDealMq", JSONObject.toJSONString(dealParamMqDTO));
// } catch (Exception e) {
// logger.info("发送失败:{},{}", taskId, relationId);
// e.printStackTrace();
// }
// });
List
<
String
>
listRet
=
dealList
.
stream
().
map
(
relationId
->
{
List
<
String
>
listRet
=
dealList
.
stream
().
map
(
relationId
->
{
DealParamMqDTO
dealParamMqDTO
=
new
DealParamMqDTO
();
DealParamMqDTO
dealParamMqDTO
=
new
DealParamMqDTO
();
dealParamMqDTO
.
setTaskId
(
taskId
);
dealParamMqDTO
.
setTaskId
(
taskId
);
...
@@ -879,4 +873,51 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
...
@@ -879,4 +873,51 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
}
}
return
true
;
return
true
;
}
}
@Override
public
String
createTagTask
(
String
wxEnterpriseId
,
String
addUser
,
String
memberTagId
)
{
String
lockKey
=
FRIEND_TAG_LOCK
+
"_lock_"
+
memberTagId
;
String
staffLockKey
=
FRIEND_TAG_LOCK
+
memberTagId
;
RedisUtil
.
lock
(
lockKey
,
2L
);
Object
cache
=
RedisUtil
.
getCache
(
staffLockKey
);
if
(
null
!=
cache
)
{
RedisUtil
.
unlock
(
lockKey
);
return
null
;
}
TabHaobanSyncTask
tabHaobanSyncTask
=
new
TabHaobanSyncTask
();
tabHaobanSyncTask
.
setAddUser
(
addUser
);
tabHaobanSyncTask
.
setTaskName
(
SyncTaskTypeEnum
.
MEMBER_TAG
.
getTaskName
());
tabHaobanSyncTask
.
setTaskDesc
(
memberTagId
);
tabHaobanSyncTask
.
setWxEnterpriseId
(
wxEnterpriseId
);
tabHaobanSyncTask
.
setStatusFlag
(
SyncTaskStatusEnum
.
init
.
getVal
());
tabHaobanSyncTask
.
setTaskId
(
ToolUtil
.
randomUUID
());
tabHaobanSyncTask
.
setTaskType
(
SyncTaskTypeEnum
.
MEMBER_TAG
.
getType
());
syncTaskService
.
createTask
(
tabHaobanSyncTask
);
RedisUtil
.
setCache
(
staffLockKey
,
tabHaobanSyncTask
.
getTaskId
(),
1L
,
TimeUnit
.
HOURS
);
RedisUtil
.
unlock
(
lockKey
);
return
tabHaobanSyncTask
.
getTaskId
();
}
@Override
public
void
dealTagTask
(
String
wxEnterpriseId
,
String
enterpriseId
,
List
<
String
>
tagIds
,
String
taskId
)
{
TabHaobanSyncTask
syncTask
=
syncTaskService
.
getSyncTask
(
taskId
);
if
(
CollectionUtils
.
isEmpty
(
tagIds
))
{
syncTaskService
.
updateTaskStatus
(
taskId
,
SyncTaskStatusEnum
.
compute
.
getVal
());
return
;
}
List
<
TabHaobanPreDealLog
>
dealLogList
=
tagIds
.
stream
().
map
(
tagId
->
{
TabHaobanPreDealLog
dealLog
=
new
TabHaobanPreDealLog
();
dealLog
.
setDataId
(
tagId
);
dealLog
.
setpDataId
(
syncTask
.
getTaskDesc
());
dealLog
.
setDataType
(
PreDealTypeEnum
.
friend_clerk
.
getVal
());
dealLog
.
setStatusFlag
(
0
);
dealLog
.
setTaskId
(
taskId
);
dealLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
return
dealLog
;
}).
collect
(
Collectors
.
toList
());
preDealService
.
insert
(
dealLogList
);
Set
<
String
>
hashSet
=
dealLogList
.
stream
().
map
(
TabHaobanPreDealLog:
:
getDataId
).
collect
(
Collectors
.
toSet
());
dealDepartmentToMq
(
taskId
,
hashSet
,
SyncTaskStatusEnum
.
tag
);
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/ExternalClerkRelatedApiServiceImpl.java
View file @
3ef55f37
...
@@ -153,4 +153,11 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
...
@@ -153,4 +153,11 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
List
<
TabHaobanExternalClerkRelated
>
list
=
tabHaobanExternalClerkRelatedMapper
.
listByIds
(
wxEnterpriseId
,
ids
);
List
<
TabHaobanExternalClerkRelated
>
list
=
tabHaobanExternalClerkRelatedMapper
.
listByIds
(
wxEnterpriseId
,
ids
);
return
EntityUtil
.
changeEntityListNew
(
ExternalClerkRelatedDTO
.
class
,
list
);
return
EntityUtil
.
changeEntityListNew
(
ExternalClerkRelatedDTO
.
class
,
list
);
}
}
@Override
public
Page
<
String
>
pageExternalByEnterpriseId
(
String
wxEnterpriseId
,
String
enterpriseId
,
BasePageInfo
pageInfo
)
{
PageHelper
.
startPage
(
pageInfo
);
List
<
String
>
memberIDs
=
tabHaobanExternalClerkRelatedMapper
.
listMemberIdByEnterpriseId
(
wxEnterpriseId
,
enterpriseId
);
return
PageUtil
.
changePageHelperToCurrentPage
(
new
PageInfo
<>(
memberIDs
));
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/QywxTagApiServiceImpl.java
View file @
3ef55f37
...
@@ -5,6 +5,7 @@ import com.gic.commons.util.ToolUtil;
...
@@ -5,6 +5,7 @@ import com.gic.commons.util.ToolUtil;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.manage.api.dto.*
;
import
com.gic.haoban.manage.api.dto.*
;
import
com.gic.haoban.manage.api.enums.QywxTagRelationTypeEnum
;
import
com.gic.haoban.manage.api.enums.QywxTagRelationTypeEnum
;
import
com.gic.haoban.manage.api.service.DealSyncOperationApiService
;
import
com.gic.haoban.manage.api.service.QywxTagApiService
;
import
com.gic.haoban.manage.api.service.QywxTagApiService
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise
;
import
com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise
;
...
@@ -54,6 +55,9 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
...
@@ -54,6 +55,9 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
@Autowired
@Autowired
private
QywxTagService
qywxTagService
;
private
QywxTagService
qywxTagService
;
@Autowired
private
DealSyncOperationApiService
dealSyncOperationApiService
;
@Override
@Override
public
void
pullQywxTag
(
String
wxEnterpriseId
)
{
public
void
pullQywxTag
(
String
wxEnterpriseId
)
{
WxEnterpriseDTO
wxEnterpriseDTO
=
wxEnterpriseService
.
selectById
(
wxEnterpriseId
);
WxEnterpriseDTO
wxEnterpriseDTO
=
wxEnterpriseService
.
selectById
(
wxEnterpriseId
);
...
@@ -97,8 +101,13 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
...
@@ -97,8 +101,13 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
//保存关联关系
//保存关联关系
saveRelation
(
wxEnterpriseId
,
enterpriseId
,
infoDTO
,
items
,
savePair
);
saveRelation
(
wxEnterpriseId
,
enterpriseId
,
infoDTO
,
items
,
savePair
);
//todo 后续处理 比如同步会员标签等 操作标签项的会员同步过来
String
taskId
=
dealSyncOperationApiService
.
createTagTask
(
wxEnterpriseId
,
"-1"
,
infoDTO
.
getMemberTagId
());
if
(
null
==
taskId
)
{
logger
.
info
(
"标签不能重复执行"
);
throw
new
RuntimeException
(
"标签不能重复执行:"
+
infoDTO
.
getQywxGroupName
());
}
List
<
String
>
tagItemIds
=
items
.
stream
().
map
(
dto
->
dto
.
getQywxTagItemId
()).
collect
(
Collectors
.
toList
());
dealSyncOperationApiService
.
dealTagTask
(
wxEnterpriseId
,
enterpriseId
,
tagItemIds
,
taskId
);
}
}
/**
/**
...
@@ -421,4 +430,9 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
...
@@ -421,4 +430,9 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
}
}
}
}
@Override
public
void
syncFriendTagToQywxByExternalUserId
(
String
wxEnterpriseId
,
String
enterpriseId
,
String
externalUserId
,
String
tagItemId
)
{
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/WxEnterpriseRelatedApiServiceImpl.java
View file @
3ef55f37
...
@@ -638,4 +638,13 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
...
@@ -638,4 +638,13 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
wxEnterpriseRelatedService
.
setClerkEdit
(
wxEnterprieseRelatedId
,
clerkEditFlag
);
wxEnterpriseRelatedService
.
setClerkEdit
(
wxEnterprieseRelatedId
,
clerkEditFlag
);
return
true
;
return
true
;
}
}
@Override
public
boolean
checkIsGeneral
(
String
wxEnterpriseId
,
String
enterpriseId
)
{
TabHaobanWxEnterpriseRelated
enterpriseRelated
=
wxEnterpriseRelatedService
.
getByEnterpriseId
(
wxEnterpriseId
,
enterpriseId
);
if
(
null
==
enterpriseRelated
)
{
return
false
;
}
return
enterpriseRelated
.
getWxEnterpriseType
()
==
0
;
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/tag/FriendMemberTagSyncOperation.java
0 → 100644
View file @
3ef55f37
package
com
.
gic
.
haoban
.
manage
.
service
.
task
.
tag
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.Page
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.haoban.app.customer.dto.SearchComputeDTO
;
import
com.gic.haoban.app.customer.dto.SearchDataDTO
;
import
com.gic.haoban.base.api.common.BasePageInfo
;
import
com.gic.haoban.manage.api.dto.DealParamMqDTO
;
import
com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO
;
import
com.gic.haoban.manage.api.enums.PreDealStatusEnum
;
import
com.gic.haoban.manage.api.enums.PreDealTypeEnum
;
import
com.gic.haoban.manage.api.enums.SyncTaskStatusEnum
;
import
com.gic.haoban.manage.api.service.*
;
import
com.gic.haoban.manage.service.entity.TabHaobanPreDealLog
;
import
com.gic.haoban.manage.service.entity.TabHaobanSyncTask
;
import
com.gic.haoban.manage.service.service.PreDealService
;
import
com.gic.haoban.manage.service.service.StaffClerkRelationService
;
import
com.gic.haoban.manage.service.service.SyncTaskService
;
import
com.gic.haoban.manage.service.service.WxEnterpriseRelatedService
;
import
com.gic.haoban.manage.service.task.BaseSyncOperation
;
import
com.gic.haoban.manage.service.util.EmojiFilterUtil
;
import
com.gic.member.api.service.MemberTagService
;
import
com.gic.member.tag.api.service.MemberTagApiService
;
import
com.gic.mq.sdk.GicMQClient
;
import
com.gic.redis.data.util.RedisUtil
;
import
com.gic.search.engine.api.constant.MemberDataEnum
;
import
com.gic.search.engine.api.constant.OperateEnum
;
import
com.gic.search.engine.api.dto.ESResponseQueryBatch
;
import
com.gic.search.engine.api.dto.ESResponseQueryCount
;
import
com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO
;
import
com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService
;
import
com.gic.wechat.api.dto.qywx.UserDTO
;
import
com.gic.wechat.api.service.qywx.QywxSuiteApiService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigInteger
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* Created 2021/6/23.
*
* @author hua
*/
@Service
public
class
FriendMemberTagSyncOperation
implements
BaseSyncOperation
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FriendMemberTagSyncOperation
.
class
);
@Autowired
private
PreDealService
preDealService
;
@Autowired
private
MemberUnionidRelatedApiService
memberUnionidRelatedApiService
;
@Autowired
private
SyncTaskService
syncTaskService
;
@Autowired
private
ClerkMainStoreRelatedApiService
clerkMainStoreRelatedApiService
;
@Autowired
private
StaffApiService
staffApiService
;
@Autowired
private
StaffClerkRelationService
staffClerkRelationService
;
@Autowired
private
ClerkService
clerkService
;
@Autowired
private
ExternalClerkRelatedApiService
externalClerkRelatedApiService
;
@Autowired
private
WxEnterpriseRelatedService
wxEnterpriseRelatedService
;
@Autowired
private
MemberTagService
memberTagService
;
@Autowired
private
MemberTagApiService
memberTagApiService
;
@Autowired
private
QywxSuiteApiService
qywxSuiteApiService
;
@Autowired
private
QywxTagApiService
qywxTagApiService
;
@Autowired
private
ESDataDynamicOperationApiService
esDataDynamicOperationApiService
;
@Override
public
void
dealSingleByMq
(
DealParamMqDTO
dealParamMqDTO
,
TabHaobanPreDealLog
dataPre
)
{
logger
.
info
(
"处理会员标签同步初始化:{}"
,
JSONObject
.
toJSONString
(
dealParamMqDTO
));
boolean
resultFlag
=
true
;
String
reason
=
""
;
String
memberId
=
dataPre
.
getDataId
();
String
tagId
=
dataPre
.
getpDataId
();
String
enterpriseId
=
dataPre
.
getEnterpriseId
();
String
wxEnterpriseId
=
dataPre
.
getWxEnterpriseId
();
String
taskId
=
dataPre
.
getTaskId
();
try
{
List
<
ExternalClerkRelatedDTO
>
dtoList
=
externalClerkRelatedApiService
.
listByMemberIdAndWxEnterpriseId
(
memberId
,
wxEnterpriseId
,
enterpriseId
);
if
(
CollectionUtils
.
isEmpty
(
dtoList
))
{
logger
.
info
(
"没有好友关系:{},{}"
,
memberId
,
taskId
);
reason
=
"会员非好友"
;
return
;
}
List
<
String
>
items
=
new
ArrayList
<>();
items
.
add
(
tagId
);
Set
<
String
>
memberIds
=
listMemberIds
(
wxEnterpriseId
,
enterpriseId
,
items
);
logger
.
info
(
"memberIds"
);
}
catch
(
Exception
e
)
{
resultFlag
=
false
;
reason
=
"处理异常:"
;
e
.
printStackTrace
();
logger
.
info
(
"处理异常:{}"
,
e
);
}
finally
{
if
(!
resultFlag
)
{
dealException
(
dealParamMqDTO
.
getTaskId
(),
dealParamMqDTO
.
getData
(),
dataPre
.
getEnterpriseId
(),
reason
);
}
else
{
dealSuccess
(
dealParamMqDTO
.
getTaskId
(),
dealParamMqDTO
.
getData
(),
reason
,
dataPre
.
getWxEnterpriseId
());
}
}
}
private
Set
<
String
>
listMemberIds
(
String
wxEnterpriseId
,
String
enterpriseId
,
List
<
String
>
memberTagIds
)
{
Set
<
String
>
ret
=
new
HashSet
<>();
int
pageSize
=
5000
;
BasePageInfo
pageInfo
=
new
BasePageInfo
();
pageInfo
.
setPageSize
(
pageSize
);
Page
<
String
>
page
=
externalClerkRelatedApiService
.
pageExternalByEnterpriseId
(
wxEnterpriseId
,
enterpriseId
,
pageInfo
);
Set
<
String
>
midMemberIDs
=
this
.
listMemberIds
(
wxEnterpriseId
,
enterpriseId
,
memberTagIds
,
page
.
getResult
());
ret
.
addAll
(
midMemberIDs
);
while
(
page
.
getCurrentPageSize
()
==
pageSize
)
{
pageInfo
.
setPageNum
(
page
.
getCurrentPage
()
+
1
);
page
=
externalClerkRelatedApiService
.
pageExternalByEnterpriseId
(
wxEnterpriseId
,
enterpriseId
,
pageInfo
);
midMemberIDs
=
this
.
listMemberIds
(
wxEnterpriseId
,
enterpriseId
,
memberTagIds
,
page
.
getResult
());
ret
.
addAll
(
midMemberIDs
);
}
return
ret
;
}
private
Set
<
String
>
listMemberIds
(
String
wxEnterpriseId
,
String
enterpriseId
,
List
<
String
>
itemIds
,
List
<
String
>
memberIds
)
{
String
searchParams
=
StringUtils
.
join
(
itemIds
,
" "
);
List
<
SearchComputeDTO
>
andList
=
new
ArrayList
<>();
SearchDataDTO
tagSearchDto
=
new
SearchDataDTO
(
MemberDataEnum
.
member_tag
.
getCode
(),
OperateEnum
.
OPERATE_CONTAIN
.
getValue
(),
searchParams
);
SearchDataDTO
memberIdDto
=
new
SearchDataDTO
(
MemberDataEnum
.
member_id
.
getCode
(),
OperateEnum
.
OPERATE_CONTAIN
.
getValue
(),
searchParams
);
SearchComputeDTO
memberTagCompute
=
new
SearchComputeDTO
(
"data"
,
null
,
tagSearchDto
);
SearchComputeDTO
memberIdCompute
=
new
SearchComputeDTO
(
"data"
,
null
,
memberIdDto
);
andList
.
add
(
memberIdCompute
);
andList
.
add
(
memberTagCompute
);
SearchComputeDTO
searchComputeDTO
=
new
SearchComputeDTO
(
OperateEnum
.
OPERATE_AND
.
getValue
(),
andList
,
null
);
DynamicSearchDTO
searchDTO
=
new
DynamicSearchDTO
();
searchDTO
.
setEnterpriseId
(
enterpriseId
);
searchDTO
.
setColumnCategoryCode
(
"member"
);
searchDTO
.
setReturnFileds
(
MemberDataEnum
.
member_id
.
getCode
());
searchDTO
.
setSearchJson
(
searchComputeDTO
.
toJSONObject
());
logger
.
info
(
"searchJson:"
+
searchDTO
.
getSearchJson
());
ESResponseQueryBatch
queryDataBatch
=
esDataDynamicOperationApiService
.
queryDataBatch
(
searchDTO
,
false
,
null
);
List
<
JSONObject
>
res
=
queryDataBatch
.
getRes
();
if
(
CollectionUtils
.
isEmpty
(
res
))
{
return
new
HashSet
<>();
}
return
res
.
stream
().
map
(
mid
->
mid
.
getString
(
MemberDataEnum
.
member_id
.
getCode
())).
collect
(
Collectors
.
toSet
());
}
@Override
public
void
dealException
(
String
taskId
,
String
dataId
,
String
enterpriseId
,
String
reason
)
{
logger
.
info
(
"标签同步异常:{},{}"
,
taskId
,
dataId
);
preDealService
.
updateStatusByDataId
(
taskId
,
dataId
,
PreDealTypeEnum
.
group
.
getVal
(),
PreDealStatusEnum
.
exception
.
getVal
(),
reason
);
checkDepartmentTask
(
taskId
);
}
@Override
public
void
dealSuccess
(
String
taskId
,
String
dataId
,
String
reason
,
String
wxEnterpriseId
)
{
boolean
b
=
preDealService
.
updateStatusByDataId
(
taskId
,
dataId
,
PreDealTypeEnum
.
tag
.
getVal
(),
PreDealStatusEnum
.
computed
.
getVal
(),
reason
);
if
(!
b
)
{
logger
.
info
(
"成功修改错误!{}"
,
dataId
);
return
;
}
checkDepartmentTask
(
taskId
);
}
@Override
public
void
checkDepartmentTask
(
String
taskId
)
{
boolean
b
=
preDealService
.
checkTask
(
taskId
,
PreDealTypeEnum
.
tag
.
getVal
());
if
(!
b
)
{
return
;
}
logger
.
info
(
"开始同步完成:{}"
,
taskId
);
String
key
=
"haoban_sync_tag_task_"
+
taskId
;
RedisUtil
.
lock
(
key
,
3L
);
TabHaobanSyncTask
syncTask
=
syncTaskService
.
getSyncTask
(
taskId
);
//同步成功 进入会员标签同步
if
(
syncTask
.
getStatusFlag
().
equals
(
SyncTaskStatusEnum
.
member_tag
.
getVal
()))
{
int
errCount
=
preDealService
.
countByTaskId
(
taskId
,
-
1
,
PreDealStatusEnum
.
exception
.
getVal
());
if
(
errCount
>
0
)
{
syncTaskService
.
updateTaskStatus
(
taskId
,
SyncTaskStatusEnum
.
exception_compute
.
getVal
());
}
else
{
syncTaskService
.
updateTaskStatus
(
taskId
,
SyncTaskStatusEnum
.
compute
.
getVal
());
}
}
RedisUtil
.
unlock
(
key
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/tag/FriendTagSyncOperation.java
View file @
3ef55f37
This diff is collapsed.
Click to expand it.
haoban-manage3-service/src/main/resources/mapper/TabHaobanExternalClerkRelatedMapper.xml
View file @
3ef55f37
...
@@ -521,4 +521,13 @@
...
@@ -521,4 +521,13 @@
#{item}
#{item}
</foreach>
</foreach>
</select>
</select>
<select
id=
"listMemberIdByEnterpriseId"
resultType=
"String"
>
select
member_id
from tab_haoban_external_clerk_related
where wx_enterprise_id = #{wxEnterpriseId}
and enterprise_id=#{enterpriseId}
and status_flag in(1,3,4)
</select>
</mapper>
</mapper>
\ No newline at end of file
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/StaffController.java
View file @
3ef55f37
...
@@ -10,6 +10,7 @@ import com.gic.clerk.api.service.ClerkService;
...
@@ -10,6 +10,7 @@ import com.gic.clerk.api.service.ClerkService;
import
com.gic.commons.util.DateUtil
;
import
com.gic.commons.util.DateUtil
;
import
com.gic.commons.util.ExcelUtils
;
import
com.gic.commons.util.ExcelUtils
;
import
com.gic.enterprise.api.dto.*
;
import
com.gic.enterprise.api.dto.*
;
import
com.gic.enterprise.api.dto.EnterpriseDTO
;
import
com.gic.enterprise.api.service.*
;
import
com.gic.enterprise.api.service.*
;
import
com.gic.enterprise.api.service.EnterpriseService
;
import
com.gic.enterprise.api.service.EnterpriseService
;
import
com.gic.haoban.base.api.common.BasePageInfo
;
import
com.gic.haoban.base.api.common.BasePageInfo
;
...
@@ -337,10 +338,18 @@ public class StaffController extends WebBaseController{
...
@@ -337,10 +338,18 @@ public class StaffController extends WebBaseController{
public
boolean
isEnterpriseOver
(
String
eid
)
{
public
boolean
isEnterpriseOver
(
String
eid
)
{
com
.
gic
.
enterprise
.
api
.
dto
.
EnterpriseDTO
enterprise
=
enterpriseService
.
getEnterpriseByEid
(
eid
);
com
.
gic
.
enterprise
.
api
.
dto
.
EnterpriseDTO
enterprise
=
enterpriseService
.
getEnterpriseByEid
(
eid
);
if
(
enterprise
==
null
||
enterprise
.
getExpireTime
()
==
null
){
if
(
enterprise
==
null
)
{
return
false
;
return
true
;
}
}
if
(
enterprise
.
getExpireTime
().
getTime
()
>
System
.
currentTimeMillis
()){
if
(
enterprise
.
getExpireTime
()
==
null
)
{
if
(
enterprise
.
getEnabledState
()
==
null
)
{
return
false
;
}
else
if
(
enterprise
.
getEnabledState
()
==
1
)
{
return
false
;
}
else
{
return
true
;
}
}
else
if
(
enterprise
.
getExpireTime
().
getTime
()
>
System
.
currentTimeMillis
()
&&
enterprise
.
getEnabledState
()
==
1
)
{
return
false
;
return
false
;
}
}
return
true
;
return
true
;
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/StoreController.java
View file @
3ef55f37
...
@@ -329,11 +329,17 @@ public class StoreController extends WebBaseController{
...
@@ -329,11 +329,17 @@ public class StoreController extends WebBaseController{
return
true
;
return
true
;
}
}
EnterpriseDTO
enterprise
=
enterpriseService
.
getEnterpriseByEid
(
store
.
getEnterpriseId
());
EnterpriseDTO
enterprise
=
enterpriseService
.
getEnterpriseByEid
(
store
.
getEnterpriseId
());
if
(
enterprise
==
null
||
enterprise
.
getExpireTime
()
==
null
||
enterprise
.
getEnabledState
()
==
null
)
{
if
(
enterprise
==
null
||
enterprise
.
getStatus
()
!=
1
)
{
return
fals
e
;
return
tru
e
;
}
}
if
(
enterprise
.
getExpireTime
().
getTime
()
>
System
.
currentTimeMillis
()
&&
enterprise
.
getEnabledState
()
==
1
){
if
(
enterprise
.
getExpireTime
()
==
null
)
{
return
false
;
if
(
enterprise
.
getEnabledState
()
==
null
)
{
return
false
;
}
else
if
(
enterprise
.
getEnabledState
()
==
1
)
{
return
false
;
}
}
else
if
(
enterprise
.
getExpireTime
().
getTime
()
>
System
.
currentTimeMillis
()
&&
enterprise
.
getEnabledState
()
==
1
)
{
return
false
;
}
}
return
true
;
return
true
;
}
}
...
...
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