private void DoJob()
        {
            var data = DalGroupBuying.GetExpiredUserList();

            if (data.Any())
            {
                using (var client = new OrderApiForCClient())
                {
                    foreach (var item in data)
                    {
                        var OrderData = client.FetchOrderByOrderId(item.OrderId);
                        var result    = OrderData.Success && OrderData.Result.Status == "7Canceled";
                        if (!result)
                        {
                            result = CancelPinTuanOrder(item.UserId, item.OrderId);
                        }
                        //if (result)
                        //{
                        //    var ChangeResult = DalGroupBuying.ChangeUserOrderStatus(item.OrderId);
                        //    if (ChangeResult == 0)
                        //    {
                        //        Logger.Warn($"修改拼团用户状态为订单取消失败/{item.OrderId}");
                        //    }
                        //}
                        if (!result)
                        {
                            Logger.Warn($"取消未付款订单{item.OrderId}失败");
                        }
                    }
                }
            }
        }
        /// <summary>
        /// 批量获取订单 信息
        /// </summary>
        /// <param name="orderIds"></param>
        /// <param name="productList"></param>
        /// <returns></returns>
        private static async Task <List <TaskOrderModel> > BatchFetchOrderList(List <int> orderIds, List <TaskProductModel> productList)
        {
            List <TaskOrderModel> orderInfos = new List <TaskOrderModel> {
            };

            try
            {
                using (var client = new OrderApiForCClient())
                {
                    foreach (var orderId in orderIds)
                    {
                        TaskOrderModel orderInfo = new TaskOrderModel()
                        {
                            OrderId = orderId
                        };
                        var result = await client.FetchOrderAndListByOrderIdAsync(orderId);

                        if (!(result.Success && result.Result != null))
                        {
                            result = await client.FetchOrderAndListByOrderIdAsync(orderId, false);
                        }

                        if (result.Success && result.Result != null)
                        {
                            orderInfo.OrderType   = result.Result.OrderType;
                            orderInfo.OrderStatus = result.Result.Status;
                            foreach (var item in result.Result.OrderListModel)
                            {
                                var productItem = new TaskProductModel
                                {
                                    PID     = item.Pid,
                                    OrderNo = item.OrderNo,
                                    Count   = item.Num
                                };
                                orderInfo.Items.Add(productItem);
                            }

                            if (orderInfo.Items.Any())
                            {
                                orderInfos.Add(orderInfo);
                                productList.AddRange(orderInfo.Items);
                            }
                            else
                            {
                                Logger.Warn($"未发现订单详情==>{orderId}");
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Warn(
                    $"BatchFetchOrderList 失败;Error:{ex.Message}", ex);
            }
            return(orderInfos);
        }
Пример #3
0
        private void DoJob()
        {
            // 获取超时的订单
            var data = DalGroupBuying.GetExpiredUserList();

            if (data.Any())
            {
                using (var client = new OrderApiForCClient())
                    using (var clientPinTuna = new PinTuanClient())
                    {
                        foreach (var item in data)
                        {
                            var OrderData = client.FetchOrderByOrderId(item.OrderId);
                            var result    = OrderData.Success && OrderData.Result?.Status == "7Canceled";
                            if (!result && OrderData.Result != null)
                            {
                                //判断状态能不能取消
                                if (new[] { "0NewPingTuan", "0New" }.Contains(OrderData.Result.Status))
                                {
                                    result = CancelPinTuanOrder(item.UserId, item.OrderId);
                                }
                                else
                                {
                                    result = true;
                                    //调用补足服务,订单已取消 ,拼团状态未改变
                                    clientPinTuna.RepairPinTuanOrderStatus(new List <int> {
                                        item.OrderId
                                    });
                                }

                                Logger.Info($"当前订单:{item.OrderId} {OrderData.Result.Status} ");
                            }

                            //if (result)
                            //{
                            //    var ChangeResult = DalGroupBuying.ChangeUserOrderStatus(item.OrderId);
                            //    if (ChangeResult == 0)
                            //    {
                            //        Logger.Warn($"修改拼团用户状态为订单取消失败/{item.OrderId}");
                            //    }
                            //}
                            if (!result)
                            {
                                Logger.Warn($"取消未付款订单{item.OrderId}失败");
                            }
                        }
                    }
            }
        }
Пример #4
0
        public static OrderModel FetchOrderAndListByOrderId(int orderId)
        {
            OrderModel order = null;

            try
            {
                using (var orderClient = new OrderApiForCClient())
                {
                    var fetchResult = orderClient.FetchOrderAndListByOrderId(orderId);
                    fetchResult.ThrowIfException(true);
                    order = fetchResult.Success ? fetchResult.Result : null;
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
            }
            return(order);
        }
Пример #5
0
        /// <summary>
        /// 获取赠品销售数量
        /// </summary>
        /// <param name="pid"></param>
        /// <returns></returns>
        public static int SelectGiftProductSaleOutCount(string pid)
        {
            var count = 0;

            try
            {
                using (var client = new OrderApiForCClient())
                {
                    var result = client.GetPidCountByTimeRange(pid, null, null);

                    result.ThrowIfException(true);
                    count = result.Result;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(count);
        }