发送消息

This commit is contained in:
Guava
2023-06-28 21:12:42 +08:00
parent 6f964bf28d
commit 9a237848b1

View File

@@ -2,7 +2,9 @@ package com.xboe.module.boecase.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.xboe.core.CurrentUser;
import com.xboe.core.event.IEventDataSender;
import com.xboe.core.orm.FieldFilters;
import com.xboe.core.orm.UpdateBuilder;
import com.xboe.data.outside.IOutSideDataService;
import com.xboe.enums.CasesPushStatusEnum;
import com.xboe.module.boecase.dao.CasesDao;
@@ -16,19 +18,24 @@ import com.xboe.module.boecase.entity.CasesRecommendPushRecord;
import com.xboe.module.boecase.service.ICasesRecommendPushRecordService;
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
import com.xboe.system.user.dao.UserDao;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@Transactional
@Slf4j
public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushRecordService {
@@ -50,6 +57,10 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
@Resource
private CasesRecommendPushRecordDao casesRecommendPushRecordDao;
@Autowired(required = false)
private IEventDataSender eventDataSender;
@Override
public boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser) {
@@ -93,10 +104,55 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
casesRecommendPushRecordDao.saveList(pushRecords);
}
}
//发送推送案例消息
sendCasesRecommend(casesRecommend);
return true;
}
/**
* 修改轧辊天
*
* @param id
* @param pushProgress
* @return
*/
private boolean updateProcessStatus(String id, Integer pushProgress) {
return casesRecommendDao.updateMultiFieldById(id, UpdateBuilder.create("pushProgress", pushProgress)) > 0;
}
private void sendCasesRecommend(CasesRecommend casesRecommend) {
List<Integer> pushStatusList = new ArrayList<>();
pushStatusList.add(CasesPushStatusEnum.WAIT_PUSH.getStatus());
List<CasesRecommendPushRecord> casesRecommendPushRecords = casesRecommendPushRecordDao.getGenericDao().findList(CasesRecommendPushRecord.class, FieldFilters.in("pushStatus", pushStatusList));
if (CollectionUtils.isEmpty(casesRecommendPushRecords)) {
//修改为推送完成 --- 无数据 无需推送
updateProcessStatus(casesRecommend.getId(), CasesPushStatusEnum.PUSH_SUCCESS.getStatus());
return;
}
//修改为推送中
updateProcessStatus(casesRecommend.getId(), CasesPushStatusEnum.PUSH_ING.getStatus());
for (CasesRecommendPushRecord casesRecommendPushRecord : casesRecommendPushRecords) {
Integer pushStatus;
try {
eventDataSender.send("案例推荐", "recommendCases", "案例推荐【" + casesRecommendPushRecord.getCaseTitle() + "",
casesRecommendPushRecord.getCaseId(), "99", casesRecommendPushRecord.getCaseTitle(),
casesRecommendPushRecord.getSysCreateAid(), casesRecommendPushRecord.getSysCreateBy(), "");
pushStatus = CasesPushStatusEnum.PUSH_SUCCESS.getStatus();
} catch (Exception e) {
log.error("推荐案例失败", e);
pushStatus = CasesPushStatusEnum.PUSH_FAIL.getStatus();
}
casesRecommendPushRecordDao.updateMultiFieldById(casesRecommendPushRecord.getId(), UpdateBuilder.create("pushStatus", pushStatus), UpdateBuilder.create("pushTime", new Date()));
}
//修改为推送完成 --- 无数据 无需推送
updateProcessStatus(casesRecommend.getId(), CasesPushStatusEnum.PUSH_SUCCESS.getStatus());
}
@Override
public List<CasesRecommendPushRecord> findAllByRecommendId(String recommendId) {
CasesRecommendPushRecord ex = new CasesRecommendPushRecord();