/// <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); }
/// <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); } }
/// <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; }