[api] admin/notice/~

공지사항 api 추가
This commit is contained in:
2026-06-25 17:42:41 +09:00
parent f6df6bc7cb
commit 9a1a1a02c9
22 changed files with 1226 additions and 0 deletions
@@ -0,0 +1,229 @@
<?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.alist.api.modules.admin.notice.mapper.AdminNoticeMapper">
<sql id="adminNoticeWhere">
FROM ALISTLMS.NOTICE N
WHERE N.DEL_YN = 'N'
<if test="keyword != null and keyword != ''">
AND (
N.TITLE LIKE CONCAT('%', #{keyword}, '%')
OR N.CONTENT LIKE CONCAT('%', #{keyword}, '%')
)
</if>
<if test="noticeType != null and noticeType != ''">
AND N.NOTICE_TYPE = #{noticeType}
</if>
<if test="targetScope != null and targetScope != ''">
AND N.TARGET_SCOPE = #{targetScope}
</if>
<if test="campusIdx != null">
AND EXISTS (
SELECT 1
FROM ALISTLMS.NOTICE_CAMPUS NC
WHERE NC.NOTICE_IDX = N.NOTICE_IDX
AND NC.CAMPUS_IDX = #{campusIdx}
)
</if>
<if test="pinYn != null and pinYn != ''">
AND N.PIN_YN = #{pinYn}
</if>
<if test="useYn != null and useYn != ''">
AND N.USE_YN = #{useYn}
</if>
</sql>
<select id="selectAdminNoticeCount" resultType="int">
/*AdminNoticeMapper.selectAdminNoticeCount*/
SELECT COUNT(*)
<include refid="adminNoticeWhere"/>
</select>
<select id="selectAdminNoticeList" resultType="com.alist.api.modules.admin.notice.vo.AdminNoticeVo">
/*AdminNoticeMapper.selectAdminNoticeList*/
SELECT N.NOTICE_IDX
, N.NOTICE_TYPE
, N.TARGET_SCOPE
, N.TITLE
, N.PIN_YN
, N.START_DATE
, N.END_DATE
, N.VIEW_COUNT
, N.USE_YN
, N.CREATE_DATE
, N.UPDATE_DATE
<include refid="adminNoticeWhere"/>
ORDER BY N.PIN_YN DESC, N.NOTICE_IDX DESC
LIMIT #{limit}
OFFSET #{offset}
</select>
<select id="selectAdminNoticeView" resultType="com.alist.api.modules.admin.notice.vo.AdminNoticeViewVo">
/*AdminNoticeMapper.selectAdminNoticeView*/
SELECT N.NOTICE_IDX
, N.NOTICE_TYPE
, N.TARGET_SCOPE
, N.TITLE
, N.CONTENT
, N.PIN_YN
, N.START_DATE
, N.END_DATE
, N.VIEW_COUNT
, N.USE_YN
, N.DEL_YN
, N.CREATE_DATE
, N.CREATE_MEMBER
, N.UPDATE_DATE
, N.UPDATE_MEMBER
FROM ALISTLMS.NOTICE N
WHERE N.NOTICE_IDX = #{noticeIdx}
AND N.DEL_YN = 'N'
</select>
<select id="selectAdminNoticeCampusIdxList" resultType="long">
/*AdminNoticeMapper.selectAdminNoticeCampusIdxList*/
SELECT NC.CAMPUS_IDX
FROM ALISTLMS.NOTICE_CAMPUS NC
WHERE NC.NOTICE_IDX = #{noticeIdx}
ORDER BY NC.CAMPUS_IDX
</select>
<select id="selectAdminNoticeFileList" resultType="com.alist.api.modules.admin.notice.vo.AdminNoticeFileVo">
/*AdminNoticeMapper.selectAdminNoticeFileList*/
SELECT NF.NOTICE_FILE_IDX
, NF.NOTICE_IDX
, NF.FILE_ORIGINAL_NAME
, NF.FILE_SAVE_NAME
, NF.FILE_PATH
, NF.FILE_SIZE
, NF.FILE_EXT
, NF.SORT_ORDER
, NF.CREATE_DATE
FROM ALISTLMS.NOTICE_FILE NF
WHERE NF.NOTICE_IDX = #{noticeIdx}
AND NF.DEL_YN = 'N'
ORDER BY NF.SORT_ORDER ASC, NF.NOTICE_FILE_IDX ASC
</select>
<insert id="insertAdminNoticeAdd" parameterType="com.alist.api.modules.admin.notice.dto.AdminNoticeAddDto" useGeneratedKeys="true" keyProperty="noticeIdx">
/*AdminNoticeMapper.insertAdminNoticeAdd*/
INSERT INTO ALISTLMS.NOTICE (
NOTICE_TYPE
, TARGET_SCOPE
, TITLE
, CONTENT
, PIN_YN
, START_DATE
, END_DATE
, USE_YN
, DEL_YN
, CREATE_MEMBER
, UPDATE_MEMBER
) VALUES (
#{noticeType}
, #{targetScope}
, #{title}
, #{content}
, #{pinYn}
, #{startDate}
, #{endDate}
, #{useYn}
, 'N'
, #{createMember}
, #{updateMember}
)
</insert>
<insert id="insertAdminNoticeCampusAdd" parameterType="com.alist.api.modules.admin.notice.dto.AdminNoticeCampusDto">
/*AdminNoticeMapper.insertAdminNoticeCampusAdd*/
INSERT INTO ALISTLMS.NOTICE_CAMPUS (
NOTICE_IDX
, CAMPUS_IDX
, CREATE_MEMBER
) VALUES (
#{noticeIdx}
, #{campusIdx}
, #{createMember}
)
</insert>
<insert id="insertAdminNoticeFileAdd" parameterType="com.alist.api.modules.admin.notice.dto.AdminNoticeFileDto">
/*AdminNoticeMapper.insertAdminNoticeFileAdd*/
INSERT INTO ALISTLMS.NOTICE_FILE (
NOTICE_IDX
, FILE_ORIGINAL_NAME
, FILE_SAVE_NAME
, FILE_PATH
, FILE_SIZE
, FILE_EXT
, SORT_ORDER
, DEL_YN
, CREATE_MEMBER
, UPDATE_MEMBER
) VALUES (
#{noticeIdx}
, #{fileOriginalName}
, #{fileSaveName}
, #{filePath}
, #{fileSize}
, #{fileExt}
, #{sortOrder}
, 'N'
, #{createMember}
, #{updateMember}
)
</insert>
<update id="updateAdminNoticeModify" parameterType="com.alist.api.modules.admin.notice.dto.AdminNoticeModifyDto">
/*AdminNoticeMapper.updateAdminNoticeModify*/
UPDATE ALISTLMS.NOTICE
SET NOTICE_TYPE = #{noticeType}
, TARGET_SCOPE = #{targetScope}
, TITLE = #{title}
, CONTENT = #{content}
, PIN_YN = #{pinYn}
, START_DATE = #{startDate}
, END_DATE = #{endDate}
, USE_YN = #{useYn}
, UPDATE_MEMBER = #{updateMember}
WHERE NOTICE_IDX = #{noticeIdx}
AND DEL_YN = 'N'
</update>
<update id="updateAdminNoticeDelete" parameterType="com.alist.api.modules.admin.notice.dto.AdminNoticeDeleteDto">
/*AdminNoticeMapper.updateAdminNoticeDelete*/
UPDATE ALISTLMS.NOTICE
SET DEL_YN = 'Y'
, UPDATE_MEMBER = #{updateMember}
WHERE NOTICE_IDX = #{noticeIdx}
AND DEL_YN = 'N'
</update>
<delete id="deleteAdminNoticeCampusByNoticeIdx">
/*AdminNoticeMapper.deleteAdminNoticeCampusByNoticeIdx*/
DELETE FROM ALISTLMS.NOTICE_CAMPUS
WHERE NOTICE_IDX = #{noticeIdx}
</delete>
<update id="updateAdminNoticeFileDeleteByNoticeIdx">
/*AdminNoticeMapper.updateAdminNoticeFileDeleteByNoticeIdx*/
UPDATE ALISTLMS.NOTICE_FILE
SET DEL_YN = 'Y'
, UPDATE_MEMBER = #{updateMember}
WHERE NOTICE_IDX = #{noticeIdx}
AND DEL_YN = 'N'
</update>
<update id="updateAdminNoticeFileDeleteByNoticeFileIdxList">
/*AdminNoticeMapper.updateAdminNoticeFileDeleteByNoticeFileIdxList*/
UPDATE ALISTLMS.NOTICE_FILE
SET DEL_YN = 'Y'
, UPDATE_MEMBER = #{updateMember}
WHERE NOTICE_IDX = #{noticeIdx}
AND DEL_YN = 'N'
AND NOTICE_FILE_IDX IN
<foreach collection="noticeFileIdxList" item="noticeFileIdx" open="(" separator="," close=")">
#{noticeFileIdx}
</foreach>
</update>
</mapper>