/// <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); }
public ActionResult BusinessManage() { var model = new BusinessManageModel(); var sales = SysConfigsCache.GetSalesConfig(); model.TempEarlyDistributionTime = sales.TempEarlyDistributionTime; model.ProductionHours = sales.ProductionHours; //生产时长 return(View(model)); }
/// <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); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //初始化全局配置缓存信息 SysConfigsCache.Register(); }
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); }
/// <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); }
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()); } }