using Operater.DAL; using Operater.DTO.System; using System; using System.Collections.Generic; using System.Text; using CommonUtil; using YouZanSDKStandard.Api.Request; using YouZanSDKStandard.Api; using Operater.DbModel; namespace Operater.Service.System { public class SendGoodsService : ISendGoodsService { /// /// 有赞发货 /// /// /// public YzSendGoodsResponse YzSendGoods(YzSendGoodsRequest request) { YzSendGoodsResponse response = new YzSendGoodsResponse() { IsSuccess = false }; try { //判断是否发货过 var relatio = new TradeCreateRelationDAL().GetById(request.YzOid); if(relatio.IsNull()) { response.ErrorMsg = "该子订单对应的1688订单未发货"; return response; } if (relatio.YzIssendgoods == 1) { response.ErrorMsg = "该子订单已经发货"; return response; } //获取1688物流信息 var aliLogistics = new AliLogisticsDAL().GetById(relatio.AliOid); if (aliLogistics.IsNull() || aliLogistics.AliOid.IsNullOrEmpty()) { response.ErrorMsg = "获取1688物流信息失败"; return response; } //获取有赞发货的物流 var expressList = new AliExpressDAL().ListGet(t=>t.ComNo== aliLogistics.CpCode); var express = expressList[0]; YouZanLogisticsConfirmRequest yzReq = new YouZanLogisticsConfirmRequest() { tid = relatio.YzTid, out_stype = express.YzId.ToString(), out_sid = aliLogistics.MailNo, is_no_express = 0, oids = request.YzOid }; var yzRsp = YouZanClient.Execute(yzReq, request.YzToken); LogUtil.Info("Oid:" + request.YzOid + ",req:" + JSONUtil.ObjectToJson(yzRsp), "有赞发货请求"); if (yzRsp.IsNull() || !yzRsp.success) { response.ErrorMsg = "有赞发货失败:" + (yzRsp.IsNull() ? "返回null" : yzRsp.message); return response; } YzOrderinfo yzOrderinfo = new YzOrderinfo() { YzGoodsStatus = 1 }; new YzOrderinfoDAL().Update(yzOrderinfo,i => new{ i.YzGoodsStatus}, t => t.Oid == request.YzOid); response.IsSuccess = true; return response; } catch (Exception e) { response.ErrorMsg = e.ToString(); return response; } } } }