提交 bd2ac67d 作者: gh

延时客服的付费类型

上级 8755380d
...@@ -39,7 +39,7 @@ public class CustomerDelayPublish implements Serializable { ...@@ -39,7 +39,7 @@ public class CustomerDelayPublish implements Serializable {
* 未付费0/付费1/VIP 2 * 未付费0/付费1/VIP 2
*/ */
@TableField(exist = false ) @TableField(exist = false )
private Byte payType; private Integer payType;
/** /**
* 延时客服序列 * 延时客服序列
......
...@@ -56,9 +56,9 @@ public class CustomerDelayPublishServiceImpl extends ServiceImpl<CustomerDelayPu ...@@ -56,9 +56,9 @@ public class CustomerDelayPublishServiceImpl extends ServiceImpl<CustomerDelayPu
List<Future<CustomerDelayPublish>>futureList =new ArrayList<>(); List<Future<CustomerDelayPublish>>futureList =new ArrayList<>();
//号-发送序列-客服id //号-发送序列-客服id
Map<String, Map<Integer, CustomerDelayItemVO>> customerMap = Map<String, Map<Integer, List<CustomerDelayItemVO>>> customerMap =
allDelayCustomerMessage.stream().collect(Collectors.groupingBy(CustomerDelayItemVO::getAppId, allDelayCustomerMessage.stream().collect(Collectors.groupingBy(CustomerDelayItemVO::getAppId,
Collectors.toMap(CustomerDelayItemVO::getPostSort, a -> a, (v1, v2) -> v2))); Collectors.groupingBy(CustomerDelayItemVO::getPostSort)));
Set<CustomerDelayItemVO> needUpdateCustomerDelay = new HashSet<>(); Set<CustomerDelayItemVO> needUpdateCustomerDelay = new HashSet<>();
...@@ -72,7 +72,7 @@ public class CustomerDelayPublishServiceImpl extends ServiceImpl<CustomerDelayPu ...@@ -72,7 +72,7 @@ public class CustomerDelayPublishServiceImpl extends ServiceImpl<CustomerDelayPu
//没token过滤 //没token过滤
if (token==null||"".equals(token)){ continue; } if (token==null||"".equals(token)){ continue; }
//该号下延时客服 //该号下延时客服
Map<Integer,CustomerDelayItemVO> delaySortMap = customerMap.get(appid); Map<Integer,List<CustomerDelayItemVO>> delaySortMap = customerMap.get(appid);
//所有的用户 //所有的用户
List<CustomerDelayPublish> userList = userEntry.getValue(); List<CustomerDelayPublish> userList = userEntry.getValue();
......
...@@ -19,7 +19,7 @@ public interface WeChatService { ...@@ -19,7 +19,7 @@ public interface WeChatService {
* 发送延时客服消息 * 发送延时客服消息
*/ */
Future<CustomerDelayPublish> sendCustomerDelayMessage( AuthorizerToken authorizerToken, CustomerDelayPublish user, Future<CustomerDelayPublish> sendCustomerDelayMessage( AuthorizerToken authorizerToken, CustomerDelayPublish user,
Map<Integer,CustomerDelayItemVO>delaySortMap, Map<Integer,List<CustomerDelayItemVO>>delaySortMap,
Set<CustomerDelayItemVO>needUpdateVoList); Set<CustomerDelayItemVO>needUpdateVoList);
......
...@@ -55,38 +55,45 @@ public class WeChatServiceImpl implements WeChatService{ ...@@ -55,38 +55,45 @@ public class WeChatServiceImpl implements WeChatService{
@Async("myExecutor") @Async("myExecutor")
@Override @Override
public Future<CustomerDelayPublish> sendCustomerDelayMessage( AuthorizerToken authorizerToken, CustomerDelayPublish user, public Future<CustomerDelayPublish> sendCustomerDelayMessage( AuthorizerToken authorizerToken, CustomerDelayPublish user,
Map<Integer,CustomerDelayItemVO> delaySortMap, Map<Integer,List<CustomerDelayItemVO>> delaySortMap,
Set<CustomerDelayItemVO> needUpdateVoList) { Set<CustomerDelayItemVO> needUpdateVoList) {
//token //token
UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromHttpUrl(customerPath).queryParam("access_token",authorizerToken.getAuthorizerAccessToken()); UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromHttpUrl(customerPath).queryParam("access_token",authorizerToken.getAuthorizerAccessToken());
//找到延时序列 //找到延时序列
CustomerDelayItemVO sendCustomerDelay = delaySortMap.get(user.getCustomerSort()); List<CustomerDelayItemVO> sendCustomerDelays = delaySortMap.get(user.getCustomerSort());
if (sendCustomerDelay!=null){ if (sendCustomerDelays!=null){
needUpdateVoList.add(sendCustomerDelay); //找付费类型
//构建请求参数 List<CustomerDelayItemVO> collect = sendCustomerDelays.stream().filter(a -> user.getPayType().equals(a.getIsPay()) ).collect(Collectors.toList());
WeChatCustomerRequestEntity customerRequest = buildCustomerRequest(sendCustomerDelay);
if (customerRequest!=null){ if (!collect.isEmpty()){
customerRequest.setTouser(user.getOpenId()); CustomerDelayItemVO sendCustomerDelay = collect.get(0);
//System.err.println(user.getOpenId());
try {
WeChatResponseEntity response=(WeChatResponseEntity)weChatRestService.httpPostRequest(uriComponentsBuilder, customerRequest,WeChatResponseEntity.class);
//System.err.println(response);
if(SUCCESS_CODE.equals(response.getErrcode())){ needUpdateVoList.add(sendCustomerDelay);
//发送成功计 //构建请求参
sendCustomerDelay.updateSendNum(); WeChatCustomerRequestEntity customerRequest = buildCustomerRequest(sendCustomerDelay);
}else if(EXPIRED_CODE.equals(response.getErrcode()) ){ if (customerRequest!=null){
//token过期重新取一下
AuthorizerToken updateToken = authorizerTokenService.findTokenByAppid(authorizerToken.getAuthorizerAppid());
return sendCustomerDelayMessage(updateToken,user,delaySortMap,needUpdateVoList); customerRequest.setTouser(user.getOpenId());
//System.err.println(user.getOpenId());
try {
WeChatResponseEntity response=(WeChatResponseEntity)weChatRestService.httpPostRequest(uriComponentsBuilder, customerRequest,WeChatResponseEntity.class);
//System.err.println(response);
if(SUCCESS_CODE.equals(response.getErrcode())){
//发送成功计数
sendCustomerDelay.updateSendNum();
}else if(EXPIRED_CODE.equals(response.getErrcode()) ){
//token过期重新取一下
AuthorizerToken updateToken = authorizerTokenService.findTokenByAppid(authorizerToken.getAuthorizerAppid());
return sendCustomerDelayMessage(updateToken,user,delaySortMap,needUpdateVoList);
}
} catch (Exception e) {
e.printStackTrace();
} }
} catch (Exception e) {
e.printStackTrace();
} }
} }
} }
...@@ -99,7 +106,7 @@ public class WeChatServiceImpl implements WeChatService{ ...@@ -99,7 +106,7 @@ public class WeChatServiceImpl implements WeChatService{
user.setCustomerSort(newSort); user.setCustomerSort(newSort);
CustomerDelayItemVO customerDelayItemVO = delaySortMap.get(newSort); CustomerDelayItemVO customerDelayItemVO = delaySortMap.get(newSort)!=null?delaySortMap.get(newSort).get(0):null;
if (customerDelayItemVO!=null&&customerDelayItemVO.getTimeInterval()!=null){ if (customerDelayItemVO!=null&&customerDelayItemVO.getTimeInterval()!=null){
......
...@@ -39,6 +39,10 @@ public class CustomerDelayItemVO implements Serializable { ...@@ -39,6 +39,10 @@ public class CustomerDelayItemVO implements Serializable {
*/ */
private String type; private String type;
/**
* 付费类型(0未付费 1已付费)
*/
private Integer isPay;
/** /**
* 推广标题 * 推广标题
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论