2024-03-20 16:34 마이페이지 최근 발송내역-문자 쿼리 성능개선
This commit is contained in:
parent
c9a35c1c46
commit
bf289e9e42
@ -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{
|
||||
|
||||
@ -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")
|
||||
|
||||
@ -363,7 +363,7 @@ public class EgovMypageController {
|
||||
}
|
||||
|
||||
{//최근 발송 문자 내용 불러오기 - 최근 3개 내역만
|
||||
List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestList(userId);
|
||||
List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestListNew20240320(userId);
|
||||
model.addAttribute("mjonMsgSentList", mjonMsgSentList);
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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개 내역만(에약)
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -2111,6 +2111,7 @@
|
||||
|
||||
<select id="mjonMsgDAO.selectMberManageInfo" parameterClass="String" resultClass="mberManageVO">
|
||||
|
||||
/* mjonMsgDAO.selectMberManageInfo */
|
||||
SELECT
|
||||
MBER_ID AS mberId
|
||||
, MBER_NM AS mberNm
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user