<?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.stylefeng.guns.modular.system.dao.CourseMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Course">
|
<id column="id" property="id" />
|
<result column="courseName" property="courseName" />
|
<result column="coverImg" property="coverImg" />
|
<result column="introduce" property="introduce" />
|
<result column="type" property="type" />
|
<result column="difficulty" property="difficulty" />
|
<result column="time" property="time" />
|
<result column="isFree" property="isFree" />
|
<result column="sort" property="sort" />
|
<result column="state" property="state" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, courseName, coverImg, introduce, type, difficulty, time, isFree, sort, state
|
</sql>
|
<select id="courseSearch" resultType="com.stylefeng.guns.modular.system.vo.CourseList">
|
select t1.id,t1.courseName,t1.time,t1.isFree,t1.difficulty,t1.coverImg,
|
CONCAT(t3.name,'|',t2.name) as typeName,t1.minute,t1.second
|
from t_course t1
|
left join t_fitness_position t2 on t1.positionId = t2.id
|
left join t_fitness_type t3 on t2.typeId = t3.id
|
where t1.state = 1
|
<if test="null != req.courseName and '' != req.courseName">
|
and t1.courseName like CONCAT('%', #{req.courseName}, '%')
|
</if>
|
<if test="null != req.type">
|
and t3.id = #{req.type}
|
</if>
|
<if test="null != req.position">
|
and t2.id = #{req.position}
|
</if>
|
<if test="null != req.difficulty">
|
and t1.difficulty = #{req.difficulty}
|
</if>
|
<if test="null != req.startTime">
|
and t1.time between #{req.startTime} and #{req.endTime}
|
</if>
|
<if test="null != req.courseIds and req.courseIds.size()>0" >
|
and t1.id in
|
<foreach collection="req.courseIds" item="item" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
</if>
|
order by t1.isFree desc , t1.sort desc
|
limit #{req.pageNum}, #{req.pageSize}
|
</select>
|
<select id="courseSearch1" resultType="com.stylefeng.guns.modular.system.vo.CourseList">
|
select t1.id,t1.courseName,t1.time,t1.isFree,t1.difficulty,t1.coverImg,
|
CONCAT(t3.name,'|',t2.name) as typeName,t1.minute,t1.second
|
from t_course t1
|
left join t_fitness_position t2 on t1.positionId = t2.id
|
left join t_fitness_type t3 on t2.typeId = t3.id
|
where t1.state = 1
|
<if test="null != req.courseName and '' != req.courseName">
|
and t1.courseName like CONCAT('%', #{req.courseName}, '%')
|
</if>
|
<if test="null != req.type">
|
and t3.id = #{req.type}
|
</if>
|
<if test="null != req.position">
|
and t2.id = #{req.position}
|
</if>
|
<if test="null != req.difficulty">
|
and t1.difficulty = #{req.difficulty}
|
</if>
|
<if test="null != req.time">
|
and t1.time between #{req.startTime} and #{req.endTime}
|
</if>
|
<if test="null != req.courseIds and req.courseIds.size()>0" >
|
and t1.id in
|
<foreach collection="req.courseIds" item="item" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
</if>
|
order by t1.isFree desc , t1.sort desc
|
|
</select>
|
<select id="courseList" resultType="com.stylefeng.guns.modular.system.vo.CourseList">
|
select t1.*,CONCAT(t2.name,'|',t3.name) as typeName,
|
count(t4.id) as `count`
|
from t_course t1
|
left join t_fitness_type t2 on t1.typeId = t2.id
|
left join t_fitness_position t3 on t1.positionId = t3.id
|
left join t_course_video t4 on t4.courseId = t1.id
|
where t1.state!=3
|
<if test="null != req.courseName and '' != req.courseName">
|
and t1.courseName like CONCAT('%', #{req.courseName}, '%')
|
</if>
|
<if test="null != req.state">
|
and t1.state = #{req.state}
|
</if>
|
<if test="null != req.difficulty">
|
and t1.difficulty = #{req.difficulty}
|
</if>
|
GROUP BY t1.id
|
order by t1.id desc
|
</select>
|
|
</mapper>
|