mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 17:38:48 +08:00
http 模板查询
This commit is contained in:
parent
b67fb84142
commit
406b4d91bf
@ -35,7 +35,8 @@ CREATE TABLE `h5_project`
|
|||||||
`preview_height` int NOT NULL COMMENT '预览图高度',
|
`preview_height` int NOT NULL COMMENT '预览图高度',
|
||||||
`status` tinyint NOT NULL COMMENT '状态',
|
`status` tinyint NOT NULL COMMENT '状态',
|
||||||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP 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
|
) ENGINE = InnoDB
|
||||||
AUTO_INCREMENT = 1
|
AUTO_INCREMENT = 1
|
||||||
CHARACTER SET = utf8mb4
|
CHARACTER SET = utf8mb4
|
||||||
@ -43,3 +44,6 @@ CREATE TABLE `h5_project`
|
|||||||
ROW_FORMAT = Dynamic;
|
ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
CREATE FULLTEXT index ft_title
|
||||||
|
on h5_project (title) WITH PARSER NGRAM;
|
||||||
|
|||||||
@ -3,7 +3,7 @@ GET http://localhost:19200/h5/h5-projects
|
|||||||
Accept: application/json
|
Accept: application/json
|
||||||
|
|
||||||
### 分页查询H5项目
|
### 分页查询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
|
Accept: application/json
|
||||||
|
|
||||||
### 根据ID查询H5项目
|
### 根据ID查询H5项目
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
package com.luban.api.controller;
|
package com.luban.api.controller;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
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.entity.H5Project;
|
||||||
import com.luban.api.dto.H5ProjectContentDTO;
|
import com.luban.api.dto.H5ProjectContentDTO;
|
||||||
|
import com.luban.api.dto.query.H5ProjectQueryDTO;
|
||||||
import com.luban.api.service.H5ProjectService;
|
import com.luban.api.service.H5ProjectService;
|
||||||
import com.luban.api.vo.H5ProjectDetailVO;
|
import com.luban.api.vo.H5ProjectDetailVO;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -46,16 +46,13 @@ public class H5ProjectController {
|
|||||||
/**
|
/**
|
||||||
* 分页查询H5项目
|
* 分页查询H5项目
|
||||||
*
|
*
|
||||||
* @param pageNum 页码
|
* @param queryDTO 查询参数
|
||||||
* @param pageSize 每页大小
|
|
||||||
* @return H5项目分页数据
|
* @return H5项目分页数据
|
||||||
*/
|
*/
|
||||||
@Operation(summary = "分页查询H5项目")
|
@Operation(summary = "分页查询H5项目")
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public IPage<H5Project> listH5ProjectsByPage(@RequestParam(defaultValue = "1") Integer pageNum,
|
public IPage<H5Project> listH5ProjectsByPage(H5ProjectQueryDTO queryDTO) {
|
||||||
@RequestParam(defaultValue = "10") Integer pageSize) {
|
return h5ProjectService.pageH5Projects(queryDTO);
|
||||||
IPage<H5Project> page = new Page<>(pageNum, pageSize);
|
|
||||||
return h5ProjectService.page(page);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package com.luban.api.dao;
|
package com.luban.api.dao;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.luban.api.entity.H5Project;
|
import com.luban.api.entity.H5Project;
|
||||||
|
import com.luban.api.dto.query.H5ProjectQueryDTO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -14,4 +17,12 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface H5ProjectDao extends BaseMapper<H5Project> {
|
public interface H5ProjectDao extends BaseMapper<H5Project> {
|
||||||
|
|
||||||
}
|
/**
|
||||||
|
* 根据条件分页查询H5项目
|
||||||
|
*
|
||||||
|
* @param page 分页参数
|
||||||
|
* @param queryDTO 查询条件
|
||||||
|
* @return 分页结果
|
||||||
|
*/
|
||||||
|
IPage<H5Project> selectH5ProjectPage(IPage<H5Project> page, @Param("queryDTO") H5ProjectQueryDTO queryDTO);
|
||||||
|
}
|
||||||
|
|||||||
@ -1,14 +1,16 @@
|
|||||||
package com.luban.api.dto;
|
package com.luban.api.dto;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页基类
|
* 分页基类
|
||||||
*
|
*
|
||||||
* @author admin
|
* @author admin
|
||||||
*/
|
*/
|
||||||
@Data
|
@Getter
|
||||||
|
@Setter
|
||||||
public class PageDtoBase {
|
public class PageDtoBase {
|
||||||
/**
|
/**
|
||||||
* 每页行数
|
* 每页行数
|
||||||
|
|||||||
@ -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<Long> groupIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目标题
|
||||||
|
*/
|
||||||
|
@Schema(description = "项目标题")
|
||||||
|
private String title;
|
||||||
|
}
|
||||||
@ -1,8 +1,10 @@
|
|||||||
package com.luban.api.service;
|
package com.luban.api.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.luban.api.entity.H5Project;
|
import com.luban.api.entity.H5Project;
|
||||||
import com.luban.api.dto.H5ProjectContentDTO;
|
import com.luban.api.dto.H5ProjectContentDTO;
|
||||||
|
import com.luban.api.dto.query.H5ProjectQueryDTO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -66,4 +68,12 @@ public interface H5ProjectService extends IService<H5Project> {
|
|||||||
* @return 项目内容
|
* @return 项目内容
|
||||||
*/
|
*/
|
||||||
String getProjectContent(Long projectId);
|
String getProjectContent(Long projectId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据条件分页查询H5项目
|
||||||
|
*
|
||||||
|
* @param queryDTO 查询条件
|
||||||
|
* @return 分页结果
|
||||||
|
*/
|
||||||
|
IPage<H5Project> pageH5Projects(H5ProjectQueryDTO queryDTO);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,15 @@
|
|||||||
package com.luban.api.service.impl;
|
package com.luban.api.service.impl;
|
||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.luban.api.dao.H5ProjectDao;
|
import com.luban.api.dao.H5ProjectDao;
|
||||||
import com.luban.api.dao.H5ProjectGroupDao;
|
import com.luban.api.dao.H5ProjectGroupDao;
|
||||||
import com.luban.api.entity.H5Project;
|
import com.luban.api.entity.H5Project;
|
||||||
import com.luban.api.entity.H5ProjectGroup;
|
import com.luban.api.entity.H5ProjectGroup;
|
||||||
import com.luban.api.dto.H5ProjectContentDTO;
|
import com.luban.api.dto.H5ProjectContentDTO;
|
||||||
|
import com.luban.api.dto.query.H5ProjectQueryDTO;
|
||||||
import com.luban.api.service.H5ProjectService;
|
import com.luban.api.service.H5ProjectService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -117,4 +120,10 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
|||||||
.map(H5ProjectGroup::getGroupId)
|
.map(H5ProjectGroup::getGroupId)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<H5Project> pageH5Projects(H5ProjectQueryDTO queryDTO) {
|
||||||
|
IPage<H5Project> page = new Page<>(queryDTO.getCurrent(), queryDTO.getSize());
|
||||||
|
return baseMapper.selectH5ProjectPage(page, queryDTO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,46 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.luban.api.dao.H5ProjectDao">
|
||||||
|
<resultMap id="BaseResultMap" type="com.luban.api.entity.H5Project">
|
||||||
|
<id column="id" property="id" />
|
||||||
|
<result column="type" property="type" />
|
||||||
|
<result column="title" property="title" />
|
||||||
|
<result column="content" property="content" />
|
||||||
|
<result column="content_updated_at" property="contentUpdatedAt" />
|
||||||
|
<result column="description" property="description" />
|
||||||
|
<result column="preview_url" property="previewUrl" />
|
||||||
|
<result column="preview_url_watermark" property="previewUrlWatermark" />
|
||||||
|
<result column="preview_width" property="previewWidth" />
|
||||||
|
<result column="preview_height" property="previewHeight" />
|
||||||
|
<result column="status" property="status" />
|
||||||
|
<result column="create_time" property="createTime" />
|
||||||
|
<result column="update_time" property="updateTime" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectH5ProjectPage" resultMap="BaseResultMap">
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
title,
|
||||||
|
preview_url,
|
||||||
|
preview_url_watermark,
|
||||||
|
preview_width,
|
||||||
|
preview_height
|
||||||
|
FROM h5_project
|
||||||
|
<where>
|
||||||
|
<if test="queryDTO.title != null and queryDTO.title != ''">
|
||||||
|
AND MATCH(title) AGAINST(#{queryDTO.title} IN NATURAL LANGUAGE MODE)
|
||||||
|
</if>
|
||||||
|
<if test="queryDTO.groupIds != null and queryDTO.groupIds.size() > 0">
|
||||||
|
AND EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM h5_project_group hpg
|
||||||
|
WHERE hpg.project_id = h5_project.id
|
||||||
|
AND hpg.group_id IN
|
||||||
|
<foreach collection="queryDTO.groupIds" item="groupId" open="(" separator="," close=")">
|
||||||
|
#{groupId}
|
||||||
|
</foreach>
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue
Block a user