<?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.munjaon.server.cache.mapper.MemberMapper">
    <select id="getMemberLastModifiedTime" resultType="String">
        /* MemberMapper.getLastModifiedTime */
        SELECT CASE WHEN UPDATE_TIME IS NULL THEN '0' ELSE DATE_FORMAT(UPDATE_TIME, '%Y%m%d%H%i%s') END AS last_modify_time
        FROM   information_schema.tables
        WHERE TABLE_SCHEMA = #{tableSchema} AND TABLE_NAME = 'lettngnrlmber'
    </select>
    <select id="getConfigLastModifiedTime" resultType="String">
        /* MemberMapper.getLastModifiedTime */
        SELECT CASE WHEN UPDATE_TIME IS NULL THEN '0' ELSE DATE_FORMAT(UPDATE_TIME, '%Y%m%d%H%i%s') END AS last_modify_time
        FROM   information_schema.tables
        WHERE TABLE_SCHEMA = #{tableSchema} AND TABLE_NAME = 'mj_agent_mber_config'
    </select>
    <select id="list" resultType="MemberDto">
        /* MemberMapper.list */
        SELECT
            MBER.*
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.SMS_USE_YN IS NULL OR CONF.SMS_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS SMS_USE_YN
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.LMS_USE_YN IS NULL OR CONF.LMS_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS LMS_USE_YN
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.MMS_USE_YN IS NULL OR CONF.MMS_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS MMS_USE_YN
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.KAKAO_AT_USE_YN IS NULL OR CONF.KAKAO_AT_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS KAKAO_AT_USE_YN
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.KAKAO_FT_USE_YN IS NULL OR CONF.KAKAO_FT_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS KAKAO_FT_USE_YN
             , CASE WHEN CONF.SMS_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.SMS_LIMIT_COUNT END AS SMS_LIMIT_COUNT
             , CASE WHEN CONF.LMS_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.LMS_LIMIT_COUNT END AS LMS_LIMIT_COUNT
             , CASE WHEN CONF.MMS_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.MMS_LIMIT_COUNT END AS MMS_LIMIT_COUNT
             , CASE WHEN CONF.KAKAO_AT_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.KAKAO_AT_LIMIT_COUNT END AS KAKAO_AT_LIMIT_COUNT
             , CASE WHEN CONF.KAKAO_FT_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.KAKAO_FT_LIMIT_COUNT END AS KAKAO_FT_LIMIT_COUNT
             , CASE WHEN CONF.IP_LIMIT_YN IS NULL THEN 'Y' ELSE CONF.IP_LIMIT_YN END AS IP_LIMIT_YN
             , CASE WHEN CONF.ALLOW_IP_BASIC IS NULL THEN '0.0.0.0' ELSE CONF.ALLOW_IP_BASIC END AS ALLOW_IP_BASIC
             , CASE WHEN CONF.ALLOW_IP_EXTEND IS NULL THEN '0.0.0.0' ELSE CONF.ALLOW_IP_EXTEND END AS ALLOW_IP_EXTEND
             , CONF.SMS_AGENT_CODE
             , CONF.LMS_AGENT_CODE
             , CONF.MMS_AGENT_CODE
             , CONF.KAKAO_AT_AGENT_CODE
             , CONF.KAKAO_FT_AGENT_CODE
        FROM (
                 SELECT
                     MBER_ID
                      , ACCESS_KEY
                      , MBER_STTUS
                      , SHORT_PRICE
                      , LONG_PRICE
                      , PICTURE_PRICE
                      , PICTURE2_PRICE
                      , PICTURE3_PRICE
                      , KAKAO_AT_PRICE
                      , KAKAO_FT_PRICE
                      , KAKAO_FT_IMG_PRICE
                      , KAKAO_FT_WIDE_IMG_PRICE
                 FROM lettngnrlmber
             ) MBER
            LEFT JOIN mj_agent_mber_config CONF
                ON MBER.MBER_ID = CONF.MBER_ID
    </select>
    <select id="get" resultType="MemberDto">
        /* MemberMapper.get */
        SELECT
            MBER.*
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.SMS_USE_YN IS NULL OR CONF.SMS_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS SMS_USE_YN
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.LMS_USE_YN IS NULL OR CONF.LMS_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS LMS_USE_YN
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.MMS_USE_YN IS NULL OR CONF.MMS_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS MMS_USE_YN
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.KAKAO_AT_USE_YN IS NULL OR CONF.KAKAO_AT_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS KAKAO_AT_USE_YN
             , CASE WHEN MBER.MBER_STTUS = 'Y' THEN (CASE WHEN CONF.KAKAO_FT_USE_YN IS NULL OR CONF.KAKAO_FT_USE_YN = 'N' THEN 'N' ELSE 'Y' END) ELSE 'N' END AS KAKAO_FT_USE_YN
             , CASE WHEN CONF.SMS_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.SMS_LIMIT_COUNT END AS SMS_LIMIT_COUNT
             , CASE WHEN CONF.LMS_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.LMS_LIMIT_COUNT END AS LMS_LIMIT_COUNT
             , CASE WHEN CONF.MMS_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.MMS_LIMIT_COUNT END AS MMS_LIMIT_COUNT
             , CASE WHEN CONF.KAKAO_AT_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.KAKAO_AT_LIMIT_COUNT END AS KAKAO_AT_LIMIT_COUNT
             , CASE WHEN CONF.KAKAO_FT_LIMIT_COUNT IS NULL THEN 0 ELSE CONF.KAKAO_FT_LIMIT_COUNT END AS KAKAO_FT_LIMIT_COUNT
             , CASE WHEN CONF.IP_LIMIT_YN IS NULL THEN 'Y' ELSE CONF.IP_LIMIT_YN END AS IP_LIMIT_YN
             , CASE WHEN CONF.ALLOW_IP_BASIC IS NULL THEN '0.0.0.0' ELSE CONF.ALLOW_IP_BASIC END AS ALLOW_IP_BASIC
             , CASE WHEN CONF.ALLOW_IP_EXTEND IS NULL THEN '0.0.0.0' ELSE CONF.ALLOW_IP_EXTEND END AS ALLOW_IP_EXTEND
             , CONF.SMS_AGENT_CODE
             , CONF.LMS_AGENT_CODE
             , CONF.MMS_AGENT_CODE
             , CONF.KAKAO_AT_AGENT_CODE
             , CONF.KAKAO_FT_AGENT_CODE
        FROM (
                 SELECT
                     MBER_ID
                      , ACCESS_KEY
                      , MBER_STTUS
                      , SHORT_PRICE
                      , LONG_PRICE
                      , PICTURE_PRICE
                      , PICTURE2_PRICE
                      , PICTURE3_PRICE
                      , KAKAO_AT_PRICE
                      , KAKAO_FT_PRICE
                      , KAKAO_FT_IMG_PRICE
                      , KAKAO_FT_WIDE_IMG_PRICE
                 FROM lettngnrlmber
                 WHERE MBER_ID = #{mberId}
             ) MBER
                 LEFT JOIN (SELECT * FROM mj_agent_mber_config WHERE MBER_ID = #{mberId}) CONF
                           ON MBER.MBER_ID = CONF.MBER_ID
    </select>
    <update id="updateStts" parameterType="MemberDto">
        UPDATE lettngnrlmber SET MBER_STTUS = #{mberSttus} WHERE MBER_ID = #{mberId}
    </update>
</mapper>