
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<?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.takensoft.taken_bi_manager.schedule.dao.ScheduleDAO">
<!-- 스케줄 resultMap -->
<resultMap id="schdulResult" type="ScheduleVO">
<result property="schdulId" column="schdul_id"/>
<result property="groupId" column="group_id"/>
<result property="schdulSj" column="schdul_sj"/>
<result property="schdulCn" column="schdul_cn"/>
<result property="schdulType" column="schdul_type"/>
<result property="cron" column="cron"/>
<result property="cronChrctr" column="cron_chrctr"/>
<result property="schdulSttus" column="schdul_sttus"/>
<result property="cycleAt" column="cycle_at"/>
<result property="useAt" column="use_at"/>
<result property="creatId" column="creat_id"/>
<result property="creatDt" column="creat_dt"/>
<result property="updtId" column="updt_id"/>
<result property="updtDt" column="updt_dt"/>
</resultMap>
<!-- 스케줄 조회 -->
<sql id="scheduleSelect">
SELECT schdul_id
, group_id
, schdul_sj
, schdul_cn
, schdul_type
, cron
, cron_chrctr
, schdul_sttus
, cycle_at
, use_at
, creat_id
, creat_dt
, updt_id
, updt_dt
FROM schdul_info
</sql>
<!-- 스케줄 목록 조회 -->
<select id="selectScheduleList" parameterType="SearchVO" resultMap="schdulResult">
<include refid="scheduleSelect" />
WHERE use_at = true
<!-- 검색영역 -->
<foreach item="item" index="index" collection="searchObjectList">
<choose>
<!-- 날짜 검색 -->
<when test="item.type == 'dates'">
AND #{item.value}::timestamp <![CDATA[<=]]> ${item.key}::timestamp
AND ${item.key2}::timestamp <![CDATA[<]]> #{item.value2}::timestamp + INTERVAL '1' DAY
</when>
<!-- 상태 검색 -->
<when test="item.type == 'string' and item.key == 'schdul_sttus' and item.value != null and item.value !=''">
AND ${item.key} = #{item.value}
</when>
<!-- 일반 검색 -->
<when test="item.type == 'string' and item.key != null and item.key != '' and item.value != null and item.value !=''">
AND ${item.key} LIKE CONCAT('%', #{item.value}, '%')
</when>
</choose>
</foreach>
<!-- 검색영역 끝 -->
ORDER BY creat_dt DESC
LIMIT #{perPage} OFFSET ((#{currentPage} - 1) * #{perPage})
</select>
<!-- 스케줄 전체 개수 조회 -->
<select id="selectScheduleCount" parameterType="SearchVO">
SELECT count(*)
FROM schdul_info
WHERE use_at = true
<!-- 검색영역 -->
<foreach item="item" index="index" collection="searchObjectList">
<choose>
<!-- 날짜 검색 -->
<when test="item.type == 'dates'">
AND #{item.value}::timestamp <![CDATA[<=]]> ${item.key}::timestamp
AND ${item.key2}::timestamp <![CDATA[<]]> #{item.value2}::timestamp + INTERVAL '1' DAY
</when>
<!-- 상태 검색 -->
<when test="item.type == 'string' and item.key == 'schdul_sttus' and item.value != null and item.value !=''">
AND ${item.key} = #{item.value}
</when>
<!-- 일반 검색 -->
<when test="item.type == 'string' and item.key != null and item.key != '' and item.value != null and item.value !=''">
AND ${item.key} LIKE CONCAT('%', #{item.value}, '%')
</when>
</choose>
</foreach>
<!-- 검색영역 끝 -->
</select>
<!-- 스케줄 업설트 -->
<update id="insertSchedule" parameterType="ScheduleVO" >
INSERT INTO schdul_info (
schdul_id
, group_id
, schdul_sj
, schdul_cn
, schdul_type
, cron
, cron_chrctr
, schdul_sttus
, cycle_at
, use_at
, creat_id
, creat_dt
) VALUES (
#{schdulId}
, #{groupId}
, #{schdulSj}
, #{schdulCn}
, #{schdulType}
, #{cron}
, #{cronChrctr}
, #{schdulSttus}
, #{cycleAt}
, #{useAt}
, #{creatId}
, NOW()
)
ON CONFLICT(schdul_id)
DO UPDATE
SET group_id = #{group_id}
, schdul_sj = #{schdulSj}
, schdul_cn = #{schdulCn}
, cron = #{cron}
, cron_chrctr = #{cronChrctr}
, schdul_sttus = #{schdulSttus}
, cycle_at = #{cycleAt}
, use_at = #{useAt}
, updt_id = #{updtId}
, updt_dt = NOW()
</update>
<!-- 스케줄 단건 조회 -->
<select id="selectSchedule" parameterType="String" resultType="ScheduleVO">
<include refid="scheduleSelect" />
WHERE use_at = true
AND schdul_id = #{schdul_id}
</select>
<!-- 스케줄 정보 삭제 -->
<update id="deleteSchedule" parameterType="String">
UPDATE schdul_info
SET use_at = false
WHERE schdul_id = #{schdulId}
</update>
<!-- 스케줄 상태 변경 -->
<update id="scheduleSttusChange" parameterType="HashMap">
UPDATE schdul_info
SET schdul_sttus = #{schdulSttus}
WHERE schdul_id = #{schdulId}
</update>
</mapper>