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>

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

目录
相关文章
|
Swift
在Swift编程语言中,整数类型
在Swift编程语言中,整数类型
188 1
|
6天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
17天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1327 7
|
5天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
300 129
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
4天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
16天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1396 87
|
4天前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
5天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
298 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)