コード例 #1
0
        private void Process()
        {
            try
            {
                //获取待处理订单
                var orders = GetJDNotDeliveredOrders();

                //以发薪公司为维度获取京东物流状态
                orders.GroupBy(o => o.PaymentCompanyId).ToList().ForEach(payComId =>
                {
                    //某发薪公司下所有京东推送物流消息
                    var jdStates = _jdService.FetchLogisticsState(payComId.Key.Value);

                    payComId.ToList().ForEach(order =>
                    {
                        //NOP订单中所包含的所有京东订单ID
                        var oItemJDOrderIds = order.OrderItems.Select(oItem => oItem.JdOrderId);

                        //京东已妥投的订单
                        var jdDelivered = jdStates.States.Where(s =>
                                                                s.State == LogisticsStateEnum.妥投 && oItemJDOrderIds.Contains(s.JDOrderId));

                        //NOP订单中全部子项都已妥投
                        if (oItemJDOrderIds.Count() == jdDelivered.Count())
                        {
                            MarkAsDeliveredAndDelJDMsg(order.Id, jdDelivered.Select(p => p.MessageId).ToArray());
                        }
                    });
                });
            }
            catch (Exception e)
            {
                _log.Error("自动设置京东已交货状态异常", e);
            }
        }
コード例 #2
0
ファイル: JDController.cs プロジェクト: haoyk/nopCommerce
        public ActionResult FetchLogisticsState(int paymentCompanyId)
        {
            var changes = _jdService.FetchLogisticsState(paymentCompanyId);

            return(Content(JsonConvert.SerializeObject(changes)));
        }