mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 03:16:48 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package com.xboe.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* excellent 最佳案例
|
||||
* recommend 推荐
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum CasesSearchTypeEnum {
|
||||
|
||||
excellent("excellent","最佳案例"),
|
||||
recommend("recommend","推荐"),
|
||||
;
|
||||
|
||||
private String type;
|
||||
private String name;
|
||||
|
||||
|
||||
}
|
||||
@@ -113,6 +113,40 @@ public class CasesApi extends ApiBaseController {
|
||||
}
|
||||
return success(views);
|
||||
}
|
||||
|
||||
@PostMapping("/queryListV2")
|
||||
public JsonResponse<PageList<Cases>> queryCaseBreV2(@RequestBody CasePageVo req){
|
||||
String type = req.getType();
|
||||
PageList<Cases> views = null;
|
||||
if (type.equals("recommend")) {
|
||||
views = casesService.queryRecommendPageCasesV2(req);
|
||||
} else {
|
||||
views = casesService.queryPageCasesV2(req);
|
||||
}
|
||||
|
||||
if(views!=null){
|
||||
if(views.getList()!=null && !views.getList().isEmpty()){
|
||||
for (Cases c:views.getList()) {
|
||||
StringBuffer stringBuffer = new StringBuffer();
|
||||
List<CasesMajorType> caseId = casesMajorTypeDao.findList(FieldFilters.eq("caseId", c.getId()));
|
||||
if(caseId!=null && !caseId.isEmpty()){
|
||||
for (CasesMajorType cm:caseId) {
|
||||
stringBuffer.append(cm.getMajorId());
|
||||
stringBuffer.append(",");
|
||||
}
|
||||
}
|
||||
if(stringBuffer.length()>0){
|
||||
stringBuffer.deleteCharAt(stringBuffer.length()-1);
|
||||
c.setMajorType(stringBuffer.toString());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return success(views);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 案例分页搜索 是否置顶
|
||||
* */
|
||||
|
||||
@@ -186,29 +186,31 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
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");
|
||||
if (CollectionUtil.isNotEmpty(rows)){
|
||||
// 通过工具类创建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=推荐信息.xlsx");
|
||||
|
||||
writer.flush(servletOutputStream,true);
|
||||
}catch (Exception e){
|
||||
throw new RuntimeException(e.getMessage());
|
||||
writer.flush(servletOutputStream,true);
|
||||
}catch (Exception e){
|
||||
throw new RuntimeException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -227,11 +229,11 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
}
|
||||
// 查询
|
||||
CasesRecommend db = iCasesRecommendService.findById(casesRecommendPushVo.getCasesRecommendId());
|
||||
if (CasesPushStatusEnum.PUSH_SUCCESS.name().equalsIgnoreCase(db.getPushProgress())){
|
||||
if (CasesPushStatusEnum.PUSH_SUCCESS.getStatus().equals(db.getPushProgress())){
|
||||
// 当为推送成功时为
|
||||
iCasesRecommendPushRecordService.rePushOrWithdraw(true, casesRecommendPushVo.getCasesRecommendId());
|
||||
}else if (CasesPushStatusEnum.PUSH_FAIL.name().equalsIgnoreCase(db.getPushProgress())
|
||||
|| CasesPushStatusEnum.PUSH_REVOKE.name().equalsIgnoreCase(db.getPushProgress())){
|
||||
}else if (CasesPushStatusEnum.PUSH_FAIL.getStatus().equals(db.getPushProgress())
|
||||
|| CasesPushStatusEnum.PUSH_REVOKE.getStatus().equals(db.getPushProgress())){
|
||||
// 推送失败或者已撤回时
|
||||
iCasesRecommendPushRecordService.rePushOrWithdraw(false, casesRecommendPushVo.getCasesRecommendId());
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.xboe.module.boecase.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class CasePageVo extends PageDto {
|
||||
|
||||
|
||||
private String keyWord;
|
||||
|
||||
private Boolean breCommend;
|
||||
|
||||
private String orderField;
|
||||
|
||||
private Boolean orderAsc;
|
||||
|
||||
private List<OrgDomainDto> orgDomainDtos;//后台查询一级
|
||||
|
||||
/**
|
||||
* 专业分类
|
||||
*/
|
||||
private String majorType;
|
||||
|
||||
/**
|
||||
* 置顶
|
||||
*/
|
||||
private Boolean isTop;
|
||||
|
||||
private String caseType;
|
||||
|
||||
/**
|
||||
* 最佳案例
|
||||
*/
|
||||
private Boolean excellent;
|
||||
|
||||
|
||||
private String authorName;
|
||||
|
||||
private List<String> years;
|
||||
|
||||
/**
|
||||
* 已经返回给前端的案例需要过滤掉
|
||||
*/
|
||||
private List<Long> notInIds;
|
||||
|
||||
/**
|
||||
* excellent 最佳案例
|
||||
* recommend 推荐
|
||||
*/
|
||||
private String type;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.xboe.module.boecase.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class OrgDomainDto {
|
||||
|
||||
/**
|
||||
* 组织领域1级
|
||||
*/
|
||||
private String orgDomainParent;
|
||||
/**
|
||||
* 组织领域2级
|
||||
*/
|
||||
private String orgDomainParent2;
|
||||
/**
|
||||
* 组织领域3级
|
||||
*/
|
||||
private String orgDomainParent3;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.xboe.module.boecase.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PageDto {
|
||||
|
||||
private int pageIndex = 1;
|
||||
private int pageSize = 10;
|
||||
}
|
||||
@@ -245,6 +245,9 @@ public class Cases extends BaseEntity {
|
||||
private String caseValue;
|
||||
|
||||
|
||||
/**
|
||||
* 最佳案例标识
|
||||
*/
|
||||
@Column(name = "excellent")
|
||||
private Boolean excellent;
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ public class CasesRecommend extends BaseEntity {
|
||||
private Integer userCount;
|
||||
/**推送进度*/
|
||||
@Column(name = "push_progress", length = 255)
|
||||
private String pushProgress;
|
||||
private Integer pushProgress;
|
||||
/**查看率*/
|
||||
@Column(name = "view_rate", length = 255)
|
||||
private String viewRate;
|
||||
|
||||
@@ -14,6 +14,8 @@ public interface ICasesService{
|
||||
* */
|
||||
PageList<Cases> queryPageCases(int pageIndex, int pageSize, CaseVo caseVo);
|
||||
|
||||
PageList<Cases> queryPageCasesV2(CasePageVo caseVo);
|
||||
|
||||
/**
|
||||
* 案例管理列表搜索
|
||||
* */
|
||||
@@ -97,5 +99,6 @@ public interface ICasesService{
|
||||
void excellent(String id,Boolean excellent);
|
||||
|
||||
|
||||
PageList<Cases> queryRecommendPageCasesV2(CasePageVo req);
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +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());
|
||||
casesRecommend.setPushProgress(CasesPushStatusEnum.WAIT_PUSH.getStatus());
|
||||
casesRecommendDao.save(casesRecommend);
|
||||
|
||||
List<String> caseIds = new ArrayList<>();
|
||||
|
||||
@@ -7,6 +7,8 @@ import java.util.stream.Collectors;
|
||||
import javax.annotation.Resource;
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.xboe.common.utils.IDGenerator;
|
||||
import com.xboe.module.boecase.dao.CasesMajorTypeDao;
|
||||
import com.xboe.module.boecase.dto.*;
|
||||
@@ -160,6 +162,303 @@ public class CasesServiceImpl implements ICasesService {
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 案例分页查询,用于门户的查询 v2
|
||||
* */
|
||||
@Override
|
||||
public PageList<Cases> queryPageCasesV2(CasePageVo caseVo) {
|
||||
QueryBuilder query=QueryBuilder.from(Cases.class);
|
||||
PageList<Cases> page=null;
|
||||
List<IFieldFilter> filters = new ArrayList<>();
|
||||
filters.add(FieldFilters.eq("deleted",false));
|
||||
List<IFieldFilter> likes=new ArrayList<IFieldFilter>();
|
||||
likes.add(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword1", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword2", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword3", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword4", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword5", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
List<Long> notInIds = caseVo.getNotInIds();
|
||||
if (CollUtil.isNotEmpty(notInIds)) {
|
||||
filters.add(FieldFilters.notIn("id", notInIds));
|
||||
}
|
||||
|
||||
if(StringUtil.isNotBlank(caseVo.getKeyWord())) {
|
||||
filters.add(FieldFilters.or(likes));
|
||||
}
|
||||
|
||||
List<OrgDomainDto> orgDomainDtos = caseVo.getOrgDomainDtos();
|
||||
IFieldFilter orgDomain = null;
|
||||
if(CollUtil.isNotEmpty(orgDomainDtos)){
|
||||
for (int i = 0; i < orgDomainDtos.size(); i++) {
|
||||
OrgDomainDto domainDto = orgDomainDtos.get(i);
|
||||
String orgDomainParent = domainDto.getOrgDomainParent();
|
||||
String orgDomainParent2 = domainDto.getOrgDomainParent2();
|
||||
String orgDomainParent3 = domainDto.getOrgDomainParent3();
|
||||
List<IFieldFilter> fieldFilters = new ArrayList<>();
|
||||
IFieldFilter itemFilter = null;
|
||||
if (StrUtil.isNotBlank(orgDomainParent)) {
|
||||
itemFilter = FieldFilters.eq("orgDomainParent",orgDomainParent);
|
||||
}
|
||||
if (StrUtil.isNotBlank(orgDomainParent2)) {
|
||||
IFieldFilter orgDomainParentFilter = FieldFilters.eq("orgDomainParent2", orgDomainParent2);
|
||||
if (Objects.nonNull(itemFilter)) {
|
||||
itemFilter = FieldFilters.and(itemFilter, orgDomainParentFilter);
|
||||
} else {
|
||||
itemFilter = orgDomainParentFilter;
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(orgDomainParent3)) {
|
||||
IFieldFilter orgDomainParent3Filter = FieldFilters.eq("orgDomainParent3", orgDomainParent3);
|
||||
if (Objects.nonNull(itemFilter)) {
|
||||
itemFilter = FieldFilters.and(itemFilter, orgDomainParent3Filter);
|
||||
} else {
|
||||
itemFilter = orgDomainParent3Filter;
|
||||
}
|
||||
}
|
||||
if (i==0) {
|
||||
orgDomain = itemFilter;
|
||||
} else {
|
||||
orgDomain = FieldFilters.or(orgDomain, itemFilter);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Objects.nonNull(orgDomain)) {
|
||||
filters.add(orgDomain);
|
||||
}
|
||||
//创建时间过滤
|
||||
List<String> years = caseVo.getYears();
|
||||
if (CollUtil.isNotEmpty(years)) {
|
||||
FieldFilters.in("YEAR(sysCreateTime)",years);
|
||||
}
|
||||
|
||||
//增加只是查询有附件的
|
||||
filters.add(FieldFilters.isNotNull("filePath"));
|
||||
filters.add(FieldFilters.ne("filePath",""));
|
||||
|
||||
if(StringUtil.isNotBlank(caseVo.getMajorType())){
|
||||
|
||||
QueryBuilder from = QueryBuilder.from(CasesMajorType.class);
|
||||
//前端直接字符串拼接传,后端转化数组
|
||||
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());
|
||||
List<Object[]> listFields=null;
|
||||
try {
|
||||
listFields = casesMajorTypeDao.findListFields(from.builder());
|
||||
} catch (Exception e) {
|
||||
log.error("查询失败",e);
|
||||
}
|
||||
List<String> list1 = new ArrayList<>();
|
||||
if(listFields!=null && !listFields.isEmpty()){
|
||||
for (Object[] obj:listFields) {
|
||||
list1.add((String) obj[1]);
|
||||
}
|
||||
}
|
||||
if(list1!=null &&!list1.isEmpty()){
|
||||
query.addFilter(FieldFilters.in("id",list1));
|
||||
}else {
|
||||
//如果所点击的内容分类都没有案例数据,应该返回空
|
||||
return page;
|
||||
}
|
||||
}
|
||||
|
||||
if(StringUtils.isNotBlank(caseVo.getCaseType())){
|
||||
filters.add(FieldFilters.eq("caseType",caseVo.getCaseType()));
|
||||
}
|
||||
if(caseVo.getBreCommend()!=null){
|
||||
if(!caseVo.getBreCommend()){
|
||||
filters.add(FieldFilters.eq("breCommend",0));
|
||||
}else {
|
||||
filters.add(FieldFilters.eq("breCommend", 1));
|
||||
}
|
||||
}
|
||||
if(caseVo.getIsTop()!=null && caseVo.getIsTop()) {
|
||||
query.addOrder(OrderCondition.desc("isTop"));
|
||||
query.addOrder(OrderCondition.desc("topTime"));
|
||||
}
|
||||
//如果选择的是优秀案例,那么这里就按优秀案例的试试排序
|
||||
if(caseVo.getExcellent()!=null && caseVo.getExcellent()){
|
||||
filters.add(FieldFilters.eq("excellent",caseVo.getExcellent()));
|
||||
}
|
||||
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.addFilters(filters);
|
||||
query.addOrder(order);
|
||||
query.addOrder(OrderCondition.rand());
|
||||
query.setPageIndex(caseVo.getPageIndex());
|
||||
query.setPageSize(caseVo.getPageSize());
|
||||
page = casesDao.findPage(query.builder());
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageList<Cases> queryRecommendPageCasesV2(CasePageVo caseVo) {
|
||||
|
||||
String hql = "SELECT c.* FROM CasesRecommendPushRecord as rp INNER JOIN Cases as c ON rp.caseId = c.id WHERE 1 = 1";
|
||||
|
||||
QueryBuilder query=QueryBuilder.from(Cases.class);
|
||||
PageList<Cases> page=null;
|
||||
List<IFieldFilter> filters = new ArrayList<>();
|
||||
filters.add(FieldFilters.eq("deleted",false));
|
||||
List<IFieldFilter> likes=new ArrayList<IFieldFilter>();
|
||||
likes.add(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword1", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword2", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword3", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword4", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword5", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
List<Long> notInIds = caseVo.getNotInIds();
|
||||
if (CollUtil.isNotEmpty(notInIds)) {
|
||||
filters.add(FieldFilters.notIn("id", notInIds));
|
||||
}
|
||||
|
||||
if(StringUtil.isNotBlank(caseVo.getKeyWord())) {
|
||||
filters.add(FieldFilters.or(likes));
|
||||
}
|
||||
|
||||
List<OrgDomainDto> orgDomainDtos = caseVo.getOrgDomainDtos();
|
||||
IFieldFilter orgDomain = null;
|
||||
if(CollUtil.isNotEmpty(orgDomainDtos)){
|
||||
for (int i = 0; i < orgDomainDtos.size(); i++) {
|
||||
OrgDomainDto domainDto = orgDomainDtos.get(i);
|
||||
String orgDomainParent = domainDto.getOrgDomainParent();
|
||||
String orgDomainParent2 = domainDto.getOrgDomainParent2();
|
||||
String orgDomainParent3 = domainDto.getOrgDomainParent3();
|
||||
List<IFieldFilter> fieldFilters = new ArrayList<>();
|
||||
IFieldFilter itemFilter = null;
|
||||
if (StrUtil.isNotBlank(orgDomainParent)) {
|
||||
itemFilter = FieldFilters.eq("orgDomainParent",orgDomainParent);
|
||||
}
|
||||
if (StrUtil.isNotBlank(orgDomainParent2)) {
|
||||
IFieldFilter orgDomainParentFilter = FieldFilters.eq("orgDomainParent2", orgDomainParent2);
|
||||
if (Objects.nonNull(itemFilter)) {
|
||||
itemFilter = FieldFilters.and(itemFilter, orgDomainParentFilter);
|
||||
} else {
|
||||
itemFilter = orgDomainParentFilter;
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(orgDomainParent3)) {
|
||||
IFieldFilter orgDomainParent3Filter = FieldFilters.eq("orgDomainParent3", orgDomainParent3);
|
||||
if (Objects.nonNull(itemFilter)) {
|
||||
itemFilter = FieldFilters.and(itemFilter, orgDomainParent3Filter);
|
||||
} else {
|
||||
itemFilter = orgDomainParent3Filter;
|
||||
}
|
||||
}
|
||||
if (i==0) {
|
||||
orgDomain = itemFilter;
|
||||
} else {
|
||||
orgDomain = FieldFilters.or(orgDomain, itemFilter);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Objects.nonNull(orgDomain)) {
|
||||
filters.add(orgDomain);
|
||||
}
|
||||
//创建时间过滤
|
||||
List<String> years = caseVo.getYears();
|
||||
if (CollUtil.isNotEmpty(years)) {
|
||||
FieldFilters.in("YEAR(sysCreateTime)",years);
|
||||
}
|
||||
|
||||
//增加只是查询有附件的
|
||||
filters.add(FieldFilters.isNotNull("filePath"));
|
||||
filters.add(FieldFilters.ne("filePath",""));
|
||||
|
||||
if(StringUtil.isNotBlank(caseVo.getMajorType())){
|
||||
|
||||
QueryBuilder from = QueryBuilder.from(CasesMajorType.class);
|
||||
//前端直接字符串拼接传,后端转化数组
|
||||
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());
|
||||
List<Object[]> listFields=null;
|
||||
try {
|
||||
listFields = casesMajorTypeDao.findListFields(from.builder());
|
||||
} catch (Exception e) {
|
||||
log.error("查询失败",e);
|
||||
}
|
||||
List<String> list1 = new ArrayList<>();
|
||||
if(listFields!=null && !listFields.isEmpty()){
|
||||
for (Object[] obj:listFields) {
|
||||
list1.add((String) obj[1]);
|
||||
}
|
||||
}
|
||||
if(list1!=null &&!list1.isEmpty()){
|
||||
query.addFilter(FieldFilters.in("id",list1));
|
||||
}else {
|
||||
//如果所点击的内容分类都没有案例数据,应该返回空
|
||||
return page;
|
||||
}
|
||||
}
|
||||
|
||||
if(StringUtils.isNotBlank(caseVo.getCaseType())){
|
||||
filters.add(FieldFilters.eq("caseType",caseVo.getCaseType()));
|
||||
}
|
||||
if(caseVo.getBreCommend()!=null){
|
||||
if(!caseVo.getBreCommend()){
|
||||
filters.add(FieldFilters.eq("breCommend",0));
|
||||
}else {
|
||||
filters.add(FieldFilters.eq("breCommend", 1));
|
||||
}
|
||||
}
|
||||
if(caseVo.getIsTop()!=null && caseVo.getIsTop()) {
|
||||
query.addOrder(OrderCondition.desc("isTop"));
|
||||
query.addOrder(OrderCondition.desc("topTime"));
|
||||
}
|
||||
//如果选择的是优秀案例,那么这里就按优秀案例的试试排序
|
||||
if(caseVo.getExcellent()!=null && caseVo.getExcellent()){
|
||||
filters.add(FieldFilters.eq("excellent",caseVo.getExcellent()));
|
||||
}
|
||||
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.addFilters(filters);
|
||||
query.addOrder(order);
|
||||
query.addOrder(OrderCondition.rand());
|
||||
query.setPageIndex(caseVo.getPageIndex());
|
||||
query.setPageSize(caseVo.getPageSize());
|
||||
page = casesDao.findPage(query.builder());
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 案例分页查询,是否置顶*/
|
||||
@Override
|
||||
@@ -651,4 +950,5 @@ public class CasesServiceImpl implements ICasesService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user