diff --git a/WebFirst/database/sqlite.db b/WebFirst/database/sqlite.db index bf891620..eec321e3 100644 Binary files a/WebFirst/database/sqlite.db and b/WebFirst/database/sqlite.db differ diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Community/CommentController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Community/CommentController.cs new file mode 100644 index 00000000..872c6c74 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Community/CommentController.cs @@ -0,0 +1,58 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Yi.Framework.Common.Models; +using Yi.Framework.Interface; +using Yi.Framework.Model.Models; +using Yi.Framework.Repository; +using Yi.Framework.WebCore; +using Yi.Framework.WebCore.AttributeExtend; +using Yi.Framework.WebCore.AuthorizationPolicy; + +namespace Yi.Framework.ApiMicroservice.Controllers +{ + [ApiController] + [Route("api/[controller]/[action]")] + public class CommentController : BaseSimpleCrudController + { + private ICommentService _iCommentService; + public CommentController(ILogger logger, ICommentService iCommentService) : base(logger, iCommentService) + { + _iCommentService = iCommentService; + } + + /// + /// 获取全部一级评论 + /// + /// + public override async Task GetList() + { + var data = await _repository.GetListAsync(u=>u.UserId==null); + return Result.Success().SetData(data); + } + + /// + /// 获取一级评论详情 + /// + /// + /// + public override Task GetById([FromRoute] long id) + { + return base.GetById(id); + } + + /// + /// 回复文章或回复评论 + /// + /// + [HttpPost] + public async Task Comment() + { + + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db index 6e7b7aa8..158e772c 100644 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db differ diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/IAgreeService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/IAgreeService.cs index 5c8c99b2..585a7d66 100644 --- a/Yi.Framework.Net6/Yi.Framework.Interface/IAgreeService.cs +++ b/Yi.Framework.Net6/Yi.Framework.Interface/IAgreeService.cs @@ -6,6 +6,6 @@ namespace Yi.Framework.Interface { public partial interface IAgreeService : IBaseService { - Task OperateAsync(long articleId, long userId); + Task OperateAsync(long articleOrCommentId, long userId); } } diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ICommentService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ICommentService.cs new file mode 100644 index 00000000..5005fd1a --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ICommentService.cs @@ -0,0 +1,9 @@ +using Yi.Framework.Model.Models; +using Yi.Framework.Repository; + +namespace Yi.Framework.Interface +{ + public partial interface ICommentService:IBaseService + { + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/AgreeEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/AgreeEntity.cs index b66856e6..03654c49 100644 --- a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/AgreeEntity.cs +++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/AgreeEntity.cs @@ -24,10 +24,10 @@ namespace Yi.Framework.Model.Models [SugarColumn(ColumnName="UserId" )] public long? UserId { get; set; } /// - /// 文章id + /// 文章或评论id /// - [SugarColumn(ColumnName="ArticleId" )] - public long? ArticleId { get; set; } + [SugarColumn(ColumnName="ArticleOrCommentId" )] + public long? ArticleOrCommentId { get; set; } /// /// 创建者 /// diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/CommentEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/CommentEntity.cs new file mode 100644 index 00000000..bcd20404 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/CommentEntity.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.Json.Serialization; +using SqlSugar; +namespace Yi.Framework.Model.Models +{ + /// + /// 评论表 + /// + [SugarTable("Comment")] + public partial class CommentEntity:IBaseModelEntity + { + public CommentEntity() + { + this.CreateTime = DateTime.Now; + } + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )] + public long Id { get; set; } + /// + /// 文章id + /// + [SugarColumn(ColumnName="ArticleId" )] + public long? ArticleId { get; set; } + /// + /// 被回复用户id + /// + [SugarColumn(ColumnName="UserId" )] + public long? UserId { get; set; } + /// + /// 评论内容 + /// + [SugarColumn(ColumnName="Content" )] + public string Content { get; set; } + /// + /// 点赞数 + /// + [SugarColumn(ColumnName="AgreeNum" )] + public int? AgreeNum { get; set; } + /// + /// 创建者 + /// + [SugarColumn(ColumnName="CreateUser" )] + public long? CreateUser { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(ColumnName="CreateTime" )] + public DateTime? CreateTime { get; set; } + /// + /// 修改者 + /// + [SugarColumn(ColumnName="ModifyUser" )] + public long? ModifyUser { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(ColumnName="ModifyTime" )] + public DateTime? ModifyTime { get; set; } + /// + /// 是否删除 + /// + [SugarColumn(ColumnName="IsDeleted" )] + public bool? IsDeleted { get; set; } + /// + /// 租户Id + /// + [SugarColumn(ColumnName="TenantId" )] + public long? TenantId { get; set; } + /// + /// 排序字段 + /// + [SugarColumn(ColumnName="OrderNum" )] + public int? OrderNum { get; set; } + /// + /// 描述 + /// + [SugarColumn(ColumnName="Remark" )] + public string Remark { get; set; } + /// + /// 子评论数 + /// + [SugarColumn(ColumnName="CommentNum" )] + public int? CommentNum { get; set; } + /// + /// 父级评论id + /// + [SugarColumn(ColumnName="ParentId" )] + public long? ParentId { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/AgreeService.cs b/Yi.Framework.Net6/Yi.Framework.Service/AgreeService.cs index ba61029d..3a469afb 100644 --- a/Yi.Framework.Net6/Yi.Framework.Service/AgreeService.cs +++ b/Yi.Framework.Net6/Yi.Framework.Service/AgreeService.cs @@ -12,17 +12,17 @@ namespace Yi.Framework.Service /// 点赞操作 /// /// - public async Task OperateAsync(long articleId, long userId) + public async Task OperateAsync(long articleOrCommentId, long userId) { var _articleRepositoty = _repository.ChangeRepository>(); - var article = await _articleRepositoty.GetByIdAsync(articleId); - if (await _repository.IsAnyAsync(u => u.UserId == userId && u.ArticleId == articleId)) + var article = await _articleRepositoty.GetByIdAsync(articleOrCommentId); + if (await _repository.IsAnyAsync(u => u.UserId == userId && u.ArticleOrCommentId == articleOrCommentId)) { //已点赞,取消点赞 await _repository.UseTranAsync(async () => { - await _repository.DeleteAsync(u => u.UserId == userId && u.ArticleId == articleId); - await _articleRepositoty.UpdateIgnoreNullAsync(new ArticleEntity { Id = articleId, AgreeNum = article.AgreeNum - 1 }); + await _repository.DeleteAsync(u => u.UserId == userId && u.ArticleOrCommentId == articleOrCommentId); + await _articleRepositoty.UpdateIgnoreNullAsync(new ArticleEntity { Id = articleOrCommentId, AgreeNum = article.AgreeNum - 1 }); }); return false; @@ -32,8 +32,8 @@ namespace Yi.Framework.Service //未点赞,添加点赞记录 await _repository.UseTranAsync(async () => { - await _repository.InsertReturnSnowflakeIdAsync(new AgreeEntity { UserId = userId, ArticleId = articleId }); - await _articleRepositoty.UpdateIgnoreNullAsync(new ArticleEntity { Id = articleId, AgreeNum = article.AgreeNum + 1 }); + await _repository.InsertReturnSnowflakeIdAsync(new AgreeEntity { UserId = userId, ArticleOrCommentId = articleOrCommentId }); + await _articleRepositoty.UpdateIgnoreNullAsync(new ArticleEntity { Id = articleOrCommentId, AgreeNum = article.AgreeNum + 1 }); }); return true; } diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/CommentService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/CommentService.cs new file mode 100644 index 00000000..1be5cbc9 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/CommentService.cs @@ -0,0 +1,14 @@ +using SqlSugar; +using Yi.Framework.Interface; +using Yi.Framework.Model.Models; +using Yi.Framework.Repository; + +namespace Yi.Framework.Service +{ + public partial class CommentService : BaseService, ICommentService + { + public CommentService(IRepository repository) : base(repository) + { + } + } +}