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
52f96f2f
Commit
52f96f2f
authored
Nov 20, 2020
by
qwmqiuwenmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
67e74e4f
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
804 additions
and
30 deletions
+804
-30
ExternalUserDTO.java
...n/java/com/gic/haoban/manage/api/dto/ExternalUserDTO.java
+131
-0
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
MemberUnionidRelatedApiService.java
...an/manage/api/service/MemberUnionidRelatedApiService.java
+7
-0
PreDealLogMapper.java
...ic/haoban/manage/service/dao/mapper/PreDealLogMapper.java
+24
-0
PreDealService.java
...com/gic/haoban/manage/service/service/PreDealService.java
+23
-0
PreDealServiceImpl.java
...aoban/manage/service/service/impl/PreDealServiceImpl.java
+17
-0
DealSyncOperationApiServiceImpl.java
...ice/service/out/impl/DealSyncOperationApiServiceImpl.java
+11
-2
MemberUnionidRelatedApiServiceImpl.java
.../service/out/impl/MemberUnionidRelatedApiServiceImpl.java
+108
-0
FriendClerkSyncOperation.java
.../haoban/manage/service/task/FriendClerkSyncOperation.java
+56
-19
FriendMergeSyncOperation.java
.../haoban/manage/service/task/FriendMergeSyncOperation.java
+52
-0
FriendSyncOperation.java
...m/gic/haoban/manage/service/task/FriendSyncOperation.java
+123
-7
SelfFriendSyncOperation.java
...c/haoban/manage/service/task/SelfFriendSyncOperation.java
+217
-0
PreDealLogMapper.xml
...e3-service/src/main/resources/mapper/PreDealLogMapper.xml
+29
-0
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/ExternalUserDTO.java
0 → 100644
View file @
52f96f2f
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
;
import
java.io.Serializable
;
public
class
ExternalUserDTO
implements
Serializable
{
private
String
wxEnterpriseId
;
private
String
name
;
private
String
unionId
;
private
String
avatar
;
private
String
addCreateTime
;
private
String
wxUserId
;
private
String
externalUserId
;
private
String
memberId
;
private
String
storeId
;
private
String
enterpriseId
;
private
String
clerkId
;
private
String
staffId
;
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getUnionId
()
{
return
unionId
;
}
public
void
setUnionId
(
String
unionId
)
{
this
.
unionId
=
unionId
;
}
public
String
getAvatar
()
{
return
avatar
;
}
public
void
setAvatar
(
String
avatar
)
{
this
.
avatar
=
avatar
;
}
public
String
getAddCreateTime
()
{
return
addCreateTime
;
}
public
void
setAddCreateTime
(
String
addCreateTime
)
{
this
.
addCreateTime
=
addCreateTime
;
}
public
String
getWxUserId
()
{
return
wxUserId
;
}
public
void
setWxUserId
(
String
wxUserId
)
{
this
.
wxUserId
=
wxUserId
;
}
public
String
getExternalUserId
()
{
return
externalUserId
;
}
public
void
setExternalUserId
(
String
externalUserId
)
{
this
.
externalUserId
=
externalUserId
;
}
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getStoreId
()
{
return
storeId
;
}
public
void
setStoreId
(
String
storeId
)
{
this
.
storeId
=
storeId
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/PreDealTypeEnum.java
View file @
52f96f2f
...
@@ -9,7 +9,9 @@ public enum PreDealTypeEnum {
...
@@ -9,7 +9,9 @@ public enum PreDealTypeEnum {
store
(
1
),
store
(
1
),
clerk
(
2
),
clerk
(
2
),
friend_clerk
(
3
),
friend_clerk
(
3
),
friend
(
4
);
friend
(
4
),
self_friend
(
5
),
friend_merge
(
6
);
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 @
52f96f2f
...
@@ -11,7 +11,9 @@ public enum SyncTaskStatusEnum {
...
@@ -11,7 +11,9 @@ public enum SyncTaskStatusEnum {
compute
(
4
),
compute
(
4
),
exception_compute
(
5
),
exception_compute
(
5
),
exception_close
(
6
),
exception_close
(
6
),
friend_sync
(
7
);
self_friend_sync
(
7
),
friend_sync
(
8
),
merge_friend_sync
(
9
);
private
int
val
;
private
int
val
;
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/MemberUnionidRelatedApiService.java
View file @
52f96f2f
...
@@ -7,6 +7,7 @@ import com.gic.api.base.commons.JSONResponse;
...
@@ -7,6 +7,7 @@ import com.gic.api.base.commons.JSONResponse;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.Page
;
import
com.gic.haoban.base.api.common.BasePageInfo
;
import
com.gic.haoban.base.api.common.BasePageInfo
;
import
com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO
;
import
com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO
;
import
com.gic.haoban.manage.api.dto.ExternalUserDTO
;
import
com.gic.haoban.manage.api.dto.MemberStoreDTO
;
import
com.gic.haoban.manage.api.dto.MemberStoreDTO
;
import
com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO
;
import
com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO
;
...
@@ -49,4 +50,10 @@ public interface MemberUnionidRelatedApiService {
...
@@ -49,4 +50,10 @@ public interface MemberUnionidRelatedApiService {
List
<
String
>
listSelfExterialList
(
String
wxEnterpriseId
,
String
wxUserId
);
List
<
String
>
listSelfExterialList
(
String
wxEnterpriseId
,
String
wxUserId
);
List
<
String
>
listExterialList
(
String
wxEnterpriseId
,
String
wxUserId
);
ExternalUserDTO
getCorpSelfExternalUseridInfo
(
String
wxEnterpriseId
,
String
wxUserId
,
String
externalUserId
);
String
addExternal
(
ExternalUserDTO
dto
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/PreDealLogMapper.java
View file @
52f96f2f
...
@@ -171,6 +171,30 @@ public interface PreDealLogMapper {
...
@@ -171,6 +171,30 @@ public interface PreDealLogMapper {
* @return
* @return
*/
*/
public
String
getRootDataIdByWxEnterpriseIdAndTaskId
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"taskId"
)
String
taskId
);
public
String
getRootDataIdByWxEnterpriseIdAndTaskId
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"taskId"
)
String
taskId
);
/**
* 更新状态
* @param taskId
* @param dataId
* @param status
* @param reason
* @param dataContent
* @return
*/
int
updateFriendStatusByDataId
(
@Param
(
"taskId"
)
String
taskId
,
@Param
(
"dataId"
)
String
dataId
,
@Param
(
"status"
)
int
status
,
@Param
(
"reason"
)
String
reason
,
@Param
(
"dataContent"
)
String
dataContent
);
/**
*
* @param taskId
* @param pDataId
* @return
*/
int
countFailStaffTaskByTaskIdAndPDataId
(
@Param
(
"taskId"
)
String
taskId
,
@Param
(
"pDataId"
)
String
pDataId
);
/**
* 根据父id获取
* @param taskId
* @param wxUserId
* @return
*/
List
<
TabHaobanPreDealLog
>
listByPDataIdAndTaskId
(
@Param
(
"taskId"
)
String
taskId
,
@Param
(
"pDataId"
)
String
wxUserId
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/PreDealService.java
View file @
52f96f2f
...
@@ -159,5 +159,28 @@ public interface PreDealService {
...
@@ -159,5 +159,28 @@ public interface PreDealService {
* @return
* @return
*/
*/
public
String
getRootDataIdByWxEnterpriseIdAndTaskId
(
String
wxEnterpriseId
,
String
taskId
);
public
String
getRootDataIdByWxEnterpriseIdAndTaskId
(
String
wxEnterpriseId
,
String
taskId
);
/**
* 更新好友成功状态
* @param taskId
* @param dataId
* @param status
* @param reason
* @param dataContent
*/
public
boolean
updateFriendStatusByDataId
(
String
taskId
,
String
dataId
,
int
status
,
String
reason
,
String
dataContent
);
/**
* 根据父任务判断子任务是否全部完成
* @param taskId
* @param pDataId
* @return
*/
public
boolean
checkStaffTaskByTaskIdAndPDataId
(
String
taskId
,
String
pDataId
);
/**
* 根据父id获取
* @param taskId
* @param wxUserId
* @return
*/
public
List
<
TabHaobanPreDealLog
>
listByPDataIdAndTaskId
(
String
taskId
,
String
wxUserId
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/PreDealServiceImpl.java
View file @
52f96f2f
...
@@ -165,4 +165,21 @@ public class PreDealServiceImpl implements PreDealService {
...
@@ -165,4 +165,21 @@ public class PreDealServiceImpl implements PreDealService {
return
preDealLogMapper
.
getRootDataIdByWxEnterpriseIdAndTaskId
(
wxEnterpriseId
,
taskId
);
return
preDealLogMapper
.
getRootDataIdByWxEnterpriseIdAndTaskId
(
wxEnterpriseId
,
taskId
);
}
}
@Override
public
boolean
updateFriendStatusByDataId
(
String
taskId
,
String
dataId
,
int
status
,
String
reason
,
String
dataContent
)
{
int
i
=
preDealLogMapper
.
updateFriendStatusByDataId
(
taskId
,
dataId
,
status
,
reason
,
dataContent
);
return
i
>=
0
;
}
@Override
public
boolean
checkStaffTaskByTaskIdAndPDataId
(
String
taskId
,
String
pDataId
)
{
return
preDealLogMapper
.
countFailStaffTaskByTaskIdAndPDataId
(
taskId
,
pDataId
)
==
0
;
}
@Override
public
List
<
TabHaobanPreDealLog
>
listByPDataIdAndTaskId
(
String
taskId
,
String
wxUserId
)
{
return
preDealLogMapper
.
listByPDataIdAndTaskId
(
taskId
,
wxUserId
);
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/DealSyncOperationApiServiceImpl.java
View file @
52f96f2f
...
@@ -138,11 +138,20 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
...
@@ -138,11 +138,20 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
}
}
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
friend_clerk
.
getVal
())){
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
friend_clerk
.
getVal
())){
logger
.
info
(
"好友导购处理:{}"
,
params
);
logger
.
info
(
"好友导购处理:{}"
,
params
);
operationMap
.
get
(
"friendClerkSyncOperation"
).
dealSingleByMq
(
dealParamMqDTO
,
dataPre
);
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
friend
.
getVal
())){
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
friend
.
getVal
())){
operationMap
.
get
(
"friendSyncOperation"
).
dealSingleByMq
(
dealParamMqDTO
,
dataPre
);
logger
.
info
(
"好友处理:{}"
,
params
);
logger
.
info
(
"好友处理:{}"
,
params
);
}
else
{
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
self_friend
.
getVal
())){
operationMap
.
get
(
"selfFriendSyncOperation"
).
dealSingleByMq
(
dealParamMqDTO
,
dataPre
);
logger
.
info
(
"好友处理:{}"
,
params
);
}
else
if
(
dataPre
.
getDataType
().
equals
(
PreDealTypeEnum
.
friend_merge
.
getVal
())){
operationMap
.
get
(
"friendMergeSyncOperation"
).
dealSingleByMq
(
dealParamMqDTO
,
dataPre
);
logger
.
info
(
"好友处理:{}"
,
params
);
}
else
{
logger
.
info
(
"不是正常数据:{}"
,
params
);
logger
.
info
(
"不是正常数据:{}"
,
params
);
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/MemberUnionidRelatedApiServiceImpl.java
View file @
52f96f2f
...
@@ -790,4 +790,112 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
...
@@ -790,4 +790,112 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
}
return
list
;
return
list
;
}
}
@Override
public
List
<
String
>
listExterialList
(
String
wxEnterpriseId
,
String
wxUserId
)
{
log
.
info
(
"【获取应用好友】wxEnterpriseId={},wxUserId={}"
,
wxEnterpriseId
,
wxUserId
);
WxEnterpriseDTO
enterprise
=
wxEnterpriseService
.
selectById
(
wxEnterpriseId
);
String
wxRes
=
qywxUserApiService
.
listExternalUserid
(
enterprise
.
getCorpid
(),
config
.
getWxSuiteid
(),
wxUserId
);
List
<
String
>
list
=
new
ArrayList
<>();
log
.
info
(
"【刷下好友】res={}"
,
wxRes
);
if
(
StringUtils
.
isBlank
(
wxRes
)){
return
list
;
}
JSONArray
jsonArr
=
JSON
.
parseArray
(
wxRes
);
if
(
jsonArr
.
size
()
==
0
)
{
return
list
;
}
for
(
Object
object
:
jsonArr
)
{
list
.
add
(
object
.
toString
());
}
return
list
;
}
@Override
public
ExternalUserDTO
getCorpSelfExternalUseridInfo
(
String
wxEnterpriseId
,
String
wxUserId
,
String
externalUserId
)
{
WxEnterpriseDTO
wxEnterprise
=
wxEnterpriseService
.
selectById
(
wxEnterpriseId
);
if
(
wxEnterprise
==
null
){
log
.
info
(
"企业不存在"
);
return
null
;
}
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
wxEnterpriseId
,
SecretTypeEnum
.
CONTACT_CUSTOMER
.
getVal
());
if
(
null
==
secretSetting
)
{
log
.
info
(
"没有配置secret"
);
return
null
;
}
String
unionIdJson
=
qywxUserApiService
.
getCorpSelfExternalUseridInfo
(
wxEnterprise
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
externalUserId
);
if
(
StringUtils
.
isBlank
(
unionIdJson
)){
log
.
info
(
"好友不存在"
);
return
null
;
}
ExternalUserPojo
pojo
=
getExternalUserPojo
(
unionIdJson
,
wxUserId
,
wxEnterpriseId
);
return
EntityUtil
.
changeEntityByJSON
(
ExternalUserDTO
.
class
,
pojo
);
}
@Override
public
String
addExternal
(
ExternalUserDTO
dto
)
{
String
wxUserId
=
dto
.
getWxUserId
();
String
wxEnterpriseId
=
dto
.
getWxEnterpriseId
();
String
name
=
dto
.
getName
();
String
createTime
=
dto
.
getAddCreateTime
();
String
unionId
=
dto
.
getUnionId
();
String
externalUserId
=
dto
.
getExternalUserId
();
String
memberId
=
dto
.
getMemberId
();
String
storeId
=
dto
.
getStoreId
();
String
enterpriseId
=
dto
.
getEnterpriseId
();
String
staffId
=
dto
.
getStaffId
();
String
avatar
=
dto
.
getAvatar
();
String
clerkId
=
dto
.
getClerkId
();
if
(
StringUtils
.
isAnyBlank
(
wxUserId
,
wxEnterpriseId
,
name
,
createTime
,
unionId
,
externalUserId
,
memberId
,
storeId
,
enterpriseId
,
staffId
,
clerkId
)){
log
.
info
(
"【新增外部联系人】wxUserId={},wxEnterpriseId={},name={},createTime={},unionId ={},externalUserId ={},memberId ={},storeId ={},enterpriseId ={},staffId={},clerkId={}"
+
""
,
wxUserId
,
wxEnterpriseId
,
name
,
createTime
,
unionId
,
externalUserId
,
memberId
,
storeId
,
enterpriseId
,
staffId
,
clerkId
);
return
"参数不对"
;
}
MemberUnionidRelatedDTO
exsitDTO
=
memberUnionRelatedService
.
getByParams
(
wxUserId
,
wxEnterpriseId
,
name
,
createTime
);
String
uuid
=
""
;
if
(
exsitDTO
==
null
){
exsitDTO
=
new
MemberUnionidRelatedDTO
();
exsitDTO
.
setAvatar
(
avatar
);
exsitDTO
.
setExternalUserid
(
externalUserId
);
exsitDTO
.
setAddCreateTime
(
createTime
);
exsitDTO
.
setEnterpriseId
(
enterpriseId
);
exsitDTO
.
setExternalName
(
name
);
exsitDTO
.
setExternalUserid
(
externalUserId
);
exsitDTO
.
setWxEnterpriseId
(
wxEnterpriseId
);
exsitDTO
.
setWxUserId
(
wxUserId
);
exsitDTO
.
setUnionid
(
unionId
);
uuid
=
memberUnionRelatedService
.
addMemberUnionidRelated
(
exsitDTO
);
}
else
{
uuid
=
exsitDTO
.
getUnionid
();
exsitDTO
.
setAvatar
(
avatar
);
exsitDTO
.
setExternalUserid
(
externalUserId
);
memberUnionRelatedService
.
update
(
exsitDTO
);
}
TabHaobanExternalClerkRelated
external
=
externalClerkRelatedService
.
getByParams
(
wxUserId
,
wxEnterpriseId
,
name
,
createTime
);
if
(
external
==
null
){
TabHaobanExternalClerkRelated
related
=
new
TabHaobanExternalClerkRelated
();
related
.
setAddCreateTime
(
createTime
);
related
.
setClerkId
(
clerkId
);
related
.
setEnterpriseId
(
enterpriseId
);
related
.
setExternalName
(
name
);
related
.
setExternalUserId
(
externalUserId
);
related
.
setStaffId
(
staffId
);
related
.
setMemberUnionidRelatedId
(
uuid
);
related
.
setStoreId
(
storeId
);
related
.
setUnionid
(
unionId
);
related
.
setWxEnterpriseId
(
wxEnterpriseId
);
related
.
setWxUserId
(
wxUserId
);
related
.
setMemberId
(
memberId
);
externalClerkRelatedService
.
insert
(
related
);
}
else
{
external
.
setMemberId
(
memberId
);
external
.
setMemberUnionidRelatedId
(
uuid
);
external
.
setExternalUserId
(
externalUserId
);
external
.
setUnionid
(
unionId
);
external
.
setStoreId
(
storeId
);
external
.
setEnterpriseId
(
enterpriseId
);
external
.
setClerkId
(
clerkId
);
externalClerkRelatedService
.
update
(
external
);
}
return
""
;
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/FriendClerkSyncOperation.java
View file @
52f96f2f
...
@@ -5,6 +5,7 @@ import java.util.List;
...
@@ -5,6 +5,7 @@ import java.util.List;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -38,26 +39,62 @@ public class FriendClerkSyncOperation implements BaseSyncOperation {
...
@@ -38,26 +39,62 @@ public class FriendClerkSyncOperation implements BaseSyncOperation {
@Override
@Override
public
void
dealSingleByMq
(
DealParamMqDTO
dealParamMqDTO
,
TabHaobanPreDealLog
dataPre
)
{
public
void
dealSingleByMq
(
DealParamMqDTO
dealParamMqDTO
,
TabHaobanPreDealLog
dataPre
)
{
String
wxEnterpriseId
=
dataPre
.
getWxEnterpriseId
();
String
reason
=
""
;
String
wxUserId
=
dataPre
.
getDataId
();
boolean
dealFlag
=
true
;
memberUnionidRelatedApiService
.
cleanNoExsitFriend
(
wxEnterpriseId
,
wxUserId
);
try
{
List
<
String
>
selfUserIdList
=
memberUnionidRelatedApiService
.
listSelfExterialList
(
wxEnterpriseId
,
wxUserId
);
String
wxEnterpriseId
=
dataPre
.
getWxEnterpriseId
();
List
<
TabHaobanPreDealLog
>
dealLogList
=
selfUserIdList
.
stream
().
map
(
dto
->
{
String
wxUserId
=
dataPre
.
getDataId
();
TabHaobanPreDealLog
dealLog
=
new
TabHaobanPreDealLog
();
memberUnionidRelatedApiService
.
cleanNoExsitFriend
(
wxEnterpriseId
,
wxUserId
);
dealLog
.
setDataId
(
dataPre
.
getDataId
());
List
<
String
>
selfUserIdList
=
memberUnionidRelatedApiService
.
listSelfExterialList
(
wxEnterpriseId
,
wxUserId
);
dealLog
.
setpDataId
(
dto
);
List
<
String
>
userIdList
=
memberUnionidRelatedApiService
.
listExterialList
(
wxEnterpriseId
,
wxUserId
);
dealLog
.
setDataType
(
PreDealTypeEnum
.
friend
.
getVal
());
if
(
CollectionUtils
.
isNotEmpty
(
selfUserIdList
)){
dealLog
.
setStatusFlag
(
0
);
List
<
TabHaobanPreDealLog
>
dealLogList
=
selfUserIdList
.
stream
().
map
(
dto
->
{
dealLog
.
setTaskId
(
dataPre
.
getTaskId
());
TabHaobanPreDealLog
dealLog
=
new
TabHaobanPreDealLog
();
dealLog
.
setDataContent
(
JSONObject
.
toJSONString
(
dto
));
dealLog
.
setDataId
(
dto
);
dealLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
dealLog
.
setpDataId
(
dataPre
.
getDataId
());
return
dealLog
;
dealLog
.
setDataType
(
PreDealTypeEnum
.
self_friend
.
getVal
());
}).
collect
(
Collectors
.
toList
());
dealLog
.
setStatusFlag
(
0
);
dealLog
.
setTaskId
(
dataPre
.
getTaskId
());
dealLog
.
setDataContent
(
JSONObject
.
toJSONString
(
dto
));
dealLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
return
dealLog
;
}).
collect
(
Collectors
.
toList
());
preDealService
.
insert
(
dealLogList
);
preDealService
.
insert
(
dealLogList
);
HashSet
<
String
>
hashSet
=
new
HashSet
<>();
HashSet
<
String
>
hashSet
=
new
HashSet
<>(
selfUserIdList
);
hashSet
.
add
(
"1"
);
dealDepartmentToMq
(
dataPre
.
getTaskId
(),
hashSet
,
SyncTaskStatusEnum
.
self_friend_sync
);
dealDepartmentToMq
(
dataPre
.
getTaskId
(),
hashSet
,
SyncTaskStatusEnum
.
friend_sync
);
}
if
(
CollectionUtils
.
isNotEmpty
(
userIdList
)){
List
<
TabHaobanPreDealLog
>
dealLogList
=
userIdList
.
stream
().
map
(
dto
->
{
TabHaobanPreDealLog
dealLog
=
new
TabHaobanPreDealLog
();
dealLog
.
setDataId
(
dto
);
dealLog
.
setpDataId
(
dataPre
.
getDataId
());
dealLog
.
setDataType
(
PreDealTypeEnum
.
friend
.
getVal
());
dealLog
.
setStatusFlag
(
0
);
dealLog
.
setTaskId
(
dataPre
.
getTaskId
());
dealLog
.
setDataContent
(
JSONObject
.
toJSONString
(
dto
));
dealLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
return
dealLog
;
}).
collect
(
Collectors
.
toList
());
preDealService
.
insert
(
dealLogList
);
HashSet
<
String
>
hashSet
=
new
HashSet
<>(
userIdList
);
dealDepartmentToMq
(
dataPre
.
getTaskId
(),
hashSet
,
SyncTaskStatusEnum
.
friend_sync
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
logger
.
info
(
"同步失败:"
,
JSONObject
.
toJSONString
(
dataPre
));
reason
=
"成员好友处理异常"
;
dealFlag
=
false
;
dealException
(
dealParamMqDTO
.
getTaskId
(),
dataPre
.
getDataId
(),
null
,
"处理异常"
);
}
finally
{
if
(!
dealFlag
)
{
dealException
(
dealParamMqDTO
.
getTaskId
(),
dealParamMqDTO
.
getData
(),
dataPre
.
getEnterpriseId
(),
reason
);
}
else
{
dealSuccess
(
dealParamMqDTO
.
getTaskId
(),
dealParamMqDTO
.
getData
(),
dataPre
.
getEnterpriseId
(),
dataPre
.
getWxEnterpriseId
());
}
}
}
}
@Override
@Override
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/FriendMergeSyncOperation.java
0 → 100644
View file @
52f96f2f
package
com
.
gic
.
haoban
.
manage
.
service
.
task
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.haoban.manage.api.dto.DealParamMqDTO
;
import
com.gic.haoban.manage.api.dto.ExternalUserDTO
;
import
com.gic.haoban.manage.api.enums.PreDealStatusEnum
;
import
com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService
;
import
com.gic.haoban.manage.service.entity.TabHaobanPreDealLog
;
import
com.gic.haoban.manage.service.service.PreDealService
;
@Service
public
class
FriendMergeSyncOperation
implements
BaseSyncOperation
{
@Autowired
private
MemberUnionidRelatedApiService
memberUnionidRelatedApiService
;
@Autowired
private
PreDealService
preDealService
;
@Override
public
void
dealSingleByMq
(
DealParamMqDTO
dealParamMqDTO
,
TabHaobanPreDealLog
dataPre
)
{
String
dataContent
=
dataPre
.
getDataContent
();
ExternalUserDTO
pojo
=
JSON
.
parseObject
(
dataContent
,
ExternalUserDTO
.
class
);
String
res
=
memberUnionidRelatedApiService
.
addExternal
(
pojo
);
if
(
StringUtils
.
isBlank
(
res
)){
dealSuccess
(
dealParamMqDTO
.
getTaskId
(),
dataPre
.
getDataId
(),
null
,
null
);
}
else
{
dealException
(
dealParamMqDTO
.
getTaskId
(),
dataPre
.
getDataId
(),
null
,
res
);
}
}
@Override
public
void
dealException
(
String
taskId
,
String
dataId
,
String
enterpriseId
,
String
reason
)
{
preDealService
.
updateStatusByDataId
(
taskId
,
dataId
,
PreDealStatusEnum
.
exception
.
getVal
(),
reason
);
}
@Override
public
void
dealSuccess
(
String
taskId
,
String
dataId
,
String
enterpriseId
,
String
wxEnterpriseId
)
{
preDealService
.
updateStatusByDataId
(
taskId
,
dataId
,
PreDealStatusEnum
.
computed
.
getVal
(),
"成功"
);
}
@Override
public
void
checkDepartmentTask
(
String
taskId
)
{
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/FriendSyncOperation.java
View file @
52f96f2f
package
com
.
gic
.
haoban
.
manage
.
service
.
task
;
package
com
.
gic
.
haoban
.
manage
.
service
.
task
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashSet
;
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.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.GICMQClientUtil
;
import
com.gic.haoban.manage.api.dto.ClerkMainStoreRelatedDTO
;
import
com.gic.haoban.manage.api.dto.ClerkMainStoreRelatedDTO
;
import
com.gic.haoban.manage.api.dto.DealParamMqDTO
;
import
com.gic.haoban.manage.api.dto.DealParamMqDTO
;
import
com.gic.haoban.manage.api.dto.ExternalUserDTO
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.dto.StaffDTO
;
import
com.gic.haoban.manage.api.dto.StaffDTO
;
import
com.gic.haoban.manage.api.enums.PreDealStatusEnum
;
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.ClerkMainStoreRelatedApiService
;
import
com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService
;
import
com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService
;
import
com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.service.entity.TabHaobanPreDealLog
;
import
com.gic.haoban.manage.service.entity.TabHaobanPreDealLog
;
import
com.gic.haoban.manage.service.pojo.ExternalUserPojo
;
import
com.gic.haoban.manage.service.service.PreDealService
;
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.SyncTaskService
;
import
com.gic.mq.sdk.GicMQClient
;
@Service
public
class
FriendSyncOperation
implements
BaseSyncOperation
{
public
class
FriendSyncOperation
implements
BaseSyncOperation
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FriendSyncOperation
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FriendSyncOperation
.
class
);
@Autowired
@Autowired
...
@@ -27,6 +49,8 @@ public class FriendSyncOperation implements BaseSyncOperation {
...
@@ -27,6 +49,8 @@ public class FriendSyncOperation implements BaseSyncOperation {
private
ClerkMainStoreRelatedApiService
clerkMainStoreRelatedApiService
;
private
ClerkMainStoreRelatedApiService
clerkMainStoreRelatedApiService
;
@Autowired
@Autowired
private
StaffApiService
staffApiService
;
private
StaffApiService
staffApiService
;
@Autowired
private
StaffClerkRelationService
staffClerkRelationService
;
@Override
@Override
public
void
dealSingleByMq
(
DealParamMqDTO
dealParamMqDTO
,
TabHaobanPreDealLog
dataPre
)
{
public
void
dealSingleByMq
(
DealParamMqDTO
dealParamMqDTO
,
TabHaobanPreDealLog
dataPre
)
{
String
wxEnterpriseId
=
dataPre
.
getWxEnterpriseId
();
String
wxEnterpriseId
=
dataPre
.
getWxEnterpriseId
();
...
@@ -43,26 +67,118 @@ public class FriendSyncOperation implements BaseSyncOperation {
...
@@ -43,26 +67,118 @@ public class FriendSyncOperation implements BaseSyncOperation {
preDealService
.
updateStatusByDataId
(
taskId
,
externalUserId
,
PreDealStatusEnum
.
exception
.
getVal
(),
"主门店不存在"
);
preDealService
.
updateStatusByDataId
(
taskId
,
externalUserId
,
PreDealStatusEnum
.
exception
.
getVal
(),
"主门店不存在"
);
return
;
return
;
}
}
memberUnionidRelatedApiService
.
add
(
wxEnterpriseId
,
externalUserId
,
wxUserId
,
mainStore
.
getStoreId
());
StaffClerkRelationDTO
staffClerkRelationDTO
=
staffClerkRelationService
.
getOneBindByStoreId
(
staff
.
getStaffId
(),
mainStore
.
getStoreId
());
dealSuccess
(
taskId
,
externalUserId
,
null
,
wxEnterpriseId
);
if
(
staffClerkRelationDTO
==
null
){
preDealService
.
updateStatusByDataId
(
taskId
,
externalUserId
,
PreDealStatusEnum
.
exception
.
getVal
(),
"未绑定导购"
);
return
;
}
ExternalUserDTO
pojo
=
memberUnionidRelatedApiService
.
getCorpSelfExternalUseridInfo
(
wxEnterpriseId
,
wxUserId
,
externalUserId
);
pojo
.
setEnterpriseId
(
staffClerkRelationDTO
.
getEnterpriseId
());
pojo
.
setStoreId
(
mainStore
.
getStoreId
());
pojo
.
setClerkId
(
staffClerkRelationDTO
.
getClerkId
());
if
(
pojo
==
null
){
dealException
(
taskId
,
externalUserId
,
null
,
"好友不存在"
);
}
else
{
dealSuccess
(
taskId
,
externalUserId
,
JSON
.
toJSONString
(
pojo
),
wxEnterpriseId
);
}
checkStaffTask
(
taskId
,
wxUserId
);
}
}
@Override
@Override
public
void
dealException
(
String
taskId
,
String
dataId
,
String
enterpriseId
,
String
reason
)
{
public
void
dealException
(
String
taskId
,
String
dataId
,
String
enterpriseId
,
String
reason
)
{
preDealService
.
updateStatusByDataId
(
taskId
,
dataId
,
PreDealStatusEnum
.
exception
.
getVal
(),
reason
);
preDealService
.
updateStatusByDataId
(
taskId
,
dataId
,
PreDealStatusEnum
.
exception
.
getVal
(),
reason
);
}
}
@Override
@Override
public
void
dealSuccess
(
String
taskId
,
String
dataId
,
String
enterpriseId
,
String
wxEnterpriseId
)
{
public
void
dealSuccess
(
String
taskId
,
String
dataId
,
String
dataContent
,
String
wxEnterpriseId
)
{
preDealService
.
update
StatusByDataId
(
taskId
,
dataId
,
PreDealStatusEnum
.
computed
.
getVal
(),
"成功"
);
preDealService
.
update
FriendStatusByDataId
(
taskId
,
dataId
,
PreDealStatusEnum
.
computed
.
getVal
(),
"成功"
,
dataContent
);
}
}
public
void
checkStaffTask
(
String
taskId
,
String
wxUserId
)
{
boolean
flag
=
preDealService
.
checkStaffTaskByTaskIdAndPDataId
(
taskId
,
wxUserId
);
if
(
flag
){
List
<
TabHaobanPreDealLog
>
list
=
preDealService
.
listByPDataIdAndTaskId
(
taskId
,
wxUserId
);
if
(
CollectionUtils
.
isNotEmpty
(
list
)){
Map
<
String
,
ExternalUserDTO
>
map
=
new
HashMap
<>();
List
<
TabHaobanPreDealLog
>
dealLogList
=
new
ArrayList
<>();
for
(
TabHaobanPreDealLog
tabHaobanPreDealLog
:
list
)
{
String
dataContent
=
tabHaobanPreDealLog
.
getDataContent
();
if
(
StringUtils
.
isNotBlank
(
dataContent
)){
JSONObject
json
=
JSON
.
parseObject
(
dataContent
);
String
addCreateTime
=
json
.
getString
(
"addCreateTime"
);
String
name
=
json
.
getString
(
"name"
);
String
key
=
addCreateTime
+
name
;
String
unionId
=
json
.
getString
(
"unionId"
);
String
clerkId
=
json
.
getString
(
"clerkId"
);
String
enterpriseId
=
json
.
getString
(
"enterpriseId"
);
String
memberId
=
json
.
getString
(
"memberId"
);
String
storeId
=
json
.
getString
(
"storeId"
);
String
wxEnterpriseId
=
json
.
getString
(
"wxEnterpriseId"
);
ExternalUserDTO
dto
=
map
.
get
(
key
);
if
(
dto
!=
null
){
if
(
tabHaobanPreDealLog
.
getDataType
()
==
SyncTaskStatusEnum
.
self_friend_sync
.
getVal
()){
dto
.
setUnionId
(
unionId
);
dto
.
setClerkId
(
clerkId
);
dto
.
setEnterpriseId
(
enterpriseId
);
dto
.
setMemberId
(
memberId
);
dto
.
setStoreId
(
storeId
);
}
else
if
(
tabHaobanPreDealLog
.
getDataType
()
==
SyncTaskStatusEnum
.
friend_sync
.
getVal
()){
dto
.
setExternalUserId
(
tabHaobanPreDealLog
.
getDataId
());
}
}
else
{
ExternalUserDTO
dto2
=
JSON
.
parseObject
(
dataContent
,
ExternalUserDTO
.
class
);
map
.
put
(
key
,
dto2
);
}
TabHaobanPreDealLog
dealLog
=
new
TabHaobanPreDealLog
();
dealLog
.
setDataId
(
key
);
dealLog
.
setpDataId
(
wxUserId
);
dealLog
.
setDataType
(
PreDealTypeEnum
.
friend_merge
.
getVal
());
dealLog
.
setStatusFlag
(
0
);
dealLog
.
setTaskId
(
taskId
);
dealLog
.
setDataContent
(
JSONObject
.
toJSONString
(
dto
));
dealLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
dealLogList
.
add
(
dealLog
);
}
}
if
(
CollectionUtils
.
isNotEmpty
(
dealLogList
)){
preDealService
.
insert
(
dealLogList
);
HashSet
<
String
>
hashSet
=
(
HashSet
<
String
>)
dealLogList
.
stream
().
map
(
TabHaobanPreDealLog:
:
getDataId
).
collect
(
Collectors
.
toSet
());
dealDepartmentToMq
(
taskId
,
hashSet
,
SyncTaskStatusEnum
.
merge_friend_sync
);
}
}
}
}
@Override
@Override
public
void
checkDepartmentTask
(
String
taskId
)
{
public
void
checkDepartmentTask
(
String
taskId
)
{
// TODO Auto-generated method stub
}
}
/**
* 放入mq处理部门数据
*
* @param taskId
* @param dealList
*/
private
void
dealDepartmentToMq
(
String
taskId
,
Set
<
String
>
dealList
,
SyncTaskStatusEnum
syncTaskStatusEnum
)
{
//预处理分组任务
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
();
}
});
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/SelfFriendSyncOperation.java
0 → 100644
View file @
52f96f2f
package
com
.
gic
.
haoban
.
manage
.
service
.
task
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashSet
;
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.slf4j.LoggerFactory
;
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.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.clerk.api.service.PowerService
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.haoban.manage.api.dto.ClerkMainStoreRelatedDTO
;
import
com.gic.haoban.manage.api.dto.DealParamMqDTO
;
import
com.gic.haoban.manage.api.dto.ExternalUserDTO
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.dto.StaffDTO
;
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.ClerkMainStoreRelatedApiService
;
import
com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.service.entity.TabHaobanPreDealLog
;
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.member.api.dto.MemberDTO
;
import
com.gic.member.api.service.MemberOpenCardBusinessService
;
import
com.gic.mq.sdk.GicMQClient
;
@Service
public
class
SelfFriendSyncOperation
implements
BaseSyncOperation
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SelfFriendSyncOperation
.
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
PowerService
powerService
;
@Autowired
private
MemberOpenCardBusinessService
memberOpenCardBusinessService
;
@Override
public
void
dealSingleByMq
(
DealParamMqDTO
dealParamMqDTO
,
TabHaobanPreDealLog
dataPre
)
{
String
wxEnterpriseId
=
dataPre
.
getWxEnterpriseId
();
String
wxUserId
=
dataPre
.
getpDataId
();
String
taskId
=
dealParamMqDTO
.
getTaskId
();
String
externalUserId
=
dataPre
.
getDataId
();
StaffDTO
staff
=
staffApiService
.
selectByUserIdAndEnterpriseId
(
wxUserId
,
wxEnterpriseId
);
if
(
staff
==
null
){
preDealService
.
updateStatusByDataId
(
taskId
,
externalUserId
,
PreDealStatusEnum
.
exception
.
getVal
(),
"成员不存在"
);
return
;
}
ClerkMainStoreRelatedDTO
mainStore
=
clerkMainStoreRelatedApiService
.
getWxEnterpriseIdAndStaffId
(
wxEnterpriseId
,
staff
.
getStaffId
());
if
(
mainStore
==
null
){
preDealService
.
updateStatusByDataId
(
taskId
,
externalUserId
,
PreDealStatusEnum
.
exception
.
getVal
(),
"主门店不存在"
);
return
;
}
StaffClerkRelationDTO
staffClerkRelationDTO
=
staffClerkRelationService
.
getOneBindByStoreId
(
staff
.
getStaffId
(),
mainStore
.
getStoreId
());
if
(
staffClerkRelationDTO
==
null
){
preDealService
.
updateStatusByDataId
(
taskId
,
externalUserId
,
PreDealStatusEnum
.
exception
.
getVal
(),
"未绑定导购"
);
return
;
}
ExternalUserDTO
pojo
=
memberUnionidRelatedApiService
.
getCorpSelfExternalUseridInfo
(
wxEnterpriseId
,
wxUserId
,
externalUserId
);
if
(
pojo
==
null
){
dealException
(
taskId
,
externalUserId
,
null
,
"好友不存在"
);
}
pojo
.
setEnterpriseId
(
staffClerkRelationDTO
.
getEnterpriseId
());
pojo
.
setStoreId
(
mainStore
.
getStoreId
());
pojo
.
setClerkId
(
staffClerkRelationDTO
.
getClerkId
());
//新增导购和外部联系人关系
String
clerkCode
=
staffClerkRelationDTO
.
getClerkCode
();
ClerkDTO
clerk
=
clerkService
.
getClerkByClerkCode
(
staffClerkRelationDTO
.
getEnterpriseId
(),
clerkCode
);
if
(
clerk
==
null
){
preDealService
.
updateStatusByDataId
(
taskId
,
externalUserId
,
PreDealStatusEnum
.
exception
.
getVal
(),
"导购不存在"
);
return
;
}
String
qrcodeParam
=
clerk
.
getQrcodeParam
();
if
(
StringUtils
.
isBlank
(
qrcodeParam
)){
powerService
.
saveClerkQrCode
(
clerk
.
getClerkId
());
clerk
=
clerkService
.
getClerkByClerkCode
(
staffClerkRelationDTO
.
getEnterpriseId
(),
clerkCode
);
qrcodeParam
=
clerk
.
getQrcodeParam
();
}
MemberDTO
member
=
null
;
if
(
clerk
!=
null
&&
StringUtils
.
isNotBlank
(
qrcodeParam
)&&
StringUtils
.
isNotBlank
(
pojo
.
getUnionId
())){
member
=
memberOpenCardBusinessService
.
getMemberByQywxChannelParam
(
staffClerkRelationDTO
.
getEnterpriseId
(),
pojo
.
getUnionId
(),
""
,
pojo
.
getName
(),
pojo
.
getAvatar
(),
qrcodeParam
);
}
if
(
member
==
null
){
preDealService
.
updateStatusByDataId
(
taskId
,
externalUserId
,
PreDealStatusEnum
.
exception
.
getVal
(),
"会员不存在"
);
}
pojo
.
setMemberId
(
member
.
getMemberId
());
dealSuccess
(
taskId
,
externalUserId
,
JSON
.
toJSONString
(
pojo
),
wxEnterpriseId
);
checkStaffTask
(
taskId
,
wxUserId
);
}
@Override
public
void
dealException
(
String
taskId
,
String
dataId
,
String
enterpriseId
,
String
reason
)
{
preDealService
.
updateStatusByDataId
(
taskId
,
dataId
,
PreDealStatusEnum
.
exception
.
getVal
(),
reason
);
}
@Override
public
void
dealSuccess
(
String
taskId
,
String
dataId
,
String
dataContent
,
String
wxEnterpriseId
)
{
preDealService
.
updateFriendStatusByDataId
(
taskId
,
dataId
,
PreDealStatusEnum
.
computed
.
getVal
(),
"成功"
,
dataContent
);
}
public
void
checkStaffTask
(
String
taskId
,
String
wxUserId
)
{
boolean
flag
=
preDealService
.
checkStaffTaskByTaskIdAndPDataId
(
taskId
,
wxUserId
);
if
(
flag
){
List
<
TabHaobanPreDealLog
>
list
=
preDealService
.
listByPDataIdAndTaskId
(
taskId
,
wxUserId
);
if
(
CollectionUtils
.
isNotEmpty
(
list
)){
List
<
TabHaobanPreDealLog
>
dealLogList
=
new
ArrayList
<>();
Map
<
String
,
ExternalUserDTO
>
map
=
new
HashMap
<>();
for
(
TabHaobanPreDealLog
tabHaobanPreDealLog
:
list
)
{
String
dataContent
=
tabHaobanPreDealLog
.
getDataContent
();
if
(
StringUtils
.
isNotBlank
(
dataContent
)){
JSONObject
json
=
JSON
.
parseObject
(
dataContent
);
String
addCreateTime
=
json
.
getString
(
"addCreateTime"
);
String
name
=
json
.
getString
(
"name"
);
String
key
=
addCreateTime
+
name
;
String
unionId
=
json
.
getString
(
"unionId"
);
String
clerkId
=
json
.
getString
(
"clerkId"
);
String
enterpriseId
=
json
.
getString
(
"enterpriseId"
);
String
memberId
=
json
.
getString
(
"memberId"
);
String
storeId
=
json
.
getString
(
"storeId"
);
String
wxEnterpriseId
=
json
.
getString
(
"wxEnterpriseId"
);
ExternalUserDTO
dto
=
map
.
get
(
key
);
if
(
dto
!=
null
){
if
(
tabHaobanPreDealLog
.
getDataType
()
==
SyncTaskStatusEnum
.
self_friend_sync
.
getVal
()){
dto
.
setUnionId
(
unionId
);
dto
.
setClerkId
(
clerkId
);
dto
.
setEnterpriseId
(
enterpriseId
);
dto
.
setMemberId
(
memberId
);
dto
.
setStoreId
(
storeId
);
}
else
if
(
tabHaobanPreDealLog
.
getDataType
()
==
SyncTaskStatusEnum
.
friend_sync
.
getVal
()){
dto
.
setExternalUserId
(
tabHaobanPreDealLog
.
getDataId
());
}
}
else
{
ExternalUserDTO
dto2
=
JSON
.
parseObject
(
dataContent
,
ExternalUserDTO
.
class
);
map
.
put
(
key
,
dto2
);
}
TabHaobanPreDealLog
dealLog
=
new
TabHaobanPreDealLog
();
dealLog
.
setDataId
(
key
);
dealLog
.
setpDataId
(
wxUserId
);
dealLog
.
setDataType
(
PreDealTypeEnum
.
friend_merge
.
getVal
());
dealLog
.
setStatusFlag
(
0
);
dealLog
.
setTaskId
(
taskId
);
dealLog
.
setDataContent
(
JSONObject
.
toJSONString
(
dto
));
dealLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
dealLogList
.
add
(
dealLog
);
}
}
if
(
CollectionUtils
.
isNotEmpty
(
dealLogList
)){
preDealService
.
insert
(
dealLogList
);
HashSet
<
String
>
hashSet
=
(
HashSet
<
String
>)
dealLogList
.
stream
().
map
(
TabHaobanPreDealLog:
:
getDataId
).
collect
(
Collectors
.
toSet
());
dealDepartmentToMq
(
taskId
,
hashSet
,
SyncTaskStatusEnum
.
merge_friend_sync
);
}
}
}
}
@Override
public
void
checkDepartmentTask
(
String
taskId
)
{
}
/**
* 放入mq处理部门数据
*
* @param taskId
* @param dealList
*/
private
void
dealDepartmentToMq
(
String
taskId
,
Set
<
String
>
dealList
,
SyncTaskStatusEnum
syncTaskStatusEnum
)
{
//预处理分组任务
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
();
}
});
}
}
haoban-manage3-service/src/main/resources/mapper/PreDealLogMapper.xml
View file @
52f96f2f
...
@@ -344,5 +344,33 @@
...
@@ -344,5 +344,33 @@
and wx_enterprise_id =#{wxEnterpriseId} limit 1
and wx_enterprise_id =#{wxEnterpriseId} limit 1
</select>
</select>
<update
id=
"updateFriendStatusByDataId"
>
update tab_haoban_pre_deal_log
<set>
status_flag = #{status,jdbcType=INTEGER},
reason=#{reason},
data_content = #{dataContent}
update_time = now()
</set>
where data_id = #{dataId,jdbcType=INTEGER} and task_id=#{taskId}
</update>
<select
id=
"countFailStaffTaskByTaskIdAndPDataId"
resultType=
"integer"
>
select
count(*)
from tab_haoban_pre_deal_log
where task_id = #{taskId}
and p_data_id =#{pDataId}
and status_flag != 2
and status_flag != 3
</select>
<select
id=
"listByPDataIdAndTaskId"
resultType=
"java.lang.String"
>
select
<include
refid=
"Base_Column_List"
/>
from tab_haoban_pre_deal_log
where task_id = #{taskId}
and p_data_id =#{pDateId}
</select>
</mapper>
</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