private bool RefershSekillCache(Guid aid) { using (var client = new CacheClient()) { var cacheresult = client.RefreshRedisCachePrefixForCommon(new RefreshCachePrefixRequest() { Prefix = "SecondKillPrefix", ClientName = "FlashSale", Expiration = TimeSpan.FromDays(1) }); cacheresult.ThrowIfException(true); } var cache = QiangGouManager.ReflashQiangGouCache(aid, false, 1); if (cache == false) { return(false); } var pids = SeckillManager.SelectActivityProductPids(aid); Thread.Sleep(50); TuhuNotification.SendNotification("notification.productModify.ProductCommonTag", new { type = "RebuildCache", pids, tag = ProductCommonTag.Seckilling }); return(true); }
public ActionResult ExamActivity(Guid aid) { try { var result = QiangGouManager.ExamActivity(aid); if (result > 0) { var del = SeckillManager.DeleteStatusData(aid.ToString()); if (del > 0) { result = 1; } } if (result > 0) { using (var client = new CacheClient()) { var cacheresult = client.RefreshRedisCachePrefixForCommon(new RefreshCachePrefixRequest() { Prefix = "SecondKillPrefix", ClientName = "FlashSale", Expiration = TimeSpan.FromDays(1) }); cacheresult.ThrowIfException(true); } var cache = QiangGouManager.ReflashQiangGouCache(aid, false, 1); if (cache == false) { return(Json(new { Status = 0, Message = "刷新缓存失败【请手动刷新】" })); } SeckillManager.OpertionLogs(SeckillManager.OpertionType.ApprovePass, "", "", aid.ToString()); } return(Json(new { code = result })); } catch (Exception e) { return(Json(new { code = -3, msg = e.Message + e.InnerException + e.StackTrace })); } }
public ActionResult Save(string strmodel, string products, string originProducts) { try { if (strmodel == null) { return(Json(new { Status = 0, Message = "保存失败【活动内容为空】" })); } var model1 = JsonConvert.DeserializeObject <QiangGouModel>(strmodel); if (model1.StrStatus == "已驳回") { if (SeckillManager.SelectQiangGouIsExist(model1.ActivityID.ToString()) == 0) { var delResult = SeckillManager.DeleteFirstCreateActivityApproveBack(model1.ActivityID.ToString()); if (delResult == -1) { return(Json(new { Status = 0, Message = "保存失败【请重试】" })); } model1.ActivityID = null; } } var model = new QiangGouModel(); if (model1.IsDefault) { switch (model1.ActivityName) { case "0点场": model.StartDateTime = Convert.ToDateTime(DateTime.Now.ToString("2018-04-26 00:00:00")); model.EndDateTime = Convert.ToDateTime(DateTime.Now.ToString("2019-04-26 10:00:00")); break; case "10点场": model.StartDateTime = Convert.ToDateTime(DateTime.Now.ToString("2018-04-26 10:00:00")); model.EndDateTime = Convert.ToDateTime(DateTime.Now.ToString("2019-04-26 13:00:00")); break; case "13点场": model.StartDateTime = Convert.ToDateTime(DateTime.Now.ToString("2018-04-26 13:00:00")); model.EndDateTime = Convert.ToDateTime(DateTime.Now.ToString("2019-04-26 16:00:00")); break; case "16点场": model.StartDateTime = Convert.ToDateTime(DateTime.Now.ToString("2018-04-26 16:00:00")); model.EndDateTime = Convert.ToDateTime(DateTime.Now.ToString("2019-04-26 20:00:00")); break; case "20点场": model.StartDateTime = Convert.ToDateTime(DateTime.Now.ToString("2018-04-26 20:00:00")); model.EndDateTime = Convert.ToDateTime(DateTime.Now.ToString("2019-04-26 23:59:59")); break; } model.IsDefault = model1.IsDefault; model.ActivityID = model1.ActivityID; model.ActiveType = 1; model.ActivityName = $"默认配置:{model1.ActivityName}"; model.NeedExam = model1.NeedExam; } else { switch (model1.ActivityName) { case "0点场": model.StartDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 00:00:00")); model.EndDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 10:00:00")); break; case "10点场": model.StartDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 10:00:00")); model.EndDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 13:00:00")); break; case "13点场": model.StartDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 13:00:00")); model.EndDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 16:00:00")); break; case "16点场": model.StartDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 16:00:00")); model.EndDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 20:00:00")); break; case "20点场": model.StartDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 20:00:00")); model.EndDateTime = Convert.ToDateTime(Convert.ToDateTime(model1.ShortDate).ToString("yyyy-MM-dd 23:59:59")); break; } model.IsDefault = model1.IsDefault; model.ActivityID = model1.ActivityID; model.ActiveType = 1; model.ActivityName = $"{model1.ShortDate}:{model1.ActivityName}"; model.NeedExam = model1.NeedExam; } var isUpdate = model.ActivityID != null; var originModels = new List <QiangGouProductModel>(); if (originProducts != "[]" && !string.IsNullOrWhiteSpace(originProducts)) { originModels = JsonConvert.DeserializeObject <List <QiangGouProductModel> >(originProducts); } model.Products = JsonConvert.DeserializeObject <List <QiangGouProductModel> >(products); List <QiangGouDiffModel> qiangGouDiff = new List <QiangGouDiffModel>(); if (!model.Products.Any()) { return(Json(new { Status = 0, Message = "保存失败【活动无产品】" })); } var result = QiangGouManager.Save(model, qiangGouDiff); if (result.Item1 == -1) { return(Json(new { Status = 0, Message = "保存失败【闪购活动时间不允许重叠】" })); } if (result.Item1 == -3) { return(Json(new { Status = 0, Message = "刷新缓存失败【请手动刷新】" })); } else if (result.Item1 > 0) { if (model.NeedExam) { var approveResult = SeckillManager.UpdateSeckillToToApprove(result.Item2.ToString()); { if (approveResult <= 0) { return(Json(new { Status = 0, Message = "保存失败重试" })); } } } if (!isUpdate) { SeckillManager.OpertionLogs(SeckillManager.OpertionType.Add, model.Products.Count().ToString(), "", result.Item2.ToString()); } else { var logdata = CompareModifyData(originModels, model.Products.ToList()); foreach (var log in logdata) { if (log.Key == SeckillManager.OpertionType.EditEdit) { var count = log.Value.Length; //先拆成两段来存储,如果后面出现还存不下的想办法多条存储 SeckillManager.OpertionLogs(log.Key, log.Value.Substring(0, count / 2), log.Value.Substring(count / 2), result.Item2.ToString()); } else { SeckillManager.OpertionLogs(log.Key, log.Value, "", result.Item2.ToString()); } } } var request = new ActivityTypeRequest() { ActivityId = model.ActivityID.Value, StartDateTime = model.StartDateTime, EndDateTime = model.EndDateTime, Status = 1, Type = 1 }; var activityTypeResult = QiangGouManager.RecordActivityType(request); if (!activityTypeResult) { return(Json(new { Status = 0, Message = "保存失败重试" })); } if (model.ActivityID != null && !model.NeedExam) { var cache = QiangGouManager.ReflashQiangGouCache(model.ActivityID.Value, false, model.ActiveType); if (cache == false) { return(Json(new { Status = 0, Message = "刷新缓存失败【请手动刷新】" })); } } return(Json(new { Status = 1, Message = "保存成功" })); } return(Json(new { Status = 0, Message = "保存失败【未知错误】" })); } catch (Exception e) { return(Json(new { Status = 0, Message = e.Message + e.InnerException + e.StackTrace })); } }
public bool UpdateToCache(Guid aid, bool needLog = true, int activityType = 0) => QiangGouManager.ReflashQiangGouCache(aid, needLog, activityType);
public bool UpdateToCache(Guid aid, bool needLog = true) => QiangGouManager.ReflashQiangGouCache(aid, needLog);