修改案例推荐列表重新推送逻辑代码

This commit is contained in:
wangwenchao
2023-06-30 21:29:58 +08:00
parent 9339cb8c59
commit e5607e36d8
3 changed files with 20 additions and 15 deletions

View File

@@ -1,6 +1,7 @@
package com.xboe.module.boecase.service;
import com.xboe.core.CurrentUser;
import com.xboe.module.boecase.entity.CasesRecommend;
import com.xboe.module.boecase.entity.CasesRecommendPushRecord;
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
@@ -27,7 +28,7 @@ public interface ICasesRecommendPushRecordService {
/**
* 重新推送或撤回
* @param isWithdraw 是否撤回
* @param casesRecommendId 案例推荐ID
* @param casesRecommend 案例推荐
*/
void rePushOrWithdraw(boolean isWithdraw, String casesRecommendId);
void rePushOrWithdraw(boolean isWithdraw, CasesRecommend casesRecommend);
}

View File

@@ -1,6 +1,7 @@
package com.xboe.module.boecase.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.xboe.api.ThirdApi;
import com.xboe.api.vo.*;
@@ -168,6 +169,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
private void sendCasesRecommend(CasesRecommend casesRecommend) {
List<Integer> pushStatusList = new ArrayList<>();
pushStatusList.add(CasesPushStatusEnum.WAIT_PUSH.getStatus());
pushStatusList.add(CasesPushStatusEnum.PUSH_REVOKE.getStatus());
List<CasesRecommendPushRecord> casesRecommendPushRecords = casesRecommendPushRecordDao.getGenericDao().findList(CasesRecommendPushRecord.class, FieldFilters.in("pushStatus", pushStatusList));
if (CollectionUtils.isEmpty(casesRecommendPushRecords)) {
//修改为推送完成 --- 无数据 无需推送
@@ -206,22 +208,25 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
}
@Override
public void rePushOrWithdraw(boolean isWithdraw, String casesRecommendId) {
if (StringUtils.isEmpty(casesRecommendId)) {
public void rePushOrWithdraw(boolean isWithdraw, CasesRecommend casesRecommend) {
if (ObjectUtil.isEmpty(casesRecommend)) {
throw new RuntimeException("缺少必要参数");
}
List<CasesRecommendPushRecord> recordList = findAllByRecommendId(casesRecommendId);
if (isWithdraw) {
List<CasesRecommendPushRecord> recordList = findAllByRecommendId(casesRecommend.getId());
recordList.stream().forEach(record ->
record.setPushStatus(CasesPushStatusEnum.PUSH_REVOKE.getStatus())
);
if (CollectionUtil.isNotEmpty(recordList)) {
casesRecommendPushRecordDao.saveList(recordList);
}
} else {
recordList.stream().filter(it -> CasesPushStatusEnum.PUSH_SUCCESS.getStatus() != it.getPushStatus()).forEach(record ->
record.setPushStatus(CasesPushStatusEnum.WAIT_PUSH.getStatus())
);
}
if (CollectionUtil.isNotEmpty(recordList)) {
casesRecommendPushRecordDao.saveList(recordList);
try {
//发送推送案例消息
sendCasesRecommend(casesRecommend);
} catch (Exception e) {
log.error("推送失败", e);
}
}
}
}

View File

@@ -66,14 +66,13 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService {
|| CasesPushStatusEnum.PUSH_ING.getStatus().equals(db.getPushProgress())
){
// 当为推送成功时为
iCasesRecommendPushRecordService.rePushOrWithdraw(true, casesRecommendPushVo.getCasesRecommendId());
iCasesRecommendPushRecordService.rePushOrWithdraw(true, db);
db.setPushProgress(CasesPushStatusEnum.PUSH_REVOKE.getStatus());
casesRecommendDao.update(db);
}else if (CasesPushStatusEnum.PUSH_FAIL.getStatus().equals(db.getPushProgress())
|| CasesPushStatusEnum.PUSH_REVOKE.getStatus().equals(db.getPushProgress())){
// 推送失败或者已撤回时
iCasesRecommendPushRecordService.rePushOrWithdraw(false, casesRecommendPushVo.getCasesRecommendId());
db.setPushProgress(CasesPushStatusEnum.WAIT_PUSH.getStatus());
iCasesRecommendPushRecordService.rePushOrWithdraw(false, db);
}
casesRecommendDao.update(db);
}
}