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
3cf28e59
Commit
3cf28e59
authored
Mar 31, 2021
by
fudahua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
导购刷新好友超时时间
parent
be8586c3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
73 additions
and
1 deletions
+73
-1
WxApiLimitException.java
.../haoban/manage/service/exception/WxApiLimitException.java
+13
-0
MemberUnionidRelatedApiServiceImpl.java
.../service/out/impl/MemberUnionidRelatedApiServiceImpl.java
+4
-0
FriendSyncNewOperation.java
...an/manage/service/task/friend/FriendSyncNewOperation.java
+56
-1
No files found.
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/exception/WxApiLimitException.java
0 → 100644
View file @
3cf28e59
package
com
.
gic
.
haoban
.
manage
.
service
.
exception
;
/**
* Created 2021/3/31.
*
* @author hua
*/
public
class
WxApiLimitException
extends
RuntimeException
{
public
WxApiLimitException
(
String
message
)
{
super
(
message
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/MemberUnionidRelatedApiServiceImpl.java
View file @
3cf28e59
...
...
@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.gic.haoban.base.api.common.ServiceResponse
;
import
com.gic.haoban.manage.api.dto.*
;
import
com.gic.haoban.manage.api.enums.SecretTypeEnum
;
import
com.gic.haoban.manage.service.exception.WxApiLimitException
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.wechat.api.dto.qywx.QywxIinkExternalMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxImageExternalMessageDTO
;
...
...
@@ -872,6 +873,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if
(
StringUtils
.
isBlank
(
uJ
)){
log
.
info
(
"好友不存在"
);
return
null
;
}
else
if
(
uJ
.
equals
(
"1"
))
{
log
.
info
(
"限制次数"
);
throw
new
WxApiLimitException
(
"getExternalUseridInfo接口次数限制"
);
}
String
name
=
""
;
String
createTime
=
""
;
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/friend/FriendSyncNewOperation.java
View file @
3cf28e59
...
...
@@ -15,6 +15,7 @@ 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.exception.WxApiLimitException
;
import
com.gic.haoban.manage.service.service.PreDealService
;
import
com.gic.haoban.manage.service.service.StaffClerkRelationService
;
import
com.gic.haoban.manage.service.service.SyncTaskService
;
...
...
@@ -61,6 +62,8 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
@Autowired
private
FriendClerkSyncNewOperation
friendClerkSyncNewOperation
;
private
static
final
String
TRY_AGAIN
=
"haoban_fresh_wx_friend_again_"
;
@Override
public
void
dealSingleByMq
(
DealParamMqDTO
dealParamMqDTO
,
TabHaobanPreDealLog
dataPre
)
{
logger
.
info
(
"第三方好友合并:{}"
,
JSONObject
.
toJSONString
(
dataPre
));
...
...
@@ -109,7 +112,10 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
//更新状态
preDealService
.
updateFriendStatusByDataId
(
taskId
,
dataPre
.
getDataId
(),
PreDealStatusEnum
.
computed
.
getVal
(),
reason
,
externalUserDTO
.
getMemberId
(),
relationKey
);
dealSuccess
(
taskId
,
dataPre
.
getDataId
(),
dataPre
.
getpDataId
(),
wxEnterpriseId
);
}
catch
(
WxApiLimitException
e
)
{
logger
.
info
(
"接口次数限制:{}"
,
JSONObject
.
toJSONString
(
dataPre
));
dealFlag
=
tryAgainToMq
(
dataPre
);
reason
=
"接口重试超出限制"
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
logger
.
info
(
"同步失败:{},{}"
,
JSONObject
.
toJSONString
(
dataPre
),
e
);
...
...
@@ -122,6 +128,31 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
}
}
/**
* 重试机制
*
* @param dataPre
* @return
*/
private
boolean
tryAgainToMq
(
TabHaobanPreDealLog
dataPre
)
{
logger
.
info
(
"需要重试:{}"
,
dataPre
.
getDataId
());
String
key
=
TRY_AGAIN
+
dataPre
.
getTaskId
()
+
":"
+
dataPre
.
getDataId
();
Object
cache
=
RedisUtil
.
getCache
(
key
);
if
(
null
==
cache
)
{
RedisUtil
.
setCache
(
key
,
1
,
2L
,
TimeUnit
.
HOURS
);
}
else
{
Integer
count
=
Integer
.
valueOf
(
cache
.
toString
());
RedisUtil
.
setCache
(
key
,
count
+
1
);
if
(
count
>
4
)
{
return
false
;
}
}
HashSet
<
String
>
reTrysIds
=
new
HashSet
<>();
reTrysIds
.
add
(
dataPre
.
getDataId
());
dealDepartmentToMq
(
dataPre
.
getTaskId
(),
reTrysIds
,
SyncTaskStatusEnum
.
friend_sync
);
return
true
;
}
private
String
dealMerge
(
ExternalUserDTO
externalUserDTO
,
TabHaobanPreDealLog
dataPre
)
{
String
wxEnterpriseId
=
dataPre
.
getWxEnterpriseId
();
String
wxUserId
=
dataPre
.
getpDataId
();
...
...
@@ -226,5 +257,29 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
friendClerkSyncNewOperation
.
checkDepartmentTask
(
taskId
);
}
/**
* 放入mq处理部门数据
*
* @param taskId
* @param dealList
*/
private
void
dealDepartmentToMq
(
String
taskId
,
Set
<
String
>
dealList
,
SyncTaskStatusEnum
syncTaskStatusEnum
)
{
//预处理分组任务
syncTaskService
.
updateTaskStatus
(
taskId
,
syncTaskStatusEnum
.
getVal
());
List
<
String
>
ret
=
dealList
.
stream
().
map
(
relationId
->
{
DealParamMqDTO
dealParamMqDTO
=
new
DealParamMqDTO
();
dealParamMqDTO
.
setData
(
relationId
);
dealParamMqDTO
.
setTaskId
(
taskId
);
dealParamMqDTO
.
setType
(
syncTaskStatusEnum
.
getVal
());
return
JSONObject
.
toJSONString
(
dealParamMqDTO
);
}).
collect
(
Collectors
.
toList
());
GicMQClient
clientInstance
=
GICMQClientUtil
.
getClientInstance
();
try
{
clientInstance
.
sendBatchMessages
(
"departmentSyncDealMq"
,
ret
);
}
catch
(
Exception
e
)
{
logger
.
info
(
"发送失败:{},{}"
,
taskId
);
e
.
printStackTrace
();
}
}
}
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