mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 03:46: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;
|
package com.xboe.module.boecase.api;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.collection.ListUtil;
|
import cn.hutool.core.collection.ListUtil;
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.poi.excel.ExcelReader;
|
import cn.hutool.poi.excel.ExcelReader;
|
||||||
import cn.hutool.poi.excel.ExcelUtil;
|
import cn.hutool.poi.excel.ExcelUtil;
|
||||||
import cn.hutool.poi.excel.ExcelWriter;
|
import cn.hutool.poi.excel.ExcelWriter;
|
||||||
@@ -9,9 +11,11 @@ import com.xboe.common.PageList;
|
|||||||
import com.xboe.common.Pagination;
|
import com.xboe.common.Pagination;
|
||||||
import com.xboe.core.JsonResponse;
|
import com.xboe.core.JsonResponse;
|
||||||
import com.xboe.core.api.ApiBaseController;
|
import com.xboe.core.api.ApiBaseController;
|
||||||
|
import com.xboe.enums.CasesRecommendLaunchTypeEnum;
|
||||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||||
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
|
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
|
||||||
import com.xboe.module.boecase.service.ICasesRecommendLaunchImportService;
|
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.service.ICasesRecommendService;
|
||||||
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||||
@@ -39,6 +43,9 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
@Resource
|
@Resource
|
||||||
private ICasesRecommendLaunchImportService iCasesRecommendLaunchImportService;
|
private ICasesRecommendLaunchImportService iCasesRecommendLaunchImportService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ICasesRecommendPushRecordService iCasesRecommendPushRecordService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于后台管理分页
|
* 用于后台管理分页
|
||||||
*
|
*
|
||||||
@@ -131,8 +138,19 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/launch")
|
@PostMapping("/launch")
|
||||||
public JsonResponse<Boolean> excelImport(@RequestBody CasesRecommendLaunchVo casesRecommendLaunch) {
|
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;
|
package com.xboe.module.boecase.service;
|
||||||
|
|
||||||
|
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||||
|
|
||||||
public interface ICasesRecommendPushRecordService {
|
public interface ICasesRecommendPushRecordService {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 案例推送
|
||||||
|
*
|
||||||
|
* @param casesRecommendLaunch
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,96 @@
|
|||||||
package com.xboe.module.boecase.service.impl;
|
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.service.ICasesRecommendPushRecordService;
|
||||||
|
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||||
|
import com.xboe.system.user.dao.UserDao;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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
|
@Service
|
||||||
@Transactional
|
@Transactional
|
||||||
public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushRecordService {
|
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