/// <summary> /// 新增阿里订单下载日志 /// </summary> /// <param name="orderType"></param> /// <param name="isSuccess">下载结果 1:成功;0:失败</param> /// <param name="downType">下载类型 1:自动;2手动</param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="totalCount"></param> /// <param name="successCount"></param> /// <param name="clientID"></param> /// <returns></returns> public bool AddAliOrderDownloadLog(EnumOrderType orderType, bool isSuccess, AlibabaSdk.AliOrderDownType downType, DateTime startTime, DateTime endTime, int successCount, int totalCount, string remark, string clientID) { bool flag = AliOrderDAL.BaseProvider.AddAliOrderUpdateLog((int)orderType, isSuccess?1:0, (int)downType, startTime, endTime, successCount, totalCount, remark, clientID); return(flag); }
/// <summary> /// 下载阿里打样订单 /// </summary> public static bool DownFentOrders(DateTime gmtFentStart, DateTime gmtFentEnd, string token, string refreshToken, string userID, string clientID, ref int successCount, ref int total, out string error, AlibabaSdk.AliOrderDownType aliOrderDownType = AlibabaSdk.AliOrderDownType.Auto) { error = string.Empty; DateTime orderCreateTime = DateTime.Now; //获取打样订单编码 AlibabaSdk.GoodsCodesResult goodsCodesResult = AlibabaSdk.OrderBusiness.PullFentGoodsCodes(gmtFentStart, gmtFentEnd, token); #region 获取订单编码失败 if (goodsCodesResult.error_code > 0) { //token失效 if (goodsCodesResult.error_code == 401) { //通过refreshToken获取用户token var tokenResult = AlibabaSdk.OauthBusiness.GetTokenByRefreshToken(refreshToken); if (!string.IsNullOrEmpty(tokenResult.access_token)) { token = tokenResult.access_token; AliOrderBusiness.BaseBusiness.UpdateAliOrderDownloadPlanToken(clientID, tokenResult.access_token, refreshToken); goodsCodesResult = AlibabaSdk.OrderBusiness.PullFentGoodsCodes(gmtFentStart, gmtFentEnd, token); } else { error = "error_code:" + tokenResult.error_code + " error_message:" + tokenResult.error_message; AliOrderBusiness.BaseBusiness.UpdateAliOrderDownloadPlanStatus(clientID, AlibabaSdk.AliOrderPlanStatus.RefreshTokenError, error); return(false); } } else { error = "error_code:" + goodsCodesResult.error_code + " error_message:" + goodsCodesResult.error_message; AliOrderBusiness.BaseBusiness.UpdateAliOrderDownloadPlanStatus(clientID, AlibabaSdk.AliOrderPlanStatus.Exception, error); return(false); } } #endregion if (goodsCodesResult.goodsCodeList.Count == 0) { if (aliOrderDownType == AlibabaSdk.AliOrderDownType.Auto) { //更新订单下载成功时间 AliOrderBusiness.BaseBusiness.UpdateAliOrderDownloadPlanSuccessTime(clientID, EnumOrderType.ProofOrder, gmtFentEnd.Date); } return(true); } //订单编码分页 var goodsCodeList = goodsCodesResult.goodsCodeList; var totalCount = goodsCodeList.Count; total += totalCount; int numb = 10; int size = (int)Math.Ceiling((decimal)totalCount / numb); //分页获取订单列表 for (int i = 1; i <= size; i++) { var qList = goodsCodeList.Skip((i - 1) * numb).Take(numb).ToList(); AlibabaSdk.OrderListResult orderListResult = AlibabaSdk.OrderBusiness.PullFentDataList(qList, token); int len = orderListResult.fentOrderList.Count; for (var j = 0; j < len; j++) { var order = orderListResult.fentOrderList[j]; string orderID = OrdersBusiness.BaseBusiness.CreateOrder(string.Empty, order.productCode, order.title, HttpUtility.UrlDecode(order.buyerName), order.buyerMobile, EnumOrderSourceType.AliOrder, EnumOrderType.ProofOrder, null, string.Empty, string.Empty, order.fentPrice, order.bulkCount, order.gmtReleasedExpect, order.samplePicList == null ? string.Empty : string.Join(",", order.samplePicList.ToArray()), string.Empty, order.buyerAddress, string.Empty, string.Empty, userID, clientID, order.fentGoodsCode); //新增订单失败 if (string.IsNullOrEmpty(orderID)) { error = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "阿里订单:" + order.fentGoodsCode + " 新增订单失败"; return(false); } else { successCount++; orderCreateTime = order.gmtCreate; if (aliOrderDownType == AlibabaSdk.AliOrderDownType.Auto) { //更新订单下载成功时间 AliOrderBusiness.BaseBusiness.UpdateAliOrderDownloadPlanSuccessTime(clientID, EnumOrderType.ProofOrder, order.gmtCreate); } } } } if (totalCount == 1000) { DownFentOrders(orderCreateTime, gmtFentEnd, token, refreshToken, userID, clientID, ref successCount, ref total, out error, aliOrderDownType); } return(true); }