Exemplo n.º 1
0
        public int AddUserPlus(int objectId, string title, int plusType, int toUserId, int id = 0)
        {
            UserRepository repository = new UserRepository();

            Entity.m_UserPlusRecords model = new Entity.m_UserPlusRecords();
            model.ObjectId    = objectId;
            model.AppendTime  = DateTime.Now;
            model.RecordsType = plusType;
            model.UserId      = Framework.Core.Transform.GetInt(HttpContext.Session.GetString("UserId"), 0);
            //
            int messageType = 0;

            switch (model.RecordsType.Value)
            {
            case 1:
                messageType = 12;
                break;

            case 2:
                messageType = 13;
                break;

            case 3:
                messageType = 14;
                break;

            case 4:
                messageType = 20;
                break;

            case 5:
                messageType = 21;
                break;
            }
            //消息通知
            Entity.m_Message message = new Entity.m_Message();
            message.AppendUserId = model.UserId;
            message.Contents     = Common.MessageHtml.GetMessageContent(HttpContext.Session.GetString("NickName"), objectId, title, messageType, id);
            message.IsRead       = false;
            message.MessageType  = messageType;
            message.ObjId        = objectId;
            message.PostDate     = DateTime.Now;
            message.UserId       = toUserId;
            //消息推送
            int resultCount = repository.AddUserPlusRecords(model, message);

            if (resultCount > 0)
            {
                Extensions.SignalRCore.PushUserMessage(message.UserId.ToString(), _messageHubContext);
            }
            return(resultCount);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 添加用户点赞消息
        /// </summary>
        /// <param name="model"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public int AddUserPlusRecords(Entity.m_UserPlusRecords model, Entity.m_Message message)
        {
            //记录类型 1 帖子点赞 2 帖子回答点赞 3 帖子评论点赞 4 文档主题点赞 5 文档点赞
            int result = 0;
            //加载是否已经存在点赞记录
            var queryCount = _dbContext.m_UserPlusRecords.Where(m => m.ObjectId == model.ObjectId && m.UserId == model.UserId && m.RecordsType == model.RecordsType).Count();

            using (var tran = _dbContext.Database.BeginTransaction())
            {
                try
                {
                    if (queryCount > 0)
                    {
                        //存在则撤回点赞记录
                        _dbContext.MangoRemove <Entity.m_UserPlusRecords>(m => m.ObjectId == model.ObjectId && m.UserId == model.UserId && m.RecordsType == model.RecordsType);
                        //
                        switch (model.RecordsType.Value)
                        {
                        case 1:
                            _dbContext.MangoUpdate <Entity.m_Posts>(m => m.PlusCount == m.PlusCount - 1, m => m.PostsId == model.ObjectId);
                            break;

                        case 2:
                            _dbContext.MangoUpdate <Entity.m_PostsAnswer>(m => m.Plus == m.Plus - 1, m => m.AnswerId == model.ObjectId);
                            break;

                        case 3:
                            _dbContext.MangoUpdate <Entity.m_PostsComments>(m => m.Plus == m.Plus - 1, m => m.CommentId == model.ObjectId);
                            break;

                        case 4:
                            _dbContext.MangoUpdate <Entity.m_DocsTheme>(m => m.PlusCount == m.PlusCount - 1, m => m.ThemeId == model.ObjectId);
                            break;

                        case 5:
                            _dbContext.MangoUpdate <Entity.m_Docs>(m => m.PlusCount == m.PlusCount - 1, m => m.DocsId == model.ObjectId);
                            break;
                        }
                        tran.Commit();
                        result = -1;
                    }
                    else
                    {
                        //不存在则新增点赞记录
                        _dbContext.Add(message);
                        _dbContext.SaveChanges();
                        //
                        _dbContext.Add(model);
                        _dbContext.SaveChanges();
                        //
                        switch (model.RecordsType.Value)
                        {
                        case 1:
                            _dbContext.MangoUpdate <Entity.m_Posts>(m => m.PlusCount == m.PlusCount + 1, m => m.PostsId == model.ObjectId);
                            break;

                        case 2:
                            _dbContext.MangoUpdate <Entity.m_PostsAnswer>(m => m.Plus == m.Plus + 1, m => m.AnswerId == model.ObjectId);
                            break;

                        case 3:
                            _dbContext.MangoUpdate <Entity.m_PostsComments>(m => m.Plus == m.Plus + 1, m => m.CommentId == model.ObjectId);
                            break;

                        case 4:
                            _dbContext.MangoUpdate <Entity.m_DocsTheme>(m => m.PlusCount == m.PlusCount + 1, m => m.ThemeId == model.ObjectId);
                            break;

                        case 5:
                            _dbContext.MangoUpdate <Entity.m_Docs>(m => m.PlusCount == m.PlusCount + 1, m => m.DocsId == model.ObjectId);
                            break;
                        }
                        tran.Commit();
                        result = 1;
                    }
                }
                catch
                {
                    tran.Rollback();
                    result = 0;
                }
            }
            return(result);
        }