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 2102f5d6..404e6a30 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 @@ -742,10 +742,13 @@ public class CasesApi extends ApiBaseController { */ @SuppressWarnings("unchecked") @GetMapping("/queryFavoriteCaseOfIndex") - public JsonResponse> queryFavoriteCaseOfIndex(Integer pageIndex,Integer pageSize,String order) { -// String aid = this.getCurrent().getAccountId(); - String aid = "965342027497607168"; - PageList casesList = casesService.queryFavoriteCaseOfIndex(pageIndex,pageSize,order,aid); + public JsonResponse> queryFavoriteCaseOfIndex(@RequestParam(required = false,defaultValue = "1") Integer pageIndex, + @RequestParam(required = false,defaultValue = "5") Integer pageSize, + @RequestParam(required = false) String orderField, + @RequestParam(required = false) Boolean orderAsc) { +// String accountId = this.getCurrent().getAccountId(); + String accountId = "965342027497607168"; + PageList casesList = casesService.queryFavoriteCaseOfIndex(pageIndex,pageSize,accountId,orderField,orderAsc); return success(casesList); } 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 f3d3f3fa..ab5bf945 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 @@ -132,6 +132,6 @@ public interface ICasesService{ List queryPopularityOfMajor(Integer pageSize, Long majorId, LocalDateTime month, String accountId); - PageList queryFavoriteCaseOfIndex(Integer pageIndex, Integer pageSize, String order, String aid); + PageList queryFavoriteCaseOfIndex(Integer pageIndex, Integer pageSize, String accountId, String orderField, Boolean orderAsc); } 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 beb82d3d..582d88ba 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 @@ -198,12 +198,6 @@ public class CasesServiceImpl implements ICasesService { @Override public PageList queryPageCasesV2(CasePageVo caseVo) { - String type = caseVo.getType(); - if (!StrUtil.equals(type,"excellent")) { - caseVo.setOrderField(""); - caseVo.setOrderAsc(null); - } - String keyword = caseVo.getKeyWord(); QueryBuilder query = QueryBuilder.from(Cases.class); PageList page = null; @@ -323,11 +317,7 @@ public class CasesServiceImpl implements ICasesService { order = OrderCondition.desc(caseVo.getOrderField()); } } - if (StrUtil.equals(type,"new")) { - order = OrderCondition.desc("sysCreateTime"); - } else if (StrUtil.equals(type,"hot")) { - order = OrderCondition.desc("views"); - } + if(Objects.nonNull(order)) { query.addOrder(order); } @@ -1368,20 +1358,29 @@ public class CasesServiceImpl implements ICasesService { } @Override - public PageList queryFavoriteCaseOfIndex(Integer pageIndex, Integer pageSize, String order, String aid) { + public PageList queryFavoriteCaseOfIndex(Integer pageIndex, Integer pageSize, String accountId, String orderField, Boolean orderAsc) { String from = Favorites.class.getSimpleName()+" f,"+ Cases.class.getSimpleName()+" c"; QueryBuilder builder = QueryBuilder.from(from); builder.addFields("f.id","f.sysCreateTime","c"); builder.addFilter(FieldFilters.eqField("f.objId","c.id")); builder.addFilter(FieldFilters.eq("f.objType", BoedxResourceType.Case.value())); - builder.addFilter(FieldFilters.eq("f.sysCreateAid",aid)); + builder.addFilter(FieldFilters.eq("f.sysCreateAid",accountId)); builder.addFilter(FieldFilters.eq("c.deleted", false)); - if ("desc".equals(order)){ + if (StringUtils.isNotBlank(orderField) && orderAsc != null) { + switch (orderField) { + case "sysCreateTime": + builder.addOrder(orderAsc ? OrderCondition.asc("f.sysCreateTime") : OrderCondition.desc("f.sysCreateTime")); + break; + case "views": + builder.addOrder(orderAsc ? OrderCondition.asc("c.views") : OrderCondition.desc("c.views")); + break; + default: + break; + } + }else { builder.addOrder(OrderCondition.desc("f.sysCreateTime")); - }else if ("asc".equals(order)){ - builder.addOrder(OrderCondition.asc("f.sysCreateTime")); } builder.setPageIndex(pageIndex); @@ -1397,7 +1396,7 @@ public class CasesServiceImpl implements ICasesService { List list = pageFields.getList(); // 提取出 Cases 对象,添加标签 List casesList = list.stream().map(o -> (Cases) o[2]).collect(Collectors.toList()); - casesList = addTags(casesList, aid); + casesList = addTags(casesList, accountId); Map caseMap = casesList.stream().collect(Collectors.toMap(Cases::getId, Function.identity())); PageList favoriteCaseDtoPageList = new PageList<>(); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteCaseDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteCaseDto.java index af70ed9e..8487ada9 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteCaseDto.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteCaseDto.java @@ -12,6 +12,7 @@ public class FavoriteCaseDto { private String id; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime time; /**