|
|
@@ -12,6 +12,8 @@ import javax.servlet.http.Cookie;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import com.style24.front.biz.dao.TsfGoodsDao;
|
|
|
+import com.style24.persistence.domain.*;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.core.env.Environment;
|
|
|
@@ -32,13 +34,6 @@ import com.style24.front.biz.dao.TsfCartDao;
|
|
|
import com.style24.front.biz.dao.TsfOrderDao;
|
|
|
import com.style24.front.biz.dao.TsfRendererDao;
|
|
|
import com.style24.front.support.security.session.TsfSession;
|
|
|
-import com.style24.persistence.domain.Cart;
|
|
|
-import com.style24.persistence.domain.Coupon;
|
|
|
-import com.style24.persistence.domain.GiftCard;
|
|
|
-import com.style24.persistence.domain.KakaoPay;
|
|
|
-import com.style24.persistence.domain.NaverPay;
|
|
|
-import com.style24.persistence.domain.Order;
|
|
|
-import com.style24.persistence.domain.Payment;
|
|
|
import com.usafe.guarantee.InsuranceInfo;
|
|
|
import com.usafe.guarantee.InsuranceManager;
|
|
|
|
|
|
@@ -87,6 +82,9 @@ public class TsfOrderService {
|
|
|
@Autowired
|
|
|
private TsfCartDao cartDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TsfGoodsDao goodsDao;
|
|
|
+
|
|
|
/**
|
|
|
* 마이페이지 주문 정보 조회
|
|
|
*
|
|
|
@@ -1067,17 +1065,18 @@ public class TsfOrderService {
|
|
|
for(Order item : param.getOrderDetailList()) {
|
|
|
//<!-- 상품정보 -->
|
|
|
sb.append("\t<product>\n");
|
|
|
- sb.append("\t\t<id>").append(item.getGoodsCd()).append("</id>\n"); //<!-- 상품코드 -->
|
|
|
+ sb.append("\t\t<id>").append(item.getGoodsCd()).append("</id>\n"); //<!-- 상품코드 -->
|
|
|
sb.append("\t\t<ecMallProductId>").append(item.getGoodsCd()).append("</ecMallProductId>\n"); //<!-- 상품코드 -->
|
|
|
sb.append("\t\t<name>").append(item.getGoodsNm()).append("</name>\n"); //<!-- 상품명 -->
|
|
|
- sb.append("\t\t<basePrice>").append(item.getCurrPrice() + item.getOptAddPrice()).append("</basePrice>\n"); //<!-- 상품금액 -->
|
|
|
- sb.append("\t\t<infoUrl>").append("http:" + param.getGoodsUrl() + item.getGoodsCd()).append("</infoUrl>\n"); //<!-- 상품상세페이지 URL -->
|
|
|
+ sb.append("\t\t<basePrice>").append(item.getCurrPrice() + item.getOptAddPrice()).append("</basePrice>\n"); //<!-- 상품금액 -->
|
|
|
+ // TODO http: 부분 운영 프로토콜 확인 후 수정 필요(운영 상품상세가 HTTPS일 경우 분기처리 필요(개발서버, 운영 구분))
|
|
|
+ sb.append("\t\t<infoUrl>").append("http:" + param.getGoodsUrl() + item.getGoodsCd()).append("</infoUrl>\n"); //<!-- 상품상세페이지 URL -->
|
|
|
sb.append("\t\t<imageUrl>").append("http:" + goodsImgUrl + "/" + item.getSysImgNm()).append("</imageUrl>\n"); //<!-- 상품원본이미지 URL -->
|
|
|
|
|
|
// 옵션 정보
|
|
|
sb.append("\t\t<option>\n");
|
|
|
- sb.append("\t\t\t<quantity>").append(item.getGoodsQty()).append("</quantity>\n"); //<!-- 옵션수량-->
|
|
|
- sb.append("\t\t\t<price>").append(item.getOptAddPrice()).append("</price>\n"); //<!-- 옵션금액 -->
|
|
|
+ sb.append("\t\t\t<quantity>").append(item.getGoodsQty()).append("</quantity>\n"); //<!-- 옵션수량-->
|
|
|
+ sb.append("\t\t\t<price>").append(item.getOptAddPrice()).append("</price>\n"); //<!-- 옵션금액 -->
|
|
|
sb.append("\t\t\t<manageCode>").append(item.getOptCd()).append("</manageCode>\n"); //<!-- 옵션관리코드 -->
|
|
|
|
|
|
// 칼라코드
|
|
|
@@ -1252,9 +1251,6 @@ public class TsfOrderService {
|
|
|
// product[0][id]=G2019070300016&product[0][optionManageCodes]=010_5|55|&supplementSearch=true&optionSearch=true
|
|
|
|
|
|
try {
|
|
|
- sb.append("<?xml version='1.0' encoding='utf-8'?>");
|
|
|
- sb.append("<products>");
|
|
|
-
|
|
|
String goodsCdStr = "";
|
|
|
String optionManageCodesStr = "";
|
|
|
String queryStr = request.getQueryString();
|
|
|
@@ -1267,13 +1263,13 @@ public class TsfOrderService {
|
|
|
String[] arr3 = arr2[j].split("=");
|
|
|
|
|
|
if (arr3.length > 1) {
|
|
|
- if (arr3[0].indexOf("id") > -1) {
|
|
|
+ if (arr3[0].contains("id")) {
|
|
|
if ("".equals(goodsCdStr)) {
|
|
|
goodsCdStr = goodsCdStr + arr3[1];
|
|
|
} else {
|
|
|
goodsCdStr = goodsCdStr + "," + arr3[1];
|
|
|
}
|
|
|
- } else if (arr3[0].indexOf("optionManageCodes") > -1) {
|
|
|
+ } else if (arr3[0].contains("optionManageCodes")) {
|
|
|
if ("".equals(optionManageCodesStr)) {
|
|
|
optionManageCodesStr = optionManageCodesStr + arr3[1];
|
|
|
} else {
|
|
|
@@ -1298,7 +1294,10 @@ public class TsfOrderService {
|
|
|
String goodsImgUrl = env.getProperty("upload.goods.view"); // 상품 이미지 경로
|
|
|
int totPrice = 0; // 전체 주문 금액
|
|
|
|
|
|
- /*for (int i=0; i<goodsCdArr.length; i++) {
|
|
|
+ sb.append("<?xml version='1.0' encoding='utf-8'?>");
|
|
|
+ sb.append("<products>");
|
|
|
+
|
|
|
+ for (int i=0; i<goodsCdArr.length; i++) {
|
|
|
Order item = new Order();
|
|
|
|
|
|
item.setGoodsCd(goodsCdArr[i]);
|
|
|
@@ -1306,80 +1305,91 @@ public class TsfOrderService {
|
|
|
//shopInfo.setDevice(CommonCodeConstant.DEIVCE_WEB); //WEB
|
|
|
|
|
|
// 9.상품 옵션
|
|
|
- String optionManageCodesArrStr = CryptoManager.simpleDecode(optionManageCodesArr[i]);
|
|
|
- String [] arr = optionManageCodesArrStr.split("_");
|
|
|
- item.setOptCd1(arr[0]);
|
|
|
-
|
|
|
- arr[1] = CryptoManager.simpleDecode(arr[1]);
|
|
|
-
|
|
|
- shopInfo = shopService.shopData(shopInfo);
|
|
|
-
|
|
|
- Ship shipInfoVo = new Ship();
|
|
|
- shipInfoVo.setCompany_mng_idx(shopInfo.getCompany_mng_idx());
|
|
|
-
|
|
|
- // 2018.10.17 전석훈추가 (반품정보연동)
|
|
|
- shipInfoVo = shipService.companyShipInfoView(shipInfoVo);
|
|
|
-
|
|
|
- // 1.상품정보
|
|
|
- // 사이트별 상품명 칼럼이 다름
|
|
|
- String goodsNm = "";
|
|
|
-
|
|
|
- if ("99999".equals(shopInfo.getBrand_mng_idx())) {
|
|
|
- goodsNm = shopInfo.getBrand_nm() + " " + shopInfo.getGoods_nm_kor();
|
|
|
+ String optionManageCodesArrStr = coreOrderService.simpleDecode(optionManageCodesArr[i]);
|
|
|
+ String [] arr = optionManageCodesArrStr.split(",");
|
|
|
+ item.setOptCd(arr[0]);
|
|
|
+
|
|
|
+ arr[1] = coreOrderService.simpleDecode(arr[1]);
|
|
|
+
|
|
|
+ // 주문 상품 옵션 정보 조회
|
|
|
+ GoodsStock opt = new GoodsStock();
|
|
|
+ opt.setGoodsCd(item.getGoodsCd());
|
|
|
+ opt.setOptCd(item.getOptCd());
|
|
|
+ opt = goodsDao.getGoodsStockInfo(opt);
|
|
|
+
|
|
|
+ // 주문 상품 정보 조회
|
|
|
+ Goods goods = new Goods();
|
|
|
+ goods.setGoodsCd(item.getGoodsCd());
|
|
|
+ goods.setOptCd(item.getOptCd());
|
|
|
+ goods.setColorCd(opt.getOptCd1());
|
|
|
+ goods.setFrontGb(TsfSession.getFrontGb());
|
|
|
+ goods.setSiteCd(TscConstants.Site.STYLE24.value());
|
|
|
+ goods.setAdminYn("Y"); // 상품 상태에 관계 없이 조회하기 위함
|
|
|
+ goods = goodsDao.getGoodsInfo(goods);
|
|
|
+
|
|
|
+ // 상품 상태 확인
|
|
|
+ String goodsStat = "";
|
|
|
+ if(TscConstants.GoodsStat.APPR.value().equals(goods.getGoodsStat())) {
|
|
|
+ goodsStat = "ON_SALE"; // 판매중
|
|
|
+ } else if (TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat())) {
|
|
|
+ goodsStat = "SOLD_OUT"; // 품절
|
|
|
} else {
|
|
|
- goodsNm = shopInfo.getBrand_nm() + " " + shopInfo.getGoods_nm_eng();
|
|
|
+ goodsStat = "NOT_SALE"; // 주매불가
|
|
|
}
|
|
|
|
|
|
+ // 반송지 정보
|
|
|
+ Delivery rtnInfo = goodsDao.getGoodsDeliveryInfo(goods.getGoodsCd());
|
|
|
+
|
|
|
sb.append("<product>");
|
|
|
sb.append("<id>").append(goodsCdArr[i]).append("</id>");
|
|
|
sb.append("<merchantProductId>").append(goodsCdArr[i]).append("</merchantProductId>");
|
|
|
sb.append("<ecMallProductId>").append(goodsCdArr[i]).append("</ecMallProductId>");
|
|
|
- sb.append("<name>").append("<![CDATA[" + goodsNm + "]]>").append("</name>");
|
|
|
- sb.append("<basePrice>").append(String.valueOf(shopInfo.getSale_amt())).append("</basePrice>");
|
|
|
- sb.append("<infoUrl>").append("<![CDATA[" + domain + "/shop/shopView?goods_code=" + shopInfo.getGoods_code() + "]]>").append("</infoUrl>");
|
|
|
-
|
|
|
- // 1.2 상품 이미지
|
|
|
- List<Shop> shopImgList = shopDao.shopImgList(shopInfo);
|
|
|
- Shop img = null;
|
|
|
- String prodImg = null;
|
|
|
-
|
|
|
- if (shopImgList.size() > 0) {
|
|
|
- img = shopImgList.get(0);
|
|
|
- prodImg = goodsImgUrl + "/" + img.getSys_img_nm();
|
|
|
-
|
|
|
- if (prodImg.indexOf("http:") < 0) {
|
|
|
- prodImg = "http:" + prodImg;
|
|
|
- }
|
|
|
- } else {
|
|
|
- prodImg = "http:" + staticUrl + "/images/common/default_gy.jpg";
|
|
|
- }
|
|
|
-
|
|
|
- sb.append("<imageUrl>").append("<![CDATA[" + prodImg + "]]>").append("</imageUrl>");
|
|
|
+ sb.append("<name>").append(goods.getGoodsNm()).append("</name>");
|
|
|
+ sb.append("<status>").append(goodsStat).append("</status>");
|
|
|
+ sb.append("<basePrice>").append(goods.getCurrPrice() + opt.getAddPrice()).append("</basePrice>");
|
|
|
+ // TODO http: 부분 운영 프로토콜 확인 후 수정 필요(운영 상품상세가 HTTPS일 경우 분기처리 필요(개발서버, 운영 구분))
|
|
|
+ sb.append("<infoUrl>").append("http:" + domain + goods.getGoodsCd()).append("</infoUrl>");
|
|
|
+ sb.append("<imageUrl>").append("http:" + goodsImgUrl + "/" + goods.getSysImgNm()).append("</imageUrl>");
|
|
|
|
|
|
// 12.반품주소
|
|
|
- if (shipInfoVo != null) {
|
|
|
- if (shipInfoVo.getReturn_addr_zip() != null && !"".equals(shipInfoVo.getReturn_addr_zip())) {
|
|
|
+ if (rtnInfo != null) {
|
|
|
+ if (rtnInfo.getRtnLocZipcode() != null && !"".equals(rtnInfo.getRtnLocZipcode())) {
|
|
|
// 2.1 반품정보
|
|
|
sb.append("<returnInfo>");
|
|
|
- sb.append("<zipcode>").append("<![CDATA[" + String.valueOf(shipInfoVo.getReturn_addr_zip()) + "]]>").append("</zipcode>");
|
|
|
- sb.append("<address1>").append("<![CDATA[" + String.valueOf(shipInfoVo.getReturn_addr_base()) + "]]>").append("</address1>");
|
|
|
- sb.append("<address2>").append("<![CDATA[" + String.valueOf(shipInfoVo.getReturn_addr_detail()) + "]]>").append("</address2>");
|
|
|
- sb.append("<sellername>").append("<![CDATA[" + String.valueOf(shipInfoVo.getResp_nm()) + "]]>").append("</sellername>");
|
|
|
- sb.append("<contact1>").append("<![CDATA[" + String.valueOf(shipInfoVo.getCntct_no()) + "]]>").append("</contact1>");
|
|
|
+ sb.append("<zipcode>").append(rtnInfo.getRtnLocZipcode()).append("</zipcode>");
|
|
|
+ sb.append("<address1>").append(rtnInfo.getRtnLocBaseAddr()).append("</address1>");
|
|
|
+ sb.append("<address2>").append(rtnInfo.getRtnLocDtlAddr()).append("</address2>");
|
|
|
+ sb.append("<sellername>").append(rtnInfo.getRtnLocNm()).append("</sellername>");
|
|
|
+ sb.append("<contact1>").append(rtnInfo.getRtnLocTelno()).append("</contact1>");
|
|
|
sb.append("</returnInfo>");
|
|
|
|
|
|
// 반품배송비, 교환배송비
|
|
|
- sb.append("<returnShippingFee>" + shipInfoVo.getReturn_amt() + "</returnShippingFee>");
|
|
|
- sb.append("<exchangeShippingFee>" + shipInfoVo.getExch_amt() + "</exchangeShippingFee>");
|
|
|
+ sb.append("<returnShippingFee>").append(goods.getRtnDelvFee()).append("</returnShippingFee>");
|
|
|
+ sb.append("<exchangeShippingFee>").append(goods.getDelvFee() + goods.getRtnDelvFee()).append("</exchangeShippingFee>");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 옵션정보 지원여부 true
|
|
|
sb.append("<optionSupport>true</optionSupport>");
|
|
|
+
|
|
|
+ // 상품 옵션 전체 정보 조회
|
|
|
+ Collection<GoodsStock> optList = goodsDao.getGoodsOptionInfoList(opt);
|
|
|
+
|
|
|
+ String[] colorList = new String[optList.size()];
|
|
|
+ String[] colorNmList = new String[optList.size()];
|
|
|
+ String[] sizeList = new String[optList.size()];
|
|
|
+ int count = 0;
|
|
|
+ for(GoodsStock optInfo : optList) {
|
|
|
+ colorNmList[count] = optInfo.getColorNm();
|
|
|
+ colorList[count] = optInfo.getOptCd1();
|
|
|
+ sizeList[count] = optInfo.getOptCd2();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 옵션 정보
|
|
|
sb.append("<option>");
|
|
|
|
|
|
// 9.1 옵션 아이템정보 색상
|
|
|
- sb.append("<optionItem>");
|
|
|
+ /*sb.append("<optionItem>");
|
|
|
sb.append("<type>SELECT</type>");
|
|
|
sb.append("<name>칼라</name>");
|
|
|
sb.append("<value>");
|
|
|
@@ -1388,7 +1398,7 @@ public class TsfOrderService {
|
|
|
sb.append("</value>");
|
|
|
sb.append("</optionItem>");
|
|
|
|
|
|
- String goodsSizeStr = CryptoManager.decodeStr(arr[1]);
|
|
|
+ String goodsSizeStr = coreOrderService.decodeStr(arr[1]);
|
|
|
|
|
|
// 9.1 옵션 아이템정보 사이즈
|
|
|
sb.append("<optionItem>");
|
|
|
@@ -1445,8 +1455,8 @@ public class TsfOrderService {
|
|
|
|
|
|
sb.append("</shippingPolicy>");
|
|
|
|
|
|
- sb.append("</product>");
|
|
|
- }*/
|
|
|
+ sb.append("</product>");*/
|
|
|
+ }
|
|
|
sb.append("</products>");
|
|
|
//for end
|
|
|
|