/// <summary> /// 更新系統彈幕次數 /// </summary> private static void UpdateSystemBarrageStatistics() { try { DateTime weekDate = DateTime.Now.AddDays(-7); using (var db = new livecloudEntities()) { //增加 var listSystemBarrageLog = db.dt_SystemBarrageLog.Where(s => s.signal == 0 && s.add_time >= weekDate).ToList(); foreach (dt_SystemBarrageLog systemBarrageLog in listSystemBarrageLog) { dt_SystemBarrage editSystemBarrage = db.dt_SystemBarrage.Find(systemBarrageLog.barrageId); if (editSystemBarrage != null) { editSystemBarrage.times++; systemBarrageLog.signal = 1; } } if (db.ChangeTracker.HasChanges()) { db.SaveChanges(); } //減少 var listSystemBarrageLogDiff = db.dt_SystemBarrageLog.Where(s => s.signal == 1 && s.add_time <= weekDate).ToList(); foreach (dt_SystemBarrageLog systemBarrageLog in listSystemBarrageLogDiff) { dt_SystemBarrage editSystemBarrage = db.dt_SystemBarrage.Find(systemBarrageLog.barrageId); if (editSystemBarrage != null) { editSystemBarrage.times--; systemBarrageLog.signal = 2; } } if (db.ChangeTracker.HasChanges()) { db.SaveChanges(); } } } catch (Exception ex) { Log.Error("global", "UpdateSystemBarrageStatistics", ex.ToString()); } }
public ResultInfoT <object> Post() { var result = new ResultInfoT <object>() { IsLogin = ResultHelper.IsLogin }; var request = HttpContext.Current.Request; var session = HttpContext.Current.Session; try { int managerId = (int)(session["ManagerId"] ?? -1); if (managerId < 0) { // 缺少Log紀錄 result.Code = ResultHelper.NotAuthorized; result.StrCode = ResultHelper.NotLoginMsg; result.IsLogin = ResultHelper.NotLogin; return(result); } var action = request.Form["Type"] ?? ""; var content = request.Form["Content"] ?? ""; var remark = request.Form["Remark"] ?? ""; int id = int.TryParse(request.Form["ID"] ?? "", out id) ? id : -1; var now = DateTime.Now; switch (action.ToLower()) { case "add": { if (string.IsNullOrEmpty(content)) { result.Code = ResultHelper.ParamFail; result.StrCode = ResultHelper.ParamFailMsg; return(result); } break; } case "edit": { if (id <= 0 || string.IsNullOrEmpty(content)) { result.Code = ResultHelper.ParamFail; result.StrCode = ResultHelper.ParamFailMsg; return(result); } break; } default: result.Code = ResultHelper.ParamFail; result.StrCode = ResultHelper.ParamFailMsg; return(result); } using (var db = new livecloudEntities()) { ////驗證權限(不確定是否為相應的欄位) //var operationManager = db.dt_Manager.Find(managerId); //var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault(); //if (operationManagerRole.SystemBarrage == false) //{ // result.Code = ResultHelper.NotAuthorized; // result.StrCode = ResultHelper.NotAuthorizedMsg; // return result; //} var manageLog = new dt_ManageLog() { ManagerId = managerId, ManagerName = db.dt_Manager.Find(managerId).user_name, ActionType = "setSystemBarrage", AddTime = now, IP = NetworkTool.GetClientIP(HttpContext.Current) }; switch (action.ToLower()) { case "add": { var dupContent = db.dt_SystemBarrage.Where(s => s.content == content).FirstOrDefault(); if (dupContent != null) { result.Code = ResultHelper.ParamFail; result.StrCode = "已存在相同内容的系统弹幕!"; return(result); } var totalCount = db.dt_SystemBarrage.Count(); if (totalCount >= Conf.MaxSystemBarrageCount) { result.Code = ResultHelper.ParamFail; result.StrCode = "系统弹幕已达" + Conf.MaxSystemBarrageCount.ToString() + "条,无法继续添加!"; return(result); } var sysBarrage = new dt_SystemBarrage() { content = content, add_time = now, update_time = now, state = (byte)1, times = 0, operUser = db.dt_Manager.Find(managerId).user_name, Remark = remark }; db.dt_SystemBarrage.Add(sysBarrage); manageLog.Remarks = "添加系统弹幕:" + content; break; } case "edit": { var sysBarrage = db.dt_SystemBarrage.Find(id); if (sysBarrage == null) { result.Code = ResultHelper.ParamFail; result.StrCode = ResultHelper.ParamFailMsg + " ID:" + id + "的系统弹幕不存在"; return(result); } sysBarrage.content = content; sysBarrage.update_time = now; sysBarrage.operUser = db.dt_Manager.Find(managerId).user_name; if (!string.IsNullOrEmpty(remark)) { sysBarrage.Remark = remark; } manageLog.Remarks = "修改系统弹幕:" + content + "(ID:" + sysBarrage.id + ")"; break; } } db.dt_ManageLog.Add(manageLog); db.SaveChanges(); } result.Code = ResultHelper.Success; result.StrCode = ResultHelper.SuccessMsg; return(result); } catch (DbUpdateException ex) { Log.Info("SetSystemBarrage", "SetSystemBarrage", ex.InnerException.Message.ToString()); result.Code = ResultHelper.ParamFail; result.StrCode = "已有重复的内容,请刷新页面"; return(result); } catch (Exception ex) { Log.Error("SetSystemBarrage", "SetSystemBarrage", ex.Message.ToString()); result.Code = ResultHelper.ExecutingError; result.StrCode = ResultHelper.ExecutingErrorMsg; return(result); } }