mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 11:26:50 +08:00
提交推送逻辑
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package com.xboe.enums;
|
||||
|
||||
/**
|
||||
* @author : civism
|
||||
* @version 1.0
|
||||
* @date 2023/6/17 16:13
|
||||
*/
|
||||
public enum CasesPushStatusEnum {
|
||||
|
||||
/**
|
||||
* 推送状态1未推送2推送中3已推送4推送失败5已撤回
|
||||
*/
|
||||
WAIT_PUSH(1,"未推送"),
|
||||
PUSH_ING(2,"推送中"),
|
||||
PUSH_SUCCESS(3,"已推送"),
|
||||
PUSH_FAIL(4,"推送失败"),
|
||||
PUSH_REVOKE(5,"已撤回"),
|
||||
|
||||
;
|
||||
|
||||
|
||||
CasesPushStatusEnum(Integer status, String desc) {
|
||||
this.status = status;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
private Integer status;
|
||||
|
||||
|
||||
private String desc;
|
||||
|
||||
|
||||
public Integer getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.xboe.enums;
|
||||
|
||||
/**
|
||||
* @author : civism
|
||||
* @version 1.0
|
||||
* @date 2023/6/17 16:22
|
||||
*/
|
||||
public enum CasesRecommendLaunchTypeEnum {
|
||||
|
||||
/**
|
||||
* 发起类型 1 正常选择 2 文件导入
|
||||
*/
|
||||
COMMON(1, "正常选择"),
|
||||
IMPORT(2, "文件导入"),
|
||||
;
|
||||
|
||||
|
||||
private Integer launchType;
|
||||
|
||||
private String desc;
|
||||
|
||||
|
||||
CasesRecommendLaunchTypeEnum(Integer launchType, String desc) {
|
||||
this.launchType = launchType;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getLaunchType() {
|
||||
return launchType;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.xboe.module.boecase.api;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import cn.hutool.poi.excel.ExcelWriter;
|
||||
@@ -9,9 +11,11 @@ import com.xboe.common.PageList;
|
||||
import com.xboe.common.Pagination;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.api.ApiBaseController;
|
||||
import com.xboe.enums.CasesRecommendLaunchTypeEnum;
|
||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
|
||||
import com.xboe.module.boecase.service.ICasesRecommendLaunchImportService;
|
||||
import com.xboe.module.boecase.service.ICasesRecommendPushRecordService;
|
||||
import com.xboe.module.boecase.service.ICasesRecommendService;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||
@@ -39,6 +43,9 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
@Resource
|
||||
private ICasesRecommendLaunchImportService iCasesRecommendLaunchImportService;
|
||||
|
||||
@Resource
|
||||
private ICasesRecommendPushRecordService iCasesRecommendPushRecordService;
|
||||
|
||||
/**
|
||||
* 用于后台管理分页
|
||||
*
|
||||
@@ -131,8 +138,19 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
*/
|
||||
@PostMapping("/launch")
|
||||
public JsonResponse<Boolean> excelImport(@RequestBody CasesRecommendLaunchVo casesRecommendLaunch) {
|
||||
if (CasesRecommendLaunchTypeEnum.COMMON.getLaunchType().equals(casesRecommendLaunch.getLaunchType()) || CasesRecommendLaunchTypeEnum.IMPORT.getLaunchType().equals(casesRecommendLaunch.getLaunchType())) {
|
||||
throw new RuntimeException("参数错误");
|
||||
}
|
||||
if (CasesRecommendLaunchTypeEnum.COMMON.getLaunchType().equals(casesRecommendLaunch.getLaunchType()) && CollectionUtil.isEmpty(casesRecommendLaunch.getCasesIdList())) {
|
||||
throw new RuntimeException("推送案例id不能为空");
|
||||
} else if (CasesRecommendLaunchTypeEnum.IMPORT.getLaunchType().equals(casesRecommendLaunch.getLaunchType()) && StrUtil.isEmpty(casesRecommendLaunch.getImportId())) {
|
||||
throw new RuntimeException("导入id不能为空");
|
||||
}
|
||||
if (CollectionUtil.isEmpty(casesRecommendLaunch.getPushUserIdList())) {
|
||||
throw new RuntimeException("参数错误");
|
||||
}
|
||||
|
||||
return success(true);
|
||||
return success(iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
package com.xboe.module.boecase.service;
|
||||
|
||||
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||
|
||||
public interface ICasesRecommendPushRecordService {
|
||||
|
||||
|
||||
/**
|
||||
* 案例推送
|
||||
*
|
||||
* @param casesRecommendLaunch
|
||||
* @return
|
||||
*/
|
||||
boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,96 @@
|
||||
package com.xboe.module.boecase.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.xboe.core.orm.FieldFilters;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.data.outside.IOutSideDataService;
|
||||
import com.xboe.enums.CasesPushStatusEnum;
|
||||
import com.xboe.module.boecase.dao.CasesDao;
|
||||
import com.xboe.module.boecase.dao.CasesRecommendDao;
|
||||
import com.xboe.module.boecase.dao.CasesRecommendLaunchImportDataDao;
|
||||
import com.xboe.module.boecase.dao.CasesRecommendPushRecordDao;
|
||||
import com.xboe.module.boecase.entity.Cases;
|
||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||
import com.xboe.module.boecase.entity.CasesRecommendLaunchImportData;
|
||||
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 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.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Transactional
|
||||
public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushRecordService {
|
||||
|
||||
|
||||
@Resource
|
||||
private UserDao userDao;
|
||||
|
||||
@Resource
|
||||
private IOutSideDataService outSideDataService;
|
||||
|
||||
@Resource
|
||||
private CasesDao casesDao;
|
||||
|
||||
@Resource
|
||||
private CasesRecommendDao casesRecommendDao;
|
||||
|
||||
@Resource
|
||||
private CasesRecommendLaunchImportDataDao casesRecommendLaunchImportDataDao;
|
||||
|
||||
@Resource
|
||||
private CasesRecommendPushRecordDao casesRecommendPushRecordDao;
|
||||
|
||||
@Override
|
||||
public boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch) {
|
||||
//当前用户登录信息
|
||||
UserData userInfoByUserId = outSideDataService.getUserInfoByUserId(null);
|
||||
|
||||
CasesRecommend casesRecommend = new CasesRecommend();
|
||||
casesRecommend.setRecommendId(userInfoByUserId.getId());
|
||||
casesRecommend.setRecommendBy(userInfoByUserId.getName());
|
||||
casesRecommend.setRecommendTime(LocalDateTime.now());
|
||||
casesRecommend.setCaseCount(casesRecommendLaunch.getCasesIdList().size());
|
||||
casesRecommend.setUserCount(casesRecommendLaunch.getPushUserIdList().size());
|
||||
casesRecommend.setRecommendOrgName(casesRecommendLaunch.getRecommendOrgName());
|
||||
casesRecommendDao.save(casesRecommend);
|
||||
|
||||
List<String> caseIds = new ArrayList<>();
|
||||
if (casesRecommendLaunch.getLaunchType() == 1) {
|
||||
caseIds.addAll(casesRecommendLaunch.getCasesIdList());
|
||||
} else {
|
||||
List<CasesRecommendLaunchImportData> importDataList = casesRecommendLaunchImportDataDao.findList(FieldFilters.eq("import_id", casesRecommendLaunch.getImportId()));
|
||||
List<String> caseIdList = importDataList.stream().filter(casesRecommendLaunchImportData -> casesRecommendLaunchImportData.getStatus() == 1).map(CasesRecommendLaunchImportData::getCaseId).collect(Collectors.toList());
|
||||
caseIds.addAll(caseIdList);
|
||||
}
|
||||
for (String caseId : caseIds) {
|
||||
Cases cases = casesDao.get(caseId);
|
||||
List<CasesRecommendPushRecord> pushRecords = new ArrayList<>();
|
||||
Map<String, Object> userMap = userDao.findMap("id", "name", FieldFilters.in("id", casesRecommendLaunch.getPushUserIdList()));
|
||||
|
||||
for (String userId : casesRecommendLaunch.getPushUserIdList()) {
|
||||
CasesRecommendPushRecord casesRecommendPushRecord = new CasesRecommendPushRecord();
|
||||
casesRecommendPushRecord.setRecommendId(casesRecommend.getId());
|
||||
casesRecommendPushRecord.setCaseId(caseId);
|
||||
casesRecommendPushRecord.setCaseTitle(cases.getTitle());
|
||||
casesRecommendPushRecord.setPushUserId(userId);
|
||||
casesRecommendPushRecord.setPushUserName(userMap.get(userId) != null ? userMap.get(userId).toString() : null);
|
||||
casesRecommendPushRecord.setPushStatus(CasesPushStatusEnum.WAIT_PUSH.getStatus());
|
||||
pushRecords.add(casesRecommendPushRecord);
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(pushRecords)) {
|
||||
casesRecommendPushRecordDao.saveList(pushRecords);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user