2024-03-20 16:34 마이페이지 최근 발송내역-문자 쿼리 성능개선

This commit is contained in:
myname 2024-03-20 16:34:15 +09:00
parent c9a35c1c46
commit bf289e9e42
9 changed files with 145 additions and 2 deletions

View File

@ -378,6 +378,9 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement
public List<MjonMsgSentVO> selectMberMsgSentLatestList(String mberId) throws Exception{
return mberManageDAO.selectMberMsgSentLatestList(mberId);
}
public List<MjonMsgSentVO> selectMberMsgSentLatestListNew20240320(String mberId) throws Exception{
return mberManageDAO.selectMberMsgSentLatestListNew20240320(mberId);
}
//회원 최근 발송 문자내용 3개 불러오기(예약)
public List<MjonMsgSentVO> selectMberMsgSentLatestList2(String mberId) throws Exception{

View File

@ -212,6 +212,10 @@ public class MberManageDAO extends EgovComAbstractDAO{
public List<MjonMsgSentVO> selectMberMsgSentLatestList(String mberId) throws Exception{
return (List<MjonMsgSentVO>) list("mberManageDAO.selectMberMsgSentLatestList", mberId);
}
@SuppressWarnings("unchecked")
public List<MjonMsgSentVO> selectMberMsgSentLatestListNew20240320(String mberId) throws Exception{
return (List<MjonMsgSentVO>) list("mberManageDAO.selectMberMsgSentLatestListNew20240320", mberId);
}
//회원 최근 발송 문자내용 3개 불러오기(예약)
@SuppressWarnings("unchecked")

View File

@ -363,7 +363,7 @@ public class EgovMypageController {
}
{//최근 발송 문자 내용 불러오기 - 최근 3개 내역만
List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestList(userId);
List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestListNew20240320(userId);
model.addAttribute("mjonMsgSentList", mjonMsgSentList);
}

View File

@ -198,6 +198,8 @@ public interface EgovMberManageService {
//회원 최근 발송 문자내용 3개 불러오기
public List<MjonMsgSentVO> selectMberMsgSentLatestList(String mberId) throws Exception;
//성능개선 2024-03-20
public List<MjonMsgSentVO> selectMberMsgSentLatestListNew20240320(String mberId) throws Exception;
//회원 최근 발송 문자내용 3개 불러오기(예약)
public List<MjonMsgSentVO> selectMberMsgSentLatestList2(String mberId) throws Exception;

View File

@ -1194,7 +1194,7 @@ public class EgovUserManageController {
model.addAttribute("flowTypeCode", cmmUseService.selectCmmCodeDetail(vo));
//최근 발송 문자 내용 불러오기 - 최근 3개 내역만
List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestList(userId);
List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestListNew20240320(userId);
model.addAttribute("mjonMsgSentList", mjonMsgSentList);
//최근 발송 문자 내용 불러오기 - 최근 3개 내역만(에약)

View File

@ -74,6 +74,7 @@
<select id="MjonEventDAO.selectEventMsgMberDefaultInfo" parameterClass="eventVO" resultClass="eventVO">
/* MjonEventDAO.selectEventMsgMberDefaultInfo */
SELECT a.EVENT_INFO_ID AS eventInfoId,
a.MBER_ID AS mberId,
a.MBER_NM AS mberNm,

View File

@ -2111,6 +2111,7 @@
<select id="mjonMsgDAO.selectMberManageInfo" parameterClass="String" resultClass="mberManageVO">
/* mjonMsgDAO.selectMberManageInfo */
SELECT
MBER_ID AS mberId
, MBER_NM AS mberNm

View File

@ -2187,6 +2187,7 @@
</select>
<select id="mjonPayDAO.selectCashInfoList" parameterClass="String" resultClass="mjonPayVO">
/* mjonPayDAO.selectCashInfoList */
SELECT
'chargeCash' AS divFlag
,NVL(SUM(CASH),0) AS cashSum
@ -2223,6 +2224,7 @@
</select>
<select id="mjonPayDAO.selectPointInfoList" parameterClass="String" resultClass="mjonPayVO">
/* mjonPayDAO.selectPointInfoList */
<![CDATA[
SELECT
'chargePoint' AS divFlag

View File

@ -1318,6 +1318,7 @@
</select>
<select id="mberManageDAO.selectMberMsgSentLatestList" parameterClass="String" resultClass="mjonMsgSentVO">
/* mberManageDAO.selectMberMsgSentLatestList */
SELECT
msgId
, msgGroupId
@ -1438,6 +1439,135 @@
</select>
<select id="mberManageDAO.selectMberMsgSentLatestListNew20240320" parameterClass="String" resultClass="mjonMsgSentVO">
/* mberManageDAO.selectMberMsgSentLatestListNew20240320 */
SELECT
msgId
, msgGroupId
, userId
, MGD.TOT_PRICE AS totPrice
, MGD.EACH_PRICE AS eachPrice
, MGD.MSG_GROUP_CNT AS msgGroupCnt
, (SELECT
COUNT(0)
FROM
MJ_MSG_DATA A
WHERE 1=1
AND A.MSG_GROUP_ID = A.msgGroupId
AND (<include refid="MjonMsgSentDAO.selectAgentResultQuery_A"/>) = 'S'
) AS successCnt
, MGD.SEND_KIND AS sendKind
, MGD.SMS_TXT AS smsTxt
, userdata
, curState
, DATE_FORMAT(sentDate, '%Y-%m-%d %T') AS sentDate
, DATE_FORMAT(reqDate, '%Y-%m-%d %T') AS reqdate
, result AS resultType
, rsltCode
, rsltCode2
, rsltNet
, callFrom
, callTo
, agentCode
, msgType
, neoType
, delFlag
, fileCnt
, filePath1
, filePath2
, filePath3
, reserveCYn
, MGD.RESERVE_YN AS reserveYn
, DATE_FORMAT(MGD.CANCELDATE, '%Y-%m-%d %T') AS cancelDate
, DATE_FORMAT(MGD.REGDATE, '%Y-%m-%d %T') AS regdate
, refundYn
, MGD.DELAY_YN AS delayYn
, MGD.DELAY_COMPLETE_YN AS delayCompleteYn
,(
SELECT
CONCAT(
(
IF(B.FILE_PATH1 IS NOT NULL, (SELECT
ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH1, '/', -1))
LIMIT 1), '')
)
,'^',
(
IF(B.FILE_PATH2 IS NOT NULL, (SELECT
ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH2, '/', -1))
LIMIT 1), '')
)
,'^',
(
IF(B.FILE_PATH3 IS NOT NULL, (SELECT
ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH3, '/', -1))
LIMIT 1), '')
))
FROM
MJ_MSG_DATA B
WHERE
B.MSG_GROUP_ID = msgGroupId
LIMIT 1
) AS atchFiles
FROM
(
SELECT *
FROM MJ_MSG_GROUP_DATA MGD0
WHERE MGD0.USER_ID = #mberId#
AND NOW() >= MGD0.REQ_DATE
AND MGD0.RESERVE_C_YN = 'N'
AND (MGD0.DELAY_YN = 'N' OR (MGD0.DELAY_YN = 'Y' AND MGD0.DELAY_COMPLETE_YN = 'Y'))/**발송 지연 건이 아니거나 지연건이라면 처리 완료된 건만 보여지도록 처리*/
ORDER BY
MGD0.regDate DESC
LIMIT 3
) MGD,
(SELECT
MSG_ID AS msgId
, MSG_GROUP_ID AS msgGroupId
, USER_ID AS userId
, USERDATA AS userdata
, CUR_STATE AS curState
, SENT_DATE AS sentDate
, REQ_DATE AS reqDate,
(<include refid="MjonMsgSentDAO.selectAgentResultQuery_A"/>) AS result
, RSLT_CODE AS rsltCode
, RSLT_CODE2 AS rsltCode2
, RSLT_NET AS rsltNet
, CALL_FROM AS callFrom
, CALL_TO AS callTo
, SMS_TXT AS smsTxt
, MSG_TYPE AS msgType
, AGENT_CODE AS agentCode
, DEL_FLAG AS delFlag
, FILE_CNT AS fileCnt
, FILE_PATH1 AS filePath1
, FILE_PATH2 AS filePath2
, FILE_PATH3 AS filePath3
, NEO_TYPE AS neoType
, RESERVE_C_YN AS reserveCYn
, REFUND_YN AS refundYn
FROM
MJ_MSG_DATA A
WHERE
A.USER_ID = #mberId#
AND A.MSG_TYPE IN (4, 6)
GROUP BY A.MSG_GROUP_ID
)A
WHERE 1=1
AND A.msgGroupId = MGD.MSG_GROUP_ID
</select>
<select id="mberManageDAO.selectMberMsgSentLatestList2" parameterClass="String" resultClass="mjonMsgSentVO">
SELECT
msgId