From f84a90620492adaff46762b0275fde828d62091b Mon Sep 17 00:00:00 2001 From: ArgonarioD Date: Mon, 4 Jul 2022 10:40:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86RequestPage=E5=8C=85?= =?UTF-8?q?=E8=A3=85=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/SerializeConfig.java | 2 +- .../controller/ProjectController.java | 15 +++---- .../projectmanagement/entity/SortEntity.java | 26 ----------- .../service/IProjectService.java | 4 +- .../service/impl/ProjectServiceImpl.java | 11 ++--- .../utils/http/RequestPage.java | 44 +++++++++++++++++++ 6 files changed, 57 insertions(+), 45 deletions(-) delete mode 100644 src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/SortEntity.java create mode 100644 src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/http/RequestPage.java diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/config/SerializeConfig.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/config/SerializeConfig.java index f5072bd..9b9f181 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/config/SerializeConfig.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/config/SerializeConfig.java @@ -83,7 +83,7 @@ public class SerializeConfig { @SuppressWarnings({"Convert2Diamond", "NullableProblems", "rawtypes"}) @Bean - public Converter MapConverter() { + public Converter mapConverter() { return new Converter() { @Autowired diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java index 2f284a7..7db220b 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java @@ -2,8 +2,8 @@ package cn.edu.hfut.rmdjzz.projectmanagement.controller; import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject; -import cn.edu.hfut.rmdjzz.projectmanagement.entity.SortEntity; import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectService; +import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseList; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseMap; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -14,13 +14,13 @@ import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.HashMap; import java.util.Map; /** * @author 佘语殊 * @since 2022/6/30 11:24 - * */ @RestController @RequestMapping("/project") @@ -38,14 +38,11 @@ public class ProjectController { @GetMapping public ResponseList getProjectListOfStaff( @RequestHeader("Token") String token, - @RequestParam("pageSize") Integer pageSize, - @RequestParam("pageCurrent") Integer pageCurrent, + @Valid RequestPage page, @RequestParam("paramMap") Map paramMap - //@RequestParam("sort") SortEntity sortEntity - ) { - SortEntity sortEntity = new SortEntity(); - Page page = projectService.getOnePageProject(token, pageCurrent, pageSize, paramMap, sortEntity); - return ResponseList.ofSuccess("成功返回列表", page); + ) { + Page result = projectService.getOnePageProject(token, page, paramMap); + return ResponseList.ofSuccess("成功返回列表", result); } @ApiOperation("根据Token获取该员工的Project数") diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/SortEntity.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/SortEntity.java deleted file mode 100644 index 6f5a999..0000000 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/SortEntity.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.edu.hfut.rmdjzz.projectmanagement.entity; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.metadata.OrderItem; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.Data; - -/** - * @author 阳勇权 - * @since 2022/7/4 9:25 - */ -@Data -public class SortEntity { - String sortName; - Boolean ascOrder; - - public Page sortPage(Page page) { - if(ascOrder == null) return page; - if (ascOrder) { - return page.addOrder(OrderItem.asc(sortName)); - } else { - return page.addOrder(OrderItem.desc(sortName)); - } - } -} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java index 65db6c6..f1791e8 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java @@ -2,9 +2,9 @@ package cn.edu.hfut.rmdjzz.projectmanagement.service; import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject; -import cn.edu.hfut.rmdjzz.projectmanagement.entity.SortEntity; import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException; import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException; +import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,7 +18,7 @@ public interface IProjectService extends IService { Long getAllProjectOfStaff(String token) throws TokenException; - Page getOnePageProject(String token, Integer pageCurrent, Integer pageSize, Map params, SortEntity sortEntity) throws TokenException; + Page getOnePageProject(String token, RequestPage page, Map params) throws TokenException; Boolean setProjectCompleted(String token, Integer projectId) throws TokenException, BadRequestException; diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java index 2df8bc1..15fdf13 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java @@ -2,7 +2,6 @@ package cn.edu.hfut.rmdjzz.projectmanagement.service.impl; import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject; -import cn.edu.hfut.rmdjzz.projectmanagement.entity.SortEntity; import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException; import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException; import cn.edu.hfut.rmdjzz.projectmanagement.mapper.ProjectMapper; @@ -10,6 +9,7 @@ import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectGroupService; import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectService; import cn.edu.hfut.rmdjzz.projectmanagement.utils.TokenUtils; import cn.edu.hfut.rmdjzz.projectmanagement.utils.WrapperUtils; +import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -39,14 +39,11 @@ public class ProjectServiceImpl extends ServiceImpl impl @Override public Page getOnePageProject( String token, - Integer pageCurrent, - Integer pageSize, - Map params, - SortEntity sortEntity + RequestPage page, + Map params ) throws TokenException { Integer staffId = TokenUtils.getStaffId(token); - Page page = new Page<>(pageCurrent, pageSize); - IPage userPage = baseMapper.findMyProject(sortEntity.sortPage(page), staffId, WrapperUtils.allEqAndTimeIntervalQueryWrapper(params)); + IPage userPage = baseMapper.findMyProject(page.getPage(), staffId, WrapperUtils.allEqAndTimeIntervalQueryWrapper(params)); return (Page) userPage; } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/http/RequestPage.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/http/RequestPage.java new file mode 100644 index 0000000..727ffec --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/http/RequestPage.java @@ -0,0 +1,44 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.utils.http; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +/** + * @author 佘语殊 + * @since 2022/7/4 10:24 + */ +@NoArgsConstructor +@Data +public class RequestPage { + @NotNull + @Min(1) + Integer pageCurrent; + @NotNull + @Min(1) + Integer pageSize; + @ApiModelProperty("不传或传空时不排序,否则按照此字段排序") + String sortBy; + @ApiModelProperty("传true或空时为顺序排序,否则倒序排序") + Boolean asc; + + public IPage getPage() { + Page page = new Page<>(pageCurrent, pageSize); + if (StringUtils.isNotBlank(sortBy)) { + String column = StringUtils.camelToUnderline(sortBy); + if (asc == null || asc) { + page.addOrder(OrderItem.asc(column)); + } else { + page.addOrder(OrderItem.desc(column)); + } + } + return page; + } +}