Commit 4ba0c821 by songyinghui

feat: 取当前用户分享朋友圈最近的一个

parent 864ab228
......@@ -339,7 +339,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
if (qwInfo.needOpenUserId3th()) {
userId = staff.getWxOpenUseId();
}
List<String> externalUserIds = this.queryMomentResult(corpId, userId);
List<String> externalUserIds = this.queryMomentResult(corpId, userId, clerkShareLogBo.getCreateTime());
if (CollectionUtils.isEmpty(externalUserIds)) {
log.info("处理导购群发朋友圈触达客户日志, 成员无好友. staffId:{}", clerkShareLogBo.getStaffId());
return;
......@@ -471,7 +471,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
* @param userId
* @return
*/
public List<String> queryMomentResult(String corpid, String userId) {
public List<String> queryMomentResult(String corpid, String userId, Date createTime) {
Date currentTime = new Date();
QywxMomentInfoQDTO qywxMomentInfoQDTO = new QywxMomentInfoQDTO();
......@@ -486,14 +486,23 @@ public class GroupMessageServiceImpl implements GroupMessageService {
log.info("查询客户发表朋友圈记录失败 {}", JSON.toJSONString(serviceResponse));
return Collections.emptyList();
}
List<String> result = new ArrayList<>();
for (QywxMomentRespDTO.QywxMomentInfoDTO qywxMomentInfo : serviceResponse.getResult().getQywxMomentInfos()) {
List<String> externalUserIds = this.queryMomentSendResultList(corpid, userId, qywxMomentInfo.getMomentId());
if (CollectionUtils.isNotEmpty(externalUserIds)) {
result.addAll(externalUserIds);
}
long filterTime = createTime.getTime() / 1000;
Optional<QywxMomentRespDTO.QywxMomentInfoDTO> before = serviceResponse.getResult().getQywxMomentInfos()
.stream()
.filter(item -> item.getCreateTime() - filterTime <= 0)
.min((first, second) -> (int) (second.getCreateTime() - first.getCreateTime()));
if (before.isPresent()) {
return this.queryMomentSendResultList(corpid, userId, before.get().getMomentId());
}
return result;
Optional<QywxMomentRespDTO.QywxMomentInfoDTO> after = serviceResponse.getResult().getQywxMomentInfos()
.stream()
.filter(item -> item.getCreateTime() - filterTime >= 0)
.min((first, second) -> (int) (second.getCreateTime() - first.getCreateTime()));
if (after.isPresent()) {
return this.queryMomentSendResultList(corpid, userId, after.get().getMomentId());
}
return Collections.emptyList();
}
public List<String> queryMomentSendResultList(String corpid, String userId, String momentId) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment