diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index eed97624..6e1a1ea7 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -1,6 +1,7 @@ package com.xboe.module.boecase.api; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.LocalDateTimeUtil; import com.xboe.common.PageList; import com.xboe.common.Pagination; import com.xboe.common.utils.StringUtil; @@ -217,6 +218,35 @@ public class CasesApi extends ApiBaseController { } } + + /** + * 导出案例标题数据 + * */ + @PostMapping("/exportCaseTitle") + public void exportCaseTitle(CaseVo caseVo,HttpServletResponse response){ + OutputStream outputStream; + try { + outputStream = response.getOutputStream(); + LinkedHashMap map = new LinkedHashMap<>(); + map.put("标题","title"); + List list = casesService.managerCaseTitleList(caseVo); + List exportVos = new ArrayList<>(); + LocalDateTime now = LocalDateTime.now(); + for (Cases c:list){ + CaseExportVo caseExportVo = new CaseExportVo(); + caseExportVo.setTitle(c.getTitle()); + exportVos.add(caseExportVo); + } + + response.setContentType("application/octet-stream"); + String current = LocalDateTimeUtil.format(now,"yyyyMMddHHmmss"); + response.setHeader("Content-disposition", "attachment;filename=cases-title-"+current+".xls"); + ExportsExcelSenderUtil.export(map,exportVos, outputStream,"yyyy-MM-dd HH:mm:ss"); + }catch (Exception e){ + log.error("导出失败",e.getMessage()); + } + } + /** * 导出我的案例 * */ diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java index a2f12514..10d21b31 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java @@ -361,4 +361,8 @@ public class Cases extends BaseEntity { this.favorites=favorites; super.setDeleted(deleted); } + + public Cases(String title) { + this.title = title; + } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java index 149d10f3..d03a3a41 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java @@ -22,6 +22,8 @@ public interface ICasesService{ * */ PageList managerList(int pageIndex,int pageSize,CaseVo caseVo); + List managerCaseTitleList(CaseVo caseVo); + /** * 案例分页 * */ diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index ac05f31b..698a4001 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -430,6 +430,42 @@ public class CasesServiceImpl implements ICasesService { return page; } + @Override + public List managerCaseTitleList(CaseVo caseVo) { + QueryBuilder query = QueryBuilder.from(Cases.class); + query.addFilter(FieldFilters.eq("deleted", false)); + if (StringUtils.isNotBlank(caseVo.getKeyWord())) { + query.addFilter(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); + } + if (StringUtils.isNotBlank(caseVo.getOrgDomain())) { + query.addFilter(FieldFilters.eq("orgDomainParent", caseVo.getOrgDomain())); + } + if (caseVo.getExcellent() != null) { + query.addFilter(FieldFilters.eq("excellent", caseVo.getExcellent())); + } + if (caseVo.getIsTop() != null) { + query.addFilter(FieldFilters.eq("isTop", caseVo.getIsTop())); + } + if (StringUtils.isNotBlank(caseVo.getAuthorName())) { + query.addFilter(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getAuthorName())); + } + + OrderCondition order = null; + if (StringUtils.isNotBlank(caseVo.getOrderField())) { + if (caseVo.getOrderAsc() == null || caseVo.getOrderAsc()) { + order = OrderCondition.asc(caseVo.getOrderField()); + } else { + order = OrderCondition.desc(caseVo.getOrderField()); + } + } else { + order = OrderCondition.desc("sysCreateTime"); + } + query.addOrder(order); + query.addField("new Cases(title)"); + List result = casesDao.findList(query.builder()); + return result; + } + @Override public PageList queryList(int pageIndex, int pageSize, CaseVo caseVo) { PageList pageList = new PageList<>();