Ejemplo n.º 1
0
        public AvailableBasketInfoResultT InsertableBasketInfo(BasketParamT requestBasketParam)
        {
            BasketOrderParamT basketOrderParam = new BasketOrderParamT();
            AvailableBasketInfoResultT result = InsertableBasketInfo(requestBasketParam, ref basketOrderParam);

            return result;
        }
Ejemplo n.º 2
0
        //장바구니 주문 변수 만들기
        public BasketOrderParamT MakeBasketOrderParam(BasketParamT basketParam)
        {
            List<SelectOptionInfoT> lstSelOptInfo = new List<SelectOptionInfoT>();
            SelectOptionStatusT selOptStatus = new SelectOptionStatusT();
            SelectOptionSetResultT selOptSetResult = new SelectOptionSetResultT();

            SelectOptionInfoResultT selOptResult = new SelectOptionInfoResultT();
            selOptResult.Result = new GEPBaseResultT();

            BasketItemAddInfoT basketItemAddInfo = new BasketItemAddInfoT();

            string[] arrPluralKey, arrEachPluralKey, arrCouponNo;
            string strPluralCouponDetail, strPluralCostBasisNo;
            string strPluralKeyEnc, strPluralKeyDec;

            selOptStatus = GetSelectOptionStatus(basketParam.GoodsCode);
            BasketOrderParamT basketOrderParam = new BasketOrderParamT();
            if (selOptStatus == null)
            {
                basketParam.SellingStat = -1;
                basketParam.OptSelYn = "N";
                basketParam.OptAddYn = "N";
                basketParam.OptSelInventoryYn = "N";
                basketParam.OptAddInventoryYn = "N ";
                basketParam.OptSelSortCondition = string.Empty;
                basketParam.OptAddSortCondition = string.Empty;
            }
            else
            {
                basketParam.SellingStat = selOptStatus.SellingStat;
                basketParam.OptSelYn = selOptStatus.OptSelYn;
                basketParam.OptAddYn = selOptStatus.OptAddYn;
                basketParam.OptSelInventoryYn = selOptStatus.OptSelInventoryYn;
                basketParam.OptAddInventoryYn = selOptStatus.OptAddInventoryYn;
                basketParam.OptSelSortCondition = selOptStatus.OptSelSortCondition;
                basketParam.OptAddSortCondition = selOptStatus.OptAddSortCondition;
            }

            if (basketParam.PluralKey != null)
            {
                if (string.IsNullOrEmpty(basketParam.SingleOrderCnt) && basketParam.OrderCnt != "0")
                {
                    arrEachPluralKey = basketParam.PluralKey.Split(PaymentConstant.CommaSeperator);

                    strPluralCostBasisNo = string.Empty;
                    strPluralCouponDetail = string.Empty;

                    for (int i = 0, eachPluralKeyLength = arrEachPluralKey.Length; i < eachPluralKeyLength; i++)
                    {
                        strPluralKeyEnc = arrEachPluralKey[i];
                        strPluralKeyDec = FrontEncryption.TQDecode(strPluralKeyEnc);
                        if (!string.IsNullOrEmpty(strPluralKeyDec))
                        {
                            arrPluralKey = strPluralKeyDec.Split(PaymentConstant.MainDelimiter.ToCharArray());
                            strPluralCostBasisNo = strPluralCostBasisNo + arrPluralKey[2].Replace(PaymentConstant.ThirdDelimiter, PaymentConstant.MainDelimiter);
                            strPluralCouponDetail = strPluralCouponDetail + arrPluralKey[3].Replace(PaymentConstant.ThirdDelimiter, PaymentConstant.MainDelimiter);

                            if (arrPluralKey[2].Replace(PaymentConstant.ThirdDelimiter, PaymentConstant.MainDelimiter).IndexOf(PaymentConstant.MainDelimiter) < 0)
                            {
                                strPluralCostBasisNo = strPluralCostBasisNo + PaymentConstant.MainDelimiter;
                            }
                            else
                            {
                                strPluralCostBasisNo = strPluralCostBasisNo + "0";
                            }

                            if (i != (eachPluralKeyLength - 1))
                            {
                                strPluralCostBasisNo = strPluralCostBasisNo + ",";
                                strPluralCouponDetail = strPluralCouponDetail + ",";
                            }
                        }
                    }

                    basketParam.CostBasisNo = strPluralCostBasisNo;
                    basketParam.CouponNo = strPluralCouponDetail;
                }
            }
            if (!string.IsNullOrEmpty(basketParam.CouponNo) && !string.IsNullOrEmpty(basketParam.CouponNo.Replace(PaymentConstant.MainDelimiter, string.Empty).Trim()))
            {
                arrCouponNo = basketParam.CouponNo.Split(PaymentConstant.MainDelimiter.ToCharArray());
                //[skip] 개인별 할인쿠폰의 존재여부와 사용여부를 체크 line.392~421
            }
            //[skip] 선택정보가 있는 상품인지 확인 line.425~497

            //변수에 상품정보를 넣어주는 부분(원래는 '상품에 대한 쿠키를 무조건 생성한다.'부분 501~)
            if (!string.IsNullOrEmpty(basketParam.GoodsCode))
            {
                if (string.IsNullOrEmpty(basketParam.PosShopCd)) basketParam.PosShopCd = "XX";
                if (string.IsNullOrEmpty(basketParam.PosClassCd)) basketParam.PosClassCd = "111111111";
                if (string.IsNullOrEmpty(basketParam.PosClassKind)) basketParam.PosClassKind = "T";
                //[skip] 이 장바구니는 상품 정보가 하나씩 들어오도록 설계되어 이어붙이기는 생략 line.518~741
                if (string.IsNullOrEmpty(basketParam.CostBasisNo)) basketParam.CostBasisNo = "0";
                if (basketParam.IsExistSelInfoCheckStr == "N")
                {
                    if (string.IsNullOrEmpty(basketParam.OrderCnt))
                    {
                        basketParam.OrderCnt = "1";
                    }
                }
                if (string.IsNullOrEmpty(basketParam.FreeInterestExistYN)) basketParam.FreeInterestExistYN = "N";
                if (string.IsNullOrEmpty(basketParam.OverSeaNationList)) basketParam.OverSeaNationList = "해외배송불가";
                if (string.IsNullOrEmpty(basketParam.CouponEID)) basketParam.CouponEID = "0";
                if (string.IsNullOrEmpty(basketParam.MinSellOrderNo)) basketParam.MinSellOrderNo = "0";
                if (string.IsNullOrEmpty(basketParam.CouponNo)) basketParam.CouponNo = PaymentConstant.MainDelimiter;
                if (string.IsNullOrEmpty(basketParam.DeliveryGroupNo)) basketParam.DeliveryGroupNo = string.Empty;
                if (string.IsNullOrEmpty(basketParam.OkCashBagPoint)) basketParam.OkCashBagPoint = string.Empty;
                if (string.IsNullOrEmpty(basketParam.SpecTransFee)) basketParam.SpecTransFee = "0";
                if (string.IsNullOrEmpty(basketParam.SpecTransDay)) basketParam.SpecTransDay = "0";
                if (string.IsNullOrEmpty(basketParam.BuyUnitCnt)) basketParam.BuyUnitCnt = "1";
                if (string.IsNullOrEmpty(basketParam.MinBuyCnt)) basketParam.MinBuyCnt = "1";
                if (string.IsNullOrEmpty(basketParam.GdShopKind)) basketParam.GdShopKind = string.Empty;
                if (string.IsNullOrEmpty(basketParam.BdNo)) basketParam.BdNo = "0";
                if (string.IsNullOrEmpty(basketParam.PluralKey)) basketParam.PluralKey = string.Empty;
                if (string.IsNullOrEmpty(basketParam.DeliveryFeeCondition)) basketParam.DeliveryFeeCondition = string.Empty;
                if (string.IsNullOrEmpty(basketParam.DeliveryHopeDay)) basketParam.DeliveryHopeDay = string.Empty;
                if (string.IsNullOrEmpty(basketParam.JaehuID)) basketParam.JaehuID = string.Empty;
                //관리 상품 체크 line.790~
                int iRefusalGoodsCnt = 0;
                basketParam.RefusalGoodsCode = string.Empty;

                if (basketParam.GoodsCode.Length == 9)
                {
                    basketParam.RefusalGoodsCheckFlag = "False";

                    RefusalGoodsT refusalGoods = GetRefusalGoods(basketParam.GoodsCode);
                    if (refusalGoods != null)
                    {
                        if (basketParam.GoodsCode == refusalGoods.ItemNo)
                        {
                            if (selOptStatus.OptSelYn == "Y" || selOptStatus.OptAddYn == "Y")
                            {
                                iRefusalGoodsCnt = 0;
                                basketParam.RefusalGoodsCheckFlag = "False";
                            }
                            else
                            {
                                basketParam.RefusalGoodsCheckFlag = "True";
                                basketParam.RefusalGoodsCode = basketParam.GoodsCode;
                                iRefusalGoodsCnt = 1;
                            }
                        }
                    }

                    if (basketParam.DeliveryFeeCondition == "Q")
                    {
                        basketParam.ChakbulPrepayYN = "C";
                    }
                    else if (basketParam.DeliveryFeeCondition == "D")
                    {
                        basketParam.ChakbulPrepayYN = "N";
                    }
                    else
                    {
                        basketParam.ChakbulPrepayYN = "C";
                    }

                    //[skip] 퀵서비스 & 직접배송 line.822~869
                    //[skip] 경매 line.871~927
                    //[skip] 외부상품 line.929~943
                    //[skip] 예약공동구매 line.945~958
                    if (basketParam.RefusalGoodsCheckFlag == "False")
                    {
                        //[skip] 마트상품&우유.외부배달상품 line.962~996
                        //선택옵션 부분 추가 : 2012-02-20

                        if (selOptStatus.OptSelYn == "Y" || selOptStatus.OptAddYn == "Y")
                        {
                            selOptResult = OptionVerification(basketParam);
                            //selOptSetResult = SetSelectOption(selOptResult.OptionInfoList);
                        }

                        //basketOrderParam에 값 대입
                        basketOrderParam.Pid = basketParam.Pbid;
                        if (string.IsNullOrEmpty(basketParam.CustNo) || !Validate.IsNumeric(basketParam.CustNo))
                        {
                            basketOrderParam.CustNo = 0;
                        }
                        else
                        {
                            basketOrderParam.CustNo = int.Parse(basketParam.CustNo);
                        }
                        basketOrderParam.ItemNo = basketParam.GoodsCode;
                        basketOrderParam.GdSelNo = basketParam.GdSelNo;
                        basketOrderParam.ShopCode = "GEP";
                        basketOrderParam.CostBasisNo = basketParam.CostBasisNo;
                        basketOrderParam.JaehuId = basketParam.JaehuID;
                        basketOrderParam.GepOrderNo = long.Parse(basketParam.GEPOrderNo);
                        basketOrderParam.InputWay = basketParam.InputWay;

                        if (string.IsNullOrEmpty(basketParam.OrderCnt) || !Validate.IsNumeric(basketParam.OrderCnt))
                        {
                            basketOrderParam.OrderCnts = 0;
                        }
                        else
                        {
                            basketOrderParam.OrderCnts = int.Parse(basketParam.OrderCnt);
                        }
                        if (string.IsNullOrEmpty(basketParam.MinSellOrderNo) || !Validate.IsNumeric(basketParam.MinSellOrderNo))
                        {
                            basketOrderParam.MinSellOrderNo = 0;
                        }
                        else
                        {
                            basketOrderParam.MinSellOrderNo = Util.GetSafeLong(basketParam.MinSellOrderNo);
                        }

                        if (string.IsNullOrEmpty(basketParam.BuyUnitCnt) || !Validate.IsNumeric(basketParam.BuyUnitCnt))
                        {
                            basketOrderParam.BuyUnitCnt = 1;
                        }
                        else
                        {
                            basketOrderParam.BuyUnitCnt = int.Parse(basketParam.BuyUnitCnt);
                        }
                        if (string.IsNullOrEmpty(basketParam.MinBuyCnt) || !Validate.IsNumeric(basketParam.MinBuyCnt))
                        {
                            basketOrderParam.MinBuyCnt = 1;
                        }
                        else
                        {
                            basketOrderParam.MinBuyCnt = int.Parse(basketParam.MinBuyCnt);
                        }

                        basketOrderParam.GdShopkind = basketParam.GdShopKind;
                        basketOrderParam.PluralKey = basketParam.PluralKey;
                        if (string.IsNullOrEmpty(basketParam.DeliveryGroupNo) || !Validate.IsNumeric(basketParam.DeliveryGroupNo))
                        {
                            basketOrderParam.DeliveryGroupNo = 0;
                        }
                        else
                        {
                            basketOrderParam.DeliveryGroupNo = int.Parse(basketParam.DeliveryGroupNo);
                        }

                        basketOrderParam.ChakbulPrepayYN = basketParam.ChakbulPrepayYN;

                        string[] arrChkCostBasisNo = basketOrderParam.CostBasisNo.Split(PaymentConstant.ForthDelimiter.ToCharArray());
                        for (int tmpCnt = 0, chkCostBasisNoLenth = arrChkCostBasisNo.Length; tmpCnt < chkCostBasisNoLenth; tmpCnt++)
                        {
                            if (!Validate.IsNumeric(arrChkCostBasisNo[tmpCnt].Replace(PaymentConstant.MainDelimiter, "")) && arrChkCostBasisNo[tmpCnt].Replace(PaymentConstant.MainDelimiter, "").Trim() != "")
                            {
                                throw new ValidationException("정보가 올바르지 않습니다.");
                            }
                        }
                        //[skip] 결제수단 제한 쿠폰 중복 적용 여부 체크 line.64~84

                        string[] arrTmpPluralKey;
                        string strCostBasisNo, strPluralKey;
                        string strGdNm = string.Empty, strGdShopkind = string.Empty, strGdShopkind2 = string.Empty, strGdShopkind3 = string.Empty;
                        string strHasAddedFile = string.Empty, strGdlcCd = string.Empty, strGdmcCd = string.Empty, strGdscCd = string.Empty;
                        int iDeliveryGroupNo = 0;

                        strCostBasisNo = basketParam.CostBasisNo.Replace(" ", "");
                        strCostBasisNo = strCostBasisNo.Replace("&#65533;", "");
                        strPluralKey = basketOrderParam.PluralKey;

                        if (string.IsNullOrEmpty(strPluralKey))
                        {
                            arrTmpPluralKey = FrontEncryption.TQDecode(strPluralKey).Split(PaymentConstant.MainDelimiter.ToCharArray());
                            if (arrTmpPluralKey.Length < 8)
                            {
                                strPluralKey = string.Empty;
                                strCostBasisNo = string.Empty;
                            }
                            else if (arrTmpPluralKey[1] != basketOrderParam.ItemNo)
                            {
                                strPluralKey = string.Empty;
                                strCostBasisNo = string.Empty;
                            }
                        }

                        basketItemAddInfo = GetBasketItemAddInfo(basketOrderParam.ItemNo);

                        if (basketItemAddInfo != null)
                        {
                            strGdNm = basketItemAddInfo.ItemName;
                            iDeliveryGroupNo = basketItemAddInfo.DeliveryGroupNo;
                            strGdShopkind = basketItemAddInfo.GdShopkind;
                            strGdShopkind2 = basketItemAddInfo.GdShopkind2;
                            strGdShopkind3 = basketItemAddInfo.GdShopkind3;
                            strHasAddedFile = basketItemAddInfo.Hasaddedfile;
                            strGdlcCd = basketItemAddInfo.GdlcCd;
                            strGdmcCd = basketItemAddInfo.GdmcCd;
                            strGdscCd = basketItemAddInfo.GdscCd;
                        }

                        basketOrderParam.OrderIdx = basketParam.OrderIdx;
                        basketOrderParam.DeliveryGroupNo = iDeliveryGroupNo;
                        basketOrderParam.GdShopkind = strGdShopkind;
                        basketOrderParam.CostBasisNo = strCostBasisNo.Replace(PaymentConstant.ForthDelimiter, PaymentConstant.MainDelimiter);
                    }
                }

                //[skip] OK캐쉬백 사용 line.1048~1056
                //[skip] 상품중복담기체크 line.1058~1072
                //[skip] 퀵서비스 line.1075~1104

                if (iRefusalGoodsCnt > 0)
                {
                    string strRefusalGoodsName = "";

                    PluralItemInfoT pluralItemInfo = GetPluralItemInfo(basketParam.GoodsCode);

                    if (pluralItemInfo != null)
                    {
                        strRefusalGoodsName = pluralItemInfo.ItemName.Substring(0, 35) + "...";
                        Console.WriteLine("다음 상품은 장바구니에 담을 수 없습니다." + strRefusalGoodsName);
                    }
                }
            }
            return basketOrderParam;
        }
Ejemplo n.º 3
0
        public GEPBaseResultT InputDataToDB(List<SelectOptionParamT> lstSelOpt, BasketOrderParamT basketOrderParam)
        {
            GEPBaseResultT inputDataToDBResult = new GEPBaseResultT();
            SelectOptionSetResultT selOptSetResult = new SelectOptionSetResultT();
            BasketInfoSetResultT basketInfoResult = new BasketInfoSetResultT();

            selOptSetResult = SetSelectOption(lstSelOpt);
            basketInfoResult = SetBasketInfo(basketOrderParam);

            if (selOptSetResult.RetCode == "N" || basketInfoResult.RetCode != "0")
            {
                inputDataToDBResult.RetCode = -1;
                inputDataToDBResult.RetMessage = "데이터 쓰기 실패";
            }
            else
            {
                inputDataToDBResult.RetMessage = "데이터 쓰기 성공";
                inputDataToDBResult.RetCode = 0;
            }
            return inputDataToDBResult;
        }
Ejemplo n.º 4
0
        //장바구니에 넣기 로직
        public GEPBaseResultT BasketInput(BasketParamT requestBasketParam)
        {
            BasketOrderParamT basketOrderParam = new BasketOrderParamT();
            BasketParamT basketParam = new BasketParamT();
            AvailableBasketInfoResultT availableBasketInfoResult = new AvailableBasketInfoResultT();
            availableBasketInfoResult.Result = new GEPBaseResultT();
            SelectOptionInfoResultT selOptResult = new SelectOptionInfoResultT();
            GEPBaseResultT basketInputResult = new GEPBaseResultT();

            availableBasketInfoResult = InsertableBasketInfo(requestBasketParam, ref basketOrderParam);
            if (availableBasketInfoResult.Result.RetCode == 0)
            {
                selOptResult = OptionVerification(availableBasketInfoResult.BasketInfo);
            }

            if (availableBasketInfoResult.Result.RetCode == 0 && selOptResult.Result.RetCode == 0)
            {
                //basketInfoSetResult = SetBasketInfo(basketOrderParam); //SP넣는 부분
                try
                {
                    basketInputResult = InputDataToDB(selOptResult.OptionInfoList, basketOrderParam);
                }
                catch (Exception e)
                {
                    //Console.WriteLine(e.Message);
                }
            }
            else
            {
                if(availableBasketInfoResult.Result.RetCode != 0){
                    basketInputResult.RetMessage = "상품 정보에 오류가 있습니다.";
                    basketInputResult.RetCode = 400;
                }
                else if (selOptResult.Result.RetCode != 0)
                {
                    basketInputResult.RetMessage = "선택옵션 정보에 오류가 있습니다.";
                    basketInputResult.RetCode = 401;
                }else
                {
                    basketInputResult.RetMessage = "해당 상품을 장바구니 담기에 실패하였습니다.";
                    basketInputResult.RetCode = 402;
                }
            }
            return basketInputResult;
        }
Ejemplo n.º 5
0
        //장바구니 넣기에 적합한 형태로 변환 및 체크
        private AvailableBasketInfoResultT InsertableBasketInfo(BasketParamT requestBasketParam, ref BasketOrderParamT basketOrderParam)
        {
            AvailableBasketInfoResultT inputResult = new AvailableBasketInfoResultT();
            GEPBaseResultT verificationResult = new GEPBaseResultT();
            inputResult.Result = new GEPBaseResultT();

            BasketParamT basketParam = requestBasketParam;
            BasketInfoSetResultT basketInfoSetResult = new BasketInfoSetResultT();

            try
            {
                basketParam = InitBasketParam(basketParam); //초기화
                verificationResult = BasketVerification(basketParam); //Item value Verification
                if (verificationResult.RetCode == 0)
                {
                    basketOrderParam = MakeBasketOrderParam(basketParam); //insert SP에 넘길 파라미터 만들기(ref형)

                    if (basketParam.Pbid != null)
                    {
                        inputResult.BasketInfo = basketParam;

                        inputResult.Result.RetCode = 0;
                        inputResult.Result.RetMessage = "성공";
                    }
                }
                else
                {
                    inputResult.Result.RetCode = verificationResult.RetCode;
                    inputResult.Result.RetMessage = verificationResult.RetMessage;
                    throw new ValidationException("Validation 검사 중 에러가 발생하였습니다.");
                }
            }
            catch (ValidationException ve)
            {
                Console.WriteLine(ve.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return inputResult;
        }
Ejemplo n.º 6
0
 public BasketInfoSetResultT SetBasketInfo(BasketOrderParamT basketOrderParam)
 {
     return new CartDac().SetBasketInfo(basketOrderParam);
 }
Ejemplo n.º 7
0
 public BasketInfoSetResultT SetBasketInfo(BasketOrderParamT basketOrderParam)
 {
     return (BasketInfoSetResultT)new DacHelper(DbHelper, "tiger_write").SelectSingleEntity(
         typeof(BasketInfoSetResultT),
         GEPMappingCache.GetDataMappings("BasketInfoSetResultT"),
         CommandType.StoredProcedure,
         "dbo.up_gmkt_front_gep_cart_order_info_insert",
         SqlParameterHelper.CreateParameter("@ORDER_IDX", basketOrderParam.OrderIdx, SqlDbType.BigInt),
         SqlParameterHelper.CreateParameter("@PID", basketOrderParam.Pid, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@CUST_NO", basketOrderParam.CustNo, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@GD_NO", basketOrderParam.ItemNo, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@GD_SEL_NO", basketOrderParam.GdSelNo, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@ORDER_CNTS", basketOrderParam.OrderCnts, SqlDbType.Int),
         SqlParameterHelper.CreateParameter("@COST_BASIS_NO", basketOrderParam.CostBasisNo, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@DELIVERY_GROUP_NO", basketOrderParam.DeliveryGroupNo, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@CHAKBUL_PREPAY_YN", basketOrderParam.ChakbulPrepayYN, SqlDbType.Char),
         SqlParameterHelper.CreateParameter("@BUY_UNIT_CNT", basketOrderParam.BuyUnitCnt, SqlDbType.Int),
         SqlParameterHelper.CreateParameter("@MIN_BUY_CNT", basketOrderParam.MinBuyCnt, SqlDbType.Int),
         SqlParameterHelper.CreateParameter("@MIN_SELL_ORDER_NO", basketOrderParam.MinSellOrderNo, SqlDbType.BigInt),
         SqlParameterHelper.CreateParameter("@JAEHU_ID", basketOrderParam.JaehuId, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@GD_SHOPKIND", basketOrderParam.GdShopkind, SqlDbType.Char),
         SqlParameterHelper.CreateParameter("@PLURAL_KEY", basketOrderParam.PluralKey, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@SHOP_CODE", basketOrderParam.ShopCode, SqlDbType.VarChar),
         SqlParameterHelper.CreateParameter("@GEP_ORDER_NO", basketOrderParam.GepOrderNo, SqlDbType.BigInt),
         SqlParameterHelper.CreateParameter("@INPUT_PATH", basketOrderParam.InputWay, SqlDbType.Char)
     );
 }