admin/front 분리

This commit is contained in:
2026-07-20 17:49:24 +09:00
parent 9269278e40
commit ed41ef24cb
673 changed files with 16782 additions and 11277 deletions
-119
View File
@@ -1,119 +0,0 @@
spring:
application:
name: api
datasource:
url: jdbc:log4jdbc:mariadb://121.160.234.222:3000/ALISTLMS?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&connectionCollation=utf8mb4_uca1400_ai_ci
username: alist_dev
password: 1qaz2wsx!@
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
hikari:
maximum-pool-size: 10
minimum-idle: 5
connection-timeout: 10000
idle-timeout: 600000
data:
redis:
host: 121.160.234.222
port: 3001
password: 1qaz2wsx!@
servlet:
multipart:
max-file-size: -1
max-request-size: -1
migration:
datasource:
alist:
jdbc-url: jdbc:log4jdbc:sqlserver://bigfuntnp.co.kr:51433;databaseName=alist_dev;encrypt=false;trustServerCertificate=true
username: bigfuntnp
password: password12!@
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
maximum-pool-size: 5
minimum-idle: 1
connection-timeout: 10000
eltown:
jdbc-url: jdbc:log4jdbc:sqlserver://bigfuntnp.co.kr:51433;databaseName=eltown;encrypt=false;trustServerCertificate=true
username: bigfuntnp
password: password12!@
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
maximum-pool-size: 5
minimum-idle: 1
connection-timeout: 10000
logging:
config: classpath:logback-local.xml
jwt:
secret: "F9k3s!29dkF#1lP0X9QZx8eW!2m@0AbD"
access-token-validity-seconds: 3600
refresh-token-validity-seconds: 2592000
cookie:
secure: false # (HTTP) -> false
domain: # (HTTP) -> 비워두세요
name: ALIST_SSO
same-site: Lax # (HTTP) -> Lax
swagger:
login:
id: alist
password: "1qaz2wsx!@"
tus-file:
upload:
tus-endpoint: https://file-alist.pjt.kr/tus/file/
public-base-url: https://file-alist.pjt.kr
tmp-root: /srv/project/alist/uploads/tmp
final-root: /srv/project/alist/uploads
interrupt-seconds: 30
auth-cache:
ttl-seconds: 20
# types:
# notice:
# folder: notice 저장폴더
# max-size: 20MB 최대 용량
# image-only: false
# resize:
# enabled: true
# width: 800 고정넓이
# height: 600 고정높이
# max-width: 1200 최대 넓이
file:
upload:
view:
file-domain: http://localhost:8110
root-path: ${tus-file.upload.final-root}
max-size: 10MB
allowed-extensions: [jpg, jpeg, png, gif, pdf, hwp, hwpx, doc, docx, xls, xlsx, ppt, pptx, txt, csv, zip]
types:
profile:
folder: profile
max-size: 5MB
image-only: true
resize:
enabled: true
width: 400
height: 400
notice:
folder: notice
max-size: 20MB
image-only: false
resize:
enabled: true
max-width: 1200
springdoc:
api-docs:
enabled: true
swagger-ui:
enabled: true
sso:
session:
ttl-seconds: 7200
code:
ttl-seconds: 300
cookie:
name: ALIST_SSO
-121
View File
@@ -1,121 +0,0 @@
spring:
application:
name: api
main:
banner-mode: log
datasource:
url: jdbc:log4jdbc:mariadb://${DB_HOST}:${DB_PORT}/${DB_NAME}?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&connectionCollation=utf8mb4_uca1400_ai_ci
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
hikari:
maximum-pool-size: 10
minimum-idle: 5
connection-timeout: 10000
idle-timeout: 600000
data:
redis:
host: ${REDIS_HOST}
port: ${REDIS_PORT}
password: ${REDIS_PASSWORD}
servlet:
multipart:
max-file-size: -1
max-request-size: -1
migration:
datasource:
alist:
jdbc-url: jdbc:log4jdbc:sqlserver://${ALIST_DB_HOST}:${ALIST_DB_PORT};databaseName=${ALIST_DB_NAME};encrypt=false;trustServerCertificate=true
username: ${ALIST_DB_USERNAME}
password: ${ALIST_DB_PASSWORD}
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
maximum-pool-size: 5
minimum-idle: 1
connection-timeout: 10000
eltown:
jdbc-url: jdbc:log4jdbc:sqlserver://${ELTOWN_DB_HOST}:${ELTOWN_DB_PORT};databaseName=${ELTOWN_DB_NAME};encrypt=false;trustServerCertificate=true
username: ${ELTOWN_DB_USERNAME}
password: ${ELTOWN_DB_PASSWORD}
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
maximum-pool-size: 5
minimum-idle: 1
connection-timeout: 10000
logging:
config: classpath:logback-pjt.xml
jwt:
secret: ${JWT_SECRET}
access-token-validity-seconds: 3600
refresh-token-validity-seconds: 2592000
cookie:
secure: true # 프로젝트 환경 (HTTPS)
domain: api-alist.pjt.kr
name: ALIST_SSO
same-site: None
swagger:
login:
id: ${SWAGGER_ID}
password: ${SWAGGER_PASSWORD}
tus-file:
upload:
tus-endpoint: https://file-alist.pjt.kr/tus/file/
public-base-url: https://file-alist.pjt.kr
tmp-root: /srv/project/alist/uploads/tmp
final-root: /srv/project/alist/uploads
interrupt-seconds: 30
auth-cache:
ttl-seconds: 20
# types:
# notice:
# folder: notice 저장폴더
# max-size: 20MB 최대 용량
# image-only: false
# resize:
# enabled: true
# width: 800 고정넓이
# height: 600 고정높이
# max-width: 1200 최대 넓이
file:
upload:
view:
file-domain: https://file-alist.pjt.kr
root-path: ${tus-file.upload.final-root}
max-size: 10MB
allowed-extensions: [jpg, jpeg, png, gif, pdf, hwp, hwpx, doc, docx, xls, xlsx, ppt, pptx, txt, csv, zip]
types:
profile:
folder: profile
max-size: 5MB
image-only: true
resize:
enabled: true
width: 400
height: 400
notice:
folder: notice
max-size: 20MB
image-only: false
resize:
enabled: true
max-width: 1200
springdoc:
api-docs:
enabled: true
swagger-ui:
enabled: true
sso:
session:
ttl-seconds: 7200
code:
ttl-seconds: 300
cookie:
name: ALIST_SSO
-18
View File
@@ -1,18 +0,0 @@
q p ,,
db \ / `7MMF' db mm
;MM:o=--*--=o MM MM
,V^MM. / \ MM `7MM ,pP"Ybd mmMMmm
,M `MM d b MM MM 8I `" MM
AbmmmqMA MM , MM `YMMMa. MM
A' VML MM ,M MM L. I8 MM
.AMA. .AMMA. .JMMmmmmMMM .JMML.M9mmmP' `Mbmo
:: ALIST API ::
Application : ${spring.application.name}
Profile : ${spring.profiles.active}
Spring Boot : ${spring-boot.version}
Java : ${java.version}
Port : ${server.port}
PID : ${PID}
@@ -1,3 +0,0 @@
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.drivers=org.mariadb.jdbc.Driver,com.microsoft.sqlserver.jdbc.SQLServerDriver
log4jdbc.dump.sql.maxlinelength=0
-42
View File
@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<!-- 로그 디렉토리 -->
<property name="LOG_PATH" value="/logs" />
<!-- Spring Boot가 제공하는 %clr / 색상 변환기 등록 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!-- 콘솔 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%clr(%d{HH:mm:ss.SSS}){faint} %clr(%5p) %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n</pattern>
</encoder>
</appender>
<!-- 콘솔 appender: Boot 기본 제공 -->
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<!-- ==== 로컬(local) ==== -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
<!-- springframework -->
<logger name="org.springframework" level="INFO"/>
<!-- project -->
<logger name="com.alist.api" level="DEBUG"/>
<!-- MyBatis SQL/파라미터 보고 싶으면 DEBUG -->
<logger name="org.mybatis" level="DEBUG"/>
<logger name="org.apache.ibatis" level="DEBUG"/>
<!-- log4jdbc -->
<logger name="jdbc.sqltiming" level="DEBUG"/>
<logger name="jdbc.resultsettable" level="DEBUG"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.sqlonly" level="OFF"/>
</configuration>
-56
View File
@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<!-- 로그 디렉토리 -->
<property name="LOG_PATH" value="/logs" />
<!-- 파일 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 현재 로그는 고정 위치 (tail 편함) -->
<file>${LOG_PATH}/api.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 롤링 파일은 날짜 폴더(yyyy/MM) 하위로 저장 -->
<fileNamePattern>
${LOG_PATH}/%d{yyyy/MM}/api.log-%d{yyyy-MM-dd}.%i
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>180</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} | %-5level | %-15thread | %-40logger{40} | %msg%n</pattern>
</encoder>
</appender>
<!-- ==== 빅펀개발(pjt) ==== -->
<!-- 기본 -->
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
<!-- springframework -->
<logger name="org.springframework" level="WARN"/>
<!-- project -->
<logger name="com.alist.api" level="INFO"/>
<!-- MyBatis -->
<logger name="org.mybatis" level="WARN"/>
<logger name="org.apache.ibatis" level="WARN"/>
<!-- log4jdbc -->
<logger name="jdbc.sqltiming" level="INFO"/>
<logger name="jdbc.resultsettable" level="OFF"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.sqlonly" level="OFF"/>
</configuration>
@@ -1,89 +0,0 @@
<?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.auth.mapper.AdminAuthMapper">
<select id="selectAdminAuthLogin" resultType="com.alist.api.modules.admin.auth.vo.AdminAuthLoginVo">
/*AdminAuthMapper.selectAdminAuthLogin*/
SELECT ATU.user_idx
, ATU.id
, ATU.password
, ATUT.user_token_idx
, ATUT.user_role
, ATUT.user_type
FROM ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
WHERE ATU.id = #{id}
AND ATU.del_yn = 1
AND ATUT.user_type IN ('A')
LIMIT 1
</select>
<select id="selectAdminTokenByUserTokenIdx" resultType="com.alist.api.modules.admin.auth.vo.AdminAuthLoginVo">
/*AdminAuthMapper.selectAdminTokenByUserTokenIdx*/
SELECT ATU.user_idx
, ATU.id
, ATUT.user_token_idx
, ATUT.refresh_token
, ATUT.user_role
, ATUT.user_type
FROM ALISTLMS.test_user_token ATUT
INNER JOIN ALISTLMS.test_user ATU ON ATU.user_idx = ATUT.user_idx
WHERE ATUT.user_token_idx = #{userTokenIdx}
AND ATUT.user_type IN ('A')
AND ATU.del_yn = 1
LIMIT 1
</select>
<select id="selectAdminAuthApiKeyLogin" resultType="com.alist.api.modules.admin.auth.vo.AdminAuthApiKeyLoginVo">
/*AdminAuthMapper.selectAdminAuthApiKeyLogin*/
SELECT ATU.user_idx
, ATU.id
, ATUT.user_token_idx
, ATUT.user_role
, ATUT.user_type
FROM ALISTLMS.test_user_token ATUT
INNER JOIN ALISTLMS.test_user ATU ON ATU.user_idx = ATUT.user_idx
WHERE ATUT.user_api_key = #{userApiKey}
AND ATUT.user_type IN ('A')
AND ATU.del_yn = 1
LIMIT 1
</select>
<update id="updateAdminRefreshToken">
/*AdminAuthMapper.updateAdminRefreshToken*/
UPDATE ALISTLMS.test_user_token
SET refresh_token = #{refreshToken}
, expires_at = #{expiresAt}
, updated_at = now()
WHERE user_token_idx = #{userTokenIdx}
AND user_type IN ('A')
</update>
<update id="updateAdminLastLoginAt">
/*AdminAuthMapper.updateAdminLastLoginAt*/
UPDATE ALISTLMS.test_user
SET last_login_at = now()
, update_at = now()
WHERE user_idx = #{userIdx}
</update>
<update id="updateClearAdminRefreshToken">
/*AdminAuthMapper.updateClearAdminRefreshToken*/
UPDATE ALISTLMS.test_user_token
SET refresh_token = null
, expires_at = null
, updated_at = now()
WHERE user_token_idx = #{userTokenIdx}
AND user_type IN ('A')
</update>
<update id="updateAdminApiKeyLoginRefreshToken">
/*AdminAuthMapper.updateAdminApiKeyLoginRefreshToken*/
UPDATE ALISTLMS.test_user_token
SET refresh_token = #{refreshToken}
, expires_at = #{expiresAt}
, updated_at = now()
WHERE user_token_idx = #{userTokenIdx}
AND user_type IN ('A')
</update>
</mapper>
@@ -1,141 +0,0 @@
<?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.member.mapper.AdminMemberMapper">
<sql id="adminMemberWhere">
FROM ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
WHERE ATU.del_yn = 1
<if test="keyword != null and keyword != ''">
AND (
ATU.id LIKE CONCAT('%', #{keyword}, '%')
OR ATU.email LIKE CONCAT('%', #{keyword}, '%')
OR ATU.hp LIKE CONCAT('%', #{keyword}, '%')
)
</if>
<if test="userRole != null and userRole != ''">
AND ATUT.user_role = #{userRole}
</if>
<if test="userType != null and userType != ''">
AND ATUT.user_type = #{userType}
</if>
<if test="dormantYn != null and dormantYn != ''">
AND ATU.dormant_yn = #{dormantYn}
</if>
<if test="withdrawStatus != null and withdrawStatus != ''">
AND ATU.withdraw_status = #{withdrawStatus}
</if>
</sql>
<select id="selectAdminMemberCount" resultType="int">
/*AdminMemberMapper.selectAdminMemberCount*/
SELECT COUNT(*)
<include refid="adminMemberWhere"/>
</select>
<select id="selectAdminMemberList" resultType="com.alist.api.modules.admin.member.vo.AdminMemberVo">
/*AdminMemberMapper.selectAdminMemberList*/
SELECT ATU.user_idx
, ATUT.user_token_idx
, ATU.id
, ATU.email
, ATU.hp
, ATUT.user_role
, ATUT.user_type
, ATU.dormant_yn
, ATU.dormant_at
, ATU.withdraw_status
, ATU.withdraw_at
, ATU.create_at
, ATU.update_at
<include refid="adminMemberWhere"/>
ORDER BY ATU.user_idx DESC
LIMIT #{limit}
OFFSET #{offset}
</select>
<select id="selectAdminMemberView" resultType="com.alist.api.modules.admin.member.vo.AdminMemberViewVo">
/*AdminMemberMapper.selectAdminMemberView*/
SELECT ATU.user_idx
, ATUT.user_token_idx
, ATU.id
, ATU.email
, ATU.hp
, ATUT.user_role
, ATUT.user_type
, ATU.dormant_yn
, ATU.dormant_at
, ATU.withdraw_status
, ATU.withdraw_at
, ATU.create_at
, ATU.update_at
FROM ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
WHERE ATU.del_yn = 1
AND ATU.user_idx = #{userIdx}
</select>
<update id="updateAdminMemberModify">
/*AdminMemberMapper.updateAdminMemberModify*/
UPDATE ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
SET ATU.update_at = now()
, ATUT.updated_at = now()
<if test="email != null and email != ''">
, ATU.email = #{email}
</if>
<if test="hp != null and hp != ''">
, ATU.hp = #{hp}
</if>
<if test="userRole != null and userRole != ''">
, ATUT.user_role = #{userRole}
</if>
<if test="userType != null and userType != ''">
, ATUT.user_type = #{userType}
</if>
WHERE ATU.user_idx = #{userIdx}
AND ATU.del_yn = 1
</update>
<update id="updateAdminMemberDormantModify">
/*AdminMemberMapper.updateAdminMemberDormantModify*/
UPDATE ALISTLMS.test_user
SET dormant_yn = #{dormantYn}
, dormant_at =
CASE
WHEN #{dormantYn} = 'Y' THEN now()
WHEN #{dormantYn} = 'N' THEN NULL
ELSE dormant_at
END
, update_at = now()
WHERE user_idx = #{userIdx}
AND del_yn = 1
</update>
<update id="updateAdminMemberWithdrawModify">
/*AdminMemberMapper.updateAdminMemberWithdrawModify*/
UPDATE ALISTLMS.test_user
SET withdraw_status = #{withdrawStatus}
, withdraw_at =
CASE
WHEN #{withdrawStatus} IN ('P', 'Y') THEN now()
WHEN #{withdrawStatus} = 'N' THEN NULL
ELSE withdraw_at
END
, update_at = now()
WHERE user_idx = #{userIdx}
AND del_yn = 1
</update>
<update id="updateAdminMemberDelete">
/*AdminMemberMapper.updateAdminMemberDelete*/
UPDATE ALISTLMS.test_user
SET del_yn = 2
, update_at = now()
WHERE user_idx IN
<foreach collection="userIdxList" item="userIdx" open="(" separator="," close=")">
#{userIdx}
</foreach>
AND del_yn = 1
</update>
</mapper>
@@ -1,229 +0,0 @@
<?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>
@@ -1,196 +0,0 @@
<?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.schedule.mapper.AdminScheduleMapper">
<sql id="adminScheduleWhere">
FROM ALISTLMS.SCHEDULE_JOB ASJ
WHERE ASJ.DEL_YN = 'N'
<if test="keyword != null and keyword != ''">
AND (
ASJ.JOB_NAME LIKE CONCAT('%', #{keyword}, '%')
OR ASJ.JOB_DESCRIPTION LIKE CONCAT('%', #{keyword}, '%')
)
</if>
<if test="jobGroup != null and jobGroup != ''">
AND ASJ.JOB_GROUP = #{jobGroup}
</if>
<if test="lastStatus != null">
AND ASJ.LAST_STATUS = #{lastStatus}
</if>
<if test="useYn != null and useYn != ''">
AND ASJ.USE_YN = #{useYn}
</if>
</sql>
<select id="selectAdminScheduleCount" resultType="int">
/*AdminScheduleMapper.selectAdminScheduleCount*/
SELECT COUNT(*)
<include refid="adminScheduleWhere"/>
</select>
<select id="selectAdminScheduleList" resultType="com.alist.api.modules.admin.schedule.vo.AdminScheduleVo">
/*AdminScheduleMapper.selectAdminScheduleList*/
SELECT ASJ.SCHEDULE_JOB_IDX
, ASJ.JOB_NAME
, ASJ.JOB_GROUP
, ASJ.JOB_DESCRIPTION
, ASJ.CRON_EXPR
, ASJ.TIMEZONE_ID
, ASJ.MAX_RUNNING_SECONDS
, ASJ.LAST_RUN_DATE
, ASJ.LAST_END_DATE
, ASJ.LAST_SUCCESS_DATE
, ASJ.LAST_STATUS
, ASJ.LAST_MESSAGE
, ASJ.RUN_LOCK_DATE
, ASJ.RUN_LOCK_OWNER
, ASJ.USE_YN
, ASJ.CREATE_DATE
, ASJ.UPDATE_DATE
<include refid="adminScheduleWhere"/>
ORDER BY ASJ.SCHEDULE_JOB_IDX DESC
LIMIT #{limit}
OFFSET #{offset}
</select>
<select id="selectAdminScheduleView" resultType="com.alist.api.modules.admin.schedule.vo.AdminScheduleViewVo">
/*AdminScheduleMapper.selectAdminScheduleView*/
SELECT ASJ.SCHEDULE_JOB_IDX
, ASJ.JOB_NAME
, ASJ.JOB_GROUP
, ASJ.JOB_DESCRIPTION
, ASJ.CRON_EXPR
, ASJ.TIMEZONE_ID
, ASJ.MAX_RUNNING_SECONDS
, ASJ.LAST_RUN_DATE
, ASJ.LAST_END_DATE
, ASJ.LAST_SUCCESS_DATE
, ASJ.LAST_STATUS
, ASJ.LAST_MESSAGE
, ASJ.RUN_LOCK_DATE
, ASJ.RUN_LOCK_OWNER
, ASJ.USE_YN
, ASJ.DEL_YN
, ASJ.CREATE_DATE
, ASJ.CREATE_MEMBER
, ASJ.UPDATE_DATE
, ASJ.UPDATE_MEMBER
FROM ALISTLMS.SCHEDULE_JOB ASJ
WHERE ASJ.SCHEDULE_JOB_IDX = #{scheduleJobIdx}
AND ASJ.DEL_YN = 'N'
</select>
<select id="selectAdminScheduleDuplicateCount" resultType="int">
/*AdminScheduleMapper.selectAdminScheduleDuplicateCount*/
SELECT COUNT(*)
FROM ALISTLMS.SCHEDULE_JOB ASJ
WHERE ASJ.DEL_YN = 'N'
AND ASJ.JOB_NAME = #{jobName}
AND ASJ.JOB_GROUP = #{jobGroup}
</select>
<select id="selectAdminScheduleModifyDuplicateCount" resultType="int">
/*AdminScheduleMapper.selectAdminScheduleModifyDuplicateCount*/
SELECT COUNT(*)
FROM ALISTLMS.SCHEDULE_JOB ASJ
WHERE ASJ.DEL_YN = 'N'
AND ASJ.JOB_NAME = #{jobName}
AND ASJ.JOB_GROUP = #{jobGroup}
AND ASJ.SCHEDULE_JOB_IDX != #{scheduleJobIdx}
</select>
<sql id="adminScheduleLogWhere">
FROM ALISTLMS.SCHEDULE_JOB_LOG ASJL
WHERE ASJL.SCHEDULE_JOB_IDX = #{scheduleJobIdx}
<if test="status != null">
AND ASJL.STATUS = #{status}
</if>
<if test="startDateFrom != null and startDateFrom != ''">
AND ASJL.START_DATE <![CDATA[>=]]> #{startDateFrom}
</if>
<if test="startDateTo != null and startDateTo != ''">
AND ASJL.START_DATE <![CDATA[<=]]> #{startDateTo}
</if>
</sql>
<select id="selectAdminScheduleLogCount" resultType="int">
/*AdminScheduleMapper.selectAdminScheduleLogCount*/
SELECT COUNT(*)
<include refid="adminScheduleLogWhere"/>
</select>
<select id="selectAdminScheduleLogList" resultType="com.alist.api.modules.admin.schedule.vo.AdminScheduleLogVo">
/*AdminScheduleMapper.selectAdminScheduleLogList*/
SELECT ASJL.SCHEDULE_JOB_LOG_IDX
, ASJL.SCHEDULE_JOB_IDX
, ASJL.RUN_ID
, ASJL.JOB_NAME
, ASJL.START_DATE
, ASJL.END_DATE
, ASJL.TARGET_COUNT
, ASJL.SUCCESS_COUNT
, ASJL.FAIL_COUNT
, ASJL.MESSAGE
, ASJL.ERROR_MESSAGE
, ASJL.LOCK_OWNER
, ASJL.STATUS
, ASJL.CREATE_DATE
<include refid="adminScheduleLogWhere"/>
ORDER BY ASJL.SCHEDULE_JOB_LOG_IDX DESC
LIMIT #{limit}
OFFSET #{offset}
</select>
<insert id="insertAdminScheduleAdd" parameterType="com.alist.api.modules.admin.schedule.dto.AdminScheduleAddDto" useGeneratedKeys="true" keyProperty="scheduleJobIdx">
/*AdminScheduleMapper.insertAdminScheduleAdd*/
INSERT INTO ALISTLMS.SCHEDULE_JOB (
JOB_NAME
, JOB_GROUP
, JOB_DESCRIPTION
, CRON_EXPR
, TIMEZONE_ID
, MAX_RUNNING_SECONDS
, LAST_STATUS
, USE_YN
, DEL_YN
, CREATE_MEMBER
, UPDATE_MEMBER
) VALUES (
#{jobName}
, #{jobGroup}
, #{jobDescription}
, #{cronExpr}
, #{timezoneId}
, #{maxRunningSeconds}
, 0
, #{useYn}
, 'N'
, #{createMember}
, #{updateMember}
)
</insert>
<update id="updateAdminScheduleModify" parameterType="com.alist.api.modules.admin.schedule.dto.AdminScheduleModifyDto">
/*AdminScheduleMapper.updateAdminScheduleModify*/
UPDATE ALISTLMS.SCHEDULE_JOB
SET JOB_NAME = #{jobName}
, JOB_GROUP = #{jobGroup}
, JOB_DESCRIPTION = #{jobDescription}
, CRON_EXPR = #{cronExpr}
, TIMEZONE_ID = #{timezoneId}
, MAX_RUNNING_SECONDS = #{maxRunningSeconds}
, USE_YN = #{useYn}
, UPDATE_MEMBER = #{updateMember}
WHERE SCHEDULE_JOB_IDX = #{scheduleJobIdx}
AND DEL_YN = 'N'
</update>
<update id="updateAdminScheduleDelete" parameterType="com.alist.api.modules.admin.schedule.dto.AdminScheduleDeleteDto">
/*AdminScheduleMapper.updateAdminScheduleDelete*/
UPDATE ALISTLMS.SCHEDULE_JOB
SET DEL_YN = 'Y'
, UPDATE_MEMBER = #{updateMember}
WHERE SCHEDULE_JOB_IDX = #{scheduleJobIdx}
AND DEL_YN = 'N'
</update>
</mapper>
@@ -1,123 +0,0 @@
<?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.sso.mapper.AdminSsoMapper">
<sql id="adminSsoWhere">
FROM ALISTLMS.SSO_CLIENT SC
WHERE SC.DEL_YN = 'N'
<if test="keyword != null and keyword != ''">
AND (
SC.CLIENT_ID LIKE CONCAT('%', #{keyword}, '%')
OR SC.CLIENT_NAME LIKE CONCAT('%', #{keyword}, '%')
OR SC.REDIRECT_URI LIKE CONCAT('%', #{keyword}, '%')
OR SC.MEMO LIKE CONCAT('%', #{keyword}, '%')
)
</if>
<if test="useYn != null and useYn != ''">
AND SC.USE_YN = #{useYn}
</if>
</sql>
<select id="selectAdminSsoCount" resultType="int">
/*AdminSsoMapper.selectAdminSsoCount*/
SELECT COUNT(*)
<include refid="adminSsoWhere"/>
</select>
<select id="selectAdminSsoList" resultType="com.alist.api.modules.admin.sso.vo.AdminSsoVo">
/*AdminSsoMapper.selectAdminSsoList*/
SELECT SC.SSO_CLIENT_IDX
, SC.CLIENT_ID
, SC.CLIENT_NAME
, SC.REDIRECT_URI
, SC.MEMO
, SC.USE_YN
, SC.CREATE_DATE
, SC.UPDATE_DATE
<include refid="adminSsoWhere"/>
ORDER BY SC.SSO_CLIENT_IDX DESC
LIMIT #{limit}
OFFSET #{offset}
</select>
<select id="selectAdminSsoView" resultType="com.alist.api.modules.admin.sso.vo.AdminSsoViewVo">
/*AdminSsoMapper.selectAdminSsoView*/
SELECT SC.SSO_CLIENT_IDX
, SC.CLIENT_ID
, SC.CLIENT_NAME
, SC.REDIRECT_URI
, SC.MEMO
, SC.USE_YN
, SC.DEL_YN
, SC.CREATE_DATE
, SC.CREATE_MEMBER
, SC.UPDATE_DATE
, SC.UPDATE_MEMBER
FROM ALISTLMS.SSO_CLIENT SC
WHERE SC.SSO_CLIENT_IDX = #{ssoClientIdx}
AND SC.DEL_YN = 'N'
</select>
<select id="selectAdminSsoDuplicateCount" resultType="int">
/*AdminSsoMapper.selectAdminSsoDuplicateCount*/
SELECT COUNT(*)
FROM ALISTLMS.SSO_CLIENT SC
WHERE SC.DEL_YN = 'N'
AND SC.CLIENT_ID = #{clientId}
</select>
<select id="selectAdminSsoModifyDuplicateCount" resultType="int">
/*AdminSsoMapper.selectAdminSsoModifyDuplicateCount*/
SELECT COUNT(*)
FROM ALISTLMS.SSO_CLIENT SC
WHERE SC.DEL_YN = 'N'
AND SC.CLIENT_ID = #{clientId}
AND SC.SSO_CLIENT_IDX != #{ssoClientIdx}
</select>
<insert id="insertAdminSsoAdd" parameterType="com.alist.api.modules.admin.sso.dto.AdminSsoAddDto" useGeneratedKeys="true" keyProperty="ssoClientIdx">
/*AdminSsoMapper.insertAdminSsoAdd*/
INSERT INTO ALISTLMS.SSO_CLIENT (
CLIENT_ID
, CLIENT_NAME
, REDIRECT_URI
, MEMO
, USE_YN
, DEL_YN
, CREATE_MEMBER
, UPDATE_MEMBER
) VALUES (
#{clientId}
, #{clientName}
, #{redirectUri}
, #{memo}
, #{useYn}
, 'N'
, #{createMember}
, #{updateMember}
)
</insert>
<update id="updateAdminSsoModify" parameterType="com.alist.api.modules.admin.sso.dto.AdminSsoModifyDto">
/*AdminSsoMapper.updateAdminSsoModify*/
UPDATE ALISTLMS.SSO_CLIENT
SET CLIENT_ID = #{clientId}
, CLIENT_NAME = #{clientName}
, REDIRECT_URI = #{redirectUri}
, MEMO = #{memo}
, USE_YN = #{useYn}
, UPDATE_MEMBER = #{updateMember}
WHERE SSO_CLIENT_IDX = #{ssoClientIdx}
AND DEL_YN = 'N'
</update>
<update id="updateAdminSsoDelete" parameterType="com.alist.api.modules.admin.sso.dto.AdminSsoDeleteDto">
/*AdminSsoMapper.updateAdminSsoDelete*/
UPDATE ALISTLMS.SSO_CLIENT
SET DEL_YN = 'Y'
, UPDATE_MEMBER = #{updateMember}
WHERE SSO_CLIENT_IDX = #{ssoClientIdx}
AND DEL_YN = 'N'
</update>
</mapper>
@@ -1,65 +0,0 @@
<?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.cors.mapper.CorsMapper">
<sql id="corsWhere">
FROM ALISTLMS.test_cors_allowed_list
WHERE del_yn = 1
AND allowed_origin IS NOT NULL
<if test="keyword != null and keyword != ''">
AND allowed_origin LIKE CONCAT('%', #{keyword}, '%')
</if>
</sql>
<select id="selectCorsList" resultType="com.alist.api.modules.cors.vo.CorsVo">
/*CorsMapper.selectCorsList*/
SELECT cors_idx
, allowed_origin
<include refid="corsWhere"/>
ORDER BY cors_idx DESC
LIMIT #{limit}
OFFSET #{offset}
</select>
<select id="selectCorsListCount" resultType="int">
/*CorsMapper.selectCorsListCount*/
SELECT COUNT(*)
<include refid="corsWhere"/>
</select>
<select id="selectCorsCacheList" resultType="com.alist.api.modules.cors.vo.CorsCacheVo">
/*CorsMapper.selectCorsCacheList*/
SELECT allowed_origin
FROM ALISTLMS.test_cors_allowed_list
WHERE del_yn = 1
AND allowed_origin IS NOT NULL
ORDER BY cors_idx
</select>
<select id="selectCorsCount" parameterType="string" resultType="int">
/*CorsMapper.selectCorsCount*/
SELECT COUNT(1)
FROM ALISTLMS.test_cors_allowed_list
WHERE del_yn = 1
AND allowed_origin = #{allowedOrigin}
</select>
<insert id="insertCorsAdd" parameterType="com.alist.api.modules.cors.dto.CorsAddDto">
/*CorsMapper.insertCorsAdd*/
INSERT INTO ALISTLMS.test_cors_allowed_list (
allowed_origin
, del_yn
) VALUES (
#{allowedOrigin}
, 1
)
</insert>
<update id="updateCorsDelete">
/*CorsMapper.updateCorsDelete*/
UPDATE ALISTLMS.test_cors_allowed_list
SET del_yn = 0
WHERE cors_idx = #{corsIdx}
AND del_yn = 1
</update>
</mapper>
@@ -1,109 +0,0 @@
<?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.front.user.mapper.UserMapper">
<select id="selectDuplicateUserCount" resultType="int">
/*UserMapper.selectDuplicateUserCount*/
select count(*)
from ALISTLMS.test_user
where id = #{id}
</select>
<select id="selectUserByUserTokenIdx" resultType="com.alist.api.modules.front.user.vo.UserVo">
/*UserMapper.selectUserByUserTokenIdx*/
SELECT ATU.user_idx
, ATU.password
FROM ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
WHERE ATUT.user_token_idx = #{userTokenIdx}
AND ATU.del_yn = 1
</select>
<select id="selectUserProfileView" resultType="com.alist.api.modules.front.user.vo.UserProfileViewVo">
/*UserMapper.selectUserProfileView*/
SELECT ATU.user_idx
, ATU.id
, ATU.email
, ATU.hp
, ATUT.user_role
, ATUT.user_type
FROM ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
WHERE ATUT.user_token_idx = #{userTokenIdx}
AND ATU.del_yn = 1
AND ATU.withdraw_status != 'Y'
</select>
<insert id="insertUserAdd" useGeneratedKeys="true" keyProperty="userIdx">
/*UserMapper.insertUserAdd*/
insert into ALISTLMS.test_user (id, password, del_yn, create_at, update_at)
value (#{id}, #{newPassword}, 1, now(), now())
</insert>
<insert id="insertUserToken" useGeneratedKeys="true" keyProperty="userTokenIdx">
/*UserMapper.insertUserToken*/
insert into ALISTLMS.test_user_token (user_idx, user_api_key, user_role, user_type, created_at, updated_at)
value (#{userIdx}, #{userApiKey}, #{userRole}, #{userType}, now(), now())
</insert>
<update id="updateUserPasswordModify">
/*UserMapper.updateUserPasswordModify*/
UPDATE ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
SET ATU.password = #{newPassword}
, ATU.update_at = now()
WHERE ATUT.user_token_idx = #{userTokenIdx}
AND ATU.del_yn = 1
</update>
<update id="updateUserProfileModify">
/*UserMapper.updateUserProfileModify*/
UPDATE ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
SET ATU.update_at = now()
<if test="email != null and email != ''">
, ATU.email = #{email}
</if>
<if test="hp != null and hp != ''">
, ATU.hp = #{hp}
</if>
WHERE ATUT.user_token_idx = #{userTokenIdx}
AND ATU.del_yn = 1
</update>
<update id="updateUserWithdrawModify">
/*UserMapper.updateUserWithdrawModify*/
UPDATE ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
SET ATU.withdraw_status = #{withdrawStatus}
, ATU.withdraw_at =
CASE
WHEN #{withdrawStatus} = 'P' THEN now()
WHEN #{withdrawStatus} = 'N' THEN NULL
ELSE ATU.withdraw_at
END
, ATU.update_at = now()
WHERE ATUT.user_token_idx = #{userTokenIdx}
AND ATU.del_yn = 1
AND ATU.withdraw_status != 'Y'
</update>
<update id="updateUserDormantModify">
/*UserMapper.updateUserDormantModify*/
UPDATE ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
SET ATU.dormant_yn = #{dormantYn}
, ATU.dormant_at =
CASE
WHEN #{dormantYn} = 'Y' THEN now()
WHEN #{dormantYn} = 'N' THEN NULL
ELSE ATU.dormant_at
END
, ATU.update_at = now()
WHERE ATUT.user_token_idx = #{userTokenIdx}
AND ATU.del_yn = 1
AND ATU.withdraw_status != 'Y'
</update>
</mapper>
@@ -1,73 +0,0 @@
<?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.front.auth.mapper.AuthMapper">
<update id="updateRefreshToken">
/*LoginMapper.updateRefreshToken*/
update ALISTLMS.test_user_token
set refresh_token = #{refreshToken}
, expires_at = #{expiresAt}
, updated_at = now()
where user_token_idx = #{userTokenIdx}
</update>
<select id="selectLogin" resultType="com.alist.api.modules.front.auth.vo.LoginVo">
/*LoginMapper.selectLogin*/
SELECT ATU.user_idx
, ATU.id
, ATU.password
FROM ALISTLMS.test_user ATU
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
WHERE ATU.id = #{id}
AND ATU.del_yn = 1
AND ATUT.user_type IN ('T','S')
LIMIT 1
</select>
<select id="selectUserTokenByUserId" resultType="com.alist.api.modules.front.auth.vo.LoginTokenVo">
/*LoginMapper.selectUserTokenByUserId*/
select user_token_idx
, user_role
, user_type
, refresh_token
from ALISTLMS.test_user_token
where user_idx = #{userIdx}
</select>
<select id="selectUserTokenByUserApiKey" resultType="com.alist.api.modules.front.auth.vo.LoginTokenVo">
/*LoginMapper.selectUserTokenByUserApiKey*/
select user_token_idx
, user_role
, user_type
, refresh_token
from ALISTLMS.test_user_token
where user_api_key = #{userApiKey}
</select>
<select id="selectUserTokenByUserTokenIdx" resultType="com.alist.api.modules.front.auth.vo.LoginTokenVo">
/*LoginMapper.selectUserTokenByUserTokenIdx*/
select user_token_idx
, user_role
, user_type
, refresh_token
from ALISTLMS.test_user_token
where user_token_idx = #{userTokenIdx}
</select>
<update id="clearRefreshTokenByUserTokenIdx">
/*LoginMapper.clearRefreshTokenByUserTokenIdx*/
update ALISTLMS.test_user_token
set refresh_token = null
, expires_at = null
, updated_at = now()
where user_token_idx = #{userTokenIdx}
</update>
<update id="updateLoginByLastAt">
/*LoginMapper.updateLoginByLastAt*/
update ALISTLMS.test_user
set last_login_at = now()
, update_at = now()
where user_idx = #{userIdx}
</update>
</mapper>
@@ -1,18 +0,0 @@
<?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.front.auth.mapper.SsoMapper">
<select id="selectSsoClient" resultType="com.alist.api.modules.front.auth.vo.SsoClientVo">
/*SsoMapper.selectSsoClient*/
SELECT SSO_CLIENT_IDX
, CLIENT_ID
, CLIENT_NAME
, REDIRECT_URI
, MEMO
, USE_YN
FROM ALISTLMS.SSO_CLIENT
WHERE CLIENT_ID = #{clientId}
AND USE_YN = 'Y'
LIMIT 1
</select>
</mapper>
@@ -1,26 +0,0 @@
<?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.migration.alist.user.mapper.AlistUserMapper">
<select id="selectAlistUserList" resultType="com.alist.api.modules.migration.alist.user.vo.AlistUserVo">
/*AlistUserMapper.selectAlistUserList*/
SELECT memid AS ID
, memname AS NAME
, memhp AS HP
, mememail AS EMAIL
, (
CASE memType
WHEN 'S' THEN '학생'
WHEN 'T' THEN '교사'
WHEN 'P' THEN '일반'
ELSE '기타'
END
) AS TYPE
, regdate as JOIN_DATE
FROM dbo.member WITH (NOLOCK)
WHERE memid = #{id}
AND PWDCOMPARE(#{password}
, mempw) = 1
AND memstatus <![CDATA[<>]]> 'LEAVE'
</select>
</mapper>
@@ -1,44 +0,0 @@
<?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.migration.eltown.user.mapper.EltownUserMapper">
<select id="selectEltownUserList" resultType="com.alist.api.modules.migration.eltown.user.vo.EltownUserVo">
/*EltownUserMapper.selectEltownUserList*/
SELECT '학생' AS TYPE
, User_Id AS ID
, User_Name AS NAME
, User_Email AS EMAIL
, '' AS HP
, Ins_Date AS JOIN_DATE
FROM dbo.SSL_T_PSN_MEM_01
WHERE User_Id = #{id}
AND User_Pwd = #{md5Password}
AND ISNULL(DeleteYN, 'N') = 'N'
UNION ALL
SELECT '단체' AS TYPE
, Group_Id AS ID
, Group_Name AS NAME
, Group_Email AS EMAIL
, CONCAT(Group_Tel1, '-', Group_Tel2, '-', Group_Tel3) AS HP
, Ins_Date AS JOIN_DATE
FROM dbo.SSL_T_GRO_MEM_01
WHERE Group_Id = #{id}
AND Group_Pwd = #{md5Password}
AND ISNULL(DeleteYN, 'N') = 'N'
UNION ALL
SELECT '교사' AS TYPE
, Teacher_Id AS ID
, Teacher_Name AS NAME
, Teacher_Email AS EMAIL
, '' AS HP
, Ins_Date AS JOIN_DATE
FROM dbo.SSL_T_TEA_MEM_01
WHERE Teacher_Id = #{id}
AND Teacher_Pwd = #{md5Password}
AND ISNULL(DeleteYN, 'N') = 'N'
</select>
</mapper>
@@ -1,356 +0,0 @@
<?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.tusFile.mapper.TusFileMapper">
<select id="selectTusFileUploadAuthCount" resultType="java.lang.Integer">
/*TusFileMapper.selectTusFileUploadAuthCount*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2,3)
AND (#{sizeBytes} IS NULL OR LFD.SIZE_BYTES = #{sizeBytes})
AND (#{originName} IS NULL OR #{originName} = '' OR LFD.ORIGIN_NAME = #{originName})
AND (
#{contentType} IS NULL OR #{contentType} = ''
OR LFD.CONTENT_TYPE IS NULL OR LFD.CONTENT_TYPE = ''
OR LOWER(LFD.CONTENT_TYPE) = LOWER(#{contentType})
)
</select>
<select id="selectTusFileUploadMeta" resultType="com.alist.api.modules.tusFile.dto.TusFileUploadMetaDto">
/*TusFileMapper.selectTusFileUploadMeta*/
SELECT FILE_UUID, ORIGIN_NAME, SIZE_BYTES, CONTENT_TYPE, TUS_UPLOAD_ID, STATUS
FROM ALISTLMS.FILE_DETAIL
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectTusFileUploadCancelCount" resultType="java.lang.Integer">
/*TusFileMapper.selectTusFileUploadCancelCount*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2)
</select>
<select id="selectTusFileUploadCancelProgress" resultType="com.alist.api.modules.tusFile.vo.TusFileUploadCancelProgressVo">
/*TusFileMapper.selectTusFileUploadCancelProgress*/
SELECT LFD.FILE_UUID
, COALESCE(LFD.UPLOADED_BYTES, 0) AS UPLOADED_BYTES
, COALESCE(LFD.SIZE_BYTES, 0) AS SIZE_BYTES
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectTusFileMoveTask" resultType="com.alist.api.modules.tusFile.dto.TusFileMoveTaskDto">
/*TusFileMapper.selectTusFileMoveTask*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.TUS_UPLOAD_ID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
, LFD.UPLOADED_BYTES
, LFM.FOLDER_PATH
, LFD.SAVE_NAME
, LFD.SAVE_PATH
, LFD.`EXT`
, LFD.MOVE_YN
, LFD.MOVE_TRY_COUNT
, LFD.MOVE_LAST_ERROR
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
WHERE LFD.FILE_UUID = #{fileUuid}
AND LFD.DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectTusFileList" resultType="com.alist.api.modules.tusFile.vo.TusFileListItemVo">
/*TusFileMapper.selectTusFileList*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_MASTER_IDX = #{fileMasterIdx}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFD.MOVE_YN = 'Y'
ORDER BY LFD.FILE_SEQ ASC, LFD.FILE_DETAIL_IDX ASC
</select>
<select id="selectTusFileViewOrDownload" resultType="com.alist.api.modules.tusFile.vo.TusFileViewOrDownloadVo">
/*TusFileMapper.selectTusFileViewOrDownload*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
, LFD.SAVE_PATH
, LTUT.user_idx
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFD.MOVE_YN = 'Y'
LIMIT 1
</select>
<select id="selectTusFileDeleteTargetCount" resultType="java.lang.Integer">
/*TusFileMapper.selectTusFileDeleteTargetCount*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFM.STATUS = 3
</select>
<select id="selectUserIdxByUserTokenIdx" resultType="java.lang.Integer">
/*TusFileMapper.selectUserIdxByUserTokenIdx*/
SELECT user_idx
FROM test_user_token
WHERE user_token_idx = #{userTokenIdx}
</select>
<insert id="insertTusFileUploadInitMaster" useGeneratedKeys="true" keyProperty="fileMasterIdx">
/*TusFileMapper.insertTusFileUploadInitMaster*/
INSERT INTO ALISTLMS.FILE_MASTER (
USER_IDX, FILE_CATEGORY, FOLDER_PATH, TOTAL_COUNT, DONE_COUNT, FAIL_COUNT, STATUS, DEL_YN, CREATE_MEMBER, UPDATE_MEMBER
) VALUES (
#{userIdx}, #{fileCategory}, #{folderPath}, #{totalCount}, 0, 0, #{status}, 'N', #{userIdx}, #{userIdx}
)
</insert>
<insert id="insertTusFileUploadInitDetail">
/*TusFileMapper.insertTusFileUploadInitDetail*/
INSERT INTO ALISTLMS.FILE_DETAIL (
FILE_MASTER_IDX, FILE_SEQ, FILE_UUID, ORIGIN_NAME, CONTENT_TYPE, SIZE_BYTES, UPLOADED_BYTES, TUS_UPLOAD_ID, STATUS, DEL_YN, CREATE_MEMBER, UPDATE_MEMBER
) VALUES (
#{fileMasterIdx}, #{fileSeq}, #{fileUuid}, #{originName}, #{contentType}, #{sizeBytes}, 0, NULL, #{status}, 'N', #{userIdx}, #{userIdx}
)
</insert>
<insert id="insertTusFileHookEventLog">
/*TusFileMapper.insertTusFileHookEventLog*/
INSERT INTO ALISTLMS.FILE_UPLOAD_EVENT_LOG (
FILE_DETAIL_IDX, EVENT_TYPE, OFFSET_BYTES, BYTES_WRITTEN, HTTP_STATUS, MESSAGE, RAW_JSON
)
SELECT LFD.FILE_DETAIL_IDX
, #{type}
, #{offset}
, NULL
, NULL
, NULL
, NULL
FROM ALISTLMS.FILE_DETAIL LFD
WHERE LFD.FILE_UUID = #{fileUuid}
LIMIT 1
</insert>
<insert id="insertTusFileViewOrDownloadEventLog">
/*TusFileMapper.insertTusFileViewOrDownloadEventLog*/
INSERT INTO ALISTLMS.FILE_DOWNLOAD_EVENT_LOG (
FILE_MASTER_IDX
, FILE_DETAIL_IDX
, FILE_UUID
, EVENT_TYPE
, USER_IDX
, USER_TOKEN_IDX
, CLIENT_IP
, USER_AGENT
, REFERER
, DEL_YN
, CREATE_MEMBER
) VALUES (
#{fileMasterIdx}
, #{fileDetailIdx}
, #{fileUuid}
, #{eventType}
, #{userIdx}
, #{userTokenIdx}
, #{clientIp}
, #{userAgent}
, #{referer}
, 'N'
, #{userIdx}
)
</insert>
<update id="updateTusFileHookDetailStatus">
/*TusFileMapper.updateTusFileHookDetailStatus*/
UPDATE ALISTLMS.FILE_DETAIL
<set>
<if test="uploadId != null and uploadId != ''">
TUS_UPLOAD_ID = #{uploadId},
</if>
<if test="uploadedBytes != null">
UPLOADED_BYTES = #{uploadedBytes},
</if>
<if test="status != null">
STATUS = #{status},
</if>
UPDATE_DATE = NOW()
</set>
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
</update>
<update id="updateFileMasterAggregateByFileUuid">
/*TusFileMapper.updateFileMasterAggregateByFileUuid*/
UPDATE ALISTLMS.FILE_MASTER LFM
JOIN (
SELECT LLFD.FILE_MASTER_IDX
, COUNT(*) AS total_count
, SUM(CASE WHEN LLFD.STATUS = 3 THEN 1 ELSE 0 END) AS done_count
, SUM(CASE WHEN LLFD.STATUS IN (4,5) THEN 1 ELSE 0 END) AS fail_count
FROM ALISTLMS.FILE_DETAIL LLFD
WHERE LLFD.FILE_MASTER_IDX = (
SELECT FILE_MASTER_IDX
FROM ALISTLMS.FILE_DETAIL
WHERE FILE_UUID = #{fileUuid}
LIMIT 1
)
AND LLFD.DEL_YN = 'N'
) A ON A.FILE_MASTER_IDX = LFM.FILE_MASTER_IDX
SET LFM.TOTAL_COUNT = A.total_count
, LFM.DONE_COUNT = A.done_count
, LFM.FAIL_COUNT = A.fail_count
, LFM.STATUS = CASE
WHEN A.done_count = A.total_count THEN 3
WHEN A.done_count = 0 AND A.fail_count = A.total_count THEN 4
WHEN A.done_count > 0 AND A.fail_count > 0 THEN 5
ELSE 1
END
, LFM.UPDATE_DATE = NOW()
</update>
<update id="updateTusFileUploadIdIfNull" parameterType="com.alist.api.modules.tusFile.dto.TusFileUploadMetaDto">
/*TusFileMapper.updateTusFileUploadIdIfNull*/
UPDATE ALISTLMS.FILE_DETAIL
SET TUS_UPLOAD_ID = #{tusUploadId}
, UPDATE_DATE = NOW()
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
AND TUS_UPLOAD_ID IS NULL
</update>
<update id="updateFileDetailCanceledByFileUuid">
/*TusFileMapper.updateFileDetailCanceledByFileUuid*/
UPDATE ALISTLMS.FILE_DETAIL
SET STATUS = 5
, UPDATE_DATE = NOW()
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
AND STATUS IN (0,1,2)
</update>
<update id="updateTusFileMoveSuccess" parameterType="com.alist.api.modules.tusFile.dto.TusFileMoveTaskDto">
/*TusFileMapper.updateTusFileMoveSuccess*/
UPDATE ALISTLMS.FILE_DETAIL
SET SAVE_NAME = #{saveName}
, SAVE_PATH = #{savePath}
, `EXT` = #{ext}
, MOVE_YN = 'Y'
, MOVE_DATE = NOW()
, MOVE_LAST_ERROR = NULL
, MOVE_LOCK_AT = NULL
, MOVE_LOCK_OWNER = NULL
, UPDATE_DATE = NOW()
WHERE FILE_DETAIL_IDX = #{fileDetailIdx}
AND DEL_YN = 'N'
</update>
<update id="updateTusFileMovePending" parameterType="com.alist.api.modules.tusFile.dto.TusFileMoveTaskDto">
/*TusFileMapper.updateTusFileMovePending*/
UPDATE ALISTLMS.FILE_DETAIL
SET MOVE_YN = 'N'
, MOVE_TRY_COUNT = COALESCE(MOVE_TRY_COUNT, 0) + 1
, MOVE_LAST_ERROR = #{moveLastError}
, UPDATE_DATE = NOW()
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
AND STATUS = 3
</update>
<update id="updateTusFileDetailDelete">
/*TusFileMapper.updateTusFileDetailDelete*/
UPDATE ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFM.USER_IDX
SET LFD.DEL_YN = 'Y'
, LFD.UPDATE_DATE = NOW()
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFM.STATUS = 3
</update>
<update id="updateTusFileMasterDelete">
/*TusFileMapper.updateTusFileMasterDelete*/
UPDATE ALISTLMS.FILE_MASTER LFM
INNER JOIN (
SELECT LFD.FILE_MASTER_IDX
FROM ALISTLMS.FILE_DETAIL LFD
WHERE LFD.FILE_UUID = #{fileUuid}
AND LFD.DEL_YN = 'Y'
LIMIT 1
) TARGET ON TARGET.FILE_MASTER_IDX = LFM.FILE_MASTER_IDX
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFM.USER_IDX
SET LFM.DEL_YN = 'Y'
, LFM.UPDATE_DATE = NOW()
WHERE LTUT.user_token_idx = #{userTokenIdx}
AND LFM.DEL_YN = 'N'
AND LFM.STATUS = 3
AND NOT EXISTS (
SELECT 1
FROM ALISTLMS.FILE_DETAIL CHK
WHERE CHK.FILE_MASTER_IDX = LFM.FILE_MASTER_IDX
AND CHK.DEL_YN = 'N'
)
</update>
<update id="updateTusFileUploadCancel">
/*TusFileMapper.updateTusFileUploadCancel*/
UPDATE ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFD.CREATE_MEMBER
SET LFD.STATUS = 5
, LFD.UPDATE_DATE = NOW()
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2)
</update>
</mapper>
-2
View File
@@ -1,2 +0,0 @@
User-agent: *
Disallow: /