From 43d819d5a1d565a68a8a13bc55b730ea40c9cb05 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?=
Date: Mon, 6 Apr 2026 16:24:01 +0900
Subject: [PATCH 01/15] =?UTF-8?q?fix=20:=20=EA=B5=AC=EB=8F=85=EC=84=9C?=
=?UTF-8?q?=EB=B9=84=EC=8A=A4=20-=20=EA=B2=B0=EC=A0=9C=20=EC=B2=98?=
=?UTF-8?q?=EB=A6=AC=20=EC=A0=84=20=EC=A0=95=ED=95=A9=EC=84=B1=20=EA=B2=80?=
=?UTF-8?q?=EC=82=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../instcSle/mtng/mapper/BOMaMtngMapper.java | 3 +
.../mtng/service/BOMaMtngService.java | 13 +-
.../instcSle/mtng/vo/BOPreOrderValidVO.java | 3 +
.../ordr/ordr/service/BOOrdrService.java | 4 +-
src/main/resources/application-stage.yml | 2 +-
.../admin/instcSle/mtng/BOMtngMapper.xml | 118 ++++++++++++++++++
.../gcone/goods/subsvc/BOSubsvcMapper.xml | 2 +-
.../WEB-INF/views/sopmal/main/SubscribeR.jsp | 42 ++++---
.../views/sopmal/ordr/SubsvcPurchsC.jsp | 4 +-
.../views/sopmal_m/main/SubscribeR.jsp | 40 +++---
.../views/sopmal_m/ordr/SubsvcPurchsC.jsp | 4 +-
11 files changed, 186 insertions(+), 49 deletions(-)
diff --git a/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/mapper/BOMaMtngMapper.java b/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/mapper/BOMaMtngMapper.java
index e71f5175..b532fe97 100644
--- a/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/mapper/BOMaMtngMapper.java
+++ b/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/mapper/BOMaMtngMapper.java
@@ -52,6 +52,9 @@ public interface BOMaMtngMapper {
/** 주문 전 쿠폰정보 재확인*/
public List selectBOPreOrderValidationCouponList(BOPreOrderValidVO goods);
+ /** 구독서비스 주문 전 주문정보 재확인*/
+ public List selectBOSubsvcPreOrderValidation(BOPreOrderValidVO goods);
+
/*쇼핑몰 구매요청 재검증 확인 여부*/
public String selectPurchsValidUseAt(String sopmalCd);
}
diff --git a/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/service/BOMaMtngService.java b/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/service/BOMaMtngService.java
index a427d8a9..34acc6c7 100644
--- a/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/service/BOMaMtngService.java
+++ b/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/service/BOMaMtngService.java
@@ -306,8 +306,12 @@ public class BOMaMtngService {
}
for(BOPreOrderValidVO goods : goodsList) {
-
- List resultValid = mapper.selectBOPreOrderValidation(goods);
+ List resultValid = new ArrayList<>();
+ if(goods.getSubsvcInnb() != "") {
+ resultValid = mapper.selectBOSubsvcPreOrderValidation(goods);
+ } else {
+ resultValid = mapper.selectBOPreOrderValidation(goods);
+ }
//구매정보 변경대상 필터링
// 값이 1인 항목 == 변경항목
@@ -473,12 +477,14 @@ public class BOMaMtngService {
goodsList.forEach(goods -> {
String goodsInnb = StringUtil.isNullToString(goods.get("goodsInnb"));
-
+ String subsvcInnb = StringUtil.isNullToString(goods.get("subsvcInnb"));
//상품별 수량합계
int goodsTotalQy = 0;
if(qySums.containsKey(goodsInnb)){
goodsTotalQy = qySums.getOrDefault(goodsInnb, 0);
+ } else if (qySums.containsKey(subsvcInnb)) {
+ goodsTotalQy = qySums.getOrDefault(subsvcInnb, 0);
}
@@ -514,6 +520,7 @@ public class BOMaMtngService {
.sopmalCd(StringUtil.isNullToString(goods.get("sopmalCd")))
.goodsInnb(StringUtil.isNullToString(goods.get("goodsInnb")))
.goodsOptnInnb(StringUtil.isNullToString(goods.get("goodsOptnInnb")))
+ .subsvcInnb(StringUtil.isNullToString(goods.get("subsvcInnb")))
.mbrInnb(StringUtil.isNullToString(goods.get("mbrInnb")))
.mbrDvCd(StringUtil.isNullToString(goods.get("mbrDvCd")))
.qy(StringUtil.isNullToString(goods.get("qy")))
diff --git a/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/vo/BOPreOrderValidVO.java b/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/vo/BOPreOrderValidVO.java
index af9cbc77..5a5191da 100644
--- a/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/vo/BOPreOrderValidVO.java
+++ b/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/vo/BOPreOrderValidVO.java
@@ -24,6 +24,9 @@ public class BOPreOrderValidVO {
/*상품옵션고유번호*/
private String goodsOptnInnb;
+ /*구독서비스고유번호*/
+ private String subsvcInnb;
+
/*회원고유번호*/
private String mbrInnb;
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java
index 3f87e760..567b278d 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java
@@ -6015,8 +6015,8 @@ public class BOOrdrService{
LinkedHashMap subsvcOne = subsvcList.get(0);
log.debug("subsvcOne : {}", subsvcOne);
- goodsAmt = BigDecimal.valueOf((Integer) subsvcOne.get("selpric"));
- setleAmt = BigDecimal.valueOf((Integer) subsvcOne.get("selpric"));
+ goodsAmt = BigDecimal.valueOf((Integer) subsvcOne.get("slepric"));
+ setleAmt = BigDecimal.valueOf((Integer) subsvcOne.get("slepric"));
log.debug("결제 예정 금액 : {}", setleAmt);
// 환율계산
diff --git a/src/main/resources/application-stage.yml b/src/main/resources/application-stage.yml
index c8a84729..328ba1e4 100644
--- a/src/main/resources/application-stage.yml
+++ b/src/main/resources/application-stage.yml
@@ -359,7 +359,7 @@ mngrfo:
images: .gif,.jpg,.jpeg,.png
cdnurl: https://19b0bde6dcdc15ad.kinxzone.com
subsvc:
- dft-goods-optn-innb: 5
+ dft-goods-optn-innb: 1
secret:
diff --git a/src/main/resources/mybatis/xml/mapper/admin/instcSle/mtng/BOMtngMapper.xml b/src/main/resources/mybatis/xml/mapper/admin/instcSle/mtng/BOMtngMapper.xml
index f137df14..a88bb3dd 100644
--- a/src/main/resources/mybatis/xml/mapper/admin/instcSle/mtng/BOMtngMapper.xml
+++ b/src/main/resources/mybatis/xml/mapper/admin/instcSle/mtng/BOMtngMapper.xml
@@ -769,4 +769,122 @@
SELECT PURCHS_REVALID_AT FROM GC_SHOP WHERE 1=1 AND SOPMAL_CD = #{sopmalCd}
+
+
+
diff --git a/src/main/resources/mybatis/xml/mapper/gcone/goods/subsvc/BOSubsvcMapper.xml b/src/main/resources/mybatis/xml/mapper/gcone/goods/subsvc/BOSubsvcMapper.xml
index fa14083c..515eb5f4 100644
--- a/src/main/resources/mybatis/xml/mapper/gcone/goods/subsvc/BOSubsvcMapper.xml
+++ b/src/main/resources/mybatis/xml/mapper/gcone/goods/subsvc/BOSubsvcMapper.xml
@@ -42,7 +42,7 @@
, GS.SUBSVC_CT /*구독료*/
, GS.TME_DLVY_AMT /*1회배송비*/
, GS.CNSMRPRIC /*소비자가*/
- , GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
+ , GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SLEPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
, ROUND((GS.CNSMRPRIC - (GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT))) / NULLIF(GS.CNSMRPRIC, 0) * 100, 0) AS DSCNT_RAITO
, GS.INVNTRY_QY /*재고수량*/
, GS.USEFUL_INVNTRY_QY /*판매재고수량*/
diff --git a/src/main/webapp/WEB-INF/views/sopmal/main/SubscribeR.jsp b/src/main/webapp/WEB-INF/views/sopmal/main/SubscribeR.jsp
index ed4ec2c7..bd031d1c 100644
--- a/src/main/webapp/WEB-INF/views/sopmal/main/SubscribeR.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal/main/SubscribeR.jsp
@@ -54,14 +54,14 @@
$('#dlvyCnt').text(data.dlvyCnt);
$('#dlvyCycle').text(data.dlvyCycle);
$('#cnsmrpric').text(fn_format_number(data.cnsmrpric) + curUnit);
- $('#selpric').text(fn_format_number(data.selpric) + curUnit);
+ $('#slepric').text(fn_format_number(data.slepric) + curUnit);
$('#dscntRaito').text(data.dscntRaito + '%');
$('#subsvcDc').html(data.subsvcDc);
- fn_hide_subsvcDetail(data.subPd, data.dlvyCnt, data.selpric);
+ fn_hide_subsvcDetail(data.subPd, data.dlvyCnt, data.slepric);
$("#fixedImg").attr("src", cdnurl + data.img);
$('#fixedTitle').text(data.subsvcConcatNm);
- $('#fixedPrice').text(fn_format_number(data.selpric));
+ $('#fixedPrice').text(fn_format_number(data.slepric));
switch (data.subsvcSttusCd) {
case '01':
@@ -87,7 +87,7 @@
/******************************************************
* 구독서비스 상세 숨기기
* ****************************************************/
- const fn_hide_subsvcDetail = function(subPd, dlvyCnt, selpric) {
+ const fn_hide_subsvcDetail = function(subPd, dlvyCnt, slepric) {
function isEmpty(val) {
return !val || val === 0;
}
@@ -99,8 +99,8 @@
hideIf(isEmpty(subPd), 'li', '#subPd');
hideIf(isEmpty(dlvyCnt), 'li', '#dlvyCnt');
hideIf(isEmpty(subPd) && isEmpty(dlvyCnt), '.box', '#subPd');
- hideIf(isEmpty(selpric), '.box', '#selpric');
- hideIf(isEmpty(selpric), '#fixedButton');
+ hideIf(isEmpty(slepric), '.box', '#slepric');
+ hideIf(isEmpty(slepric), '#fixedButton');
}
/*************************************************************
@@ -109,19 +109,23 @@
const fn_purchs_subsvc = function() {
var checkedValue = $("select[name='subsvcInnb']").val();
- var tempForm = $('
From 60ff733d4dba68f774078bd1156a6121d1e81866 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?=
Date: Wed, 8 Apr 2026 14:44:42 +0900
Subject: [PATCH 03/15] =?UTF-8?q?=EA=B5=AC=EB=8F=85=EC=84=9C=EB=B9=84?=
=?UTF-8?q?=EC=8A=A4=20=EA=B2=B0=EC=A0=9C=20-=20=EA=B2=B0=EC=A0=9C=20?=
=?UTF-8?q?=EC=B2=98=EB=A6=AC=20=ED=9B=84=20=EC=9E=AC=EA=B3=A0=20=EB=B0=8F?=
=?UTF-8?q?=20=EC=83=81=ED=83=9C=20=EB=B3=80=EA=B2=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../goods/subsvc/mapper/BOSubsvcMapper.java | 5 +++
.../goods/subsvc/service/BOSubsvcService.java | 21 ++++++++-
.../gcone/goods/subsvc/vo/BOSubsvcVO.java | 7 ++-
.../ordr/controller/OrdrController.java | 13 +++++-
.../admin/instcSle/mtng/BOMtngMapper.xml | 2 +-
.../gcone/goods/subsvc/BOSubsvcMapper.xml | 43 +++++++++++++++++++
6 files changed, 86 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/mapper/BOSubsvcMapper.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/mapper/BOSubsvcMapper.java
index 6201aea7..19c27272 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/mapper/BOSubsvcMapper.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/mapper/BOSubsvcMapper.java
@@ -30,4 +30,9 @@ public interface BOSubsvcMapper {
void insertBOMngrSubsvc(BOSubsvcVO vo);
/** 관리자 구독서비스 명 중복체크*/
int selectBOMngrSubsvcNmDupCheck(BOSubsvcVO vo);
+
+ /** 구독서비스 주문에 따른 판매재고수량 수정*/
+ public void updateSubsvcOrdrUsefulInvntryQy(BOSubsvcVO vo);
+ /** 판매재고수량 변경에 따른 구독서비스 상태 수정*/
+ public void updateInvntryPolicySubsvcSttusChng(BOSubsvcVO vo);
}
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/service/BOSubsvcService.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/service/BOSubsvcService.java
index b18d34bf..dff61f5d 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/service/BOSubsvcService.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/service/BOSubsvcService.java
@@ -1,13 +1,16 @@
package com.wb.domainserver.domain.gcone.goods.subsvc.service;
-import com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO;
+import com.wb.domainserver.domain.comm.vo.AbstractVO;
+import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderVO;
import com.wb.domainserver.domain.gcone.goods.subsvc.mapper.BOSubsvcMapper;
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
import com.wb.domainserver.util.dataaccess.DataMap;
import io.micrometer.common.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@@ -137,4 +140,20 @@ public class BOSubsvcService {
return message;
}
+ /**
+ * 주문에 따른 판매재고수량 수정
+ * @param orderVO
+ * @return
+ */
+ @Transactional
+ public void updateSubsvcOrdrUsefulInvntryQy(BOOrderVO orderVO) throws Exception {
+ BOSubsvcVO subsvcVO = new BOSubsvcVO();
+ BeanUtils.copyProperties(orderVO, subsvcVO);
+ subsvcVO.setSubsvcInnb(orderVO.getSubsvcInnb().toString());
+
+ //판매수량 수정
+ mapper.updateSubsvcOrdrUsefulInvntryQy(subsvcVO);
+ //구독서비스 상태 수정
+ mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
+ }
}
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/vo/BOSubsvcVO.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/vo/BOSubsvcVO.java
index 7f11389e..05efc6d1 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/vo/BOSubsvcVO.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/vo/BOSubsvcVO.java
@@ -4,6 +4,7 @@ import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.math.BigInteger;
import java.util.List;
@Data
@@ -12,14 +13,14 @@ public class BOSubsvcVO extends AbstractVO {
private static final long serialVersionUID = 1L;
- /** 구독서비스고유번호 */
- private String subsvcInnb;
/** 쇼핑몰코드 */
private String sopmalCd;
/** 구독서비스명 */
private String subsvcNm;
/** 구독기간 */
private String subPd;
+ /** 구독서비스고유번호 */
+ private String subsvcInnb;
/** 구독서비스기수 */
private String subsvcGnr;
/** 구독서비스명 다음기수 */
@@ -108,6 +109,8 @@ private static final long serialVersionUID = 1L;
private Integer mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
+ /** 주문고유번호 */
+ private BigInteger ordrInnb;
/** 결제상품정보 */
diff --git a/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java b/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java
index 50e1b2e3..5d4469cb 100644
--- a/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java
+++ b/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java
@@ -2898,7 +2898,18 @@ public class OrdrController {
// 2.가용재고수량 수정 ==============================================================
try {
- boGoodsService.updateOrdrUsefulInvntryQy(orderVO);
+ BOOrdrVO ordrVO = new BOOrdrVO();
+ ordrVO.setOrdrInnb(orderVO.getOrdrInnb().toString());
+ ordrVO.setSopmalCd(orderVO.getSopmalCd());
+
+ DataMap ordrDtl = (DataMap) service.selectOrdrDtlInqire(ordrVO).get("dtl");
+ boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt"));
+ if(subsvcAt) {
+ orderVO.setSubsvcInnb(((Number) ordrDtl.get("subsvcInnb")).intValue());
+ subsvcService.updateSubsvcOrdrUsefulInvntryQy(orderVO);
+ } else {
+ boGoodsService.updateOrdrUsefulInvntryQy(orderVO);
+ }
} catch (Exception e) {
logVO.setFailContent("상품 재고수량 업데이트 실패");
log.error("{} 상품 재고수량 업데이트 실패!", payVO.getOrderId());
diff --git a/src/main/resources/mybatis/xml/mapper/admin/instcSle/mtng/BOMtngMapper.xml b/src/main/resources/mybatis/xml/mapper/admin/instcSle/mtng/BOMtngMapper.xml
index a88bb3dd..2aaffb9d 100644
--- a/src/main/resources/mybatis/xml/mapper/admin/instcSle/mtng/BOMtngMapper.xml
+++ b/src/main/resources/mybatis/xml/mapper/admin/instcSle/mtng/BOMtngMapper.xml
@@ -769,7 +769,7 @@
SELECT PURCHS_REVALID_AT FROM GC_SHOP WHERE 1=1 AND SOPMAL_CD = #{sopmalCd}
-
+
diff --git a/src/main/webapp/WEB-INF/views/sopmal/mpage/act/MyNormalQaR.jsp b/src/main/webapp/WEB-INF/views/sopmal/mpage/act/MyNormalQaR.jsp
new file mode 100644
index 00000000..66cd84bc
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/sopmal/mpage/act/MyNormalQaR.jsp
@@ -0,0 +1,354 @@
+<%@ 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 : MyNormalQaR.jsp
+ Description : 마이페이지 일반문의
+ Modification Information
+
+ 수정일 수정자 수정내용
+ ------- -------- ---------------------------
+ 2026-04-06 김현욱 최초 생성
+--%>
+
+
+
+
+<%-- 공통 include --%>
+
+
+
+
+
+ <%-- 공통 Header --%>
+
+
+
+
+
+
+
+ <%-- 마이페이지 Left 영역 --%>
+
+
+ <%-- 마이페이지 Right 영역 --%>
+
+
+
" id = "bbsId">
+
" id = "bbsTyCd">
+
">
+
+
+
+
+
+
+
+ 해당 테이블에 대한 설명
+
+
+
+
+
+
+
+
+
+ | 번호 |
+ 문의내용 |
+ 작성일 |
+ 답변유무 |
+
+
+
+
+
+
+
+ |
+
+
+ |
+ |
+
+
+
+ 답변완료
+
+
+ 답변대기
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 답변 등록 중 입니다.
+
+
+
+
+
+
+
+ 'Y'
+
+
+ 'N'
+
+ >
+ >
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+ 
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%-- 공통 Footer --%>
+
+
+
+
+
+ 삭제된 게시글은 복구할 수 없습니다.
+
+ 정말로 삭제 하시겠습니까?
+
+
+
+
+
+
+
+
+
+ 답변이 등록된 상태입니다.
+
+ 수정하실 수 없습니다.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/sopmal/mpage/act/MyNormalQnaDtlUpdtU.jsp b/src/main/webapp/WEB-INF/views/sopmal/mpage/act/MyNormalQnaDtlUpdtU.jsp
new file mode 100644
index 00000000..12968188
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/sopmal/mpage/act/MyNormalQnaDtlUpdtU.jsp
@@ -0,0 +1,921 @@
+<%@ 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 : MyGoodsQaR.jsp
+ Description : 마이페이지 상품Q&A
+ Modification Information
+
+ 수정일 수정자 수정내용
+ ------- -------- ---------------------------
+ 2024-04-11 김혜인 최초 생성
+--%>
+
+
+
+
+<%-- 공통 include --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%-- 공통 Header --%>
+
+
+
+
+
+ <%-- 공통 Footer --%>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/csc/BbscttRegistPopupC.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/csc/BbscttRegistPopupC.jsp
index c72dbe78..414f7f19 100644
--- a/src/main/webapp/WEB-INF/views/sopmal_m/csc/BbscttRegistPopupC.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal_m/csc/BbscttRegistPopupC.jsp
@@ -191,6 +191,14 @@
, 'success_reg_alert'
, '#regSuccessBtn'
, fn_goM2mqna, '1');
+ }else if($("#reqDv").val() === 'nlist') {//일반문의
+ openConfirmModal(function (onSuccess) {
+ fn_regist_bbsctt(onSuccess);//등록함수
+ }, 'confirm_reg_alert'
+ , '#regCfrmBtn'
+ , 'success_reg_alert'
+ , '#regSuccessBtn'
+ , fn_goNormalQna, '1');
}else {
console.log("등록처리");
openConfirmModal(function (onSuccess) {
@@ -208,6 +216,11 @@
window.location.href = "/sopmal/mpage/act/selectM2mQnaInqire?bbsId=mbrqna";
}
}
+ if (typeof fn_goNormalQna === 'undefined') {
+ function fn_goNormalQna(curPage) {
+ window.location.href = "/sopmal/mpage/act/selectNormalQnaInqire?bbsId=normal_qna";
+ }
+ }
/*********************************************************
* 게시글 등록
*********************************************************/
diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/act/MyNormalQaR.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/act/MyNormalQaR.jsp
new file mode 100644
index 00000000..042d66fa
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/act/MyNormalQaR.jsp
@@ -0,0 +1,378 @@
+<%@ 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 : MyNormalQaR.jsp
+ Description :마이페이지 일반문의 모바일
+ Modification Information
+
+ 수정일 수정자 수정내용
+ ------- -------- ---------------------------
+ 2026-04-06 김현욱 최초 생성
+--%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
" id = "bbsId">
+
" id = "bbsTyCd">
+
">
+
" name = "pageIndx" id = "pageIndex">
+
<%--인피니티스크롤 이벤트 발생 여부--%>
+
+
+
+
+
+
+
+
+
+
+
+
+ []
+
+
+
+
+
+
+ 답변완료
+
+
+ 답변대기
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 답변
+
+
+
+
+
+ 답변 등록 중 입니다.
+
+
+
+
+
+ ">
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
등록된 상품 문의가 없습니다.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/act/MyNormalQnaDtlUpdtU.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/act/MyNormalQnaDtlUpdtU.jsp
new file mode 100644
index 00000000..fc1a6503
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/act/MyNormalQnaDtlUpdtU.jsp
@@ -0,0 +1,990 @@
+<%@ 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 : BbscttUpdtU.jsp
+ Description :게시글 수정(모바일).jsp
+ Modification Information
+
+ 수정일 수정자 수정내용
+ ------- -------- ---------------------------
+ 2024-07-24 김혜인 최초 생성
+--%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<%--수정 성공 모달--%>
+
+
+<%--수정 컨펌 모달--%>
+
+
+
+
\ No newline at end of file
From 657ecc9d2e4a231aa32b0128ba7f68ac304cdd84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EA=B9=80=ED=98=84=EC=9A=B1?=
Date: Mon, 13 Apr 2026 16:35:59 +0900
Subject: [PATCH 07/15] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EA=B2=8C?=
=?UTF-8?q?=EC=8B=9C=ED=8C=90=20=EB=8C=80=EC=89=AC=EB=B3=B4=EB=93=9C=20?=
=?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../WEB-INF/views/mngr/bbs/bbsmngr/BbscttDshboardR.jsp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/main/webapp/WEB-INF/views/mngr/bbs/bbsmngr/BbscttDshboardR.jsp b/src/main/webapp/WEB-INF/views/mngr/bbs/bbsmngr/BbscttDshboardR.jsp
index 8a416353..95afc671 100644
--- a/src/main/webapp/WEB-INF/views/mngr/bbs/bbsmngr/BbscttDshboardR.jsp
+++ b/src/main/webapp/WEB-INF/views/mngr/bbs/bbsmngr/BbscttDshboardR.jsp
@@ -84,6 +84,14 @@
+
+
+
+
+
+
+
+
| 등록된 게시글이 없습니다. |
From 81b9a872db0031e349ea094a3c372a92c8216438 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?=
Date: Mon, 13 Apr 2026 16:44:07 +0900
Subject: [PATCH 08/15] =?UTF-8?q?=EA=B5=AC=EB=8F=85=EC=84=9C=EB=B9=84?=
=?UTF-8?q?=EC=8A=A4=20=EA=B2=B0=EC=A0=9C=20-=20=EC=A3=BC=EB=AC=B8?=
=?UTF-8?q?=EB=AC=B4=ED=9A=A8=20=EC=B2=98=EB=A6=AC=20=ED=9B=84=20=EC=9E=AC?=
=?UTF-8?q?=EA=B3=A0=20=EB=B0=8F=20=EC=83=81=ED=83=9C=20=EB=B3=80=EA=B2=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../goods/subsvc/mapper/BOSubsvcMapper.java | 2 +
.../goods/subsvc/service/BOSubsvcService.java | 16 ++++
.../service/BORtngudrefndService.java | 13 ++-
.../gcone/goods/subsvc/BOSubsvcMapper.xml | 82 ++++++++++++-------
4 files changed, 81 insertions(+), 32 deletions(-)
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/mapper/BOSubsvcMapper.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/mapper/BOSubsvcMapper.java
index bf357ec2..0c496288 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/mapper/BOSubsvcMapper.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/mapper/BOSubsvcMapper.java
@@ -35,6 +35,8 @@ public interface BOSubsvcMapper {
public void updateSubsvcOrdrUsefulInvntryQy(BOSubsvcVO vo);
/** 구독서비스 환불에 따른 판매재고수량 수정*/
public void updateSubsvcRefundUsefulInvntryQy(BOSubsvcVO vo);
+ /** 구독서비스 주문취소에 따른 판매재고수량 수정*/
+ public void updateSubsvcCancelOrderUsefulInvntryQy(BOSubsvcVO vo);
/** 판매재고수량 변경에 따른 구독서비스 상태 수정*/
public void updateInvntryPolicySubsvcSttusChng(BOSubsvcVO vo);
}
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/service/BOSubsvcService.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/service/BOSubsvcService.java
index e4705ead..36741fa7 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/service/BOSubsvcService.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/service/BOSubsvcService.java
@@ -170,4 +170,20 @@ public class BOSubsvcService {
//구독서비스 상태 수정
mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
}
+
+ /**
+ * 주문취소에 따른 판매재고수량 수정
+ * @param ordrVO
+ * @return
+ */
+ @Transactional
+ public void updateSubsvcCancelOrderUsefulInvntryQy(BOOrdrVO ordrVO) throws Exception {
+ BOSubsvcVO subsvcVO = new BOSubsvcVO();
+ BeanUtils.copyProperties(ordrVO, subsvcVO);
+
+ //판매수량 수정
+ mapper.updateSubsvcCancelOrderUsefulInvntryQy(subsvcVO);
+ //구독서비스 상태 수정
+ mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
+ }
}
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java
index 3d3b5499..7a55913a 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java
@@ -1492,7 +1492,18 @@ public class BORtngudrefndService {
// ########################################### 상품 재고 ###########################################
- boGoodsService.updateCancelOrderUsefulInvntryQy(ordrVO, ordrVO.getOrdrInnb());
+ BOOrdrVO boOrdrVO = new BOOrdrVO();
+ boOrdrVO.setOrdrInnb(ordrVO.getOrdrInnb());
+ boOrdrVO.setSopmalCd(ordrVO.getSopmalCd());
+
+ DataMap ordrDtl = ordrMapper.selectOrdrDtl(boOrdrVO);
+ boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt"));
+ if(subsvcAt) {
+ boOrdrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString());
+ subsvcService.updateSubsvcCancelOrderUsefulInvntryQy(boOrdrVO);
+ } else {
+ boGoodsService.updateCancelOrderUsefulInvntryQy(ordrVO, ordrVO.getOrdrInnb());
+ }
resotreResult.put("restoreResult", "0");
} catch (Exception e) {
diff --git a/src/main/resources/mybatis/xml/mapper/gcone/goods/subsvc/BOSubsvcMapper.xml b/src/main/resources/mybatis/xml/mapper/gcone/goods/subsvc/BOSubsvcMapper.xml
index 832ba32f..f607ab43 100644
--- a/src/main/resources/mybatis/xml/mapper/gcone/goods/subsvc/BOSubsvcMapper.xml
+++ b/src/main/resources/mybatis/xml/mapper/gcone/goods/subsvc/BOSubsvcMapper.xml
@@ -8,8 +8,8 @@
resultType="dataMap">
ORDER BY
-
+
GS.SUBSVC_NM ASC, SUBSVC_GNR ASC,
-
+
GS.SUBSVC_NM DESC, SUBSVC_GNR DESC,
@@ -262,7 +262,7 @@
, USE_AT
, REGUSR
, REGIST_DT)
- VALUES (#{sopmalCd}
+ VALUES (#{sopmalCd}
, #{subsvcNm}
, #{subPd}
, #{subsvcGnr}
@@ -314,29 +314,29 @@
-
-
-
-
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
From 71914f125e633ea2f3f33bec872cbb36099b928c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?=
Date: Mon, 13 Apr 2026 17:45:32 +0900
Subject: [PATCH 09/15] =?UTF-8?q?fix=20:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20?=
=?UTF-8?q?=EA=B5=AC=EB=8F=85=EC=84=9C=EB=B9=84=EC=8A=A4=20=EC=88=98?=
=?UTF-8?q?=EC=A0=95=20-=20=EC=8B=A4=ED=8C=90=EB=A7=A4=EA=B0=80=20?=
=?UTF-8?q?=EC=9E=90=EB=8F=99=20=EA=B3=84=EC=82=B0,=20=ED=8C=90=EB=A7=A4?=
=?UTF-8?q?=EC=88=98=EB=9F=89=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../views/mngr/goods/subsvc/SubsvcU.jsp | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/main/webapp/WEB-INF/views/mngr/goods/subsvc/SubsvcU.jsp b/src/main/webapp/WEB-INF/views/mngr/goods/subsvc/SubsvcU.jsp
index abfdb5aa..a99e7d89 100644
--- a/src/main/webapp/WEB-INF/views/mngr/goods/subsvc/SubsvcU.jsp
+++ b/src/main/webapp/WEB-INF/views/mngr/goods/subsvc/SubsvcU.jsp
@@ -33,6 +33,9 @@
$(this).val(input.replace(/[^0-9]/g, "").replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
});
+ //실판매가 세팅
+ fn_cal_selpric();
+
const expsrSetTable = document.getElementById('expsrSet');
//노출예약 체크되어있을 경우 enable 처리
if($("input[name='expsrDvCd']:checked").val() ==='03'){
@@ -504,7 +507,6 @@
-
@@ -613,7 +615,7 @@
실판매가* |
- 円(엔)
+ 円(엔)
|
@@ -633,9 +635,9 @@
구독설정
-
+
-
+
@@ -654,7 +656,7 @@
| 판매 상태 |
-
+ |
|
+ 판매수량 |
+
+
+
+
+ |
| 노출 여부 |
From a1d95d1e01e4750753a04d8b74f15fd53323af21 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?=
Date: Tue, 14 Apr 2026 11:00:52 +0900
Subject: [PATCH 10/15] =?UTF-8?q?fix=20:=20=EA=B5=AC=EB=8F=85=EC=84=9C?=
=?UTF-8?q?=EB=B9=84=EC=8A=A4=20=EC=A3=BC=EB=AC=B8/=EB=B0=B0=EC=86=A1=20-?=
=?UTF-8?q?=20=EC=A3=BC=EB=AC=B8=20=EC=A0=91=EC=88=98(15)=20=E2=86=92=20?=
=?UTF-8?q?=EC=A3=BC=EB=AC=B8=20=EB=AC=B4=ED=9A=A8(95)=20=EB=B2=84?=
=?UTF-8?q?=ED=8A=BC=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../webapp/WEB-INF/views/sopmal/mpage/ordr/SubsvcOrdrDtlR.jsp | 3 +++
.../WEB-INF/views/sopmal_m/mpage/ordr/SubsvcOrdrDtlR.jsp | 3 +++
2 files changed, 6 insertions(+)
diff --git a/src/main/webapp/WEB-INF/views/sopmal/mpage/ordr/SubsvcOrdrDtlR.jsp b/src/main/webapp/WEB-INF/views/sopmal/mpage/ordr/SubsvcOrdrDtlR.jsp
index fbbd5db1..c4868fb1 100644
--- a/src/main/webapp/WEB-INF/views/sopmal/mpage/ordr/SubsvcOrdrDtlR.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal/mpage/ordr/SubsvcOrdrDtlR.jsp
@@ -1491,6 +1491,9 @@
총 곳의 배송지로 주문하셨습니다.
+
+ ', '', '');" class="btn gray2">주문취소
+
', '', '', '', '', '');" class="btn gray2">전체 결제취소
diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/SubsvcOrdrDtlR.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/SubsvcOrdrDtlR.jsp
index be48c972..9d713db3 100644
--- a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/SubsvcOrdrDtlR.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/SubsvcOrdrDtlR.jsp
@@ -965,6 +965,9 @@
총 곳의 배송지로 주문하셨습니다.
+
+ ', '', '');" class="btn gray2">주문취소
+
', '', '', '', '', '');" class="btn gray2">전체 결제취소
From eda43b3d172f12d9f55d3fff74ab808431e5449b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?=
Date: Tue, 14 Apr 2026 15:47:38 +0900
Subject: [PATCH 11/15] =?UTF-8?q?fix=20:=20=EC=A3=BC=EB=AC=B8/=EB=B0=B0?=
=?UTF-8?q?=EC=86=A1=20=EC=83=81=EC=84=B8=EC=A1=B0=ED=9A=8C(=EB=AA=A8?=
=?UTF-8?q?=EB=B0=94=EC=9D=BC)=20-=20=EC=97=AC=EB=9F=AC=EA=B3=B3=20?=
=?UTF-8?q?=EB=B0=B0=EC=86=A1/=EC=84=A0=EB=AC=BC=ED=95=98=EA=B8=B0=20?=
=?UTF-8?q?=EC=A3=BC=EB=AC=B8=EC=B7=A8=EC=86=8C=20=EA=B0=9C=EC=84=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../domain/gcone/goods/purchs/service/BOOrderService.java | 3 +++
.../ordr/rtngudrefnd/service/BORtngudrefndService.java | 6 ++++++
.../domain/sopmal/ordr/controller/OrdrController.java | 4 ++++
.../webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp | 2 +-
4 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOOrderService.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOOrderService.java
index 7f0b71ab..8274ead7 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOOrderService.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOOrderService.java
@@ -873,9 +873,12 @@ public class BOOrderService {
List orderItemVOList = insertedGoodsList.stream().filter(obj-> Objects.equals(ordrInnb, obj.getOrdrInnb()) &&
Objects.equals(BigInteger.valueOf(goodsInnb), obj.getGoodsInnb())).toList();
BOOrderItemVO orderItemVO = new BOOrderItemVO();
+ // 구독서비스 여부(subsvcAt)에 따라 주문상품 취급 방식 분기
if(subsvcAt) {
+ // 구독서비스 : 동일 상품이라도 순번에 따라 개별 옵션 유지
orderItemVO = orderItemVOList.size() > allGoodsCount ? orderItemVOList.get(allGoodsCount) : null;
} else {
+ // 일반 주문 : 동일 상품과 옵션은 하나로 병합하여 처리
orderItemVO = orderItemVOList.stream().findAny().orElse(null);
}
diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java
index 7a55913a..41b75556 100644
--- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java
+++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java
@@ -1332,10 +1332,13 @@ public class BORtngudrefndService {
DataMap ordrDtl = ordrMapper.selectOrdrDtl(ordrVO);
boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt"));
+ // 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기
if(subsvcAt) {
+ // 구독서비스
ordrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString());
subsvcService.updateSubsvcRefundUsefulInvntryQy(ordrVO);
} else {
+ // 일반 주문
boGoodsService.updateRefundUsefulInvntryQy(refundVO);
}
@@ -1498,10 +1501,13 @@ public class BORtngudrefndService {
DataMap ordrDtl = ordrMapper.selectOrdrDtl(boOrdrVO);
boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt"));
+ // 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기
if(subsvcAt) {
+ // 구독서비스
boOrdrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString());
subsvcService.updateSubsvcCancelOrderUsefulInvntryQy(boOrdrVO);
} else {
+ // 일반 주문
boGoodsService.updateCancelOrderUsefulInvntryQy(ordrVO, ordrVO.getOrdrInnb());
}
diff --git a/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java b/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java
index 3a5f7553..f3327b07 100644
--- a/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java
+++ b/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java
@@ -795,6 +795,7 @@ public class OrdrController {
LinkedHashMap goodsOne = ((List) paramData.get("goodsList")).get(0);
Boolean subsvcAt = goodsOne.containsKey("subsvcInnb");
+ // 구독서비스에 포함된 상품 목록 세팅
if(subsvcAt) {
model.addAttribute("subsvcInnb", goodsOne.get("subsvcInnb"));
@@ -2904,10 +2905,13 @@ public class OrdrController {
DataMap ordrDtl = (DataMap) service.selectOrdrDtlInqire(ordrVO).get("dtl");
boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt"));
+ // 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기
if(subsvcAt) {
+ // 구독서비스
ordrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString());
subsvcService.updateSubsvcOrdrUsefulInvntryQy(ordrVO);
} else {
+ // 일반 주문
boGoodsService.updateOrdrUsefulInvntryQy(orderVO);
}
} catch (Exception e) {
diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp
index b471a55b..e197735d 100644
--- a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp
@@ -794,7 +794,7 @@
From bb5dd223c9653af061c3d351590bccb5c47bcb46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?=
Date: Wed, 15 Apr 2026 10:06:15 +0900
Subject: [PATCH 12/15] =?UTF-8?q?fix=20:=20=EB=A1=9C=EA=B7=B8=EC=95=84?=
=?UTF-8?q?=EC=9B=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/webapp/WEB-INF/views/comm/mobile/TabBar.jsp | 2 +-
src/main/webapp/WEB-INF/views/sopmal/mpage/mbr/MbrSecsnU.jsp | 2 +-
.../webapp/WEB-INF/views/sopmal_m/mpage/main/MpageMainR.jsp | 2 +-
src/main/webapp/WEB-INF/views/sopmal_m/mpage/mbr/MbrSecsnU.jsp | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/main/webapp/WEB-INF/views/comm/mobile/TabBar.jsp b/src/main/webapp/WEB-INF/views/comm/mobile/TabBar.jsp
index 56ecc60e..894ebc69 100644
--- a/src/main/webapp/WEB-INF/views/comm/mobile/TabBar.jsp
+++ b/src/main/webapp/WEB-INF/views/comm/mobile/TabBar.jsp
@@ -62,7 +62,7 @@
<%--회원일시--%>
마이페이지
- 로그아웃
+ 로그아웃
<%--비회원일시--%>
주문조회
diff --git a/src/main/webapp/WEB-INF/views/sopmal/mpage/mbr/MbrSecsnU.jsp b/src/main/webapp/WEB-INF/views/sopmal/mpage/mbr/MbrSecsnU.jsp
index ef357b2a..f8cd278b 100644
--- a/src/main/webapp/WEB-INF/views/sopmal/mpage/mbr/MbrSecsnU.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal/mpage/mbr/MbrSecsnU.jsp
@@ -60,7 +60,7 @@ const fn_regist_mbr_secsn = function () {
data: {secsnResn: secsnResn},
success: function (data) {
alert('정상적으로 탈퇴 되었습니다.');
- location.href ="/logout";
+ location.href ="/sopmal/logout";
}
});
}
diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/main/MpageMainR.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/main/MpageMainR.jsp
index 924cad8a..a2547993 100644
--- a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/main/MpageMainR.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/main/MpageMainR.jsp
@@ -214,7 +214,7 @@
-
+
로그아웃
diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/mbr/MbrSecsnU.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/mbr/MbrSecsnU.jsp
index 6739ccfe..11b96ebe 100644
--- a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/mbr/MbrSecsnU.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/mbr/MbrSecsnU.jsp
@@ -63,7 +63,7 @@
$("#custom_alert").off();
$("#custom_alert").on("click",function(){
closeModal("custom_alert");
- location.href ="/logout";
+ location.href ="/sopmal/logout";
});
}
});
From 165d8c244f669fffe0300544100478f9b1cee4fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EA=B9=80=ED=98=84=EC=9A=B1?=
Date: Wed, 15 Apr 2026 14:12:06 +0900
Subject: [PATCH 13/15] =?UTF-8?q?=EC=B6=9C=EA=B3=A0=EC=A1=B0=ED=9A=8C=20?=
=?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../WEB-INF/views/mngr/ordr/dlivy/DlivyListInqireRForm.jsp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/main/webapp/WEB-INF/views/mngr/ordr/dlivy/DlivyListInqireRForm.jsp b/src/main/webapp/WEB-INF/views/mngr/ordr/dlivy/DlivyListInqireRForm.jsp
index cee8f1c0..c0130f94 100644
--- a/src/main/webapp/WEB-INF/views/mngr/ordr/dlivy/DlivyListInqireRForm.jsp
+++ b/src/main/webapp/WEB-INF/views/mngr/ordr/dlivy/DlivyListInqireRForm.jsp
@@ -820,6 +820,7 @@
tr += ' ';
tr += ' ';
tr += ' ';
+ tr += ' ' + data.ordrInnb + ' ';
tr += ' ';
tr += ' ';
tr += ' | ';
tr += ' ' + data.ordrRceptDt + ' | ';
tr += ' ' + fn_nvl(data.sleEnvrnNm, '') + ' | ';
diff --git a/src/main/webapp/WEB-INF/views/mngr/ordr/ordrmngr/OrdrDtlInqireR.jsp b/src/main/webapp/WEB-INF/views/mngr/ordr/ordrmngr/OrdrDtlInqireR.jsp
index 85d9c715..b0380dd1 100644
--- a/src/main/webapp/WEB-INF/views/mngr/ordr/ordrmngr/OrdrDtlInqireR.jsp
+++ b/src/main/webapp/WEB-INF/views/mngr/ordr/ordrmngr/OrdrDtlInqireR.jsp
@@ -102,9 +102,14 @@
const ordrInnb = $('#ordrInnb').text();
const chgOrdrSttusCd = ($(this).attr('class').split(' ')[0]).replace('btn-ordr-sttus-', '');
const currOrdrSttusCd = '${data.dtl.ordrSttusCd}';
+ const subsvcAt = '${data.dtl.subsvcAt}';
+
+ if (chgOrdrSttusCd === '35' && subsvcAt === 'Y') {
+ alert('구독서비스의 상품준비 처리는 "구독서비스 상품준비 관리" 화면에서 처리해주세요.');
+ return;
+ }
let msg = '선택된 주문을 \'' + fn_get_code_nm('sttusCd', chgOrdrSttusCd) + '\' 처리 하시겠습니까?';
-
if (confirm(msg)) {
fn_post_ordr_sttus([ordrInnb], chgOrdrSttusCd, currOrdrSttusCd);
}
From 7e13117ad48f74247d887b90fd9e421cf4a15645 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EA=B9=80=ED=98=84=EC=9A=B1?=
Date: Wed, 15 Apr 2026 14:57:44 +0900
Subject: [PATCH 15/15] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=ED=99=94=EB=A9=B4?=
=?UTF-8?q?=EC=97=90=EC=84=9C=20=EB=AC=B4=ED=86=B5=EC=9E=A5=20=EA=B2=B0?=
=?UTF-8?q?=EC=A0=9C=EC=8B=9C=20=EC=84=A4=EC=A0=95=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../WEB-INF/views/sopmal/ordr/MbrPurchsC.jsp | 88 ++++++++++++-------
.../views/sopmal_m/ordr/MbrPurchsC.jsp | 88 ++++++++++++-------
2 files changed, 112 insertions(+), 64 deletions(-)
diff --git a/src/main/webapp/WEB-INF/views/sopmal/ordr/MbrPurchsC.jsp b/src/main/webapp/WEB-INF/views/sopmal/ordr/MbrPurchsC.jsp
index 85e741ea..ed07a7db 100644
--- a/src/main/webapp/WEB-INF/views/sopmal/ordr/MbrPurchsC.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal/ordr/MbrPurchsC.jsp
@@ -2339,49 +2339,66 @@
}
table += ' ';
- table += ' | 발급정보 | ';
+ table += ' | ';
table += ' ';
- table += ' ';
+ table += ' ';
table += ' ';
table += ' ';
table += ' | ';
table += '
';
- table += ' ';
- table += ' | ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' 발급안함';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' 결제창에서 다시 현금영수증을 신청하지 마세요. 중복발행 됩니다. ';
- table += ' ';
- table += ' ';
- table += ' | ';
- table += '
';
+ // table += ' ';
+ // table += ' | 발급정보 | ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' | ';
+ // table += '
';
+ // table += ' ';
+ // table += ' | ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' 발급안함';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' 결제창에서 다시 현금영수증을 신청하지 마세요. 중복발행 됩니다. ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' | ';
+ // table += '
';
table += '
';
table += '';
@@ -3268,7 +3285,14 @@
const setup = setupNbkDpstVOList[i];
const title = setup.bankNm + ' ' + setup.acntnb + ' ' + setup.dpstrNm;
- const option = '';
+ let option = '';
+
+ if(i === 0) {
+ // 첫번째만 selected 되게 설정
+ option = '';
+ } else {
+ option = '';
+ }
$(div).find('table tr #rcpmnyAcntnb').append(option);
}
diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/ordr/MbrPurchsC.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/ordr/MbrPurchsC.jsp
index e7e996c9..b8ae09d5 100644
--- a/src/main/webapp/WEB-INF/views/sopmal_m/ordr/MbrPurchsC.jsp
+++ b/src/main/webapp/WEB-INF/views/sopmal_m/ordr/MbrPurchsC.jsp
@@ -2345,49 +2345,66 @@
}
table += ' ';
- table += ' | 발급정보 | ';
+ table += ' | ';
table += ' ';
- table += ' ';
+ table += ' ';
table += ' ';
table += ' ';
table += ' | ';
table += '
';
- table += ' ';
- table += ' | ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' 발급안함';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' ';
- table += ' 결제창에서 다시 현금영수증을 신청하지 마세요. 중복발행 됩니다. ';
- table += ' ';
- table += ' ';
- table += ' | ';
- table += '
';
+ // table += ' ';
+ // table += ' | 발급정보 | ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' | ';
+ // table += '
';
+ // table += ' ';
+ // table += ' | ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' 발급안함';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' 결제창에서 다시 현금영수증을 신청하지 마세요. 중복발행 됩니다. ';
+ // table += ' ';
+ // table += ' ';
+ // table += ' | ';
+ // table += '
';
table += ' ';
table += '';
@@ -3350,7 +3367,14 @@
const setup = setupNbkDpstVOList[i];
const title = setup.bankNm + ' ' + setup.acntnb + ' ' + setup.dpstrNm;
- const option = '';
+ let option = '';
+
+ if(i === 0) {
+ // 첫번째만 selected 되게 설정
+ option = '';
+ } else {
+ option = '';
+ }
$(div).find('table tr #rcpmnyAcntnb').append(option);
}