Exemple #1
0
        /// <summary>
        /// 获取退货单的详细信息并保存到数据库
        /// </summary>
        /// <param name="tradeRefundList"></param>
        /// <param name="refundIDList"></param>
        public void GetNewRefundDetail(string session, List <Alading.Entity.TradeRefund> tradeRefundList, List <string> refundIDList)
        {
            //存放数据库中不存在的退货详细信息
            List <Alading.Entity.TradeRefund> newRefundList = new List <Alading.Entity.TradeRefund>();

            List <Alading.Entity.TradeRefund> oldRefundList = TradeRefundService.GetTradeRefund(refundIDList);

            foreach (Alading.Entity.TradeRefund tradeRefund in tradeRefundList)
            {
                Alading.Entity.TradeRefund oldRefund = oldRefundList.Find(c => c.refund_id == tradeRefund.refund_id);
                if (oldRefund != null)//数据库中已存在此数据
                {
                    continue;
                }
                else//不存在则取淘宝网获取
                {
                    TradeRsp tradeRsp = TopService.RefundGet(session, tradeRefund.refund_id);

                    /*未获取到数据*/
                    if (tradeRsp == null)
                    {
                        continue;
                    }

                    oldRefund              = new TradeRefund();
                    oldRefund.modified     = tradeRefund.modified;
                    oldRefund.order_status = tradeRefund.order_status;
                    TradeRefundCopyData(oldRefund, tradeRsp.Refund);
                    newRefundList.Add(oldRefund);
                }
            }
            TradeRefundService.AddTradeRefund(newRefundList);
        }
Exemple #2
0
        /// <summary>
        /// 从淘宝获取最新数据
        /// </summary>
        /// <param name="pageno"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalResults"></param>
        /// <param name="tradeRefundList"></param>
        public void GetNewTradeRefund(string session, int pageno, int pageSize, out int totalResults
                                      , List <Alading.Entity.TradeRefund> tradeRefundList, List <string> refundIDList)
        {
            TradeReq tradeReq = new TradeReq();

            tradeReq.PageNo   = pageno;                        //页数
            tradeReq.PageSize = pageSize;                      //每页的数量
            string fields = "refund_id,order_status,modified"; //API参数

            TradeRsp tradeRsp = TopService.RefundsReceiveGet(session, fields, tradeReq);

            /*未获取到数据*/
            if (tradeRsp == null || tradeRsp.TotalResults == 0)
            {
                totalResults = 0;
                return;
            }

            totalResults = tradeRsp.TotalResults;
            foreach (Alading.Taobao.Entity.Refund refund in tradeRsp.Refunds.Refund)
            {
                Alading.Entity.TradeRefund newTradeRefund = new Alading.Entity.TradeRefund();
                newTradeRefund.refund_id    = refund.Rid;                                                     //退货单号
                newTradeRefund.order_status = refund.OrderStatus == null ? string.Empty : refund.OrderStatus; //退款对应的订单交易状态
                newTradeRefund.modified     = DateTime.Parse(refund.Modified);                                //对象修改时间
                tradeRefundList.Add(newTradeRefund);
                refundIDList.Add(refund.Rid);
            }
        }
Exemple #3
0
        /// <summary>
        /// 将获取回来的数据传递给数据库表
        /// </summary>
        /// <param name="desObj"></param>
        /// <param name="srcObj"></param>
        public void TradeRefundCopyData(Alading.Entity.TradeRefund desObj, Alading.Taobao.Entity.Refund srcObj)
        {
            desObj.refund_id       = srcObj.Rid;                     //退款单号
            desObj.tid             = srcObj.Tid;                     //淘宝交易单号
            desObj.oid             = srcObj.Oid;                     //子订单号。如果是单笔交易oid会等于tid
            desObj.alipay_no       = srcObj.AlipayNo;                //支付宝交易号
            desObj.total_fee       = srcObj.TotalFee;                //交易总金额
            desObj.buyer_nick      = srcObj.BuyerNick;               //买家昵称
            desObj.seller_nick     = srcObj.SellerNick;              //卖家昵称
            desObj.created         = DateTime.Parse(srcObj.Created); //退款申请时间
            desObj.status          = srcObj.RefundStatus;            //退款状态
            desObj.good_status     = srcObj.GoodStatus;              //货物状态
            desObj.has_good_return = srcObj.HasGoodReturn;           //买家是否需要退货。可选值:true(是),false(否)
            desObj.refund_fee      = srcObj.RefundFee;               //退还金额(退还给买家的金额)。
            desObj.payment         = srcObj.Payment;                 //支付给卖家的金额(交易总金额-退还给买家的金额)。
            desObj.reason          = srcObj.Reason;                  //退款原因
            desObj.desc            = srcObj.Description;             //退款说明
            desObj.iid             = srcObj.Iid;                     //申请退款的商品字符串编号
            desObj.title           = srcObj.ItemTitle;               //商品标题
            desObj.price           = srcObj.ItemPrice;               //商品价格
            desObj.num             = srcObj.ItemNum;                 //商品购买数量

            if (srcObj.GoodReturnTime == null)
            {
                desObj.good_return_time = System.DateTime.MinValue;
            }
            else
            {
                desObj.good_return_time = DateTime.Parse(srcObj.GoodReturnTime);
            }

            desObj.company_name  = srcObj.LogisticsCompany == null ? string.Empty : srcObj.LogisticsCompany; //物流公司名称
            desObj.sid           = srcObj.Sid == null ? string.Empty : srcObj.Sid;                           //退货运单号
            desObj.address       = srcObj.SellerAddress == null ? string.Empty : srcObj.SellerAddress;       //卖家收货地址
            desObj.shipping_type = srcObj.LogisticsType == null ? string.Empty : srcObj.LogisticsType;       //物流方式

            StringBuilder sbTimeOut = new StringBuilder();

            if (srcObj.Timeout == null)
            {
                desObj.refund_remind_timeout = string.Empty;
            }
            else
            {
                sbTimeOut.Append(srcObj.Timeout.RemindType);
                sbTimeOut.Append(";");
                sbTimeOut.Append(srcObj.Timeout.HasTimeout);
                sbTimeOut.Append(";");
                sbTimeOut.Append(srcObj.Timeout.TimeoutTime);
                desObj.refund_remind_timeout = sbTimeOut.ToString();//退款超时结构RefundRemindTimeout
            }

            desObj.LocalPrivyC = string.Empty;
            desObj.IsRecieved  = false;
        }