案例搜索接口修改4

This commit is contained in:
yang康1999
2024-01-11 18:13:04 +08:00
parent 1e52d01bf0
commit dfc8211103

View File

@@ -2,7 +2,6 @@ package com.xboe.module.boecase.api;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -32,8 +31,6 @@ import com.xboe.common.Pagination;
import com.xboe.common.utils.StringUtil; import com.xboe.common.utils.StringUtil;
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.core.cache.IXaskCache;
import com.xboe.core.cache.XaskCacheProvider;
import com.xboe.core.log.AutoLog; import com.xboe.core.log.AutoLog;
import com.xboe.module.boecase.entity.Cases; import com.xboe.module.boecase.entity.Cases;
import com.xboe.module.boecase.service.ICasesService; import com.xboe.module.boecase.service.ICasesService;
@@ -41,14 +38,12 @@ import com.xboe.module.boecase.service.ICasesService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
* 案例 * 案例
*
*/ */
@Slf4j @Slf4j
@RestController @RestController
@@ -70,6 +65,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 用于后台管理 * 用于后台管理
*
* @param pager * @param pager
* @param caseVo * @param caseVo
* @return * @return
@@ -102,7 +98,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 案例分页搜索查询 orders 状态 1代表时间最近2代表热度最高 * 案例分页搜索查询 orders 状态 1代表时间最近2代表热度最高
* 是否推荐 * 是否推荐
* */ */
@PostMapping("/queryList") @PostMapping("/queryList")
public JsonResponse<PageList<Cases>> queryCaseBre(Pagination pager, CaseVo caseVo) { public JsonResponse<PageList<Cases>> queryCaseBre(Pagination pager, CaseVo caseVo) {
PageList<Cases> views = casesService.queryPageCases(pager.getPageIndex(), pager.getPageSize(), caseVo); PageList<Cases> views = casesService.queryPageCases(pager.getPageIndex(), pager.getPageSize(), caseVo);
@@ -131,14 +127,26 @@ public class CasesApi extends ApiBaseController {
@PostMapping("/queryListV2") @PostMapping("/queryListV2")
public JsonResponse<PageList<Cases>> queryCaseBreV2(@Validated @RequestBody CasePageVo req) { public JsonResponse<PageList<Cases>> queryCaseBreV2(@Validated @RequestBody CasePageVo req) {
String type = req.getType(); String type = req.getType();
PageList<Cases> views; PageList<Cases> subViews1;
PageList<Cases> subViews2;
PageList<Cases> views = null;
req.setUserId(getCurrent().getAccountId()); req.setUserId(getCurrent().getAccountId());
if (type.equals("recommend")) { if (StringUtils.isNotEmpty(type)) {
log.info("queryListV2 recommend userId:{}", getCurrent().getAccountId()); if ("recommend".equals(type)) {
views = casesService.queryRecommendPageCasesV2(req); views = casesService.queryRecommendPageCasesV2(req);
} else { } else {
views = casesService.queryPageCasesV2(req); views = casesService.queryPageCasesV2(req);
} }
} else {
PageDto pageDto = new PageDto();
pageDto.setPageIndex(req.getPageIndex());
pageDto.setPageSize(req.getPageSize());
req.setPageSize(1000000);
req.setPageIndex(1);
subViews1 = casesService.queryRecommendPageCasesV2(req);
subViews2 = casesService.queryPageCasesV2(req);
views = merge(subViews1, subViews2, pageDto);
}
if (views != null) { if (views != null) {
List<Cases> cases = views.getList(); List<Cases> cases = views.getList();
@@ -156,7 +164,6 @@ public class CasesApi extends ApiBaseController {
stringBuffer.deleteCharAt(stringBuffer.length() - 1); stringBuffer.deleteCharAt(stringBuffer.length() - 1);
c.setMajorType(stringBuffer.toString()); c.setMajorType(stringBuffer.toString());
} }
} }
} }
} else { } else {
@@ -168,6 +175,24 @@ public class CasesApi extends ApiBaseController {
return success(views); return success(views);
} }
public static PageList<Cases> merge(PageList<Cases> pageList1, PageList<Cases> pageList2, PageDto pageDto) {
List<Cases> mergedCaseList = new ArrayList<>();
mergedCaseList.addAll(pageList1.getList());
mergedCaseList.addAll(pageList2.getList());
List<Cases> pageCaseList = mergedCaseList.stream()
.skip((long) (pageDto.getPageIndex() - 1) * pageDto.getPageSize())
.limit(pageDto.getPageSize())
.collect(Collectors.toList());
int totalCount = pageList1.getCount() + pageList2.getCount();
int pageSize = pageDto.getPageSize();
PageList<Cases> mergePageList = new PageList<>();
mergePageList.setList(pageCaseList);
mergePageList.setCount(totalCount);
mergePageList.setPageSize(pageSize);
return mergePageList;
}
@PostMapping("/caseYears") @PostMapping("/caseYears")
public JsonResponse<List<String>> caseYears() { public JsonResponse<List<String>> caseYears() {
List<String> result = casesService.getCaseYears(); List<String> result = casesService.getCaseYears();
@@ -176,7 +201,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 案例分页搜索 是否置顶 * 案例分页搜索 是否置顶
* */ */
@PostMapping("/isTopList") @PostMapping("/isTopList")
public JsonResponse<PageList<Cases>> queryCaseTop(Pagination pager, CaseVo caseVo) { public JsonResponse<PageList<Cases>> queryCaseTop(Pagination pager, CaseVo caseVo) {
PageList<Cases> casesPageList = casesService.managerList(pager.getPageIndex(), pager.getPageSize(), caseVo); PageList<Cases> casesPageList = casesService.managerList(pager.getPageIndex(), pager.getPageSize(), caseVo);
@@ -185,7 +210,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 案例分页 * 案例分页
* */ */
@PostMapping("/pagelist") @PostMapping("/pagelist")
public JsonResponse<PageList<CasesFiledVo>> pageList(Pagination pager, CaseVo caseVo) { public JsonResponse<PageList<CasesFiledVo>> pageList(Pagination pager, CaseVo caseVo) {
PageList<CasesFiledVo> pageList = casesService.queryList(pager.getPageIndex(), pager.getPageSize(), caseVo); PageList<CasesFiledVo> pageList = casesService.queryList(pager.getPageIndex(), pager.getPageSize(), caseVo);
@@ -194,7 +219,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 我的案例 * 我的案例
* */ */
@PostMapping("/mylist") @PostMapping("/mylist")
public JsonResponse<PageList<Cases>> mylist(Pagination pager, CaseVo caseVo) { public JsonResponse<PageList<Cases>> mylist(Pagination pager, CaseVo caseVo) {
String aid = this.getCurrent().getAccountId(); String aid = this.getCurrent().getAccountId();
@@ -204,7 +229,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 导出案例数据 * 导出案例数据
* */ */
@PostMapping("/exportCase") @PostMapping("/exportCase")
public void exportCase(Pagination pager, CaseVo caseVo, HttpServletResponse response) { public void exportCase(Pagination pager, CaseVo caseVo, HttpServletResponse response) {
OutputStream OutputStream = null; OutputStream OutputStream = null;
@@ -254,7 +279,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 导出案例标题数据 * 导出案例标题数据
* */ */
@PostMapping("/exportCaseTitle") @PostMapping("/exportCaseTitle")
public void exportCaseTitle(CaseVo caseVo, HttpServletResponse response) { public void exportCaseTitle(CaseVo caseVo, HttpServletResponse response) {
OutputStream outputStream; OutputStream outputStream;
@@ -296,7 +321,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 导出我的案例 * 导出我的案例
* */ */
@PostMapping("/export") @PostMapping("/export")
public void export(CaseVo caseVo, HttpServletResponse response) { public void export(CaseVo caseVo, HttpServletResponse response) {
String aid = this.getCurrent().getAccountId(); String aid = this.getCurrent().getAccountId();
@@ -347,7 +372,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 设置置顶 * 设置置顶
* */ */
@GetMapping("/updateTop") @GetMapping("/updateTop")
@AutoLog(module = "案例", action = "设置案例置顶", info = "设置案例置顶") @AutoLog(module = "案例", action = "设置案例置顶", info = "设置案例置顶")
public JsonResponse<Boolean> updateTop(String id, Integer isTop) { public JsonResponse<Boolean> updateTop(String id, Integer isTop) {
@@ -365,7 +390,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 删除 * 删除
* */ */
@GetMapping("/delete") @GetMapping("/delete")
@AutoLog(module = "案例", action = "删除案例", info = "删除案例") @AutoLog(module = "案例", action = "删除案例", info = "删除案例")
public JsonResponse<Boolean> deleteTop(String id) { public JsonResponse<Boolean> deleteTop(String id) {
@@ -380,9 +405,10 @@ public class CasesApi extends ApiBaseController {
return error("删除失败", e.getMessage()); return error("删除失败", e.getMessage());
} }
} }
/** /**
* 案例详情 * 案例详情
* */ */
@GetMapping("/detail") @GetMapping("/detail")
public JsonResponse<Cases> selectById(String id, Boolean addView) { public JsonResponse<Cases> selectById(String id, Boolean addView) {
if (StringUtil.isBlank(id)) { if (StringUtil.isBlank(id)) {
@@ -404,10 +430,11 @@ public class CasesApi extends ApiBaseController {
return error("查看失败", e.getMessage()); return error("查看失败", e.getMessage());
} }
} }
/** /**
* 贡献度排行榜 * 贡献度排行榜
* 每个作者发布案例的数量 * 每个作者发布案例的数量
* */ */
@GetMapping("/usernamelist") @GetMapping("/usernamelist")
public JsonResponse<List<UsernameDto>> usernameList(Integer pageSize) { public JsonResponse<List<UsernameDto>> usernameList(Integer pageSize) {
if (pageSize == null) { if (pageSize == null) {
@@ -416,9 +443,10 @@ public class CasesApi extends ApiBaseController {
List<UsernameDto> casesPageList = casesService.usernameList(pageSize); List<UsernameDto> casesPageList = casesService.usernameList(pageSize);
return success(casesPageList); return success(casesPageList);
} }
/** /**
* 首页案例 * 首页案例
* */ */
@PostMapping("/case-random") @PostMapping("/case-random")
public JsonResponse<List<CaseDto>> caseRandom(Integer pageSize, String orderField, Boolean orderAsc) { public JsonResponse<List<CaseDto>> caseRandom(Integer pageSize, String orderField, Boolean orderAsc) {
if (pageSize == null) { if (pageSize == null) {
@@ -430,7 +458,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 人气榜 浏览数 * 人气榜 浏览数
* */ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@GetMapping("/query-praises") @GetMapping("/query-praises")
public JsonResponse<List<CaseRankingDto>> queryPraises(Integer pageSize) { public JsonResponse<List<CaseRankingDto>> queryPraises(Integer pageSize) {
@@ -456,7 +484,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 好评榜 点赞数 * 好评榜 点赞数
* */ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@GetMapping("/query-comments") @GetMapping("/query-comments")
public JsonResponse<List<CaseRankingDto>> queryComments(Integer pageSize) { public JsonResponse<List<CaseRankingDto>> queryComments(Integer pageSize) {
@@ -481,7 +509,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 添加 * 添加
* */ */
@PostMapping("/save") @PostMapping("/save")
public JsonResponse<Boolean> save(@RequestBody Cases cases) { public JsonResponse<Boolean> save(@RequestBody Cases cases) {
if (StringUtil.isBlank(cases.getTitle())) { if (StringUtil.isBlank(cases.getTitle())) {
@@ -513,7 +541,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 修改案例 * 修改案例
* */ */
@PostMapping("/update") @PostMapping("/update")
public JsonResponse<Boolean> update(@RequestBody Cases cases) { public JsonResponse<Boolean> update(@RequestBody Cases cases) {
if (StringUtil.isBlank(cases.getTitle())) { if (StringUtil.isBlank(cases.getTitle())) {
@@ -554,7 +582,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 专业分类 * 专业分类
* */ */
@GetMapping("/majorTypes") @GetMapping("/majorTypes")
public JsonResponse<List<DictItem>> majorTypes() { public JsonResponse<List<DictItem>> majorTypes() {
List<DictItem> dictItems = casesService.majorTypes(); List<DictItem> dictItems = casesService.majorTypes();
@@ -564,7 +592,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 案例详情 * 案例详情
* */ */
@GetMapping("/details") @GetMapping("/details")
public JsonResponse<Map<String, Object>> details(String id, Boolean addView) { public JsonResponse<Map<String, Object>> details(String id, Boolean addView) {
if (StringUtil.isBlank(id)) { if (StringUtil.isBlank(id)) {
@@ -612,7 +640,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 用于二次查询 * 用于二次查询
* */ */
@PostMapping("/ids") @PostMapping("/ids")
public JsonResponse<List<Cases>> ids(@RequestBody List<String> ids) { public JsonResponse<List<Cases>> ids(@RequestBody List<String> ids) {
if (ids.isEmpty()) { if (ids.isEmpty()) {
@@ -624,7 +652,7 @@ public class CasesApi extends ApiBaseController {
/** /**
* 设置/取消优秀案例 * 设置/取消优秀案例
* */ */
@PostMapping("/excellent") @PostMapping("/excellent")
public JsonResponse<Boolean> excellent(String id, Boolean excellent) { public JsonResponse<Boolean> excellent(String id, Boolean excellent) {
if (StringUtil.isBlank(id)) { if (StringUtil.isBlank(id)) {