提交 21bb985f 编写于 作者: 1 18356073052

重构群发消息任务

上级 7d2c08d2
......@@ -15,12 +15,14 @@ import com.linkwechat.wecom.domain.vo.CustomerMessagePushVo;
import com.linkwechat.wecom.mapper.WeCustomerMessageOriginalMapper;
import com.linkwechat.wecom.mapper.WeCustomerMessgaeResultMapper;
import com.linkwechat.wecom.service.IWeCustomerMessageOriginalService;
import com.linkwechat.wecom.service.IWeCustomerMessageService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 群发消息 原始数据信息表 we_customer_messageOriginal
......@@ -40,6 +42,9 @@ public class WeCustomerMessageOriginalServiceImpl extends ServiceImpl<WeCustomer
@Autowired
private WeCustomerMessgaeResultMapper weCustomerMessgaeResultMapper;
@Autowired
private IWeCustomerMessageService weCustomerMessageService;
@Autowired
private ObjectMapper objectMapper;
......@@ -58,22 +63,29 @@ public class WeCustomerMessageOriginalServiceImpl extends ServiceImpl<WeCustomer
CustomerMessagePushVo customerMessagePushDetail = weCustomerMessageOriginalMapper.findCustomerMessagePushDetail(messageId);
AtomicInteger atomicInteger=new AtomicInteger();
//拉取消息发送结果
CompletableFuture.runAsync(()->{
CompletableFuture.runAsync(()->{
String msgid = customerMessagePushDetail.getMsgid();
if(StringUtils.isNotEmpty(msgid)){
List<String> msgIds = null;
try {
msgIds = objectMapper.readValue(msgid,new TypeReference<List<String>>() { });
} catch (JsonProcessingException e) {
e.printStackTrace();
}
if(CollectionUtils.isNotEmpty(msgIds)){
msgIds.forEach(m->{
QueryCustomerMessageStatusResultDataObjectDto dataObjectDto=new QueryCustomerMessageStatusResultDataObjectDto();
......@@ -82,24 +94,38 @@ public class WeCustomerMessageOriginalServiceImpl extends ServiceImpl<WeCustomer
//拉取发送结果
QueryCustomerMessageStatusResultDto queryCustomerMessageStatusResultDto = weCustomerMessagePushClient.queryCustomerMessageStatus(dataObjectDto);
if (WeConstans.WE_SUCCESS_CODE.equals(queryCustomerMessageStatusResultDto.getErrcode())) {
List<DetailMessageStatusResultDto> detailList = queryCustomerMessageStatusResultDto.getDetail_list();
detailList.forEach(d-> weCustomerMessgaeResultMapper.updateWeCustomerMessgaeResult(messageId,d.getChat_id(),d.getExternal_userid(),d.getStatus(),d.getSend_time()));
detailList.forEach(d-> {
if(d.getStatus().equals("1")){
atomicInteger.incrementAndGet();
}
weCustomerMessgaeResultMapper.updateWeCustomerMessgaeResult(messageId,d.getChat_id(),d.getExternal_userid(),d.getStatus(),d.getSend_time());
});
}
});
}
}
});
//更新微信实际发送条数
weCustomerMessageService.updateWeCustomerMessageActualSend(messageId,atomicInteger.get());
});
return weCustomerMessageOriginalMapper.findCustomerMessagePushDetail(messageId);
return customerMessagePushDetail;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册