TienChin-课程管理-课程搜索

简介: TienChin-课程管理-课程搜索

后端

新建 CourseVO.java:

/**
 * CourseVO类是一个课程的值对象,用于存储课程的相关信息。
 * 它包含了课程的名称、类型、适用对象、最低价格和最高价格等属性。
 */
public class CourseVO {
    private String name; // 课程名称
    private String type; // 课程类型
    private String applyTo; // 适用对象
    private Double minPrice; // 最低价格
    private Double maxPrice; // 最高价格
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getApplyTo() {
        return applyTo;
    }
    public void setApplyTo(String applyTo) {
        this.applyTo = applyTo;
    }
    public Double getMinPrice() {
        return minPrice;
    }
    public void setMinPrice(Double minPrice) {
        this.minPrice = minPrice;
    }
    public Double getMaxPrice() {
        return maxPrice;
    }
    public void setMaxPrice(Double maxPrice) {
        this.maxPrice = maxPrice;
    }
}

CourseController.java

更改列表查询方法:

@PreAuthorize("hasPermission('tienchin:course:list')")
@GetMapping("/list")
TableDataInfo list(CourseVO courseVO) {
    startPage();
    return getDataTable(iCourseService.selectCourseList(courseVO));
}

ICourseService.java

/**
 * 查询课程列表
 *
 * @param courseVO 课程信息
 * @return {@code List<Course>}
 */
List<Course> selectCourseList(CourseVO courseVO);

CourseServiceImpl.java

@Override
public List<Course> selectCourseList(CourseVO courseVO) {
    return courseMapper.selectCourseList(courseVO);
}

CourseMapper.java

/**
 * 查询课程列表
 *
 * @param courseVO 课程信息
 * @return {@code List<Course>}
 */
List<Course> selectCourseList(CourseVO courseVO);

CourseMapper.xml

<?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="top.it6666.course.mapper.CourseMapper">
    <select id="selectCourseList" resultType="top.it6666.course.domain.Course">
        SELECT *
        FROM tienchin_course
        WHERE del_flag = 0
        <if test="name != null and name != ''">
            AND name LIKE CONCAT('%', #{name}, '%')
        </if>
        <if test="type != null and type != ''">
            AND type = #{type}
        </if>
        <if test="applyTo != null and applyTo != ''">
            AND apply_to = #{applyTo}
        </if>
        <if test="minPrice != null">
            AND price &gt;= #{minPrice}
        </if>
        <if test="maxPrice != null">
            AND price &lt;= #{maxPrice}
        </if>
    </select>
</mapper>

前端

index.vue:

<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="70px">
  <el-form-item label="课程名称" prop="name">
    <el-input
        v-model="queryParams.name"
        placeholder="请输入课程名称"
        clearable
        @keyup.enter="handleQuery"
    />
  </el-form-item>
  <el-form-item label="课程类型" prop="type">
    <el-select
        v-model="queryParams.type"
        placeholder="请选择课程类型"
        clearable
    >
      <el-option
          v-for="ct in course_type"
          :key="ct.value"
          :label="ct.label"
          :value="ct.value"
      />
    </el-select>
  </el-form-item>
  <el-form-item label="适用人群" prop="applyTo">
    <el-select
        v-model="queryParams.applyTo"
        placeholder="请选择适用人群"
        clearable
    >
      <el-option
          v-for="cat in course_apply_to"
          :key="cat.value"
          :label="cat.label"
          :value="cat.value"
      />
    </el-select>
  </el-form-item>
  <el-form-item label="最低价格" prop="minPrice">
    <el-input-number
        v-model="queryParams.minPrice"
        placeholder="最低价格"
        clearable
        @keyup.enter="handleQuery"
        :precision="2"
        :step="100"
        :min="0"
    />
  </el-form-item>
  <el-form-item label="最高价格" prop="maxPrice">
    <el-input-number
        v-model="queryParams.maxPrice"
        placeholder="最高价格"
        clearable
        @keyup.enter="handleQuery"
        :precision="2"
        :step="100"
        :min="0"
    />
  </el-form-item>
  <el-form-item>
    <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
    <el-button icon="Refresh" @click="resetQuery">重置</el-button>
  </el-form-item>
</el-form>

完善一下搜索条件对应的字段即可。

目录
相关文章
|
前端开发 Java Go
关于智能编码助手【通义灵码】,开发者们这么说...
现在通过体验活动首次完成通义灵码免费下载及使用的新用户,即可获得限量定制帆布包 1 个;分享体验截图到活动页面,还可参与抽奖活动,iPhone15 手机、机械键盘、智能手环等大奖等你拿!
7902 11
|
Java BI 测试技术
【Docker项目实战】使用Docker部署SurveyKing调查问卷系统和考试系统
【8月更文挑战第5天】使用Docker部署SurveyKing调查问卷系统和考试系统
1053 2
|
存储 JSON 安全
了解什么是JWT
了解什么是JWT
669 0
|
算法 计算机视觉
Canny边缘检测---OpenCV-Python开发指南(22)
Canny边缘检测---OpenCV-Python开发指南(22)
768 0
Canny边缘检测---OpenCV-Python开发指南(22)
|
存储
halcon视觉缺陷检测系列(2)频域和空间域转换的方法详解
halcon视觉缺陷检测系列(2)频域和空间域转换的方法详解
2194 0
halcon视觉缺陷检测系列(2)频域和空间域转换的方法详解
|
SQL 资源调度 分布式计算
MaxCompute中如何通过logview诊断慢作业
MaxCompute致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务,在MaxCompute执行sql任务的时候有时候作业会很慢,本文通过查看logview排查具体任务慢的原因
5629 0
MaxCompute中如何通过logview诊断慢作业
|
数据采集 机器学习/深度学习 存储
阿里云ACP是什么?考试内容是什么?
近几年云行业发展日益壮大,越来越多的人选择进入这一行,而阿里云ACP就是一块敲门砖,不仅能带你进入这个行业,更能为你带来良好的待遇、优秀的岗位。
2069 0
阿里云ACP是什么?考试内容是什么?
|
算法 前端开发
前端算法leetcode 56 - I. 数组中数字出现的次数
一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。
240 0
前端算法leetcode 56 - I. 数组中数字出现的次数
|
存储 API 数据库
es文档版本控制
es文档版本控制如何实现?
1734 0
|
消息中间件 弹性计算 关系型数据库
ECS使用体验
自我介绍,阿里云ECS使用攻略,收获总结,展望未来。