Merge branch 'jsp'

This commit is contained in:
itn 2023-07-12 16:48:23 +09:00
commit 2ce5864be1
7 changed files with 525 additions and 195 deletions

View File

@ -7,8 +7,9 @@ import itn.let.uss.umt.service.UserDefaultVO;
public class MberGrdVO extends UserDefaultVO { public class MberGrdVO extends UserDefaultVO {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private int grdSetNo; // 등급설정번호 private int grdSetNo; // 등급설정번호
private String grdSetNm; // 등급설정명 private String grdSetNm; // 등급명
private String grdSetIcon; // 등급아이콘
private long stdAmt; // 기준결제액 private long stdAmt; // 기준결제액
private String stdAmtComma; // 기준결제액(콤마) private String stdAmtComma; // 기준결제액(콤마)
private long totAmt; // 누적결제액 private long totAmt; // 누적결제액
@ -58,6 +59,12 @@ public class MberGrdVO extends UserDefaultVO {
public void setGrdSetNm(String grdSetNm) { public void setGrdSetNm(String grdSetNm) {
this.grdSetNm = grdSetNm; this.grdSetNm = grdSetNm;
} }
public String getGrdSetIcon() {
return grdSetIcon;
}
public void setGrdSetIcon(String grdSetIcon) {
this.grdSetIcon = grdSetIcon;
}
public long getStdAmt() { public long getStdAmt() {
return stdAmt; return stdAmt;
} }

View File

@ -3,6 +3,7 @@ package itn.let.sym.grd.web;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
@ -13,6 +14,7 @@ import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.LoginVO; import itn.com.cmm.LoginVO;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.sym.grd.service.MberGrdService; import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO; import itn.let.sym.grd.service.MberGrdVO;
@ -23,212 +25,90 @@ public class MberGrdController {
MberGrdService mberGrdService; MberGrdService mberGrdService;
/** /**
* 등급제 관리 화면 * ########################################
* * 등급제 사용자 화면
* @param mberGrdVO * ########################################
* @param model
* @return
* @throws Exception
*/ */
@RequestMapping("/sym/grd/selectMberGrdSetting.do")
public String selectJoinSetting(MberGrdVO mberGrdVO, ModelMap model) throws Exception {
List<MberGrdVO> mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO);
mberGrdVO = mberGrdService.selectMberSettingDetail(mberGrdVO);
model.addAttribute("grdNoti", mberGrdVO.getGrdNoti());
model.addAttribute("grdDate", mberGrdVO.getGrdDate());
model.addAttribute("mberGrdSettingList", mberGrdSettingList);
return "/sym/grd/mberGrdSetting";
}
// 등급제 일괄 저장
@RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do")
public ModelAndView mberGrdSettingMassUpdateAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
int updateMberCnt = 0;
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// Step1. 등급제 시행여부 변경
int updateCnt1 = mberGrdService.updateMberSetting(mberGrdVO);
if (updateCnt1 == 0) {
isSuccess = false;
msg = "등급제 시행여부 변경에 실패했습니다.";
}
else {
// Step2. 등급제 단가 업데이트
int updateCnt2 = mberGrdService.updateGrdSettingList(mberGrdVO);
if (updateCnt2 == 0) {
isSuccess = false;
msg = "등급제 단가 변경에 실패했습니다.";
}
else {
// Step3. 회원 등급 일괄변경
updateMberCnt = mberGrdService.updateMberGrdAll(mberGrdVO);
}
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
modelAndView.addObject("updateMberCnt", updateMberCnt);
return modelAndView;
}
// 회원별 등급 초기화
@RequestMapping(value = "/sym/grd/mberGrdEndMassUpdateAjax.do")
public ModelAndView mberGrdEndMassUpdateAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
int updateMberCnt = 0;
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// 회원별 등급 초기화
updateMberCnt = mberGrdService.updateMberGrdEndAll(mberGrdVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
modelAndView.addObject("updateMberCnt", updateMberCnt);
return modelAndView;
}
// 회원별 등급 적용 테스트
@RequestMapping(value = "/sym/grd/mberGrdSaveAjax.do")
public ModelAndView mberGrdSaveAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// 회원별 등급 적용
mberGrdVO.setAmt("0"); // 결제금액
mberGrdVO.setMberId("nopay"); // 결제자
mberGrdService.mberGrdSaveByUser(mberGrdVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/** /**
* 회원별 등급제 목록 화면 * 마이페이지 등급제 누적결제액 세부내역
* * @param mjonMsgVO
* @param mberGrdVO
* @param model * @param model
* @return * @return "/web/member/grd/MberGrdHistListAjax.do"
* @throws Exception * @throws Exception
*/ */
@RequestMapping("/sym/grd/selectMberGrdList.do") @RequestMapping(value= {"/web/member/grd/mberGrdHistListAjax.do"})
public String selectMetaTagList(@ModelAttribute("searchVO") MberGrdVO mberGrdVO, ModelMap model) throws Exception{ public String mberGrdHistListAjax(@ModelAttribute("searchVO") MberGrdVO mberGrdVO,
HttpServletRequest request,
ModelMap model) throws Exception{
/** paging */ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
PaginationInfo paginationInfo = new PaginationInfo(); String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
paginationInfo.setCurrentPageNo(mberGrdVO.getPageIndex()); mberGrdVO.setMberId(userId);
paginationInfo.setRecordCountPerPage(mberGrdVO.getPageUnit());
paginationInfo.setPageSize(mberGrdVO.getPageSize());
mberGrdVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); if(mberGrdVO.getPageUnit() != 10) {
mberGrdVO.setLastIndex(paginationInfo.getLastRecordIndex()); mberGrdVO.setPageUnit(mberGrdVO.getPageUnit());
mberGrdVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); }
if("".equals(mberGrdVO.getSearchSortCnd())){ //최초조회시 최신것 조회List /** pageing */
mberGrdVO.setSearchSortCnd("regDate"); mberGrdVO.setPageUnit(3);
mberGrdVO.setSearchSortOrd("desc"); PaginationInfo paginationInfo = new PaginationInfo();
} paginationInfo.setCurrentPageNo(mberGrdVO.getPageIndex());
paginationInfo.setRecordCountPerPage(mberGrdVO.getPageUnit());
paginationInfo.setPageSize(mberGrdVO.getPageSize());
List<MberGrdVO> resultList = mberGrdService.selectMberGrdList(mberGrdVO); mberGrdVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
model.addAttribute("resultList", resultList); mberGrdVO.setLastIndex(paginationInfo.getLastRecordIndex());
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? resultList.get(0).getTotCnt() : 0); mberGrdVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
model.addAttribute("paginationInfo", paginationInfo);
return "/sym/grd/mberGrdList"; if("".equals(mberGrdVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
}
List<MberGrdVO> mberGrdHistList = mberGrdService.selectMberGrdHistByGrdDateList(mberGrdVO);
paginationInfo.setTotalRecordCount(mberGrdHistList.size()> 0 ? mberGrdHistList.get(0).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("mberGrdHistList", mberGrdHistList);
model.addAttribute("grdSetNm", mberGrdVO.getGrdSetNm());
model.addAttribute("totAmt", mberGrdVO.getTotAmt());
return "/web/grd/MberGrdHistListAjax";
} }
// 등급제 적용여부 체크 // 등급제 적용여부 체크
@RequestMapping(value = "/sym/grd/mberGrdChkAjax.do") @RequestMapping(value = "/web/member/grd/mberGrdChkAjax.do")
public ModelAndView mberGrdChkAjax( public ModelAndView mberGrdChkAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView"); modelAndView.setViewName("jsonView");
boolean isSuccess = true; // 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
mberGrdVO.setMberId(userId);
boolean isSuccess = false;
String msg = ""; String msg = "";
MberGrdVO rtnMberGrdVO = new MberGrdVO(); MberGrdVO rtnMberGrdVO = new MberGrdVO();
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{ try{
// @@@@@ 등급제 적용여부 체크 // 회원별 이벤트 진행여부
//MberGrdVO rtnMberGrdVO = new MberGrdVO(); int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId());
rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); if (mberEventPrgCnt == 0) {
if (null != rtnMberGrdVO) { rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId());
// 등급제 적용 if (null != rtnMberGrdVO) {
isSuccess = true;
}
else {
msg = "종료";
}
}
}
else {
isSuccess = false;
msg = "종료";
}
} }
catch(Exception e) { catch(Exception e) {
isSuccess = false;
msg = e.getMessage(); msg = e.getMessage();
} }

View File

@ -0,0 +1,240 @@
package itn.let.sym.grd.web;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.LoginVO;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;
@Controller
public class MberGrdMngController {
@Resource(name = "mberGrdService")
MberGrdService mberGrdService;
/**
* 등급제 관리자 화면
*
* @param mberGrdVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/sym/grd/selectMberGrdSetting.do")
public String selectJoinSetting(MberGrdVO mberGrdVO, ModelMap model) throws Exception {
List<MberGrdVO> mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO);
mberGrdVO = mberGrdService.selectMberSettingDetail(mberGrdVO);
model.addAttribute("grdNoti", mberGrdVO.getGrdNoti());
model.addAttribute("grdDate", mberGrdVO.getGrdDate());
model.addAttribute("mberGrdSettingList", mberGrdSettingList);
return "/sym/grd/mberGrdSetting";
}
// 등급제 일괄 저장
@RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do")
public ModelAndView mberGrdSettingMassUpdateAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
int updateMberCnt = 0;
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// Step1. 등급제 시행여부 변경
int updateCnt1 = mberGrdService.updateMberSetting(mberGrdVO);
if (updateCnt1 == 0) {
isSuccess = false;
msg = "등급제 시행여부 변경에 실패했습니다.";
}
else {
// Step2. 등급제 단가 업데이트
int updateCnt2 = mberGrdService.updateGrdSettingList(mberGrdVO);
if (updateCnt2 == 0) {
isSuccess = false;
msg = "등급제 단가 변경에 실패했습니다.";
}
else {
// Step3. 회원 등급 일괄변경
updateMberCnt = mberGrdService.updateMberGrdAll(mberGrdVO);
}
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
modelAndView.addObject("updateMberCnt", updateMberCnt);
return modelAndView;
}
// 회원별 등급 초기화
@RequestMapping(value = "/sym/grd/mberGrdEndMassUpdateAjax.do")
public ModelAndView mberGrdEndMassUpdateAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
int updateMberCnt = 0;
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// 회원별 등급 초기화
updateMberCnt = mberGrdService.updateMberGrdEndAll(mberGrdVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
modelAndView.addObject("updateMberCnt", updateMberCnt);
return modelAndView;
}
// 회원별 등급 적용 테스트
@RequestMapping(value = "/sym/grd/mberGrdSaveAjax.do")
public ModelAndView mberGrdSaveAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// 회원별 등급 적용
mberGrdVO.setAmt("0"); // 결제금액
mberGrdVO.setMberId("nopay"); // 결제자
mberGrdService.mberGrdSaveByUser(mberGrdVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/**
* 회원별 등급제 목록 화면
*
* @param mberGrdVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/sym/grd/selectMberGrdList.do")
public String selectMetaTagList(@ModelAttribute("searchVO") MberGrdVO mberGrdVO, ModelMap model) throws Exception{
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(mberGrdVO.getPageIndex());
paginationInfo.setRecordCountPerPage(mberGrdVO.getPageUnit());
paginationInfo.setPageSize(mberGrdVO.getPageSize());
mberGrdVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
mberGrdVO.setLastIndex(paginationInfo.getLastRecordIndex());
mberGrdVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(mberGrdVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
mberGrdVO.setSearchSortCnd("regDate");
mberGrdVO.setSearchSortOrd("desc");
}
List<MberGrdVO> resultList = mberGrdService.selectMberGrdList(mberGrdVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? resultList.get(0).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "/sym/grd/mberGrdList";
}
// 등급제 적용여부 체크
@RequestMapping(value = "/sym/grd/mberGrdChkAjax.do")
public ModelAndView mberGrdChkAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
MberGrdVO rtnMberGrdVO = new MberGrdVO();
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId());
if (null != rtnMberGrdVO) {
// 등급제 적용
}
else {
isSuccess = false;
msg = "종료";
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("rtnMberGrdVO", rtnMberGrdVO);
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
}

View File

@ -186,6 +186,22 @@
, blineCode , blineCode
, M.grdSetNo , M.grdSetNo
, M.grdSetNm , M.grdSetNm
, CASE
WHEN M.grdSetNo = 1 THEN 'vvip'
WHEN M.grdSetNo = 2 THEN 'vip'
WHEN M.grdSetNo = 3 THEN 'gold'
WHEN M.grdSetNo = 4 THEN 'sliver'
WHEN M.grdSetNo = 5 THEN 'black'
WHEN M.grdSetNo = 6 THEN 'red'
WHEN M.grdSetNo = 7 THEN 'purple'
WHEN M.grdSetNo = 8 THEN 'blue'
WHEN M.grdSetNo = 9 THEN 'orange'
WHEN M.grdSetNo = 10 THEN 'green'
WHEN M.grdSetNo = 11 THEN 'yellow'
WHEN M.grdSetNo = 112 THEN 'white'
END grdSetIcon
, M.grdDate
, M.totAmt
, M.shortPrice , M.shortPrice
, M.longPrice , M.longPrice
, M.picturePrice , M.picturePrice
@ -197,6 +213,8 @@
, IFNULL(A.BLINE_CODE, 'N') AS blineCode , IFNULL(A.BLINE_CODE, 'N') AS blineCode
, G.GRD_SET_NO AS grdSetNo , G.GRD_SET_NO AS grdSetNo
, S.GRD_SET_NM AS grdSetNm , S.GRD_SET_NM AS grdSetNm
, DATE_FORMAT(G.GRD_DATE, '%Y-%m-%d') AS grdDate
, G.TOT_AMT AS totAmt
, G.SHORT_PRICE AS shortPrice , G.SHORT_PRICE AS shortPrice
, G.LONG_PRICE AS longPrice , G.LONG_PRICE AS longPrice
, G.PICTURE_PRICE AS picturePrice , G.PICTURE_PRICE AS picturePrice
@ -494,6 +512,7 @@
COUNT(MBER_ID) OVER() AS totCnt COUNT(MBER_ID) OVER() AS totCnt
, A.MBER_ID AS mberId , A.MBER_ID AS mberId
, A.GRD_SET_NO AS grdSetNo , A.GRD_SET_NO AS grdSetNo
, B.GRD_SET_NM AS grdSetNm
, A.SHORT_PRICE AS shortPrice , A.SHORT_PRICE AS shortPrice
, A.LONG_PRICE AS longPrice , A.LONG_PRICE AS longPrice
, A.PICTURE_PRICE AS picturePrice , A.PICTURE_PRICE AS picturePrice
@ -503,19 +522,16 @@
, A.TOT_AMT AS totAmt , A.TOT_AMT AS totAmt
, A.GRD_DATE AS grdDate , A.GRD_DATE AS grdDate
, A.REG_ID AS regId , A.REG_ID AS regId
, A.REG_DATE AS regDate , DATE_FORMAT(A.REG_DATE, '%Y-%m-%d %H:%i') AS regDate
, A.EDIT_ID AS editId , A.EDIT_ID AS editId
, A.EDIT_DATE AS editDate , A.EDIT_DATE AS editDate
FROM MJ_MBER_GRD_HIST A FROM MJ_MBER_GRD_HIST A
INNER JOIN MJ_MBER_GRD_SETTING B
ON A.GRD_SET_NO = B.GRD_SET_NO
WHERE 1=1 WHERE 1=1
AND A.MBER_ID = #mberId# AND A.MBER_ID = #mberId#
AND A.GRD_DATE >= (SELECT S.GRD_DATE FROM MJ_MBER_GRD_INFO S WHERE S.MBER_ID = #mberId#) AND A.GRD_DATE >= (SELECT S.GRD_DATE FROM MJ_MBER_GRD_INFO S WHERE S.MBER_ID = #mberId#)
<isNotEmpty property="searchSortCnd"> ORDER BY A.REG_DATE DESC
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select> </select>

View File

@ -52,7 +52,7 @@ function fnSelectMber(mberId) {
} }
// 등급제 적용 테스트 // 등급제 적용 테스트
function setMberGrdChk(mberId) { function getMberGrdChk(mberId) {
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/sym/grd/mberGrdChkAjax.do", url: "/sym/grd/mberGrdChkAjax.do",

View File

@ -0,0 +1,112 @@
<%--
Class Name : SendNumberList.jsp
Description : 발신번호 리스트 조회 페이지
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2021.03.31 신명섭 최초 생성
Copyright (C) 2009 by ITN All right reserved.
--%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
<script src="/publish/js/content.js"></script>
<script>
$(document).ready(function(){
/* 목록 정렬 항목 아이콘 표시 */
var searchSortCnd = $("[name='searchSortCnd']").val();
var searchSortOrd = $("[name='searchSortOrd']").val();
if (searchSortCnd != "" && searchSortOrd != "" && searchSortCnd != undefined && searchSortOrd != undefined) {
var $sort_div = $("#sort_"+ searchSortCnd);
var sortClass = 'sortBtn' ;
if (searchSortOrd == "desc") sortClass = "sortBtnDesc";
$sort_div.replaceClass('sortBtn' , sortClass) ;
$sort_div.attr("sortOrd", searchSortOrd);
};
// 정렬 항목 이벤트
$(".sort").click(function(e) {
listSortOrd(this);
});
//목록 정렬 항목 클릭
function listSortOrd(obj){
var sortOrd = $(obj).attr("sortOrd");
var sortCnd = $(obj).attr("id");
$("[name='searchSortCnd']").val(sortCnd.substring(5)); // 구분자 제거
if (sortOrd == "desc") $("[name='searchSortOrd']").val("asc");
else $("[name='searchSortOrd']").val("desc");
payUserListAjax('1'); //각 JSP마다 다를때 메소드 정의해 줘야됨
};
});
</script>
<fmt:formatNumber type="number" maxFractionDigits="3" value="${totAmt}" var="totAmtTitle" />
<div class="candidate_table">
<p class="level_tx" id="grdPopArea">등급 : <c:out value="${grdSetNm}"/>(<c:out value="${totAmtTitle}"/>원) </p>
<div class="tb_wrap">
<table class="tType4">
<colgroup>
<col style="width: 50px;">
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr class="level_title">
<th>구분</th>
<th>결제일시</th>
<th>결제금액</th>
<th>누적금액</th>
<th>등급</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty mberGrdHistList}">
<c:forEach var="result" items="${mberGrdHistList}" varStatus="status">
<tr class="level_text">
<td>1</td>
<td><c:out value="${result.regDate}"/></td>
<td>
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.amt}" var="amt" />
<c:out value="${amt}"/>
</td>
<td>
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.totAmt}" var="totAmt" />
<c:out value="${totAmt}"/>
</td>
<td><c:out value="${result.grdSetNm}"/></td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="5">
검색 결과가 없습니다.
</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
<!-- pagination -->
<c:if test="${!empty mberGrdHistList}">
<ul class="pagination">
<ui:pagination paginationInfo = "${paginationInfo}" type="imageWeb" jsFunction="mberGrdHistListAjax" />
</ul>
</c:if>
<!-- pagination -->

View File

@ -17,6 +17,9 @@ var thisfuledtlday = "";
$(document).ready(function(){ $(document).ready(function(){
payUserListAjax(1); payUserListAjax(1);
// 등급제 대상 여부
//getMberGrdChk();
var date = new Date() ; var date = new Date() ;
//이전달 첫날/마지막날 조회 //이전달 첫날/마지막날 조회
if(date.getMonth()+1 == 1){ if(date.getMonth()+1 == 1){
@ -93,8 +96,78 @@ function fnRevDetailPop03(msgGroupId){
$('#faxClick').trigger('click'); $('#faxClick').trigger('click');
}); });
} }
// 등급제 누적결제액 세부내역
function mberGrdHistListAjax(pageNo){
document.levelForm.pageIndex.value = pageNo;
var sendData= $(document.levelForm).serializeArray();
$("#mberGrdHistListLoad").load("/web/member/grd/mberGrdHistListAjax.do", sendData ,function(response, status, xhr){
});
}
// 등급제 대상 여부
function getMberGrdChk() {
$.ajax({
type: "POST",
url: "/web/member/grd/mberGrdChkAjax.do",
data: {},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
// 등급제 누적결제액 세부내역
$("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");
document.levelForm.grdSetNm.value = data.rtnMberGrdVO.grdSetNm;
document.levelForm.totAmt.value = data.rtnMberGrdVO.totAmt;
mberGrdHistListAjax(1, data.rtnMberGrdVO.grdSetNm, data.rtnMberGrdVO.totAmt);
// 등급제 아이콘 버튼 노출여부
var sHtml = "";
sHtml += "<img src='/publish/images/level/level_icon/level_small/" + data.rtnMberGrdVO.grdSetIcon + "_small_icon.png' alt='등급별 스몰 아이콘'>";
sHtml += "<p>" + data.rtnMberGrdVO.grdSetNm + "</p>";
$("#levelIconBtn").html(sHtml);
$("#levelIconBtn").show();
}
else {
//alert("Msg : " + data.msg);
}
},
error: function (e) {
//alert("ERROR : " + JSON.stringify(e));
}
});
}
</script> </script>
<form id="levelForm" name="levelForm" method="post">
<input type="hidden" id="pageType" name="pageType" value=""/>
<input type="hidden" id="pageIndex" name="pageIndex" value=""/>
<input type="hidden" id="grdSetNm" name="grdSetNm" value=""/>
<input type="hidden" id="totAmt" name="totAmt" value=""/>
</form>
<!-- 등급 및 누적결제액 확인 팝업 data-tooltip:level_check_popup01 시작 -->
<div class="tooltip-wrap level_popup">
<div class="popup-com candidate_layer level_check_popup01" tabindex="0" data-tooltip-con="level_check_popup01" data-focus="level_check_popup01" data-focus-prev="level_check_popup01-close" style="width: 680px;">
<div class="popup_heading">
<p>누적결제액 세부내역<span id="levelSubTitle"></span></p>
<button type="button" class="tooltip-close" data-focus="level_check_popup01-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
</div>
<div class="layer_in" id="mberGrdHistListLoad" style="padding-bottom: 0px;">
</div>
<div class="popup_btn_wrap2" style="margin-bottom: 30px;">
<button type="button" class="tooltip-close" data-focus="level_check_popup01-close">닫기</button>
</div>
</div>
</div>
<!-- 등급 및 누적결제액 확인 팝업 data-tooltip:level_check_popup01 끝 -->
<!-- 문자 팝업 --> <!-- 문자 팝업 -->
<div class="tooltip-wrap"> <div class="tooltip-wrap">
<div class="popup-com adr_layer rev_popup01" tabindex="0" data-tooltip-con="rev_popup01" <div class="popup-com adr_layer rev_popup01" tabindex="0" data-tooltip-con="rev_popup01"
@ -180,6 +253,8 @@ function fnRevDetailPop03(msgGroupId){
</div> </div>
<div class="my_dashboard"> <div class="my_dashboard">
<div class="my_dashboard_cont1"> <div class="my_dashboard_cont1">
<button type="button" class="level_icon" data-tooltip="level_check_popup01" id="levelIconBtn" style="display: none;">
</button>
<div> <div>
<p> <p>
<span><c:out value="${mberManageVO.mberNm}"/></span> 회원님 반갑습니다 <span><c:out value="${mberManageVO.mberNm}"/></span> 회원님 반갑습니다