integrated_traffic_admin/src/main/resources/mybatis/dsno3/eduStudy/CurriculumCacheMapper.xml

497 lines
14 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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.zcloud.mapper.dsno3.eduStudy.CurriculumCacheMapper">
<!--表名 -->
<sql id="tableName">
BUS_CURRICULUM_CACHE
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
`qa-traffic-prevention`.SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f.CURRICULUMNAME,
f.CURRICULUMINTRODUCE,
f.CURRICULUMAIM,
f.STARTTIME,
f.ENDTIME,
f.CURRICULUMUSERS,
f.CREATOR,
f.CREATTIME,
f.OPERATOR,
f.OPERATTIME,
f.ISDELETE,
f.CORPINFO_ID,
f.TRAINTYPE,
f.POSTTYPE,
f.CLASSHOUR,
f.CAPTURE,
f.STATE,
f.INDUSTRY_END_ID,
f.INDUSTRY_ALL_TYPE,
f.INDUSTRY_ALL_NAME,
f.TRAINLEVEL,
f.CATALOGUELEVEL,
f.ISSELL,
f.COVERPATH,
f.VIDEOTIME,
f.ISCOMPLETE,
f.CURRICULUM_ID,
f.COLLECTIVE,
f.CURRICULUM_ID_REMOTE
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
CURRICULUMNAME,
CURRICULUMINTRODUCE,
CURRICULUMAIM,
STARTTIME,
ENDTIME,
CURRICULUMUSERS,
CREATOR,
CREATTIME,
OPERATOR,
OPERATTIME,
ISDELETE,
CORPINFO_ID,
TRAINTYPE,
POSTTYPE,
CLASSHOUR,
CAPTURE,
STATE,
INDUSTRY_END_ID,
INDUSTRY_ALL_TYPE,
INDUSTRY_ALL_NAME,
TRAINLEVEL,
CATALOGUELEVEL,
ISSELL,
COVERPATH,
VIDEOTIME,
ISCOMPLETE,
CURRICULUM_ID,
COLLECTIVE,
CURRICULUM_ID_REMOTE,
VALID_DATE
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{CURRICULUMNAME},
#{CURRICULUMINTRODUCE},
#{CURRICULUMAIM},
#{STARTTIME},
#{ENDTIME},
#{CURRICULUMUSERS},
#{CREATOR},
#{CREATTIME},
#{OPERATOR},
#{OPERATTIME},
#{ISDELETE},
#{CORPINFO_ID},
#{TRAINTYPE},
#{POSTTYPE},
#{CLASSHOUR},
#{CAPTURE},
#{STATE},
#{INDUSTRY_END_ID},
#{INDUSTRY_ALL_TYPE},
#{INDUSTRY_ALL_NAME},
#{TRAINLEVEL},
#{CATALOGUELEVEL},
#{ISSELL},
#{COVERPATH},
#{VIDEOTIME},
#{ISCOMPLETE},
#{CURRICULUM_ID},
#{COLLECTIVE},
#{CURRICULUM_ID_REMOTE},
#{VALID_DATE}
</sql>
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
<include refid="Field2"></include>
) values (
<include refid="FieldValue"></include>
)
</insert>
<!-- 删除-->
<delete id="delete" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1',
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
CURRICULUM_ID = #{CURRICULUM_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
CURRICULUMNAME = #{CURRICULUMNAME},
CURRICULUMINTRODUCE = #{CURRICULUMINTRODUCE},
CURRICULUMAIM = #{CURRICULUMAIM},
STARTTIME = #{STARTTIME},
ENDTIME = #{ENDTIME},
CURRICULUMUSERS = #{CURRICULUMUSERS},
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME},
CAPTURE = #{CAPTURE},
TRAINTYPE = #{TRAINTYPE},
POSTTYPE = #{POSTTYPE},
INDUSTRY_END_ID = #{INDUSTRY_END_ID},
INDUSTRY_ALL_TYPE = #{INDUSTRY_ALL_TYPE},
INDUSTRY_ALL_NAME = #{INDUSTRY_ALL_NAME},
TRAINLEVEL = #{TRAINLEVEL},
CATALOGUELEVEL = #{CATALOGUELEVEL},
ISSELL = #{ISSELL},
CLASSHOUR = #{CLASSHOUR},
VIDEOTIME = #{VIDEOTIME},
COVERPATH = #{COVERPATH},
COLLECTIVE = #{COLLECTIVE},
CURRICULUM_ID = CURRICULUM_ID
where
CURRICULUM_ID = #{CURRICULUM_ID}
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>,
p.NAME POSTTYPE_NAME,
t.NAME TRAININGTYPE_NAME,
tlt.NAME TRAINLEVEL_NAME,
lei.NAME INDUSTRY_END_NAME,
CONCAT_WS('-',IF( t.NAME= '',null ,t.NAME ),IF( lei.NAME= '',null , lei.NAME ),IF( p.NAME= '',null , p.NAME ),IF( tlt.NAME= '',null , tlt.NAME )) TYPENAME
from
<include refid="tableName"></include> f
LEFT JOIN BUS_POST_TYPE p on p.POSTTYPE_ID = f.POSTTYPE
LEFT JOIN BUS_TRAINING_TYPE t on t.TRAININGTYPE_ID = f.TRAINTYPE
LEFT JOIN BUS_TRAIN_LEVEL_TYPE tlt on tlt.TRAINLEVEL_ID = f.TRAINLEVEL
LEFT JOIN `qa-traffic-prevention`.BUS_INDUSTRY_TYPE lei ON lei.INDUSTRYTYPE_ID = f.INDUSTRY_END_ID
where
f.CURRICULUM_ID = #{CURRICULUM_ID}
</select>
<!-- 查询视频库课程 -->
<select id="findByRemoteId" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
where
f.ISDELETE = '0'
and f.CURRICULUM_ID_REMOTE = #{CURRICULUM_ID_REMOTE}
</select>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
select
<include refid="Field"></include>,
p.NAME POSTTYPE_NAME,
t.NAME TRAININGTYPE_NAME,
tlt.NAME TRAINLEVEL_NAME,
lei.NAME INDUSTRY_END_NAME,
(
SELECT
COUNT(c.CHAPTER_ID)
FROM
BUS_CHAPTER_CACHE c
WHERE
c.CURRICULUM_ID = f.CURRICULUM_ID
and c.ISDELETE = 0
AND c.VIDEOCOURSEWARE_ID IS NOT NULL
AND c.VIDEOCOURSEWARE_ID != ''
) COURSEWARECOUNT,
IFNULL( f.VALID_DATE, '自建课程' ) VALID_DATE
from
<include refid="tableName"></include> f
LEFT JOIN BUS_POST_TYPE p on p.POSTTYPE_ID = f.POSTTYPE
LEFT JOIN BUS_TRAINING_TYPE t on t.TRAININGTYPE_ID = f.TRAINTYPE
LEFT JOIN BUS_TRAIN_LEVEL_TYPE tlt on tlt.TRAINLEVEL_ID = f.TRAINLEVEL
LEFT JOIN `qa-traffic-prevention`.BUS_INDUSTRY_TYPE lei ON lei.INDUSTRYTYPE_ID = f.INDUSTRY_END_ID
where f.ISDELETE = '0'
and ( f.VALID_DATE IS NULL
or f.VALID_DATE >= DATE_FORMAT(NOW(),'%Y-%m-%d') )
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and f.CURRICULUMNAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
</if>
<if test="pd.COLLECTIVE != null and pd.COLLECTIVE != ''">
and f.COLLECTIVE = #{pd.COLLECTIVE}
</if>
<if test="pd.LEARNERCATEGORY != null and pd.LEARNERCATEGORY != ''"><!-- 关键词检索 -->
and f.CURRICULUMUSERS = #{pd.LEARNERCATEGORY}
</if>
<if test="pd.STARTTIMEBEGIN != null and pd.STARTTIMEBEGIN != ''"><!-- 关键词检索 -->
and f.STARTTIME &gt;= #{pd.STARTTIMEBEGIN}
</if>
<if test="pd.STARTTIMEEND != null and pd.STARTTIMEEND != ''">
and f.STARTTIME &lt;= #{pd.STARTTIMEEND}
</if>
<if test="pd.ENDTIMEBEGIN != null and pd.ENDTIMEBEGIN != ''"><!-- 关键词检索 -->
and f.ENDTIME &gt;= #{pd.ENDTIMEBEGIN}
</if>
<if test="pd.trainingSectionKey != null and pd.trainingSectionKey != ''"><!-- 培训板块 -->
and f.CURRICULUM_ID in (select RECORD_ID from bus_coursewarerelation crt where crt.DICTIONARIES_IDS LIKE CONCAT(CONCAT('%', #{pd.trainingSectionKey}),'%'))
</if>
<if test="pd.STARTTIME != null and pd.STARTTIME != ''"><!-- 关键词检索 -->
and f.CREATTIME &gt;= #{pd.STARTTIME}
</if>
<if test="pd.ENDTIME != null and pd.ENDTIME != ''">
and f.CREATTIME &lt;= #{pd.ENDTIME}
</if>
<if test="pd.TRAINTYPE != null and pd.TRAINTYPE != ''"><!-- 培训行业类型 -->
and f.TRAINTYPE = #{pd.TRAINTYPE}
</if>
<if test="pd.POSTTYPE != null and pd.POSTTYPE != ''"><!-- 岗位培训类型 -->
and f.POSTTYPE = #{pd.POSTTYPE}
</if>
<if test="pd.ISSELL != null and pd.ISSELL != ''"><!-- 状态 -->
and f.ISSELL = #{pd.ISSELL}
</if>
<if test="pd.INDUSTRY != null and pd.INDUSTRY != ''"> <!-- 行业类型 -->
and f.INDUSTRY_END_ID = #{pd.INDUSTRY}
</if>
<if test="pd.TRAINLEVEL != null and pd.TRAINLEVEL != ''"><!-- 培训级别 -->
and f.TRAINLEVEL = #{pd.TRAINLEVEL}
</if>
ORDER BY f.STATE desc, CONVERT( f.CURRICULUMNAME USING gbk )
</select>
<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
where f.ISDELETE = '0' and f.CORPINFO_ID = #{CORPINFO_ID}
<if test="STUDYTASK_ID != null and STUDYTASK_ID != ''"><!-- 关键词检索 -->
and exists (SELECT 1 FROM BUS_STUDYTASKCURRICULUM s WHERE s.STUDYTASK_ID=#{STUDYTASK_ID} and f.CURRICULUM_ID=s.CURRICULUM_ID)
</if>
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1',
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
CURRICULUM_ID in
<foreach item="item" index="index" collection="curriculumList" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 批量下架 -->
<delete id="unSellAll" parameterType="pd">
update
<include refid="tableName"></include>
set
ISSELL = '0',
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
CURRICULUM_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 列表(根据所选ID获取数据) -->
<select id="findByIds" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
where
CURRICULUM_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 我的课程(获取当前用户的所属课程) -->
<select id="pageDataByUserlistPage" parameterType="page" resultType="pd">
select
<include refid="Field"></include>
,COUNT(m.KCMIDDLEKJ_ID) COURSEWARECOUNT
,p.COURSEPAPERS_ID
,p.EXAMNAME
,r.COURSESTUDENTRELATION_ID
,r.STUDYCOUNT
,r.COURSEEXAMCOUNT
,r.STAGEEXAMCOUNT
,r.STUDYSTATE
,r.COURSEEXAMSTATE
,r.STAGEEXAMSTATE
,r.COURSEEXAMSCORE
,r.STAGEEXAMSCORE
from
<include refid="tableName"></include> f
LEFT JOIN BUS_COURSESTUDENTRELATION r ON f.CURRICULUM_ID = r.CURRICULUM_ID AND r.ISDELETE='0'
LEFT JOIN BUS_KCMIDDLEKJ m ON m.CURRICULUMID = f.CURRICULUM_ID AND m.ISDELETE = '0'
LEFT JOIN BUS_COURSEPAPERS p ON p.CURRICULUMID = f.CURRICULUM_ID AND p.ISDELETE = '0'
where f.ISDELETE = '0' and f.CORPINFO_ID = #{pd.CORPINFO_ID}
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and
(
f.CURRICULUMNAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
<!-- 根据需求自己加检索条件
字段1 LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
or
字段2 LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
-->
)
</if>
<if test="pd.STUDYSTATE != null and pd.STUDYSTATE != ''">
<choose>
<when test="pd.STUDYSTATE == 1"> <!-- 未开始 -->
and r.STUDYSTATE = #{pd.STUDYSTATE}
</when>
<when test="pd.STUDYSTATE == 2"> <!-- 进行中 -->
and r.STUDYSTATE = #{pd.STUDYSTATE}
</when>
<when test="pd.STUDYSTATE == 3"> <!-- 已通过 -->
and r.COURSEEXAMSTATE = #{pd.STUDYSTATE}
</when>
<when test="pd.STUDYSTATE == 4"> <!-- 已结束 -->
and r.STUDYSTATE = #{pd.STUDYSTATE}
</when>
</choose>
</if>
AND r.USER_ID = #{pd.USER_ID}
GROUP BY f.CURRICULUM_ID ORDER BY f.OPERATTIME DESC
</select>
<!-- 学员课程列表(查询课程信息及可想关联的学员统计) -->
<select id="listSummarylistPage" parameterType="page" resultType="pd">
select
<include refid="Field"></include>
,COUNT(DISTINCT m.KCMIDDLEKJ_ID) COURSEWARECOUNT
,COUNT(DISTINCT (CASE WHEN (r.COURSEEXAMSTATE = '3') THEN r.USER_ID END) ) COMPLETENUM
,COUNT(DISTINCT r.USER_ID) PARTICIPANTNUM
from
<include refid="tableName"></include> f
LEFT JOIN BUS_KCMIDDLEKJ m ON m.CURRICULUMID = f.CURRICULUM_ID AND m.ISDELETE = '0'
LEFT JOIN BUS_COURSESTUDENTRELATION r ON f.CURRICULUM_ID = r.CURRICULUM_ID AND r.ISDELETE='0'
where f.ISDELETE = '0' and f.CORPINFO_ID = #{pd.CORPINFO_ID}
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and
(
<!-- 根据需求自己加检索条件 -->
f.CURRICULUMNAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
or
f.CURRICULUMINTRODUCE LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
or
f.CURRICULUMAIM LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
)
</if>
<if test="pd.LEARNERCATEGORY != null and pd.LEARNERCATEGORY != ''"><!-- 关键词检索 -->
and f.CURRICULUMUSERS = #{pd.LEARNERCATEGORY}
</if>
<if test="pd.STARTTIMEBEGIN != null and pd.STARTTIMEBEGIN != ''"><!-- 关键词检索 -->
and f.STARTTIME &gt;= #{pd.STARTTIMEBEGIN}
</if>
<if test="pd.STARTTIMEEND != null and pd.STARTTIMEEND != ''">
and f.STARTTIME &lt;= #{pd.STARTTIMEEND}
</if>
<if test="pd.ENDTIMEBEGIN != null and pd.ENDTIMEBEGIN != ''"><!-- 关键词检索 -->
and f.ENDTIME &gt;= #{pd.ENDTIMEBEGIN}
</if>
<if test="pd.ENDTIMEEND != null and pd.ENDTIMEEND != ''">
and f.ENDTIME &lt;= #{pd.ENDTIMEEND}
</if>
GROUP BY f.CURRICULUM_ID ORDER BY f.OPERATTIME DESC
</select>
<!-- 启用禁用-->
<update id="editState" parameterType="pd">
update
<include refid="tableName"></include>
set
STATE = #{STATE},
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
CURRICULUM_ID = #{CURRICULUM_ID}
</update>
<!-- 完善课程信息-->
<update id="completeEdit" parameterType="pd">
update
<include refid="tableName"></include>
set
<if test="CURRICULUMNAME != null and CURRICULUMNAME != ''">
CURRICULUMNAME = #{CURRICULUMNAME},
</if>
<if test="CURRICULUMINTRODUCE != null and CURRICULUMINTRODUCE != ''">
CURRICULUMINTRODUCE = #{CURRICULUMINTRODUCE},
</if>
<if test="COVERPATH != null and COVERPATH != ''">
COVERPATH = #{COVERPATH},
</if>
<if test="ISSELL != null and ISSELL != ''">
ISSELL = #{ISSELL},
</if>
<if test="TRAINLEVEL != null and TRAINLEVEL != ''">
TRAINLEVEL = #{TRAINLEVEL},
</if>
<if test="INDUSTRY_ALL_NAME != null and INDUSTRY_ALL_NAME != ''">
INDUSTRY_ALL_NAME = #{INDUSTRY_ALL_NAME},
</if>
<if test="INDUSTRY_END_ID != null and INDUSTRY_END_ID != ''">
INDUSTRY_END_ID = #{INDUSTRY_END_ID},
</if>
<if test="INDUSTRY_ALL_TYPE != null and INDUSTRY_ALL_TYPE != ''">
INDUSTRY_ALL_TYPE = #{INDUSTRY_ALL_TYPE},
</if>
<if test="INDUSTRY_ALL_NAME != null and INDUSTRY_ALL_NAME != ''">
INDUSTRY_ALL_NAME = #{INDUSTRY_ALL_NAME},
</if>
<if test="POSTTYPE != null and POSTTYPE != ''">
POSTTYPE = #{POSTTYPE},
</if>
<if test="TRAINTYPE != null and TRAINTYPE != ''">
TRAINTYPE = #{TRAINTYPE},
</if>
<if test="TRAINLEVEL != null and TRAINLEVEL != ''">
TRAINLEVEL = #{TRAINLEVEL},
</if>
ISCOMPLETE = IF( ISCOMPLETE = '0', #{ISCOMPLETE}, '1'),<!-- 若视频已经完善完成则改为1若视频未完善完成则改为3 -->
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
CURRICULUM_ID = #{CURRICULUM_ID}
</update>
<!-- 上架下架-->
<update id="editIsSell" parameterType="pd">
update
<include refid="tableName"></include>
set
ISSELL = #{ISSELL},
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
CURRICULUM_ID = #{CURRICULUM_ID}
</update>
</mapper>