<insert id="addDictionary" parameterType="java.util.Map">
INSERT COMMON_DICTDATA (
ID,
DATA_CODE,
DATA_NAME,
TYPE,
DATA_DESC,
DATA_SORT,
DATA_STATUS,
START_TIME,
<if test="status != null and status == 0">
STOP_TIME,
</if>
CREATE_DATE,
CREATE_BY,
UPDATE_DATE,
UPDATE_BY
) VALUES (
#{dictionaryId},
#{dictionaryCode},
#{dictionaryName},
#{type},
CONCAT(CONCAT(#{typeName},'-'),#{dictionaryName}),
(
SELECT
T.data_sort
FROM
(
SELECT
IFNULL(MAX(data_sort), 0) + 1 AS data_sort
FROM
COMMON_DICTDATA
WHERE
type = #{type}
) T
),
#{status},
NOW(),
<if test="status != null and status == 0">
NOW(),
</if>
NOW(),
#{userId},
NOW(),
#{userId})
</insert>
<!-- 更新字典数据信息 -->
<update id="updateDictionary" parameterType="java.util.Map">
UPDATE COMMON_DICTDATA
SET DATA_CODE = #{dictionaryCode},
DATA_NAME = #{dictionaryName},
DATA_DESC = CONCAT(CONCAT(#{typeName},'-'),#{dictionaryName}),
DATA_STATUS = #{status},
<if test="status != null and status == 1">
START_TIME = NOW(),
STOP_TIME = NULL,
</if>
<if test="status != null and status == 0">
STOP_TIME = NOW(),
</if>
UPDATE_DATE = NOW(),
UPDATE_BY = #{userId}
WHERE TYPE = #{type}
AND ID = #{dictionaryId}
</update>
<!-- 按类型获取字典数据列表 -->
//此种方法比left join on更加方便,推荐使用(当前为多表查询)
<!-- 根据ID查询招生批次 -->
<select id="queryEnrollBatchInfo" resultType="java.util.Map">
SELECT
T1.ID "enrollBatchId",
T1.LEARNING_BATCH_ID "enrollLearningBatchId",
T1.BATCH_NAME "enrollBatchName",
date_format(start_time,'%Y-%m-%d') 'enrollStartTime',
date_format(stop_time,'%Y-%m-%d') 'enrollStopTime',
T1.STATUS "status",
T1.HAS_USED "hasUsed",
T2.ID "learningBatchId",
T2.BATCH_NAME "learningBatchName"
FROM REG_ENROLL_BATCH T1,REG_LEARNING_BATCH T2
WHERE T1.ID = #{enrollBatchId} AND T1.LEARNING_BATCH_ID =T2.ID
AND T1.HAS_DEL =0
</select>
//如果所需的数据可以为空的情况下,使用left join on
<!-- 获取招生批次列表 -->
<select id="queryEnrollBatchList" parameterType="com.wh.eas.manage.model.Page" resultType="java.util.Map">
SELECT
E.id "enrollBatchId",
E.learning_batch_id "enrollLearningBatchId",
E.batch_name "enrollBatchName",
date_format(start_time,'%Y-%m-%d') 'enrollStartTime',
date_format(stop_time,'%Y-%m-%d') 'enrollStopTime',
E.has_used "hasUsed",
E.status "status",
IFNULL(publish_time,'--') "enrollPublishTime",
E.UPDATE_DATE "updateDate",
L.id "learningBatchId",
L.batch_name "learningBatchName"
FROM REG_ENROLL_BATCH E
LEFT JOIN REG_LEARNING_BATCH L
ON E.learning_batch_id = L.id
WHERE E.has_del = 0
<if test="params.learningBatchId !=null and params.learningBatchId!=''">
AND E.learning_batch_id LIKE CONCAT(CONCAT('%',#{params.learningBatchId}),'%')
</if>
ORDER BY E.status ,E.publish_time,E.create_date DESC
</select>
<!-- 获取max截止时间 -->
<select id="getMaxStopTime" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
ID "ENROLLBATCHID",
DATE_FORMAT(MAX(STOP_TIME), '%Y-%M-%D') 'enrollStartTime'
FROM
REG_ENROLL_BATCH
WHERE
STATUS = "1"
</select>
//foreach 遍历
<!-- 根据ID获取考核指标 -->
<select id="queryReRegVerifyInfoById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT T1.ID "reRegVerifyId",
T1.verify_status_id "StuStatusId",
T2.ID "commonDictdataId",
T2.data_name "StuStatus"
FROM reg_student_reg T1, common_dictdata T2
WHERE T1.ID = #{reRegVerifyId} AND T1.verify_status_id = T2.ID
AND T1.ID in
<foreach collection="manageModeApplyIds" separator="," item="manageModeApplyId" open="(" close=")">
#{manageModeApplyId}
</foreach>
</select>
<!-- 获取初审报名预审总数 -->
<select id="queryPreRegVerifyCount" parameterType="java.util.Map" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM reg_pre_registration
WHERE 1=1
<if test="subjectLevelName !=null and subjectLevelName !=''">
AND LEVEL_ID LIKE CONCAT(CONCAT('%',#{subjectLevelName}),'%')
</if>
<if test="subjectMajorName !=null and subjectMajorName !=''">
AND MAJOR_ID LIKE CONCAT(CONCAT('%',#{subjectMajorName}),'%')
</if>
<if test="sysPointName !=null and sysPointName !=''">
AND POINT_ID LIKE CONCAT(CONCAT('%',#{sysPointName}),'%')
</if>
<if test="preRegVerifyName !=null and preRegVerifyName !=''">
AND NAME LIKE CONCAT(CONCAT('%',#{preRegVerifyName}),'%')
</if>
<if test="preRegVerifyMobilePhone != null and preRegVerifyMobilePhone != ''">
AND MOBILEPHONE LIKE CONCAT(CONCAT('%',#{preRegVerifyMobilePhone}),'%')
</if>
<if test="status != null and status != ''">
AND STATUS = #{status}
</if>
</select>
<!-- 获取考核指标列表 -->
<select id="queryCourseExamModeList" parameterType="com.wh.eas.manage.model.Page" resultType="java.util.Map">
SELECT S.*
FROM (SELECT T1.ID "courseId",
T1.COURSE_CODE "courseCode",
T1.COURSE_NAME "courseName",
T1.CREDIT "credit",
T2.exam_forms "examForms",
(SELECT GROUP_CONCAT(data_name)
FROM COMMON_DICTDATA
WHERE TYPE = 'EXAM_FORM'
AND DATA_STATUS = 1
AND HAS_DEL = 0
AND FIND_IN_SET(DATA_CODE, T2.exam_forms)) "examFormNames",
T2.ID "examModeApplyId",
T2.EXAM_METHOD_CODE "examMethodCode",
(SELECT DATA_NAME
FROM COMMON_DICTDATA
WHERE TYPE = "EXAM_METHOD"
AND DATA_CODE = T2.EXAM_METHOD_CODE) "examMethodName",
T2.EXAM_TYPE_CODE "examTypeCode",
(SELECT DATA_NAME
FROM COMMON_DICTDATA
WHERE TYPE = "EXAM_TYPE"
AND DATA_CODE = T2.EXAM_TYPE_CODE) "examTypeName",
T2.EXAM_TIME "examTime",
T2.VERIFY_STATUS "verifyStatus",
T2.FORM_RATE "formRate",
T2.FINAL_RATE "finalRate",
T2.PRACTICE_RATE "practiceRate",
T2.MIN_FORM_SCORE "minFormScore",
T2.MIN_FINAL_SCORE "minFinalScore",
T2.MIN_PRACTICE_SCORE "minPracticeScore"
FROM
SUBJECT_COURSE T1,
SUBJECT_COURSE_EXAM_MODE_APPLY T2,
subject_course_education t3
WHERE
T1.ID = T2.COURSE_ID
<if test="params.subjectId !=null and params.subjectId !=''">
and t1.subject_id = #{params.subjectId}
</if>
<if test="params.educationId !=null and params.educationId !=''">
and t3.edu_id = #{params.educationId}
</if>
<if test="params.verifyStatus !=null and params.verifyStatus !=''">
and t2.verify_status = #{params.verifyStatus}
</if>
<if test="params.courseStatus !=null and params.courseStatus !=''">
and t1.status = #{params.courseStatus}
</if>
<if test="params.courseCode !=null and params.courseCode !=''">
and t1.course_code = #{params.courseCode}
</if>
<if test="params.courseName !=null and params.courseName !=''">
and t1.course_name = #{params.courseName}
</if>
AND T1.HAS_DEL = 0
AND T1.status <![CDATA[<>]]> 3
ORDER BY T2.CREATE_DATE DESC) S
GROUP BY S.courseId
</select>
<!-- 获取考核指标总数 -->
<select id="queryCourseExamModeCount" parameterType="java.util.Map" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM (SELECT T1.ID
FROM SUBJECT_COURSE T1,
SUBJECT_COURSE_EXAM_MODE_APPLY T2
WHERE T1.ID = T2.COURSE_ID
AND T1.HAS_DEL = 0
AND T1.status <![CDATA[<>]]> 3
GROUP BY T1.ID) S
</select>