Пример #1
0
        /// <summary>
        /// 更新订单更新日志的更新状态
        /// </summary>
        /// <param name="aliOrderCodes"></param>
        /// <param name="status">0:未更新;1:已更新;2:更新失败</param>
        /// <returns></returns>
        public bool UpdateAllAliOrderUpdateLogStatus(string aliOrderCodes,AlibabaSdk.AliOrderUpdateStatus status)
        {
            bool flag = AliOrderDAL.BaseProvider.UpdateAllAliOrderUpdateLogStatus(aliOrderCodes,(int) status);

            return flag;

        }
Пример #2
0
        public bool UpdateAliOrderDownloadPlanStatus(string clientID,AlibabaSdk.AliOrderPlanStatus status,string remark)
        {
            bool flag = AliOrderDAL.BaseProvider.UpdateAliOrderDownloadPlanStatus(clientID, (int)status, remark);

            return flag;
        }
Пример #3
0
        /// <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="agentID"></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 agentID, string clientID)
        {
            bool flag = AliOrderDAL.BaseProvider.AddAliOrderUpdateLog((int)orderType, isSuccess?1:0,(int)downType,
                startTime, endTime, successCount, totalCount,remark,
                agentID, clientID);

            return flag;
        }
Пример #4
0
        /// <summary>
        /// 下载阿里打样订单
        /// </summary>
        public static bool DownFentOrders(DateTime gmtFentStart, DateTime gmtFentEnd, string token, string refreshToken, string userID, string agentID, 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, string.Empty, string.Empty,
                        order.fentPrice.ToString(), order.bulkCount, order.gmtReleasedExpect, order.samplePicList == null ? string.Empty : string.Join(",", order.samplePicList.ToArray()),
                        string.Empty, order.buyerAddress, string.Empty, string.Empty,
                        userID, agentID, 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, agentID, clientID, ref successCount, ref total, out error, aliOrderDownType);
            }

            return true;
        }