/// <summary> /// 用户评论 帖子 文章 触发 加分 及通知 动作 /// </summary> /// <param name="userId"></param> /// <param name="coinSourceEnum"></param> public void AddScoreOnComment_BBS_Article(long userId, long mainId, ScoreBeloneMainEnumType scoreBeloneMainEnumType, CoinSourceEnum coinSourceEnum) { try { int score = 0; string publishTypeName = string.Empty; NoticeTypeEnum noticeTypeEnum = NoticeTypeEnum.None; if (coinSourceEnum == CoinSourceEnum.UserComment_BBS) { publishTypeName = "帖子"; score = ConfigHelper.AppSettings("commentQuestion").ToInt32(); noticeTypeEnum = NoticeTypeEnum.OnPublishBBS; } else { publishTypeName = "文章"; score = ConfigHelper.AppSettings("commentArticle").ToInt32(); noticeTypeEnum = NoticeTypeEnum.OnPublishArticle; } int coinSource1 = CoinSourceEnum.UserComment_BBS.GetHashCode(); int coinSource2 = CoinSourceEnum.UserComment_Article.GetHashCode(); //bool canAdd = true; //判断 今日是否达到 上限 var start = DateTime.Now.Date; var end = DateTime.Now; var count__ = _amazonBBSDBContext.ScoreCoinLog.Count(a => a.UserID == userId && a.CoinType == 1 && (a.CoinSource == coinSource2 || a.CoinSource == coinSource1) && a.CoinTime >= start && a.CoinTime <= end); if (count__ < ConfigHelper.AppSettings("DayInAddScoreCount").ToInt32()) { if (AddScoreOrCoin(userId, 1, score, coinSourceEnum, true, scoreBeloneMainEnumType, mainId)) { //站内信通知 NoticeBLL.Instance.OnComment_BBS_Article_AddScore_Notice_Commenter(userId, DateTime.Now, publishTypeName, score.ToString(), noticeTypeEnum); } } } catch (Exception e) { } }
/// <summary> /// 给用户添加积分-并记录流水 /// </summary> /// <param name="userId"></param> /// <param name="feeType"></param> /// <param name="fee"></param> /// <returns></returns> public bool AddScoreOrCoin(long userId, int feeType, int fee, CoinSourceEnum coinSourceEnum, bool needSave = false, ScoreBeloneMainEnumType scoreBeloneMainEnumType = ScoreBeloneMainEnumType.None, long mainId = 0) { DbContextTransaction tran = null; if (needSave) { tran = _amazonBBSDBContext.Database.BeginTransaction(); } //作者增加积分 var authorExt = _amazonBBSDBContext.UserExt.FirstOrDefault(a => a.UserID == userId); if (feeType == 1) { authorExt.TotalScore += fee; } else { authorExt.TotalCoin += fee; } //添加记录 var model = _amazonBBSDBContext.ScoreCoinLog.Add(new ScoreCoinLog() { UserID = userId, Coin = fee, CoinSource = coinSourceEnum.GetHashCode(), CoinTime = DateTime.Now, CoinType = feeType, CreateUser = userId.ToString(), UserName = _amazonBBSDBContext.UserBase.FirstOrDefault(a => a.UserID == userId)?.UserName }); //关联积分对象 if (mainId > 0 && scoreBeloneMainEnumType != ScoreBeloneMainEnumType.None) { if (needSave) { _amazonBBSDBContext.SaveChanges(); } _amazonBBSDBContext.ScoreBeloneItem.Add(new ScoreBeloneItem { CreateTime = DateTime.Now, MainId = mainId, MainType = scoreBeloneMainEnumType.GetHashCode(), ScoreCoinLogId = model.ScoreCoinLogId, UserID = userId }); } if (needSave) { _amazonBBSDBContext.SaveChanges(); tran.Commit(); } return(true); }