fix : 관리자 구독서비스 구독자 조회
This commit is contained in:
@@ -46,4 +46,12 @@ public interface BOSubsvcOrdrMapper {
|
||||
/** 구독서비스 상품변경 관리 목록*/
|
||||
List<DataMap> selectBOSubsvcOrderMappedList(BOSubsvcOrderVO vo);
|
||||
|
||||
/** 구독서비스 구독자조회 목록*/
|
||||
List<DataMap> selectBOSubsvcOrderMbrList(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 구독자조회 - 구독자목록 팝업 - 구독서비스 정보*/
|
||||
DataMap selectBOSubsvcInfo(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 구독자조회 - 구독자목록 팝업 - 구독자목록 조회*/
|
||||
List<DataMap> selectBOSubsvcOrderMbrInfoList(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 구독자조회 - 배송상품 목록팝업 - 배송상품목록 조회*/
|
||||
List<DataMap> selectBOSubsvcOrderGoodsInfoList(BOSubsvcOrderVO vo);
|
||||
}
|
||||
|
||||
@@ -189,5 +189,59 @@ public class BOSubsvcOrdrService {
|
||||
return dataList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 구독자조회 목록
|
||||
* @param vo
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
public List<DataMap> selectBOSubsvcOrderMbrList(BOSubsvcOrderVO vo) {
|
||||
List<DataMap> dataList = new ArrayList<>();
|
||||
|
||||
try {
|
||||
dataList = mapper.selectBOSubsvcOrderMbrList(vo);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
if(dataList == null || dataList.isEmpty()){
|
||||
vo.getPaginationInfo().setTotalRecordCount(0);
|
||||
}else{
|
||||
vo.getPaginationInfo().setTotalRecordCount(((Long)dataList.get(0).get("totCnt")).intValue());
|
||||
}
|
||||
|
||||
return dataList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 구독자조회 - 구독자목록 팝업 - 구독서비스 정보
|
||||
* @param vo
|
||||
* @return DataMap
|
||||
*/
|
||||
public DataMap selectBOSubsvcInfo(BOSubsvcOrderVO vo) {
|
||||
DataMap data = new DataMap();
|
||||
data = mapper.selectBOSubsvcInfo(vo);
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 구독자조회 - 구독자목록 팝업 - 구독자목록 조회
|
||||
* @param vo
|
||||
* @return DataMap
|
||||
*/
|
||||
public List<DataMap> selectBOSubsvcOrderMbrInfoList(BOSubsvcOrderVO vo) {
|
||||
List<DataMap> dataList = new ArrayList<DataMap>();
|
||||
dataList = mapper.selectBOSubsvcOrderMbrInfoList(vo);
|
||||
return dataList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 구독자조회 - 배송상품 목록팝업 - 배송상품목록 조회
|
||||
* @param vo
|
||||
* @return DataMap
|
||||
*/
|
||||
public List<DataMap> selectBOSubsvcOrderGoodsInfoList(BOSubsvcOrderVO vo) {
|
||||
List<DataMap> dataList = new ArrayList<DataMap>();
|
||||
dataList = mapper.selectBOSubsvcOrderGoodsInfoList(vo);
|
||||
return dataList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,4 +73,6 @@ private static final long serialVersionUID = 1L;
|
||||
private String srchMbrNm;
|
||||
/**주문자ID*/
|
||||
private String srchMbrId;
|
||||
/**구독종료여부*/
|
||||
private String srchSubEndAt;
|
||||
}
|
||||
|
||||
@@ -320,4 +320,134 @@ public class SubsvcOrdrController {
|
||||
return "mngr/ordr/subsvc/SubsvcOrdrMappedList";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 구독서비스 구독자 조회 폼
|
||||
* @param subsvcVO,subsvcOrderVO,model,authSopmalCd
|
||||
* @return SubsvcOrdrMbrListForm.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectSubsvcOrdrMbrListForm")
|
||||
public String selectSubsvcOrdrMbrListForm(BOSubsvcVO subsvcVO, BOSubsvcOrderVO subsvcOrderVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
subsvcVO.setSopmalCd(authSopmalCd);
|
||||
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
subsvcVO.setSopmalCd(user.getSopmalCd());
|
||||
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("paramVO", subsvcOrderVO);
|
||||
|
||||
// 조회조건 구독서비스
|
||||
List<?> SrchSubsvcList = boSubsvcService.selectBOMngrSrchSubsvcList(subsvcVO);
|
||||
content.put("srchSubsvcList", SrchSubsvcList);
|
||||
|
||||
model.addAttribute("resultMap", content);
|
||||
return "mngr/ordr/subsvc/SubsvcOrdrMbrListForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 구독자 목록 조회 리스트
|
||||
* @param subsvcOrderVO
|
||||
* @param model
|
||||
* @return SubsvcOrdrMbrList.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectSubsvcOrdrMbrList")
|
||||
public String selectSubsvcOrdrMbrList(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
|
||||
// 페이징 객체 생성 & 페이징정보 할당
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(subsvcOrderVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(subsvcOrderVO.getPageUnit());
|
||||
paginationInfo.setPageSize(paginationProperties.getPageSize());
|
||||
|
||||
subsvcOrderVO.setPaginationInfo(paginationInfo);
|
||||
subsvcOrderVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
subsvcOrderVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
subsvcOrderVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
if(StringUtils.isEmpty(subsvcOrderVO.getSortDv())){
|
||||
//정렬기준 초기값 셋팅
|
||||
subsvcOrderVO.setSortDv("subsvcGnrAsc");
|
||||
}
|
||||
|
||||
// 목록 조회
|
||||
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderMbrList(subsvcOrderVO);
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("paramVO", subsvcOrderVO);
|
||||
content.put("list", list);
|
||||
content.put("paginationInfo", subsvcOrderVO.getPaginationInfo());
|
||||
|
||||
model.addAttribute("resultMap", content);
|
||||
|
||||
return "mngr/ordr/subsvc/SubsvcOrdrMbrList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 구독자 조회 - 구독자 목록 팝업
|
||||
* @param subsvcOrderVO
|
||||
* @param model
|
||||
* @return SubsvcOrdrList.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectSubsvcOrderMbrInfoListPop")
|
||||
public String selectSubsvcOrderMbrInfoListPop(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
//구독서비스 정보 조회
|
||||
DataMap subsvcInfo = boSubsvcOrdrService.selectBOSubsvcInfo(subsvcOrderVO);
|
||||
// 목록 조회
|
||||
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderMbrInfoList(subsvcOrderVO);
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("paramVO", subsvcOrderVO);
|
||||
content.put("subsvcInfo", subsvcInfo);
|
||||
content.put("list", list);
|
||||
|
||||
model.addAttribute("resultMap", content);
|
||||
|
||||
return "mngr/ordr/subsvc/SubsvcOrderMbrInfoListPop";
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 구독자 조회 - 배송상품 목록 팝업
|
||||
* @param subsvcOrderVO
|
||||
* @param model
|
||||
* @return SubsvcOrdrList.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectSubsvcOrderGoodsInfoListPop")
|
||||
public String selectSubsvcOrderGoodsInfoListPop(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
//구독서비스 정보 조회
|
||||
DataMap subsvcInfo = boSubsvcOrdrService.selectBOSubsvcInfo(subsvcOrderVO);
|
||||
// 목록 조회
|
||||
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderGoodsInfoList(subsvcOrderVO);
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("paramVO", subsvcOrderVO);
|
||||
content.put("subsvcInfo", subsvcInfo);
|
||||
content.put("list", list);
|
||||
|
||||
model.addAttribute("resultMap", content);
|
||||
|
||||
return "mngr/ordr/subsvc/SubsvcOrderGoodsInfoListPop";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@
|
||||
AND GS.SUBSVC_INNB = MAIN.SUBSVC_INNB
|
||||
</update>
|
||||
|
||||
<!--구독서비스 상품준비 관리 목록-->
|
||||
<!--구독서비스 상품변경 관리 목록-->
|
||||
<select id="selectBOSubsvcOrderMappedList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
@@ -335,6 +335,136 @@
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
|
||||
<!--구독서비스 구독자조회 목록-->
|
||||
<select id="selectBOSubsvcOrderMbrList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||
, COUNT(*) OVER() AS TOT_CNT
|
||||
, MAIN.*
|
||||
FROM (
|
||||
WITH ORDR AS (SELECT COUNT(DISTINCT GO.ORDR_INNB) AS SUBSCRIBER_CNT
|
||||
, MAX(GOIO.UPDT_DT) AS LAST_PRCS_DT
|
||||
, GO.SOPMAL_CD
|
||||
, GO.SUBSVC_INNB
|
||||
FROM GC_ORDER GO
|
||||
JOIN GC_ORDER_ITEM GOI ON GOI.SOPMAL_CD = GO.SOPMAL_CD AND GOI.ORDR_INNB = GO.ORDR_INNB
|
||||
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOIO.SOPMAL_CD = GOI.SOPMAL_CD AND GOIO.ORDR_GOODS_INNB AND GOI.ORDR_GOODS_INNB
|
||||
WHERE GO.SUBSVC_AT = 'Y'
|
||||
AND GO.USE_AT = 'Y'
|
||||
GROUP BY GO.SOPMAL_CD, GO.SUBSVC_INNB)
|
||||
SELECT GS.SUBSVC_INNB
|
||||
, GS.SUBSVC_NM /*구독서비스명*/
|
||||
, GS.SUBSVC_GNR /*구독서비스명 기수*/
|
||||
, GS.SUBSVC_GNR_NM /*구독서비스명 기수명*/
|
||||
, GS.SUBSVC_CT + (GS.TME_DLVY_AMT * GS.DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
|
||||
, GS.DLVY_CNT /*배송횟수*/
|
||||
, IFNULL(GS.LAST_PROCS_ODR, 0) AS LAST_PROCS_ODR /*최종차수*/
|
||||
, IFNULL(ORDR.SUBSCRIBER_CNT, 0) AS SUBSCRIBER_CNT /*구독자수*/
|
||||
, ORDR.LAST_PRCS_DT
|
||||
FROM GC_SUBSVC GS
|
||||
LEFT JOIN ORDR ON ORDR.SOPMAL_CD = GS.SOPMAL_CD AND ORDR.SUBSVC_INNB = GS.SUBSVC_INNB
|
||||
WHERE GS.USE_AT = 'Y'
|
||||
AND GS.SOPMAL_CD = #{sopmalCd}
|
||||
<if test='srchSelSubsvcNm != null and srchSelSubsvcNm != ""'>
|
||||
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
|
||||
</if>
|
||||
<if test='srchSelSubsvcGnr != null and srchSelSubsvcGnr != ""'>
|
||||
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
|
||||
</if>
|
||||
<if test='srchSubsvcNm != null and srchSubsvcNm != ""'>
|
||||
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
|
||||
</if>
|
||||
<if test='srchSubsvcGnrNm != null and srchSubsvcGnrNm != ""'>
|
||||
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
|
||||
</if>
|
||||
<if test='srchSubEndAt == "Y"'>
|
||||
<![CDATA[
|
||||
AND (GS.LAST_PROCS_ODR IS NULL OR GS.LAST_PROCS_ODR < DLVY_CNT) /*구독종료여부*/
|
||||
]]>
|
||||
</if>
|
||||
<choose>
|
||||
<when test='sortDv == "subsvcGnrAsc"'>
|
||||
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC /*구독서비스명+기수*/
|
||||
</when>
|
||||
<when test='sortDv == "subsvcGnrDesc"'>
|
||||
ORDER BY SUBSVC_NM DESC, SUBSVC_GNR DESC /*구독서비스명+기수*/
|
||||
</when>
|
||||
<when test='sortDv == "subscriberAsc"'>
|
||||
ORDER BY SUBSCRIBER_CNT ASC /*구독자수 정렬*/
|
||||
</when>
|
||||
<when test='sortDv == "subscriberDesc"'>
|
||||
ORDER BY SUBSCRIBER_CNT DESC /*구독자수 정렬*/
|
||||
</when>
|
||||
<otherwise>
|
||||
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC
|
||||
</otherwise>
|
||||
</choose>
|
||||
) MAIN
|
||||
WHERE (@ROWNUM:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<!--구독서비스 구독자조회 - 구독자목록 팝업 - 구독서비스 정보-->
|
||||
<select id="selectBOSubsvcInfo" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||
SELECT GS.SUBSVC_NM, GS.SUBSVC_GNR, GS.SUBSVC_GNR_NM
|
||||
FROM GC_SUBSVC GS
|
||||
WHERE GS.SUBSVC_INNB = #{subsvcInnb}
|
||||
</select>
|
||||
|
||||
<!--구독서비스 구독자조회 - 구독자목록 팝업 - 구독자목록 조회-->
|
||||
<select id="selectBOSubsvcOrderMbrInfoList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||
, COUNT(*) OVER() AS TOT_CNT
|
||||
, MAIN.*
|
||||
FROM (
|
||||
SELECT GO.ORDR_INNB
|
||||
, GM.MBR_NM
|
||||
, GM.MBR_ID
|
||||
, GM.MBR_DV_CD
|
||||
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE
|
||||
, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) AS LAST_PROCS_ODR/*최종차수 상품준비 ~ 배송완료*/
|
||||
, MAX(GOIO.UPDT_DT) AS LAST_PRCS_DT/*최종처리일*/
|
||||
FROM GC_ORDER GO
|
||||
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
|
||||
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
|
||||
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
|
||||
WHERE GO.USE_AT = 'Y'
|
||||
AND GO.SUBSVC_AT = 'Y'
|
||||
AND GO.SUBSVC_INNB = #{subsvcInnb} /*구독서비스 고유번호*/
|
||||
GROUP BY GO.SOPMAL_CD, GO.ORDR_INNB, GM.MBR_DV_CD, GM.MBR_NM, GM.MBR_ID
|
||||
ORDER BY GO.ORDR_INNB ASC
|
||||
)MAIN
|
||||
WHERE (@ROWNUM:=0)=0
|
||||
</select>
|
||||
|
||||
<!--구독서비스 구독자조회 - 배송상품 목록팝업 - 배송상품목록 조회-->
|
||||
<select id="selectBOSubsvcOrderGoodsInfoList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||
, COUNT(*) OVER() AS TOT_CNT
|
||||
, MAIN.*
|
||||
FROM (
|
||||
SELECT GOIO.GOODS_OPTN_INNB
|
||||
, GOI.GOODS_IMG_COURS
|
||||
, GOI.GOODS_NM
|
||||
, GOIO.OPTN_NM_1
|
||||
, GOIO.OPTN_VAL_1
|
||||
, COUNT(DISTINCT GO.ORDR_INNB) AS APPLY_CNT/*적용횟수*/
|
||||
FROM GC_ORDER GO
|
||||
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
|
||||
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
|
||||
WHERE GO.USE_AT = 'Y'
|
||||
AND GO.SUBSVC_AT = 'Y'
|
||||
AND GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' /*상품준비 ~ 배송완료*/
|
||||
AND GO.SUBSVC_INNB = #{subsvcInnb} /*구독서비스 고유번호*/
|
||||
GROUP BY GOIO.GOODS_OPTN_INNB, GOODS_IMG_COURS, GOI.GOODS_NM, GOIO.OPTN_NM_1, GOIO.OPTN_VAL_1
|
||||
ORDER BY GOI.GOODS_NM, GOIO.OPTN_NM_1, GOIO.OPTN_VAL_1
|
||||
) MAIN
|
||||
WHERE (@ROWNUM:=0)=0
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||
<%@ page import="java.util.Date" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||
<%--
|
||||
Class Name : SubsvcOrderGoodsInfoListPop.jsp
|
||||
Description : 구독서비스 구독자조회 - 배송상품 목록 팝업
|
||||
Modification Information
|
||||
|
||||
수정일 수정자 수정내용
|
||||
------- -------- ---------------------------
|
||||
2026-02-09 jazz 최초 생성
|
||||
--%>
|
||||
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||
<div id="subsvcOrdrrGoodsInfoListPop" class="modal" style="max-width: 700px;">
|
||||
<div class="modal-header">
|
||||
<h4>배송내역</h4>
|
||||
</div>
|
||||
<br>
|
||||
<div class="modal-content">
|
||||
<div class="form-control-container mb-10">
|
||||
<div class="left">
|
||||
</div>
|
||||
<div class="center">
|
||||
</div>
|
||||
<div class="right">
|
||||
</div>
|
||||
</div>
|
||||
<div class=" table-wrapper mb-40">
|
||||
<table class="table">
|
||||
<caption>주문자/주문번호 정보</caption>
|
||||
<colgroup>
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 35%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>구독서비스</th>
|
||||
<td>
|
||||
<div class="td-inner"><c:out value="${resultMap.subsvcInfo.subsvcNm}"/></div>
|
||||
</td>
|
||||
<th>기수명</th>
|
||||
<td>
|
||||
<div class="td-inner"><c:out value="${resultMap.subsvcInfo.subsvcGnr}"/>기(<c:out value="${resultMap.subsvcInfo.subsvcGnrNm}"/>)</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<div class=" table-wrapper mb-40">
|
||||
<table class="table vertical" style="max-height: 200px;">
|
||||
<caption>배송정보</caption>
|
||||
<colgroup>
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 50%;">
|
||||
<col style="width: 15%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>순번</th>
|
||||
<th colspan="2">상품명</th>
|
||||
<th>적용횟수</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${ not empty resultMap.list }">
|
||||
<c:forEach items="${ resultMap.list }" var="goods" varStatus="status">
|
||||
<tr>
|
||||
<td><c:out value="${goods.rnum}"/></td>
|
||||
<td><img src='<c:out value="${cdnurl}${goods.goodsImgCours}"/>' onerror="this.src='/pc/images/image_placeholder.png'" alt='<c:out value="${goods.goodsNm}"/>' width="56px" height="56px"></td>
|
||||
<td>
|
||||
<div class="order-section__product-info">
|
||||
<span class="order-section__product-productTitle"><c:out value="${goods.goodsNm}"/></span>
|
||||
<span class="option-text">
|
||||
<span class="option-badge">옵션</span> <c:out value="${goods.optnNm1}"/>:<c:out value="${goods.optnVal1}"/>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<td><fmt:formatNumber value="${goods.applyCnt}" pattern="#,###"/></td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#" id="btn_close_modal_bbsC" rel="modal:close" class="btn outline">닫기</a>
|
||||
</div>
|
||||
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
|
||||
</div>
|
||||
<script src="/mngr/js/script.js" defer=""></script>
|
||||
@@ -0,0 +1,106 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||
<%@ page import="java.util.Date" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||
<%--
|
||||
Class Name : SubsvcOrderMbrInfoListPop.jsp
|
||||
Description : 구독서비스 구독자조회 - 구독자 목록 팝업
|
||||
Modification Information
|
||||
|
||||
수정일 수정자 수정내용
|
||||
------- -------- ---------------------------
|
||||
2026-02-09 jazz 최초 생성
|
||||
--%>
|
||||
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||
<div id="subsvcOrderMbrInfoListPop" class="modal" style="max-width: 700px;">
|
||||
<div class="modal-header">
|
||||
<h4>배송내역</h4>
|
||||
</div>
|
||||
<br>
|
||||
<div class="modal-content">
|
||||
<div class="form-control-container mb-10">
|
||||
<div class="left">
|
||||
</div>
|
||||
<div class="center">
|
||||
</div>
|
||||
<div class="right">
|
||||
</div>
|
||||
</div>
|
||||
<div class=" table-wrapper mb-40">
|
||||
<table class="table">
|
||||
<caption>구독서비스 정보</caption>
|
||||
<colgroup>
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 35%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>구독서비스</th>
|
||||
<td>
|
||||
<div class="td-inner"><c:out value="${resultMap.subsvcInfo.subsvcNm}"/></div>
|
||||
</td>
|
||||
<th>기수명</th>
|
||||
<td>
|
||||
<div class="td-inner"><c:out value="${resultMap.subsvcInfo.subsvcGnr}"/>기(<c:out value="${resultMap.subsvcInfo.subsvcGnrNm}"/>)</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<div class=" table-wrapper mb-40">
|
||||
<table class="table vertical" style="max-height: 200px;">
|
||||
<caption>배송정보</caption>
|
||||
<colgroup>
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 20%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>순번</th>
|
||||
<th>주문일자</th>
|
||||
<th>구독자</th>
|
||||
<th>최종차수</th>
|
||||
<th>최종처리일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${ not empty resultMap.list }">
|
||||
<c:forEach items="${ resultMap.list }" var="mbr" varStatus="status">
|
||||
<tr>
|
||||
<td><c:out value="${mbr.rnum}"/></td>
|
||||
<td><c:out value="${mbr.ordrInnb}"/></td>
|
||||
<td><c:out value="${mbr.mbrNm}"/> (<c:out value="${mbr.mbrId}"/>/<c:out value="${mbr.grade}"/>)</td>
|
||||
<td><c:out value="${mbr.lastProcsOdr}"/>회</td>
|
||||
<fmt:parseDate value="${mbr.lastPrcsDt}" pattern="yyyy-MM-dd HH:mm:ss" var="parsePrcsDt"/>
|
||||
<fmt:formatDate value="${parsePrcsDt }" var="formatPrcsDt" pattern="yyyy-MM-dd"/>
|
||||
<td><c:out value="${formatPrcsDt}"/></td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#" id="btn_close_modal_bbsC" rel="modal:close" class="btn outline">닫기</a>
|
||||
</div>
|
||||
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
|
||||
</div>
|
||||
<script src="/mngr/js/script.js" defer=""></script>
|
||||
@@ -0,0 +1,124 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||
|
||||
<%--
|
||||
Class Name : SubsvcOrdrMbrList.jsp
|
||||
Description : 구독서비스 구독자 조회 목록
|
||||
Modification Information
|
||||
|
||||
수정일 수정자 수정내용
|
||||
------- -------- ---------------------------
|
||||
2026-02-09 jazz 최초 생성
|
||||
--%>
|
||||
<section class="content-section">
|
||||
<div class="form-control-container">
|
||||
<div class="left">
|
||||
<div class="search-number">
|
||||
<span class="search-number__text">총 <strong><c:out value="${ resultMap.paginationInfo.totalRecordCount }"/></strong>건</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="center">
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="select-box">
|
||||
<select title="정렬순서" name="sortDvView" id="sortDvView" onchange="fn_select_list(1);return false;">
|
||||
<option value="subsvcGnrAsc" <c:if test="${resultMap.paramVO.sortDv eq 'subsvcGnrAsc'}">selected="selected"</c:if>>구독서비스+기수 오름차순</option>
|
||||
<option value="subsvcGnrDesc" <c:if test="${resultMap.paramVO.sortDv eq 'subsvcGnrDesc'}">selected="selected"</c:if>>구독서비스+기수 내림차순</option>
|
||||
<option value="subscriberAsc" <c:if test="${resultMap.paramVO.sortDv eq 'subscriberAsc'}">selected="selected"</c:if>>구독자수 오름차순</option>
|
||||
<option value="subscriberDesc" <c:if test="${resultMap.paramVO.sortDv eq 'subscriberDesc'}">selected="selected"</c:if>>구독자수 내림차순</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="select-box">
|
||||
<select id="pageUnitView" name="pageUnitView" title="페이지당 출력될 목록건수" onchange="fn_select_list(1,this.value);return false;">
|
||||
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
|
||||
<option value="<c:out value="${ pageUnit }"/>"
|
||||
<c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>>
|
||||
<c:out value="${ pageUnit }"/>개씩
|
||||
</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="horizontal-line">
|
||||
<div class="table-wrapper">
|
||||
<table class="table vertical">
|
||||
<caption>구독서비스 목록</caption>
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<label class="b-checkbox checkbox is-medium ">
|
||||
<input type="checkbox" id="checkAll" value="">
|
||||
<span class="check"></span>
|
||||
</label>
|
||||
</th>
|
||||
<th>번호</th>
|
||||
<th>구독서비스</th>
|
||||
<th>기수</th>
|
||||
<th>기수명</th>
|
||||
<th>실판매가</th>
|
||||
<th>배송횟수</th>
|
||||
<th>최종차수</th>
|
||||
<th>최종처리일</th>
|
||||
<th>구독자수</th>
|
||||
<th>배송상품</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${ not empty resultMap.list }">
|
||||
<c:forEach items="${ resultMap.list }" var="subsvcOrdrMbr" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<label class="b-checkbox checkbox is-medium check-all">
|
||||
<input type="checkbox" name="arrCheck" class="arrCheck" value="">
|
||||
<span class="check"></span>
|
||||
</label>
|
||||
</td>
|
||||
<td><c:out value="${subsvcOrdrMbr.totCnt - (subsvcOrdrMbr.rnum -1)}"/></td>
|
||||
<td><c:out value="${subsvcOrdrMbr.subsvcNm}"/></td>
|
||||
<td><c:out value="${subsvcOrdrMbr.subsvcGnr}"/>기</td>
|
||||
<td><c:out value="${subsvcOrdrMbr.subsvcGnrNm}"/></td>
|
||||
<td><fmt:formatNumber value="${subsvcOrdrMbr.selpric}" pattern="#,###"/></td>
|
||||
<td><c:out value="${subsvcOrdrMbr.dlvyCnt}"/>회</td>
|
||||
<td><c:out value="${subsvcOrdrMbr.lastProcsOdr}"/>회</td>
|
||||
<fmt:parseDate value="${subsvcOrdrMbr.lastPrcsDt}" pattern="yyyy-MM-dd HH:mm:ss" var="parseLastPrcsDt"/>
|
||||
<fmt:formatDate value="${parseLastPrcsDt }" var="formatLastPrcsDt" pattern="yyyy-MM-dd"/>
|
||||
<td><c:out value="${ formatLastPrcsDt }"/></td>
|
||||
<td><c:out value="${subsvcOrdrMbr.subscriberCnt}"/>명 <button class="btn xsm outline light-gray" type="button" onclick="fn_open_modal('#modalDiv','#subsvcOrderMbrInfoListPop','<c:url value ='/mngr/ordr/subsvc/selectSubsvcOrderMbrInfoListPop'/>',{'subsvcInnb':'<c:out value="${subsvcOrdrMbr.subsvcInnb}"/>'}); return false;">상세</button></td>
|
||||
<td><button class="btn xsm outline light-gray" type="button" onclick="fn_open_modal('#modalDiv','#subsvcOrdrrGoodsInfoListPop','<c:url value ='/mngr/ordr/subsvc/selectSubsvcOrderGoodsInfoListPop'/>',{'subsvcInnb':'<c:out value="${subsvcOrdrMbr.subsvcInnb}"/>'}); return false;">보기</button></td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="pagination__container">
|
||||
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_list"/>
|
||||
</div>
|
||||
@@ -0,0 +1,347 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||
|
||||
<%--
|
||||
Class Name : SubsvcOrdrMbrListFrom.jsp
|
||||
Description : 구독서비스 구독자 조회 폼
|
||||
Modification Information
|
||||
|
||||
수정일 수정자 수정내용
|
||||
------- -------- ---------------------------
|
||||
2026-02-09 jazz 최초 생성
|
||||
--%>
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
||||
</head>
|
||||
<script>
|
||||
var initFlag = true;
|
||||
$(document).ready(function () {
|
||||
let pageIndex = $("#pageIndex").val();
|
||||
let pageUnit = $("#pageUnit").val();
|
||||
let srchSelSubsvcNm = $('#srchSelSubsvcNm').val();
|
||||
// event 제어
|
||||
fn_event();
|
||||
|
||||
if(srchSelSubsvcNm != ''){
|
||||
fn_getsubsvcGnr(srchSelSubsvcNm);
|
||||
}else{
|
||||
// 목록 조회
|
||||
fn_select_list(pageIndex, pageUnit);
|
||||
}
|
||||
|
||||
// 엔터키 검색
|
||||
$('#listForm').on('keydown', function (event) {
|
||||
if (event.keyCode === 13) {
|
||||
event.preventDefault();
|
||||
fn_select_list(1);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/*********************************************************
|
||||
* 목록 조회
|
||||
******************************************************** */
|
||||
const fn_select_list = function (pageIndex, pageUnit) {
|
||||
let dataStr;
|
||||
|
||||
if (!pageIndex) {
|
||||
$('#pageIndex').val(1);
|
||||
} else {
|
||||
$('#pageIndex').val(pageIndex);
|
||||
}
|
||||
//정렬기준 셋팅
|
||||
if(typeof $('#sortDvView') !== undefined && $('#sortDvView').val() !== undefined){
|
||||
$('#sortDv').val($('#sortDvView').val());
|
||||
}
|
||||
//한페이지 목록개수 셋팅
|
||||
if(typeof $('#pageUnitView') !== undefined && $('#pageUnitView').val() !== undefined){
|
||||
$('#pageUnit').val($('#pageUnitView').val());
|
||||
}
|
||||
|
||||
if (!pageUnit) {
|
||||
dataStr = $('#listForm').serialize();
|
||||
} else {
|
||||
if ($('#pageUnit').length) {
|
||||
$('#pageUnit').val(pageUnit);
|
||||
dataStr = $('#listForm').serialize();
|
||||
} else {
|
||||
dataStr = $('#listForm').serialize() + '&pageUnit=' + pageUnit;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "<c:url value="/mngr/ordr/subsvc/selectSubsvcOrdrMbrList"/>",
|
||||
data: dataStr,
|
||||
success: function (resultHtml) {
|
||||
$('#pageDiv').html(resultHtml);
|
||||
$('#sortDv').val($('#sortDvView').val());
|
||||
$('#pageUnitView').niceSelect();
|
||||
$('#sortDvView').niceSelect();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/* 현제uri에 프로토콜, 호스트, 쿼리스티링을 제외하여 history갱신 */
|
||||
history.replaceState({}, null, location.pathname);
|
||||
|
||||
/* ****************************
|
||||
* event 제어
|
||||
******************************/
|
||||
const fn_event = function () {
|
||||
/* 검색조건 구독서비스 선택 시 회차 조회 이벤트*/
|
||||
$(document).on('change', '#srchSelSubsvcNm', function(){
|
||||
var srchSelSubsvcNm = $(this).val();
|
||||
if(fn_is_empty(srchSelSubsvcNm)){
|
||||
// 회차 초기화
|
||||
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||
}else{
|
||||
//해당구독서비스 기수조회
|
||||
fn_getsubsvcGnr(srchSelSubsvcNm);
|
||||
}
|
||||
});
|
||||
|
||||
/* 목록 > 전체선택 체인지 이벤트 */
|
||||
$(document).on('change', '#checkAll', function () {
|
||||
let checkbox = $(this).closest('table').find('input[name="arrCheck"]');
|
||||
|
||||
$(checkbox).prop('checked', false);
|
||||
$(checkbox).prop('checked', $(this).is(':checked'));
|
||||
});
|
||||
}
|
||||
|
||||
/* ****************************
|
||||
* 해당구독서비스 기수조회 AJAX
|
||||
******************************/
|
||||
const fn_getsubsvcGnr = function (srchSelSubsvcNm) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '<c:url value="/mngr/goods/subsvc/selectSrchSubsvcGnrListAjax"/>',
|
||||
data: {
|
||||
'srchSelSubsvcNm': srchSelSubsvcNm
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.resBody != null) {
|
||||
const result = JSON.parse(data.resBody.result);
|
||||
const srchSubsvcGnrList = result.srchSubsvcGnrList;
|
||||
if (srchSubsvcGnrList.length > 0) {
|
||||
// 회차 초기화
|
||||
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||
// $('#srchSubsvcGnr option').filter(function() {
|
||||
// return $(this).val() !== '';
|
||||
// }).remove();
|
||||
|
||||
for (let i = 0; i < srchSubsvcGnrList.length; i++) {
|
||||
const srchSubsvcGnr = srchSubsvcGnrList[i];
|
||||
var check = "";
|
||||
if(srchSubsvcGnr.subsvcGnr == '${resultMap.paramVO.srchSelSubsvcGnr}'){
|
||||
check ="selected"
|
||||
}
|
||||
|
||||
if(initFlag == true){
|
||||
$('#srchSelSubsvcGnr').append('<option value="' + srchSubsvcGnr.subsvcGnr + '" '+ check+'>' + srchSubsvcGnr.subsvcGnrNm + '</option>');
|
||||
fn_select_list();
|
||||
initFlag = false;
|
||||
}else{
|
||||
$('#srchSelSubsvcGnr').append('<option value="' + srchSubsvcGnr.subsvcGnr + '">' + srchSubsvcGnr.subsvcGnrNm + '</option>');
|
||||
|
||||
}
|
||||
}
|
||||
$('#srchSelSubsvcGnr').niceSelect('update');
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (data) {
|
||||
fn_proc_error_message(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 체크박스 전체 처리
|
||||
* */
|
||||
const fn_change_event = function (_target, _arg) {
|
||||
if (_arg === 'all') {
|
||||
|
||||
if ($('#' + _target + '-all').is(':checked')) {
|
||||
$('[name=' + _target + ']').prop('checked', true);
|
||||
} else {
|
||||
$('[name=' + _target + ']').prop('checked', false);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
let chkCnt = $('[name=' + _target + ']:checked').length;
|
||||
let allCnt = $('[name=' + _target + ']').length;
|
||||
if (chkCnt !== allCnt && $('#' + _target + '-all').is(':checked')) {
|
||||
$('#' + _target + '-all').prop('checked', false);
|
||||
} else if (chkCnt === allCnt) {
|
||||
$('#' + _target + '-all').prop('checked', true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 관리자 주문 > 상품조회 > 검색조건 > 날짜 선택 이벤트 */
|
||||
$(document).on('click', '.dateRange-btn', function () {
|
||||
const date = $(this).attr('id');
|
||||
|
||||
$('.dateRange-btn').removeClass('selected');
|
||||
$('#' + date).addClass('selected');
|
||||
|
||||
const datepicker = $(this).closest('.td-inner').find('.datepicker');
|
||||
const start = $(datepicker[0]).attr('id');
|
||||
const end = $(datepicker[1]).attr('id');
|
||||
|
||||
if ('allDays' === date) {
|
||||
$('#' + start + ', #' + end).val('');
|
||||
|
||||
$('#datePeriod').val(date);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
fn_set_date(start, end, end, date);
|
||||
|
||||
$('#datePeriod').val(date);
|
||||
});
|
||||
|
||||
//카테고리 선택시 카테고리 아이디 저장(검색용)
|
||||
$(document).on('change', 'select[id^=ctgryDepth]', function () {
|
||||
const ctgryOptn = $(this).val()
|
||||
|
||||
if(!fn_is_empty(ctgryOptn)){
|
||||
$('#ctgryId').val(ctgryOptn)
|
||||
}else{
|
||||
//value가 ''인 카테고리 선택할경우
|
||||
let currentCtgryDepth = parseInt($(this).attr('id').replace('ctgryDepth', ''));
|
||||
|
||||
//1차 카테고리가 아닐 경우 이전 카테고리 번호 가져오기
|
||||
if(currentCtgryDepth !== 1){
|
||||
$('#ctgryId').val($('#ctgryDepth' + (currentCtgryDepth - 1)).val())
|
||||
}else{
|
||||
//1차 카테고리 일경우 카테고리 번호 비우기
|
||||
$('#ctgryId').val('')
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
//초기화버튼
|
||||
$(document).on('click', '#resetBtn', function () {
|
||||
$('#listForm')[0].reset();
|
||||
$('#srchSelSubsvcNm').niceSelect('update');
|
||||
$('#srchSelSubsvcNm').trigger("change");
|
||||
$('#srchSelSubsvcGnr').niceSelect('update');
|
||||
|
||||
fn_select_list(1);
|
||||
})
|
||||
</script>
|
||||
<body>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
|
||||
<main class="main">
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
|
||||
<div class="content">
|
||||
<div class="content__inner">
|
||||
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
|
||||
<div class="page-title">
|
||||
<h2 class="page-title__title">구독서비스 구독자 조회</h2>
|
||||
<div class="page-title__btn-container">
|
||||
</div>
|
||||
</div>
|
||||
<form id='listForm' name="listForm" method="post" action="<c:url value="/mngr/ordr/subsvc/selectSubsvcOrdrMbrList"/>">
|
||||
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultMap.paramVO.pageIndex }"/>
|
||||
<input type="hidden" id="sortDv" name="sortDv" value="${ resultMap.paramVO.sortDv }">
|
||||
<input type="hidden" id="pageUnit" name="pageUnit" value="${ resultMap.paramVO.pageUnit }">
|
||||
<input type="hidden" id="subsvcInnb" name="subsvcInnb" value="">
|
||||
<section class="content-section" id="search-section">
|
||||
<div class="table-wrapper">
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col style="width: 12%;">
|
||||
<col>
|
||||
<col style="width: 12%;">
|
||||
<col>
|
||||
</colgroup>
|
||||
<tr>
|
||||
<th>구독서비스</th>
|
||||
<td colspan="3">
|
||||
<div class="td-inner">
|
||||
<div class="select-box">
|
||||
<select title="구독서비스" id="srchSelSubsvcNm" name="srchSelSubsvcNm">
|
||||
<option value="" <c:if test="${ resultMap.paramVO.srchSelSubsvcNm eq ''}">selected="selected"</c:if>>전체</option>
|
||||
<c:forEach items="${resultMap.srchSubsvcList}" var="srchSubsvc" varStatus="status">
|
||||
<option value="${srchSubsvc.subsvcNm}" <c:if test="${ resultMap.paramVO.srchSelSubsvcNm eq srchSubsvc.subsvcNm}">selected="selected"</c:if>>${srchSubsvc.subsvcNm}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</div>
|
||||
<div class="select-box">
|
||||
<select title="구독서비스회차" id="srchSelSubsvcGnr" name="srchSelSubsvcGnr">
|
||||
<option value="" <c:if test="${ resultMap.paramVO.srchSelSubsvcGnr eq ''}">selected="selected"</c:if>>전체</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>구독서비스명</th>
|
||||
<td>
|
||||
<div class="td-inner">
|
||||
<input class="input-text xl" type="text" title="구독서비스명" id="srchSubsvcNm" name="srchSubsvcNm" value="<c:out value="${ resultMap.paramVO.srchSubsvcNm }" />">
|
||||
</div>
|
||||
</td>
|
||||
<th>기수명</th>
|
||||
<td>
|
||||
<div class="td-inner">
|
||||
<input class="input-text xl" type="text" title="구독서비스명" id="srchSubsvcGnrNm" name="srchSubsvcGnrNm" value="<c:out value="${ resultMap.paramVO.srchSubsvcGnrNm }" />">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>구독종료여부</th>
|
||||
<td colspan="3">
|
||||
<div class="td-inner">
|
||||
<div class="custom-radio-container">
|
||||
<div class="custom-radio">
|
||||
<input type="radio" name="srchSubEndAt" id="srchSubEndAt1" value="" <c:if test="${resultMap.paramVO.srchSubEndAt ne 'Y'}">checked</c:if>>
|
||||
<label for="srchSubEndAt1"/>전체</label>
|
||||
<input type="radio" name="srchSubEndAt" id="srchSubEndAt2" value="Y"<c:if test="${resultMap.paramVO.srchSubEndAt eq 'Y'}">checked</c:if>>
|
||||
<label for="srchSubEndAt2"/>진행중</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="form-control-container">
|
||||
<div class="left"></div>
|
||||
<div class="center">
|
||||
<button class="btn outline" id="resetBtn" type="button">초기화</button>
|
||||
<button class="btn primary" id="searchBtn" type="button" onclick="fn_select_list(1);"><spring:message code="button.search"/> </button>
|
||||
</div>
|
||||
<div class="right">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div id="pageDiv">
|
||||
</div>
|
||||
</form>
|
||||
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modalDiv">asfasdfasdaf</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user