コード例 #1
0
        /// <summary>
        /// 修改营业配置信息
        /// </summary>
        /// <param name="type"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public OpResult PublishBusinessManage(string type, string val)
        {
            var retResult = OpResult.Fail("发布失败,请联系管理员");

            try
            {
                type = type.ToLower();
                var data = GetSysConfigByCode(type);
                if (data != null)
                {
                    data.Value = val;
                    if (_context.SaveChanges() > 0)
                    {
                        SysConfigsCache.ResetRegister();
                        var result = PublishBusinessManageApi();
                        if (result.ToString() == "true")
                        {
                            retResult = OpResult.Success("发布成功");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //todo:添加发布出错日志
                retResult = OpResult.Fail(ex.Message);
            }
            return(retResult);
        }
コード例 #2
0
        public ActionResult BusinessManage()
        {
            var model = new BusinessManageModel();
            var sales = SysConfigsCache.GetSalesConfig();

            model.TempEarlyDistributionTime = sales.TempEarlyDistributionTime;
            model.ProductionHours           = sales.ProductionHours;
            //生产时长
            return(View(model));
        }
コード例 #3
0
        /// <summary>
        /// 配送时间控制规则描述(N生产时长,E最早可配送时间)
        /// 如果下单时间在营业时间范围内,则E=当前时间顺延N个小时后的最早可配送时间范围内
        /// 如果下单时间在非营业时间范围内,则E=下一个最早营业时间顺延N个小时之后
        /// </summary>
        /// <returns></returns>
        public DateTime GetEarlyAllowDistributionTime(int curOrderMaxInadvanceHours)
        {
            var salesConfig     = SysConfigsCache.GetSalesConfig();
            var salesStart      = salesConfig.SalesStartHour;
            var salesEnd        = salesConfig.SalesEndHour;
            var productionHours = salesConfig.ProductionHours;

            //如果订单中有生产周期小时数大于,系统默认配置的生产周期,就取最大的小时数
            if (curOrderMaxInadvanceHours > productionHours)
            {
                productionHours = curOrderMaxInadvanceHours;
            }

            var nowTime = DateTime.Now;
            var nowHour = nowTime.Hour;
            var earlyAllowDistributionTime = nowTime;

            var nextDayTime = DateTime.Now;

            if (nowHour >= salesStart && nowHour < 24)
            {
                nextDayTime = nextDayTime.AddDays(1);
            }
            var nextDayEarlySalesTime         = nextDayTime.Date.AddHours(salesStart);                         //下一个最早营业时间
            var nextDayLatestSalesTime        = nextDayTime.Date.AddHours(salesEnd);                           //下一个最晚营业时间暂时值
            var nextDayEarlyDistributionTime  = nextDayTime.Date.AddHours(salesConfig.EarlyDistributionTime);  //下一个最早配送时间
            var nextDayLatestDistributionTime = nextDayTime.Date.AddHours(salesConfig.LatestDistributionTime); //下一个最晚配送时间

            earlyAllowDistributionTime = nowTime.AddHours(productionHours);
            {     //计算最早可选日期时间
                if (nowHour >= salesStart && nowHour < salesEnd)
                { //营业时间范围判断
                    //判断是否在配送时间范围内,不在营业时间范围内则顺延到下一个日期的最早配送时间时间
                    if (earlyAllowDistributionTime.Hour < nextDayEarlyDistributionTime.Hour || earlyAllowDistributionTime.Hour >= nextDayLatestDistributionTime.Hour)
                    {
                        earlyAllowDistributionTime = nextDayEarlyDistributionTime;
                    }
                }
                else
                {//非营业时间范围判断
                    //earlyAllowDistributionTime = nextDayEarlySalesTime.AddHours(productionHours);
                    earlyAllowDistributionTime = nextDayEarlySalesTime.Date.AddHours(14);
                    if (earlyAllowDistributionTime.Hour < nextDayEarlyDistributionTime.Hour)
                    {
                        earlyAllowDistributionTime = nextDayEarlyDistributionTime;
                    }
                }
            }
            if (earlyAllowDistributionTime < salesConfig.TempEarlyDistributionTime)
            {
                earlyAllowDistributionTime = salesConfig.TempEarlyDistributionTime;
            }
            return(earlyAllowDistributionTime);
        }
コード例 #4
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //初始化全局配置缓存信息
            SysConfigsCache.Register();
        }
コード例 #5
0
        public string PublishBusinessManageApi()
        {
            //todo:
            var token = new SysTemp();

            _context.SysTemps.Add(token);
            _context.SaveChanges();
            var weburlConfig = SysConfigsCache.GetWebUrlConfig();
            var pcUrl        = weburlConfig.PCUrl + "Settings/BusinessManage?access_token=" + token.Code + "&a=a";
            var mobileUrl    = weburlConfig.MobileUrl + "Settings/BusinessManage?access_token=" + token.Code + "&a=a";
            var result       = GetData("", pcUrl);
            var result2      = GetData("", mobileUrl);

            return(result2);
        }
コード例 #6
0
        /// <summary>
        /// 重置营业管理配置缓存
        /// </summary>
        /// <param name="access_token"></param>
        /// <returns></returns>
        public OpResult ResetSaleConfig(string access_token)
        {
            var result = OpResult.Fail("访问已过期");

            if (!String.IsNullOrEmpty(access_token))
            {
                var endTime = DateTime.Now.AddMinutes(1.0);
                //todo:验证访问令牌是否已经过期
                var query = _context.SysTemps.Where(s => s.Code == access_token && s.CreatedOn <= endTime);
                if (query.FirstOrDefault() != null)
                {
                    SysConfigsCache.ResetSalesConfig();
                    result = OpResult.Success("成功");
                }
            }
            return(result);
        }
コード例 #7
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/log4net.config")));

            //初始化全局配置缓存信息
            SysConfigsCache.Register();

            //权限缓存
            using (EFDbContext context = new EFDbContext())
            {
                PermissionCache.time = DateTime.Now;
                PermissionCache.ResetPermissionCache(
                    context.Permissions.ToList(),
                    context.UserRoles.ToList(),
                    context.RolePermissions.ToList());
            }
        }