diff --git a/ruoyi-site/ruoyi-h5/doc/h5_project.sql b/ruoyi-site/ruoyi-h5/doc/h5_project.sql index 4262962f3..ae6b0288f 100644 --- a/ruoyi-site/ruoyi-h5/doc/h5_project.sql +++ b/ruoyi-site/ruoyi-h5/doc/h5_project.sql @@ -35,7 +35,8 @@ CREATE TABLE `h5_project` `preview_height` int NOT NULL COMMENT '预览图高度', `status` tinyint NOT NULL COMMENT '状态', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间戳', - `update_time` DATETIME ON UPDATE CURRENT_TIMESTAMP NULL COMMENT '更新时间戳' + `update_time` DATETIME ON UPDATE CURRENT_TIMESTAMP NULL COMMENT '更新时间戳', + `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除' ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 @@ -43,3 +44,6 @@ CREATE TABLE `h5_project` ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; + +CREATE FULLTEXT index ft_title + on h5_project (title) WITH PARSER NGRAM; diff --git a/ruoyi-site/ruoyi-h5/doc/http/h5-projects.http b/ruoyi-site/ruoyi-h5/doc/http/h5-projects.http index 50b1c484e..e0de04fb2 100644 --- a/ruoyi-site/ruoyi-h5/doc/http/h5-projects.http +++ b/ruoyi-site/ruoyi-h5/doc/http/h5-projects.http @@ -3,7 +3,7 @@ GET http://localhost:19200/h5/h5-projects Accept: application/json ### 分页查询H5项目 -GET http://localhost:19200/h5/h5-projects/page?pageNum=1&pageSize=10 +GET http://localhost:19200/h5/h5-projects/page?pageNum=1&pageSize=10&groupIds=1&title=红色 Accept: application/json ### 根据ID查询H5项目 diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/H5ProjectController.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/H5ProjectController.java index 034a56c7e..c6652055a 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/H5ProjectController.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/H5ProjectController.java @@ -1,9 +1,9 @@ package com.luban.api.controller; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.luban.api.entity.H5Project; import com.luban.api.dto.H5ProjectContentDTO; +import com.luban.api.dto.query.H5ProjectQueryDTO; import com.luban.api.service.H5ProjectService; import com.luban.api.vo.H5ProjectDetailVO; import io.swagger.v3.oas.annotations.Operation; @@ -46,16 +46,13 @@ public class H5ProjectController { /** * 分页查询H5项目 * - * @param pageNum 页码 - * @param pageSize 每页大小 + * @param queryDTO 查询参数 * @return H5项目分页数据 */ @Operation(summary = "分页查询H5项目") @GetMapping("/page") - public IPage listH5ProjectsByPage(@RequestParam(defaultValue = "1") Integer pageNum, - @RequestParam(defaultValue = "10") Integer pageSize) { - IPage page = new Page<>(pageNum, pageSize); - return h5ProjectService.page(page); + public IPage listH5ProjectsByPage(H5ProjectQueryDTO queryDTO) { + return h5ProjectService.pageH5Projects(queryDTO); } /** diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dao/H5ProjectDao.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dao/H5ProjectDao.java index eaedec5a7..eb514c9ca 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dao/H5ProjectDao.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dao/H5ProjectDao.java @@ -1,8 +1,11 @@ package com.luban.api.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.luban.api.entity.H5Project; +import com.luban.api.dto.query.H5ProjectQueryDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** *

@@ -14,4 +17,12 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface H5ProjectDao extends BaseMapper { -} \ No newline at end of file + /** + * 根据条件分页查询H5项目 + * + * @param page 分页参数 + * @param queryDTO 查询条件 + * @return 分页结果 + */ + IPage selectH5ProjectPage(IPage page, @Param("queryDTO") H5ProjectQueryDTO queryDTO); +} diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/PageDtoBase.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/PageDtoBase.java index 43598a9fc..099caa0e4 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/PageDtoBase.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/PageDtoBase.java @@ -1,14 +1,16 @@ package com.luban.api.dto; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; /** * 分页基类 * * @author admin */ -@Data +@Getter +@Setter public class PageDtoBase { /** * 每页行数 diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/query/H5ProjectQueryDTO.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/query/H5ProjectQueryDTO.java new file mode 100644 index 000000000..9782361b3 --- /dev/null +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/query/H5ProjectQueryDTO.java @@ -0,0 +1,31 @@ +package com.luban.api.dto.query; + +import com.luban.api.dto.PageDtoBase; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * H5项目查询DTO + * + * @author your-name + */ +@Getter +@Setter +@Schema(title = "H5项目查询对象") +public class H5ProjectQueryDTO extends PageDtoBase { + + /** + * 分组ID列表 + */ + @Schema(description = "分组ID列表") + private List groupIds; + + /** + * 项目标题 + */ + @Schema(description = "项目标题") + private String title; +} diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/H5ProjectService.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/H5ProjectService.java index 735601dc6..a41192b0c 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/H5ProjectService.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/H5ProjectService.java @@ -1,8 +1,10 @@ package com.luban.api.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.luban.api.entity.H5Project; import com.luban.api.dto.H5ProjectContentDTO; +import com.luban.api.dto.query.H5ProjectQueryDTO; import java.util.List; @@ -66,4 +68,12 @@ public interface H5ProjectService extends IService { * @return 项目内容 */ String getProjectContent(Long projectId); + + /** + * 根据条件分页查询H5项目 + * + * @param queryDTO 查询条件 + * @return 分页结果 + */ + IPage pageH5Projects(H5ProjectQueryDTO queryDTO); } diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/impl/H5ProjectServiceImpl.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/impl/H5ProjectServiceImpl.java index f1f5c6bd6..e2dc2c344 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/impl/H5ProjectServiceImpl.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/impl/H5ProjectServiceImpl.java @@ -1,12 +1,15 @@ package com.luban.api.service.impl; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.luban.api.dao.H5ProjectDao; import com.luban.api.dao.H5ProjectGroupDao; import com.luban.api.entity.H5Project; import com.luban.api.entity.H5ProjectGroup; import com.luban.api.dto.H5ProjectContentDTO; +import com.luban.api.dto.query.H5ProjectQueryDTO; import com.luban.api.service.H5ProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -117,4 +120,10 @@ public class H5ProjectServiceImpl extends ServiceImpl i .map(H5ProjectGroup::getGroupId) .collect(Collectors.toList()); } + + @Override + public IPage pageH5Projects(H5ProjectQueryDTO queryDTO) { + IPage page = new Page<>(queryDTO.getCurrent(), queryDTO.getSize()); + return baseMapper.selectH5ProjectPage(page, queryDTO); + } } diff --git a/ruoyi-site/ruoyi-h5/src/main/resources/mapper/ruoyi-h5/H5ProjectMapper.xml b/ruoyi-site/ruoyi-h5/src/main/resources/mapper/ruoyi-h5/H5ProjectMapper.xml new file mode 100644 index 000000000..ac707ae95 --- /dev/null +++ b/ruoyi-site/ruoyi-h5/src/main/resources/mapper/ruoyi-h5/H5ProjectMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + +