//Gep통합주문에서 GepTransInfo 변환 protected GepTransInfo CovertTo(GEPOrderInfoT a, ref GepTransInfo b) { //Gep통합주문정보 --> TransInfo b.gep_order_no = a.GEPOrderNo; b.gep_order_count = a.GEPOrder.OrderCnt; b.gep_order_dt = a.GEPOrder.OrderDt; b.gep_payment_dt = a.GEPOrder.PaymentDt; //Gep통합주무정보 --> item 정보 b.gep_item_id = Util.GetSafeLong(a.Item.gep_id); b.gep_item_ename = a.Item.ExportItemName; return b; }
internal void InsertGEPOrderInfo(GEPOrderInfoT gepOrderInfoT) { new MongoDacHelper(GepMongoEnv.ConfigSection.GEP, GepMongoEnv.Database.GEP, GepMongoEnv.Collection.GEP_ORDER) .Insert<GEPOrderInfoT>(gepOrderInfoT, SafeMode.True); }
//장바구니 넣기 진입점 - 리스트로 파라미터 값들이 바로 넘어 왔을 때 public GmarketBasketAddResultT BasketInput(List<BasketInputParamT> lstBasketInputParam) { GEPOrderBiz gepBiz = new GEPOrderBiz(); BasketParamT basketParam = new BasketParamT(); AvailableBasketInfoResultT availableBasketInfoResult = new AvailableBasketInfoResultT(); GmarketBasketAddResultT gmktBasketInputResult = new GmarketBasketAddResultT(); gmktBasketInputResult.Result = new GEPBaseResultT(); GEPBaseResultT insertDBResult = new GEPBaseResultT(); List<BasketGepOrderNoT> basketGepOrderNos = new List<BasketGepOrderNoT>(); BasketCurrCountT basketCurrentCnt = new BasketCurrCountT(); long conGepOrderNo; int inputErrorCnt = 0, orderImpossCnt = 0; string basketPid = CheckBasketPid(lstBasketInputParam[0].CustNo); int lstBasketInputParamCnt = lstBasketInputParam.Count; //상품은 100개 까지만 담을 수 있다. if (basketPid != string.Empty) { basketCurrentCnt = GetBasketCurrentCount(basketPid); int cartCnt = basketCurrentCnt.NationalCnt; if ((cartCnt + lstBasketInputParamCnt) > 100) { gmktBasketInputResult.Result.RetCode = -10; gmktBasketInputResult.Result.RetMessage = "현재 장바구니에 " + cartCnt + "건의 주문건이 있습니다."; return gmktBasketInputResult; } } //주문 불가 상품(-970에러)인지 체크 if (lstBasketInputParam[0].InputWay == "C") { for (int i = 0; i < lstBasketInputParamCnt; i++) { GEPOrderInfoT gepOrderInfo = new GEPOrderInfoT(); GmarketBasketAddT checkOrderStatusRtn = new GmarketBasketAddT(); if (long.TryParse(lstBasketInputParam[i].GEPOrderNo, out conGepOrderNo)) { gepOrderInfo = GetGEPOrderInfo(conGepOrderNo); } if (gepOrderInfo != null) { if (gepOrderInfo.GEPOrder.Status == GepOrderStatus.Conclusion && (gepOrderInfo.GMKTOrder.OrderStatus == GmktOrderStatus.None || gepOrderInfo.GMKTOrder.OrderStatus == GmktOrderStatus.ConclusionFail)) { checkOrderStatusRtn.GepOrderNo = lstBasketInputParam[i].GEPOrderNo; checkOrderStatusRtn.RetCode = "0"; checkOrderStatusRtn.RetMessage = "주문 가능 상태 체크 성공"; } else { orderImpossCnt += 1; checkOrderStatusRtn.GepOrderNo = lstBasketInputParam[i].GEPOrderNo; checkOrderStatusRtn.RetCode = "970"; checkOrderStatusRtn.RetMessage = "상품이 주문 가능 상태가 아닙니다."; } gmktBasketInputResult.AddResultList.Add(checkOrderStatusRtn); } } if (orderImpossCnt > 0) { gmktBasketInputResult.Result.RetCode = -1; gmktBasketInputResult.Result.RetMessage = "장바구니담기 실패"; return gmktBasketInputResult; } else { gmktBasketInputResult.AddResultList.Clear(); } } //장바구니 중복 담긴 상품인지 체크 if (basketPid != string.Empty) { int duplicaBasketCnt = 0; basketGepOrderNos = GetBasketGepOrderNo(basketPid); for (int i = 0; i < lstBasketInputParamCnt; i++) { GmarketBasketAddT checkDuplicaRtn = new GmarketBasketAddT(); BasketGepOrderNoT result = basketGepOrderNos.Find( delegate(BasketGepOrderNoT gepOrderNo) { return gepOrderNo.GepOrderNo.ToString() == lstBasketInputParam[i].GEPOrderNo; } ); if (result != null) { duplicaBasketCnt += 1; checkDuplicaRtn.GepOrderNo = lstBasketInputParam[i].GEPOrderNo; checkDuplicaRtn.RetCode = "1001"; checkDuplicaRtn.RetMessage = "이미 장바구니에 담긴 상품이 있습니다."; } else { checkDuplicaRtn.GepOrderNo = lstBasketInputParam[i].GEPOrderNo; checkDuplicaRtn.RetCode = "0"; checkDuplicaRtn.RetMessage = "중복 체크 성공"; } gmktBasketInputResult.AddResultList.Add(checkDuplicaRtn); } if (duplicaBasketCnt > 0) { gmktBasketInputResult.Result.RetCode = -1; gmktBasketInputResult.Result.RetMessage = "장바구니담기 실패"; return gmktBasketInputResult; } else { gmktBasketInputResult.AddResultList.Clear(); } } if (lstBasketInputParam.Count > 0) { for (int itemIdx = 0; itemIdx < lstBasketInputParamCnt; itemIdx++) { availableBasketInfoResult.Result = new GEPBaseResultT(); GmarketBasketAddT checkInsertableInfo = new GmarketBasketAddT(); basketParam = MakeBasketParam(lstBasketInputParam[itemIdx]); availableBasketInfoResult = InsertableBasketInfo(basketParam); checkInsertableInfo.GepOrderNo = lstBasketInputParam[itemIdx].GEPOrderNo; checkInsertableInfo.RetCode = availableBasketInfoResult.Result.RetCode.ToString(); checkInsertableInfo.RetMessage = availableBasketInfoResult.Result.RetMessage; gmktBasketInputResult.AddResultList.Add(checkInsertableInfo); if (availableBasketInfoResult.Result.RetCode != 0) { inputErrorCnt += 1; gmktBasketInputResult.Result.RetCode = -1; gmktBasketInputResult.Result.RetMessage = "장바구니담기 실패"; if (long.TryParse(lstBasketInputParam[itemIdx].GEPOrderNo, out conGepOrderNo)) { try { gepBiz.InsertDisableOrder(conGepOrderNo); } catch (Exception e) { } } } } if (inputErrorCnt == 0) { gmktBasketInputResult.AddResultList.Clear(); for (int itemIdx = 0; itemIdx < lstBasketInputParamCnt; itemIdx++) { GmarketBasketAddT gmktBasketRtn = new GmarketBasketAddT(); basketParam = MakeBasketParam(lstBasketInputParam[itemIdx]); insertDBResult = BasketInput(basketParam); gmktBasketRtn.GepOrderNo = basketParam.GEPOrderNo; gmktBasketRtn.RetCode = insertDBResult.RetCode.ToString(); gmktBasketRtn.RetMessage = insertDBResult.RetMessage; if (gmktBasketRtn.RetCode != "0") { if (long.TryParse(lstBasketInputParam[itemIdx].GEPOrderNo, out conGepOrderNo)) { try { gepBiz.InsertDisableOrder(conGepOrderNo); } catch (Exception e) { } } } gmktBasketInputResult.AddResultList.Add(gmktBasketRtn); } } } return gmktBasketInputResult; }
private long InsertOrderInfoToGEP(eBayOrderT ebayOrderT) { GEPOrderInfoT gepOrderInfoT = new GEPOrderBiz().GetGEPOrderInfo(ebayOrderT.TransactionId.ToString(), ebayOrderT.ItemId.ToString()); if (gepOrderInfoT != null) { //같은 주문에 대해 다시 요청 이 온 경우 //주문 정보 update gepOrderInfoT.ExportSiteOrder = ebayOrderT; gepOrderInfoT.GEPOrder = ConvertToGEPOrder(ebayOrderT); gepOrderInfoT.UpdateDt = DateTime.Now; new GEPOrderBiz().UpdateGEPOrderInfo(gepOrderInfoT); } else { //신규 주문 Insert gepOrderInfoT = new GEPOrderInfoT(); gepOrderInfoT.ExportSite = GetExportSiteInfo(); gepOrderInfoT.ExportSiteOrder = ebayOrderT; gepOrderInfoT.ExportSiteTrans = GetExportSiteTrans(ebayOrderT); gepOrderInfoT.Item = GetOrderdItem(ebayOrderT); gepOrderInfoT.GEPOrder = ConvertToGEPOrder(ebayOrderT); gepOrderInfoT.GMKTOrder = GetGMKTOrder(); // TODO: (이태희) "eBay" 하드코딩? gepOrderInfoT.TaId = new CommonBiz().GetTaId(ebayOrderT.SellerId, "eBay"); gepOrderInfoT.CreateDt = DateTime.Now; new GEPOrderBiz().InsertGEPOrderInfo(gepOrderInfoT); } return gepOrderInfoT.GEPOrderNo; }
internal void UpdateGEPOrderInfo(GEPOrderInfoT gepOrderInfoT) { IMongoQuery query = Query.EQ("GEPOrderNo", gepOrderInfoT.GEPOrderNo); IMongoUpdate update = Update.SetWrapped<ExportSiteOrderT>("ExportSiteOrder", gepOrderInfoT.ExportSiteOrder) .SetWrapped<GEPOrderT>("GEPOrder", gepOrderInfoT.GEPOrder) .Set("UpdateDt", BsonValue.Create(DateTime.Now)); new GEPOrderDac().UpdateGEPOrderInfo(query, update); }
internal void InsertGEPOrderInfo(GEPOrderInfoT gepOrderInfoT) { gepOrderInfoT.GEPOrderNo = GetNextGEPOrderNo(); new GEPOrderDac().InsertGEPOrderInfo(gepOrderInfoT); }
public OrderDetailT MakeOrderDetailList(int packNo, string custNo) { List<OrderDetailInfoT> orderDetailList = new List<OrderDetailInfoT>(); OrderDetailT orderDetail = new OrderDetailT(); ContrDetailValueT contrDetailValue = new ContrDetailValueT(); ContrBasicInfoT contrBasicInfo = new ContrBasicInfoT(); List<GepOrderNoT> gepOrderNoList = new List<GepOrderNoT>(); Dictionary<long, long> GepOrderNos = new Dictionary<long, long>(); long gepOrderNo; decimal totalPayMoney = 0, totalOriginPayMoney = 0, totalItemPrice = 0, totalDeliveryFee = 0; int orderCnt = 0; DateTime finalDepositDt; string tmpContrDt = string.Empty; string orderNos = string.Empty; orderDetailList = GetGmarketOrderDetailInfo(packNo, custNo); for (int j = 0, orderNosCnt = orderDetailList.Count; j < orderNosCnt; j++) { if (j == 0) { orderNos = orderDetailList[j].BuyOrderNo.ToString(); } else { orderNos = orderNos + "," + orderDetailList[j].BuyOrderNo.ToString(); } } gepOrderNoList = GetGepOrderNo(orderNos); for (int k = 0, gepOrderNoListCnt = gepOrderNoList.Count; k < gepOrderNoListCnt; k++) { GepOrderNos.Add((int)gepOrderNoList[k].OrderNo, gepOrderNoList[k].GepOrderNo); } for (int i = 0, orderDetailListCnt = orderDetailList.Count; i < orderDetailListCnt; i++) { OrderDetailValueT detailValue = new OrderDetailValueT(); GEPOrderInfoT gepOrderInfo = new GEPOrderInfoT(); DomesticDeliveryStatusParamT domDelStatusParam = new DomesticDeliveryStatusParamT(); DomesticDeliveryStatusT rtnDelStatus = new DomesticDeliveryStatusT(); SellerInfoT sellerInfo = new SellerInfoT(); GepOrderNoT resultGepOrderNo = new GepOrderNoT(); TransportCommonBiz transBiz = new TransportCommonBiz(); DeliveryTracking overseaDeliveryTracking = new DeliveryTracking(); sellerInfo = GetSellerInfo(orderDetailList[i].ChgSellCustNo, "y"); if (GepOrderNos.TryGetValue(orderDetailList[i].BuyOrderNo, out gepOrderNo)) { //몽고디비에서 GEP Order 정보 가져오는 부분 gepOrderInfo = GetGEPOrderInfo(gepOrderNo); } else { gepOrderInfo = null; } //해외배송 정보 가져오는 부분 overseaDeliveryTracking = transBiz.GetDeliveryTracking(orderDetailList[i].ContrNo); if (orderDetailList != null) { detailValue.ListNo = i; detailValue.ContrNo = orderDetailList[i].ContrNo; detailValue.CloneItemNo = orderDetailList[i].ItemNo; detailValue.CloneItemName = orderDetailList[i].ItemName; detailValue.ContrAmt = orderDetailList[i].ContrAmt; detailValue.ItemPrice = orderDetailList[i].ContrPrice; detailValue.TotalPrice = orderDetailList[i].ContrPrice * orderDetailList[i].ContrAmt + orderDetailList[i].TotSelItemPrice; detailValue.DeliveryFee = orderDetailList[i].DeliveryFee; detailValue.CustKey = CustNoEncode(orderDetailList[i].ChgSellCustNo); detailValue.SellerId = sellerInfo.Nickname; detailValue.SellerPhone = sellerInfo.HelpdeskTelNo; detailValue.SellerEmail = sellerInfo.EMail; detailValue.SelOptInfo = MakeOrderSelOptInfo(orderDetailList[i].ItemNo, orderDetailList[i].OrderNo); domDelStatusParam.StatInfo = orderDetailList[i].StatInfo; domDelStatusParam.IsDeliveryGoodsYn = orderDetailList[i].IsDeliveryGoodsYn; domDelStatusParam.TranscNm = orderDetailList[i].TakbaeName; domDelStatusParam.InvoiceNo = orderDetailList[i].NoSongjang; domDelStatusParam.GdShopkind = orderDetailList[i].GdShopkind; domDelStatusParam.GdShopkind2 = orderDetailList[i].GdShopkind2; domDelStatusParam.GdShopkind3 = orderDetailList[i].GdShopkind3; domDelStatusParam.DelivLtpExtendDt = orderDetailList[i].DelivLtpExtendDt; domDelStatusParam.DelivLtpStat = orderDetailList[i].DelivLtpStat; domDelStatusParam.TransDate = orderDetailList[i].TransDt; domDelStatusParam.SendPlanDt = orderDetailList[i].SendPlanDt.ToString(); domDelStatusParam.SendPlanRec = orderDetailList[i].SendPlanRec; domDelStatusParam.ItemName = orderDetailList[i].ItemName; rtnDelStatus = MakeDomesticDeliveryStatus(domDelStatusParam); //detailValue.DomesticDeliveryStatus = rtnDelStatus.DeliveryStat; if(orderDetailList[i].AcntStat != "SC" && orderDetailList[i].AcntStat != "SX" && orderDetailList[i].AcntStat != "SQ") { totalPayMoney = totalPayMoney + detailValue.TotalPrice + detailValue.DeliveryFee - orderDetailList[i].CostPrice; } totalOriginPayMoney = totalOriginPayMoney + detailValue.TotalPrice + detailValue.DeliveryFee - orderDetailList[i].CostPrice; orderCnt = orderCnt + 1; totalItemPrice = totalItemPrice + detailValue.ItemPrice; totalDeliveryFee = totalDeliveryFee + detailValue.DeliveryFee; if (gepOrderInfo != null) { detailValue.MotherItemNo = gepOrderInfo.Item.src_no; detailValue.ExportSiteItemNo = gepOrderInfo.Item.ExportItemId; detailValue.ExportSiteItemName = gepOrderInfo.Item.ExportItemName; detailValue.ExportSiteName = gepOrderInfo.ExportSite.Name; detailValue.OverseaDeliveryState = overseaDeliveryTracking.DeliveryState; if (overseaDeliveryTracking.DeliveryWay == "PS") { detailValue.OverseaDeliveryWay = overseaDeliveryTracking.DeliveryWayKor; } else { detailValue.OverseaDeliveryWay = overseaDeliveryTracking.DeliveryWay; } detailValue.OverseaInvoiceNo = overseaDeliveryTracking.InvoiceNo; detailValue.OverseaTrackingURL = overseaDeliveryTracking.TrackingURL; if (gepOrderInfo.GEPOrder.OrderNo == "0") { detailValue.ExportSiteOrderNo = gepOrderInfo.GEPOrder.OrderNoSub; } else { detailValue.ExportSiteOrderNo = gepOrderInfo.GEPOrder.OrderNo; } detailValue.OverseaAddress = gepOrderInfo.ExportSiteTrans.receiver_addr; detailValue.OverseaRcvNm = gepOrderInfo.ExportSiteTrans.receiver_name; detailValue.OverseaPhone = gepOrderInfo.ExportSiteTrans.receiver_tel_no; detailValue.OverseaEmail = gepOrderInfo.ExportSiteTrans.receiver_email; detailValue.ViewItemURL = gepOrderInfo.Item.ExportSiteViewItemUrl; } orderDetail.DomesticDeliveryStatusList.Add(rtnDelStatus); orderDetail.OrderDetailValueList.Add(detailValue); } else { //아무 디비도 안 나옴 } } //결제 정보 contrDetailValue.ItemCnt = orderCnt; contrDetailValue.TotItemPrice = totalItemPrice; contrDetailValue.TotDeliveryFee = totalDeliveryFee; contrDetailValue.PackTotPayMoney = totalPayMoney; contrDetailValue.PackOriginTotPayMoney = totalOriginPayMoney; contrDetailValue.PackCancelTotPayMoney = totalOriginPayMoney - totalPayMoney; contrBasicInfo.AcntWay = orderDetailList[0].AcntWay; contrBasicInfo.CashpayWay = orderDetailList[0].CashpayWay; contrBasicInfo.StatInfo = orderDetailList[0].StatInfo; tmpContrDt = orderDetailList[0].ContrDt.Substring(0, 4) + "-" + orderDetailList[0].ContrDt.Substring(4, 2) + "-" + orderDetailList[0].ContrDt.Substring(6, 2); finalDepositDt = DateTime.Parse(tmpContrDt); contrBasicInfo.FinalDeposit = finalDepositDt.AddDays(7).ToString("yyyy-MM-dd"); contrBasicInfo.PackNo = orderDetailList[0].PackNo; if (orderDetailList[0].AcntWay == "A2" || orderDetailList[0].AcntWay == "A7") { int sttlNoLenth = 0; int halbuMonth = orderDetailList[0].Halbumonth; contrBasicInfo.SttlName = orderDetailList[0].SttlkindNm; if (orderDetailList[0].CardNo != string.Empty) { sttlNoLenth = orderDetailList[0].CardNo.Length; contrBasicInfo.SttlNo = orderDetailList[0].CardNo.Substring(0, 8) + "****************"; contrBasicInfo.SttlNo = contrBasicInfo.SttlNo.Substring(0, sttlNoLenth); contrBasicInfo.CardAcptDt = orderDetailList[0].AcptDt; } if (halbuMonth >= 60) { halbuMonth = halbuMonth - 60; } else if (halbuMonth >= 40 && halbuMonth < 60 && halbuMonth != 41) { halbuMonth = halbuMonth - 40; } if (halbuMonth == 0 || halbuMonth == 41) { contrBasicInfo.SttlWay = "일시불"; } else { if (orderDetailList[0].HalbuType == "C" || orderDetailList[0].HalbuType == "F") { contrBasicInfo.SttlWay = halbuMonth + " 개월 무이자 할부"; } else { contrBasicInfo.SttlWay = halbuMonth + " 개월 할부"; } } } else { contrBasicInfo.SttlName = orderDetailList[0].BankNm; contrBasicInfo.SttlNo = ShowVAccount(orderDetailList[0].BankAcntNo, orderDetailList[0].GbankNo); contrBasicInfo.DepositName = orderDetailList[0].DepositNm; contrBasicInfo.SttlWay = "현금"; } contrDetailValue = MakeContrInfo(contrBasicInfo, contrDetailValue); orderDetail.ContrValue = contrDetailValue; return orderDetail; }