qa-prevention-gwj/src/main/resources/mybatis/datasource/onlinexxks/CourseStudentRelationMapper...

282 lines
7.7 KiB
XML
Raw Normal View History

2023-11-07 09:32:12 +08:00
<?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.datasource.onlinexxks.CourseStudentRelationMapper">
<!--表名 -->
<sql id="tableName">
BUS_COURSESTUDENTRELATION
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f.CURRICULUM_ID,
f.USER_ID,
f.STUDYCOUNT,
f.COURSEEXAMCOUNT,
f.STAGEEXAMCOUNT,
f.STUDYSTATE,
f.COURSEEXAMSTATE,
f.STAGEEXAMSTATE,
f.CREATOR,
f.CREATTIME,
f.OPERATOR,
f.OPERATTIME,
f.ISDELETE,
f.CORPINFO_ID,
f.COURSEEXAMSCORE,
f.STAGEEXAMSCORE,
f.COURSESTUDENTRELATION_ID
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
CURRICULUM_ID,
USER_ID,
STUDYCOUNT,
COURSEEXAMCOUNT,
STAGEEXAMCOUNT,
STUDYSTATE,
COURSEEXAMSTATE,
STAGEEXAMSTATE,
CREATOR,
CREATTIME,
OPERATOR,
OPERATTIME,
ISDELETE,
CORPINFO_ID,
COURSEEXAMSCORE,
STAGEEXAMSCORE,
COURSESTUDENTRELATION_ID
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{CURRICULUM_ID},
#{USER_ID},
#{STUDYCOUNT},
#{COURSEEXAMCOUNT},
#{STAGEEXAMCOUNT},
#{STUDYSTATE},
#{COURSEEXAMSTATE},
#{STAGEEXAMSTATE},
#{CREATOR},
#{CREATTIME},
#{OPERATOR},
#{OPERATTIME},
#{ISDELETE},
#{CORPINFO_ID},
#{COURSEEXAMSCORE},
#{STAGEEXAMSCORE},
#{COURSESTUDENTRELATION_ID}
</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
COURSESTUDENTRELATION_ID = #{COURSESTUDENTRELATION_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
CURRICULUM_ID = #{CURRICULUM_ID},
USER_ID = #{USER_ID},
STUDYCOUNT = #{STUDYCOUNT},
COURSEEXAMCOUNT = #{COURSEEXAMCOUNT},
STAGEEXAMCOUNT = #{STAGEEXAMCOUNT},
STUDYSTATE = #{STUDYSTATE},
COURSEEXAMSTATE = #{COURSEEXAMSTATE},
STAGEEXAMSTATE = #{STAGEEXAMSTATE},
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME},
COURSESTUDENTRELATION_ID = COURSESTUDENTRELATION_ID
where
COURSESTUDENTRELATION_ID = #{COURSESTUDENTRELATION_ID}
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
where
f.COURSESTUDENTRELATION_ID = #{COURSESTUDENTRELATION_ID}
</select>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
select
<include refid="Field"></include>
,u.NAME USERNAME
,(SELECT c.COURSEEXAM_ID FROM BUS_COURSEEXAM c
WHERE c.CURRICULUM_ID = #{pd.CURRICULUM_ID} AND c.USER_ID = f.USER_ID AND c.ISDELETE='0' ORDER BY c.EXAMTIME DESC LIMIT 1) COURSEEXAM_ID
from
<include refid="tableName"></include> f
LEFT JOIN sys_user u ON u.USER_ID = f.USER_ID
where f.ISDELETE = '0' and f.CURRICULUM_ID = #{pd.CURRICULUM_ID} and f.CORPINFO_ID = #{pd.CORPINFO_ID}
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and
(
u.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
<!-- 根据需求自己加检索条件
字段1 LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
or
字段2 LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
-->
)
</if>
ORDER BY f.OPERATTIME DESC
</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 = #{pd.CORPINFO_ID}
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1',
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
COURSESTUDENTRELATION_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
COURSESTUDENTRELATION_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 批量删除(根据所选的课程进行删除课程学员关系表) -->
<delete id="deleteByCurriculumIds" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1',
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where ISDELETE = '0'
AND CURRICULUM_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 修改(更新学员状态) -->
<update id="updateStudentState" parameterType="pd">
update
<include refid="tableName"></include>
set
<if test="TYPE != null and TYPE != '' and TYPE == 1"><!-- 习题练习 -->
STUDYSTATE = #{STUDYSTATE},
</if>
<if test="STAGEEXAMSTATE != null and STAGEEXAMSTATE != '' and STAGEEXAMSTATE == 4"><!-- 阶段考试未参加 -->
STAGEEXAMSCORE = '0',
</if>
<if test="TYPE != null and TYPE != '' and TYPE == 3"><!-- 阶段考试 -->
STAGEEXAMSTATE = #{STAGEEXAMSTATE},
</if>
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
COURSESTUDENTRELATION_ID = #{COURSESTUDENTRELATION_ID}
</update>
<!-- 修改(更新学员考试成绩及状态) -->
<update id="updateStudentScore" parameterType="pd">
update
<include refid="tableName"></include>
set
<if test="EXAMTYPE != null and EXAMTYPE != '' and EXAMTYPE == 1"><!-- 课程学习 -->
STUDYCOUNT = CAST(STUDYCOUNT AS SIGNED)+1,
</if>
<if test="EXAMTYPE != null and EXAMTYPE != '' and EXAMTYPE == 2"><!-- 课程考试 -->
COURSEEXAMCOUNT = CAST(COURSEEXAMCOUNT AS SIGNED)+1,
COURSEEXAMSCORE = #{COURSEEXAMSCORE},
COURSEEXAMSTATE = #{COURSEEXAMSTATE},
</if>
<if test="COURSEEXAMSTATE != null and COURSEEXAMSTATE != '' and COURSEEXAMSTATE == 3"><!-- 课程考试及格学习结束 -->
STUDYSTATE = #{COURSEEXAMSTATE},
</if>
<if test="EXAMTYPE != null and EXAMTYPE != '' and EXAMTYPE == 3"><!-- 阶段考试 -->
STAGEEXAMCOUNT = CAST(STAGEEXAMCOUNT AS SIGNED)+1,
STAGEEXAMSCORE = #{STAGEEXAMSCORE},
STAGEEXAMSTATE = #{STAGEEXAMSTATE},
</if>
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
COURSESTUDENTRELATION_ID = #{COURSESTUDENTRELATION_ID}
</update>
<!-- 课程结束定时任务处理没有参加考试的学员课程课程结束STUDYSTATE = '4'考试未考COURSEEXAMSTATE = '4' -->
<update id="overCourseNotInvolved" parameterType="pd">
UPDATE
<include refid="tableName"></include> f
LEFT JOIN BUS_CURRICULUM c ON c.CURRICULUM_ID = f.CURRICULUM_ID AND c.ISDELETE = '0'
SET
f.STUDYSTATE = '4',
f.COURSEEXAMSTATE = '4',
f.COURSEEXAMSTATE = '4',
f.OPERATTIME = #{OPERATTIME}
WHERE f.COURSEEXAMSTATE = '1'
AND c.ENDTIME = #{ENDTIME}
</update>
<!-- 课程结束定时任务处理参加考试的学员课程课程结束STUDYSTATE = '4' -->
<update id="overCourse" parameterType="pd">
UPDATE
<include refid="tableName"></include> f
LEFT JOIN BUS_CURRICULUM c ON c.CURRICULUM_ID = f.CURRICULUM_ID AND c.ISDELETE = '0'
SET
f.STUDYSTATE = '4',
f.OPERATTIME = #{OPERATTIME}
WHERE f.COURSEEXAMSTATE IN ('2','3')
AND c.ENDTIME = #{ENDTIME}
</update>
</mapper>