Ejemplo n.º 1
0
        public object AddRecord(PostRecord record)
        {
            if (record == null || string.IsNullOrEmpty(record.QuestionId) ||
                string.IsNullOrEmpty(record.UserId))
            {
                return(new ReturnResult <bool>(-2, "参数传入错误!"));
            }
            Record saveTemp = _QuestionService.GetRecord(record.QuestionId, record.UserId);
            bool   isNew    = false;

            if (saveTemp == null)
            {
                saveTemp = record.ToModel();
                isNew    = true;
            }
            switch (record.Type)
            {
            default:
            case 0:
                break;

            case 1:    //点赞
                if (!isNew && saveTemp.ispraise)
                {
                    //此种情况,正常返回,后台不做处理
                    return(new ReturnResult <bool>(1, true, "此文已经赞过!"));
                }
                saveTemp.ispraise = true;
                break;

            case 2:    //收藏
                if (!isNew && saveTemp.iscollect)
                {
                    return(new ReturnResult <bool>(1, true, "此文已经收藏过!"));
                }
                saveTemp.iscollect = true;
                break;

            case -1:    //取消点赞
                if (!isNew && !saveTemp.ispraise)
                {
                    return(new ReturnResult <bool>(1, true, "此文未赞过!"));
                }
                saveTemp.ispraise = false;
                break;

            case -2:    //取消收藏
                if (!isNew && !saveTemp.iscollect)
                {
                    return(new ReturnResult <bool>(1, true, "此文未收藏过!"));
                }
                saveTemp.iscollect = false;
                break;
            }
            ReturnResult <bool> res = new ReturnResult <bool>();

            if (isNew)
            {
                res = _QuestionService.AddRecord(saveTemp);
            }
            else
            {
                res = _QuestionService.UpdateRecord(saveTemp);
            }
            if (res.code > 0)
            {
                switch (record.Type)
                {
                default:
                case 0:
                    _QuestionService.UpdateReadCount(record.QuestionId);
                    break;

                case 1:    //点赞
                    _QuestionService.UpdatePraiseCount(record.QuestionId, 1);
                    _IUsersService.UpdatePraiseCount(record.QuestionId, 1);
                    break;

                case 2:    //收藏
                    _QuestionService.UpdateCollectCount(record.UserId, 1);
                    break;

                case -1:    //取消点赞
                    _QuestionService.UpdatePraiseCount(record.QuestionId, -1);
                    _IUsersService.UpdatePraiseCount(record.QuestionId, -1);
                    break;

                case -2:    //取消收藏
                    _QuestionService.UpdateCollectCount(record.UserId, -1);
                    break;
                }
            }
            return(res);
        }