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"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.itn.itnhub.re.ReMemoMapper">
<!--
memo_date는 화면이 그대로 쓰도록 yyyy-MM-dd 문자열로, created_at은 다른 매퍼와 같은
관례로 밀리초 epoch로 내려준다.
-->
<sql id="columns">
id, org_id, content, author,
to_char(memo_date, 'YYYY-MM-DD') as memo_date,
resolved,
(extract(epoch from created_at) * 1000)::bigint as created_at
</sql>
<select id="findByOrg" resultType="kr.itn.itnhub.re.ReMemo">
select <include refid="columns"/>
from re_memo
where org_id = #{orgId}
order by memo_date desc, id desc
</select>
<select id="findById" resultType="kr.itn.itnhub.re.ReMemo">
select <include refid="columns"/>
from re_memo
where org_id = #{orgId} and id = #{id}
</select>
<!-- 일자를 비워 보내면 오늘로 넣는다. -->
<insert id="insert">
insert into re_memo (org_id, content, author, memo_date, resolved, resolved_at)
values (#{orgId}, #{content}, #{author},
coalesce(cast(#{memoDate} as date), current_date),
#{resolved},
case when #{resolved} then now() else null end)
</insert>
<!-- 해결로 바뀌는 순간만 resolved_at을 찍고, 되돌리면 지운다. -->
<update id="update">
update re_memo set
content = #{content},
author = #{author},
memo_date = coalesce(cast(#{memoDate} as date), memo_date),
resolved = #{resolved},
resolved_at = case
when #{resolved} and resolved_at is null then now()
when not #{resolved} then null
else resolved_at
end,
updated_at = now()
where org_id = #{orgId} and id = #{id}
</update>
<delete id="delete">
delete from re_memo where org_id = #{orgId} and id = #{id}
</delete>
<delete id="deleteByOrg">
delete from re_memo where org_id = #{orgId}
</delete>
</mapper>