mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 11:26:50 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -11,13 +11,16 @@ 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.CasesPushStatusEnum;
|
||||
import com.xboe.enums.CasesRecommendLaunchTypeEnum;
|
||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
|
||||
import com.xboe.module.boecase.entity.CasesRecommendPushRecord;
|
||||
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.CasesRecommendPushVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -27,7 +30,11 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 案例推荐表
|
||||
@@ -153,5 +160,84 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
return success(iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch));
|
||||
}
|
||||
|
||||
/**
|
||||
* 信息下载
|
||||
*
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@GetMapping("/info_download")
|
||||
public void infoDownload(String casesRecommendId, HttpServletResponse response) {
|
||||
if (StringUtils.isEmpty(casesRecommendId)) {
|
||||
throw new RuntimeException("缺少必要参数");
|
||||
}
|
||||
// 拿取表格里需要的数据
|
||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(casesRecommendId);
|
||||
// 用个List<Map>装表格的所有内容
|
||||
// 拼接上列明。我这里用的最土的方法,很不优雅别学我
|
||||
List<Map<String, Object>> rows = recordList.stream().map(it -> {
|
||||
Map<String, Object> row = new LinkedHashMap<>();
|
||||
row.put("案例名称", it.getCaseTitle());
|
||||
row.put("推送用户", it.getPushUserName());
|
||||
row.put("所属组织", "it.get");
|
||||
row.put("推送时间", it.getPushTime());
|
||||
row.put("是否查看", it.getReadFlag());
|
||||
row.put("首次查看时间", it.getReadStartTime());
|
||||
row.put("总查看时间", it.getReadEndTime());
|
||||
return row;
|
||||
}).collect(Collectors.toList());
|
||||
// 通过工具类创建writer
|
||||
try (ExcelWriter writer = ExcelUtil.getWriter(true);
|
||||
// 输出流
|
||||
ServletOutputStream servletOutputStream = response.getOutputStream();
|
||||
){
|
||||
// 一次性写出内容
|
||||
writer.write(rows, true);
|
||||
// 微调一下每个列的宽度
|
||||
writer.setColumnWidth(0,50);
|
||||
writer.setColumnWidth(1,16);
|
||||
writer.setColumnWidth(2,24);
|
||||
writer.setColumnWidth(3,34);
|
||||
writer.setColumnWidth(4,10);
|
||||
writer.setColumnWidth(5,20);
|
||||
writer.setColumnWidth(6,20);
|
||||
// 此处的response.setContentType 和教程里的不同
|
||||
response.setContentType("application/octet-stream");
|
||||
// filename就是表格的名字,这个无所谓,反正前端还会重命名
|
||||
response.setHeader("Content-Disposition","attachment;filename=test.xlsx");
|
||||
|
||||
writer.flush(servletOutputStream,true);
|
||||
}catch (Exception e){
|
||||
throw new RuntimeException(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 重新推送或撤回
|
||||
*
|
||||
* @param casesRecommendPushVo
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/rePushOrWithdraw")
|
||||
public JsonResponse<Boolean> rePushOrWithdraw(@RequestBody CasesRecommendPushVo casesRecommendPushVo) {
|
||||
if (StringUtils.isEmpty(casesRecommendPushVo.getCasesRecommendId())) {
|
||||
throw new RuntimeException("缺少必要参数");
|
||||
}
|
||||
// 查询
|
||||
CasesRecommend db = iCasesRecommendService.findById(casesRecommendPushVo.getCasesRecommendId());
|
||||
if (CasesPushStatusEnum.PUSH_SUCCESS.name().equalsIgnoreCase(db.getPushProgress())){
|
||||
// 当为推送成功时为
|
||||
iCasesRecommendPushRecordService.rePushOrWithdraw(true, casesRecommendPushVo.getCasesRecommendId());
|
||||
}else if (CasesPushStatusEnum.PUSH_FAIL.name().equalsIgnoreCase(db.getPushProgress())
|
||||
|| CasesPushStatusEnum.PUSH_REVOKE.name().equalsIgnoreCase(db.getPushProgress())){
|
||||
// 推送失败或者已撤回时
|
||||
iCasesRecommendPushRecordService.rePushOrWithdraw(false, casesRecommendPushVo.getCasesRecommendId());
|
||||
}
|
||||
|
||||
return success(true);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.xboe.module.boecase.service;
|
||||
|
||||
import com.xboe.module.boecase.entity.CasesRecommendPushRecord;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ICasesRecommendPushRecordService {
|
||||
|
||||
|
||||
@@ -13,4 +16,17 @@ public interface ICasesRecommendPushRecordService {
|
||||
*/
|
||||
boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch);
|
||||
|
||||
/**
|
||||
* 根据案例推荐ID查询案例推送列表信息
|
||||
* @param recommendId
|
||||
* @return
|
||||
*/
|
||||
List<CasesRecommendPushRecord> findAllByRecommendId(String recommendId);
|
||||
|
||||
/**
|
||||
* 重新推送或撤回
|
||||
* @param isWithdraw 是否撤回
|
||||
* @param casesRecommendId 案例推荐ID
|
||||
*/
|
||||
void rePushOrWithdraw(boolean isWithdraw, String casesRecommendId);
|
||||
}
|
||||
|
||||
@@ -19,4 +19,11 @@ public interface ICasesRecommendService {
|
||||
* @param id
|
||||
*/
|
||||
void delete(String id);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
CasesRecommend findById(String id);
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ 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.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -61,6 +62,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
casesRecommend.setCaseCount(casesRecommendLaunch.getCasesIdList().size());
|
||||
casesRecommend.setUserCount(casesRecommendLaunch.getPushUserIdList().size());
|
||||
casesRecommend.setRecommendOrgName(casesRecommendLaunch.getRecommendOrgName());
|
||||
casesRecommend.setPushProgress(CasesPushStatusEnum.WAIT_PUSH.name());
|
||||
casesRecommendDao.save(casesRecommend);
|
||||
|
||||
List<String> caseIds = new ArrayList<>();
|
||||
@@ -93,4 +95,31 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CasesRecommendPushRecord> findAllByRecommendId(String recommendId) {
|
||||
CasesRecommendPushRecord ex = new CasesRecommendPushRecord();
|
||||
ex.setRecommendId(recommendId);
|
||||
return casesRecommendPushRecordDao.findListByExample(ex);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rePushOrWithdraw(boolean isWithdraw, String casesRecommendId) {
|
||||
if (StringUtils.isEmpty(casesRecommendId)) {
|
||||
throw new RuntimeException("缺少必要参数");
|
||||
}
|
||||
List<CasesRecommendPushRecord> recordList = findAllByRecommendId(casesRecommendId);
|
||||
if (isWithdraw) {
|
||||
recordList.stream().forEach(record ->
|
||||
record.setPushStatus(CasesPushStatusEnum.PUSH_REVOKE.getStatus())
|
||||
);
|
||||
} else {
|
||||
recordList.stream().forEach(record ->
|
||||
record.setPushStatus(CasesPushStatusEnum.PUSH_ING.getStatus())
|
||||
);
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||
casesRecommendPushRecordDao.saveList(recordList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,4 +46,9 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService {
|
||||
public void delete(String id) {
|
||||
casesRecommendDao.setDeleted(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CasesRecommend findById(String id) {
|
||||
return casesRecommendDao.get(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.xboe.module.boecase.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CasesRecommendPushVo {
|
||||
|
||||
/** 案例推荐id */
|
||||
private String casesRecommendId;
|
||||
}
|
||||
Reference in New Issue
Block a user