案例三期迭代

This commit is contained in:
86182
2022-12-06 17:00:52 +08:00
parent 15520be116
commit a275398f86
6 changed files with 223 additions and 7 deletions

View File

@@ -1,18 +1,20 @@
package com.xboe.module.boecase.api;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.OutputStream;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import com.xboe.core.orm.FieldFilters;
import com.xboe.module.boecase.dao.CasesMajorTypeDao;
import com.xboe.module.boecase.dto.*;
import com.xboe.module.boecase.entity.CasesMajorType;
import com.xboe.module.boecase.vo.CaseExportVo;
import com.xboe.module.dict.entity.DictItem;
import com.xboe.module.excel.ExportsExcelSenderUtil;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -94,6 +96,67 @@ public class CasesApi extends ApiBaseController {
PageList<CasesFiledVo> pageList = casesService.queryList(pager.getPageIndex(), pager.getPageSize(), caseVo);
return success(pageList);
}
/**
* 我的案例
* */
@PostMapping("/mylist")
public JsonResponse<PageList<Cases>> mylist(Pagination pager,CaseVo caseVo){
String aid = this.getCurrent().getAccountId();
PageList<Cases> casesPageList = casesService.myList(pager.getPageIndex(), pager.getPageSize(), caseVo, aid);
return success(casesPageList);
}
/**
* 导出我的案例
* */
@PostMapping("/export")
public void export(CaseVo caseVo,HttpServletResponse response){
String aid = this.getCurrent().getAccountId();
OutputStream OutputStream=null;
try {
OutputStream = response.getOutputStream();
LinkedHashMap<String,String> map = new LinkedHashMap<>();
map.put("案例名称","title");
map.put("状态","status");
map.put("审批完成时间","endTime");
map.put("公开范围","caseScope");
map.put("浏览量","views");
map.put("点赞量","praises");
map.put("分享量","shares");
map.put("收藏量","favorites");
List<Cases> list = casesService.myList(caseVo, aid);
List<CaseExportVo> exportVos = new ArrayList<>();
for (Cases c:list){
CaseExportVo caseExportVo = new CaseExportVo();
caseExportVo.setTitle(c.getTitle());
if(c.getStatus()!=null){
if(c.getStatus()==1){
caseExportVo.setStatus("待审核");
}
if(c.getStatus()==2){
caseExportVo.setStatus("未通过");
}
if(c.getStatus()==3){
caseExportVo.setStatus("已通过");
}
}
caseExportVo.setEndTime(c.getEndTime());
caseExportVo.setCaseScope(c.getCaseScope());
caseExportVo.setViews(c.getViews());
caseExportVo.setPraises(c.getPraises());
caseExportVo.setShares(c.getShares());
caseExportVo.setFavorites(c.getFavorites());
exportVos.add(caseExportVo);
}
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=Teachers.xls");
ExportsExcelSenderUtil.export(map,exportVos, OutputStream,"yyyy-MM-dd HH:mm:ss");
}catch (Exception e){
log.error("导出失败",e.getMessage());
}
}
/**
* 设置置顶

View File

@@ -28,4 +28,5 @@ public class CaseVo {
}

View File

@@ -79,8 +79,8 @@ public class Cases extends BaseEntity {
* 2:已审核未通过
* 3:已审核通过
* */
// @Column(name = "status",length = 1)
// private Integer status;
@Column(name = "status",length = 1)
private Integer status;
@Column(name = "views", nullable = false)
private Integer views;
@@ -242,6 +242,19 @@ public class Cases extends BaseEntity {
public Cases() {
}
public Cases(String id,String title,LocalDateTime endTime,Integer status, String caseScope,Integer views,Integer comments,Integer praises,Integer shares,Integer favorites){
this.title=title;
super.setId(id);
this.endTime=endTime;
this.status=status;
this.caseScope=caseScope;
this.views=views;
this.comments=comments;
this.praises=praises;
this.shares=shares;
this.favorites=favorites;
}
public Cases(String id,String title,String summary,String coverUrl,String authorId,String authorName,LocalDateTime sysCreateTime,Integer breCommend){
this.title=title;

View File

@@ -24,6 +24,17 @@ public interface ICasesService{
* */
PageList<CasesFiledVo> queryList(int pageIndex,int pageSize,CaseVo caseVo);
/**
* 我的案例
* */
PageList<Cases> myList(int pageIndex,int pageSize,CaseVo caseVo,String aid);
/**
* 导出的查询
* */
List<Cases> myList(CaseVo caseVo,String aid);
/**
* 设置置顶
* */

View File

@@ -68,19 +68,35 @@ public class CasesServiceImpl implements ICasesService {
}
if(StringUtils.isNotBlank(caseVo.getOrgDomain())){
filters.add(FieldFilters.eq("orgDomainParent",caseVo.getOrgDomain()));
if(caseVo.getOrgDomain().contains(",")){
String[] split = caseVo.getOrgDomain().split(",");
List<String> strings = Arrays.asList(split);
filters.add(FieldFilters.in("orgDomainParent",strings));
}else{
filters.add(FieldFilters.eq("orgDomainParent",caseVo.getOrgDomain()));
}
}
if(caseVo.getExcellent()!=null){
filters.add(FieldFilters.eq("excellent",caseVo.getExcellent()));
}
// if(StringUtil.isNotBlank(caseVo.getMajorType())){
// filters.add(FieldFilters.eq("majorType",caseVo.getMajorType()));
// }
if(StringUtil.isNotBlank(caseVo.getMajorType())){
QueryBuilder from = QueryBuilder.from(CasesMajorType.class);
from.addFilter(FieldFilters.eq("majorId",caseVo.getMajorType()));
//前端直接字符串拼接传,后端转化数组
if(caseVo.getMajorType().contains(",")){
String[] split = caseVo.getMajorType().split(",");
List<String> strings = Arrays.asList(split);
from.addFilter(FieldFilters.in("majorId",strings));
}else{
from.addFilter(FieldFilters.eq("majorId",caseVo.getMajorType()));
}
from.addGroupBy("caseId");
from.addFields("id","caseId");
// List<CasesMajorType> list = casesMajorTypeDao.findList(from.builder());
@@ -158,6 +174,7 @@ public class CasesServiceImpl implements ICasesService {
if(caseVo.getIsTop()!=null) {
query.addFilter(FieldFilters.eq("isTop",caseVo.getIsTop()));
}
OrderCondition order=null;
if(StringUtils.isNotBlank(caseVo.getOrderField())) {
if(caseVo.getOrderAsc()==null || caseVo.getOrderAsc()) {
@@ -222,6 +239,89 @@ public class CasesServiceImpl implements ICasesService {
}
@Override
public PageList<Cases> myList(int pageIndex, int pageSize, CaseVo caseVo, String aid) {
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(StringUtil.isNotBlank(caseVo.getMajorType())){
// query.addFilter(FieldFilters.eq("majorType",caseVo.getMajorType()));
// }
if(caseVo.getIsTop()!=null) {
query.addFilter(FieldFilters.eq("isTop",caseVo.getIsTop()));
}
if(StringUtils.isNotBlank(aid)){
query.addFilter(FieldFilters.eq("authorId",aid));
}
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.setPageIndex(pageIndex);
query.setPageSize(pageSize);
query.addFields("new Cases(id,title,endTime,status,caseScope,views,comments,praises,shares,favorites)");
PageList<Cases> page = casesDao.findPage(query.builder());
return page;
}
@Override
public List<Cases> myList(CaseVo caseVo, String aid) {
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(StringUtil.isNotBlank(caseVo.getMajorType())){
// query.addFilter(FieldFilters.eq("majorType",caseVo.getMajorType()));
// }
if(caseVo.getIsTop()!=null) {
query.addFilter(FieldFilters.eq("isTop",caseVo.getIsTop()));
}
if(StringUtils.isNotBlank(aid)){
query.addFilter(FieldFilters.eq("authorId",aid));
}
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.addFields("new Cases(id,title,endTime,status,caseScope,views,comments,praises,shares,favorites)");
List<Cases> list = casesDao.findList(query.builder());
return list;
}
/**
* 设置置顶
* */

View File

@@ -0,0 +1,28 @@
package com.xboe.module.boecase.vo;
import lombok.Data;
import org.apache.tomcat.jni.Local;
import java.time.LocalDateTime;
@Data
public class CaseExportVo {
private String title;
private String status;
private LocalDateTime endTime;
private String caseScope;
private Integer views;
private Integer praises;
private Integer shares;
private Integer favorites;
}