/// <summary>
        /// 获取当前用户的数据库购物车
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="u"></param>
        /// <returns></returns>
        private ResultModel GetShoppingCartInfo(string userid = null, YH_User u = null)
        {
            var         sc     = _database.Db.ShoppingCart; //购物车表
            ResultModel result = new ResultModel
            {
                Data = sc.FindAllByUserID(userid)
                       .Select(
                    sc.ShoppingCartId,
                    sc.ProductID,
                    sc.SKU_ProducId,
                    sc.Quantity,
                    sc.UserID,
                    sc.IsCheck
                    ).ToList <ShoppingCartModel>()
            };

            return(result);
        }
        /// <summary>获取当前用户的数据库购物车.</summary>
        /// <remarks></remarks>
        /// <returns>List{GoodsInfo}.</returns>
        /// <exception cref="System.Exception">未登录用户</exception>
        public List <GoodsInfoModel> getCartFromDb(int languageId, string userid = null, YH_User u = null)
        {
            //if (u == null)
            //{
            //    u = SessionHelper.getCurUserFromSession();
            //}
            //if (string.IsNullOrEmpty(userid) && u == null)
            //{
            //    throw new Exception("未登录用户");
            //}
            //if (!string.IsNullOrEmpty(userid))
            //{
            ResultModel resul = GetShoppingCartByUserId(userid, languageId);

            return(resul.Data);
            //}
            //else
            //{
            //    ResultModel resul = GetShoppingCartByUserId(u.UserID.ToString(), languageId);
            //    return resul.Data;
            //}
        }
Exemplo n.º 3
0
        private readonly static long companyAccountParamenterID = Convert.ToInt64(ConfigurationManager.AppSettings["companyAccountParamenterID"]); //公司虚拟帐户系统参数ID
        public void Execute(IJobExecutionContext context)
        {
            ExceptionLogModel exceptionLogModel = new ExceptionLogModel();

            exceptionLogModel.ServiceName = "会员购物订单返现订单生成服务";
            exceptionLogModel.CreateBy    = "系统服务";

            try
            {
                _logger.Error(typeof(BounsJob), "会员购物订单返现订单生成服务开始***********************************");
                //订单信息
                string           sqlOrder     = string.Format(@"select OrderID,OrderStatus,DelayDays,OrderAmount,CostAmount,UserID,RefundFlag from [Order] where OrderStatus=5 and RefundFlag in(0,2)");
                List <dynamic>   sourcesOrder = _database.RunSqlQuery(x => x.ToResultSets(sqlOrder))[0];
                List <OderModel> listOrder    = sourcesOrder.ToEntity <OderModel>();
                //订单跟踪信息
                string         sqlOrderTrackingLog                = string.Format(@"select OrderID,OrderStatus,CreateTime from OrderTrackingLog where OrderID in(select OrderID from [Order] where OrderStatus=5)");
                List <dynamic> sourcesOrderTrackingLog            = _database.RunSqlQuery(x => x.ToResultSets(sqlOrderTrackingLog))[0];
                List <OrderTrackingLogModel> listOrderTrackingLog = sourcesOrderTrackingLog.ToEntity <OrderTrackingLogModel>();

                if (listOrder != null && listOrder.Count > 0)
                {
                    foreach (OderModel orderModel in listOrder)
                    {
                        YH_User currUser = (YH_User)_database.Db.YH_User.FindByUserID(orderModel.UserID);
                        if (currUser != null)
                        {
                            try
                            {
                                #region 订单表状态为已收货OrderStatus=5且退货标示0正常,2已处理(包括成功,失败)RefundFlag in{0,2}

                                if (orderModel.OrderStatus == (int)HKTHMall.Domain.Enum.OrderEnums.OrderStatus.OutTimeReceiving)
                                {
                                    var orderLog = listOrderTrackingLog.Find(orderTrackingLog => orderTrackingLog.OrderID == orderModel.OrderID && orderTrackingLog.OrderStatus == orderModel.OrderStatus);
                                    if (orderLog != null)
                                    {
                                        //DateTime endTime = orderLog.CreateTime.AddDays(earningsDays);
                                        DateTime endTime = orderLog.CreateTime.AddMinutes(earningsDays);
                                        if (endTime < DateTime.Now && orderModel.IsReward == 0)
                                        {
                                            if (orderModel.RefundFlag != 1)
                                            {
                                                BackMessage resultModel = _rebateService.GenerateList(orderModel);


                                                if (resultModel.status == 1)
                                                {
                                                    _logger.Error(typeof(BounsJob), string.Format("处理订单【{0}】的返现订单生成成功", orderModel.OrderID));
                                                }
                                                else
                                                {
                                                    exceptionLogModel.HandleId   = orderModel.OrderID;
                                                    exceptionLogModel.Status     = 1;
                                                    exceptionLogModel.ResultType = 1;
                                                    exceptionLogModel.Message    = string.Format("处理订单【{0}】的会员购物订单返现订单生成失败,", orderModel.OrderID);
                                                    exceptionLogService.Add(exceptionLogModel);
                                                    _logger.Error(typeof(BounsJob), string.Format("处理订单【{0}】的会员购物订单返现订单生成失败,", orderModel.OrderID));
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        exceptionLogModel.HandleId   = orderModel.OrderID;
                                        exceptionLogModel.Status     = 1;
                                        exceptionLogModel.ResultType = 1;
                                        exceptionLogModel.Message    = "订单返现订单生成,订单【" + orderModel.OrderID + "】跟踪信息查询无结果";
                                        exceptionLogService.Add(exceptionLogModel);
                                        _logger.Error(typeof(BounsJob), "订单返现订单生成,订单【" + orderModel.OrderID + "】跟踪信息查询无结果");
                                    }
                                }

                                #endregion
                            }
                            catch (Exception ex)
                            {
                                exceptionLogModel.HandleId   = orderModel.OrderID;
                                exceptionLogModel.Status     = 1;
                                exceptionLogModel.ResultType = 1;
                                exceptionLogModel.Message    = "【会员购物订单返现订单生成算法foreach】" + ex.Message;
                                exceptionLogService.Add(exceptionLogModel);
                                _logger.Error(typeof(BounsJob), "【会员购物订单返现订单生成算法foreach】" + ex.Message);
                            }
                        }
                        else
                        {
                            exceptionLogModel.HandleId   = orderModel.OrderID;
                            exceptionLogModel.Status     = 1;
                            exceptionLogModel.ResultType = 1;
                            exceptionLogModel.Message    = string.Format("处理订单【{0}】的订单返现订单生成失败,获取订单用户【{1}】信息失败", orderModel.OrderID, orderModel.UserID);
                            exceptionLogService.Add(exceptionLogModel);
                            _logger.Error(typeof(BounsJob), string.Format("处理订单【{0}】的订单返现订单生成失败,获取订单用户【{1}】信息失败", orderModel.OrderID, orderModel.UserID));
                        }
                    }
                }
                else
                {
                    _logger.Error(typeof(BounsJob), "【会员购物订单返现订单生成服务】本次未处理任何数据.");
                }
                exceptionLogModel.HandleId   = "0";
                exceptionLogModel.Status     = 2;
                exceptionLogModel.ResultType = 2;
                exceptionLogModel.Message    = "运行正常";
                exceptionLogService.Add(exceptionLogModel);
                _logger.Error(typeof(BounsJob), "会员购物订单返现订单生成服务结束**********************************");
            }
            catch (Exception ex)
            {
                exceptionLogModel.HandleId   = "0";
                exceptionLogModel.Status     = 1;
                exceptionLogModel.ResultType = 1;
                exceptionLogModel.Message    = "【会员购物订单返现订单生成服务运行环节报错】" + ex.Message;
                exceptionLogService.Add(exceptionLogModel);
                _logger.Error(typeof(BounsJob), "【会员购物订单返现订单生成服务运行环节报错】" + ex.Message);
            }
        }