diff --git a/ZR.Admin.WebApi/Controllers/System/ArticleController.cs b/ZR.Admin.WebApi/Controllers/System/ArticleController.cs
index 4317af1..ed23f77 100644
--- a/ZR.Admin.WebApi/Controllers/System/ArticleController.cs
+++ b/ZR.Admin.WebApi/Controllers/System/ArticleController.cs
@@ -44,6 +44,19 @@ namespace ZR.Admin.WebApi.Controllers
return SUCCESS(response);
}
+ ///
+ /// 查询我的文章列表
+ ///
+ ///
+ [HttpGet("mylist")]
+ public IActionResult QueryMyList([FromQuery] ArticleQueryDto parm)
+ {
+ parm.UserId = HttpContext.GetUId();
+ var response = _ArticleService.GetMyList(parm);
+
+ return SUCCESS(response);
+ }
+
///
/// 查询最新文章列表
///
@@ -53,6 +66,7 @@ namespace ZR.Admin.WebApi.Controllers
{
var predicate = Expressionable.Create();
predicate = predicate.And(m => m.Status == "1");
+ predicate = predicate.And(m => m.IsPublic == 1);
var response = _ArticleService.Queryable()
.Where(predicate.ToExpression())
@@ -72,8 +86,13 @@ namespace ZR.Admin.WebApi.Controllers
[AllowAnonymous]
public IActionResult Get(int id)
{
+ long userId = HttpContext.GetUId();
var response = _ArticleService.GetId(id);
var model = response.Adapt();
+ if (model.IsPublic == 0 && userId != model.UserId)
+ {
+ return ToResponse(Infrastructure.ResultCode.CUSTOM_ERROR, "访问失败");
+ }
if (model != null)
{
model.ArticleCategoryNav = _ArticleCategoryService.GetById(model.CategoryId);
diff --git a/ZR.Model/System/Article.cs b/ZR.Model/System/Article.cs
index 4b07103..a5ecfb3 100644
--- a/ZR.Model/System/Article.cs
+++ b/ZR.Model/System/Article.cs
@@ -53,6 +53,9 @@ namespace ZR.Model.System
/// 文章标签eg:Net5,java
///
public string Tags { get; set; }
+ ///
+ /// 点击量
+ ///
public int Hits { get; set; }
[SugarColumn(ColumnName = "category_Id")]
public int CategoryId { get; set; }
@@ -60,6 +63,10 @@ namespace ZR.Model.System
/// 封面地址
///
public string CoverUrl { get; set; }
+ ///
+ /// 是否公开 1、公开 0、不公开
+ ///
+ public int IsPublic { get; set; }
[Navigate(NavigateType.OneToOne, nameof(CategoryId), nameof(ArticleCategory.CategoryId))] //自定义关系映射
public ArticleCategory ArticleCategoryNav { get; set; }
diff --git a/ZR.Model/System/Dto/ArticleDto.cs b/ZR.Model/System/Dto/ArticleDto.cs
index 959bda2..fd60a89 100644
--- a/ZR.Model/System/Dto/ArticleDto.cs
+++ b/ZR.Model/System/Dto/ArticleDto.cs
@@ -5,11 +5,11 @@ namespace ZR.Model.System.Dto
{
public class ArticleQueryDto : PagerInfo
{
+ public long? UserId { get; set; }
public string Status { get; set; }
public string Title { get; set; }
- public DateTime BeginTime { get; set; }
- public DateTime EndTime { get; set; }
-
+ public DateTime? BeginTime { get; set; }
+ public DateTime? EndTime { get; set; }
}
///
@@ -46,6 +46,6 @@ namespace ZR.Model.System.Dto
public ArticleCategory ArticleCategoryNav { get; set; }
public string[] TagList { get; set; }
-
+ public int IsPublic { get; set; }
}
}
diff --git a/ZR.Service/System/ArticleService.cs b/ZR.Service/System/ArticleService.cs
index 480e688..1889e89 100644
--- a/ZR.Service/System/ArticleService.cs
+++ b/ZR.Service/System/ArticleService.cs
@@ -37,6 +37,29 @@ namespace ZR.Service.System
return response;
}
+ ///
+ /// 查询我的文章列表
+ ///
+ ///
+ ///
+ public PagedInfo GetMyList(ArticleQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Title), m => m.Title.Contains(parm.Title));
+ predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Status), m => m.Status == parm.Status);
+ predicate = predicate.AndIF(parm.BeginTime != null, m => m.CreateTime >= parm.BeginTime);
+ predicate = predicate.AndIF(parm.EndTime != null, m => m.CreateTime <= parm.EndTime);
+ predicate = predicate.And(m => m.UserId == parm.UserId);
+
+ var response = Queryable()
+ .Includes(x => x.ArticleCategoryNav)
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
///
/// 修改文章管理
///
@@ -54,6 +77,7 @@ namespace ZR.Service.System
CoverUrl = model.CoverUrl,
CategoryId = model.CategoryId,
FmtType = model.FmtType,
+ IsPublic = model.IsPublic,
});
return response;
}
diff --git a/ZR.Service/System/IService/IArticleService.cs b/ZR.Service/System/IService/IArticleService.cs
index dc7a229..0785ea6 100644
--- a/ZR.Service/System/IService/IArticleService.cs
+++ b/ZR.Service/System/IService/IArticleService.cs
@@ -7,6 +7,7 @@ namespace ZR.Service.System.IService
public interface IArticleService : IBaseService
{
PagedInfo GetList(ArticleQueryDto parm);
+ PagedInfo GetMyList(ArticleQueryDto parm);
///
/// 修改文章管理
///
diff --git a/document/mysql/admin-mysql.sql b/document/mysql/admin-mysql.sql
index ccd02d8..7b56701 100644
--- a/document/mysql/admin-mysql.sql
+++ b/document/mysql/admin-mysql.sql
@@ -333,6 +333,7 @@ CREATE TABLE `article` (
`updateTime` datetime(6) NULL DEFAULT NULL COMMENT '修改时间',
`authorName` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '作者名',
`coverUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '封面',
+ `isPublic` int(4) NULL DEFAULT 0 COMMENT '是否公开',
PRIMARY KEY (`cid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
@@ -368,34 +369,43 @@ create table sys_config (
primary key (configId)
) engine=innodb auto_increment=100 comment = '参数配置表';
+
-- ----------------------------
-- 18、代码生成业务表
-- ----------------------------
-drop table if exists gen_table;
-create table gen_table (
- tableId bigint(20) not null auto_increment comment '编号',
- tableName varchar(200) default '' comment '表名称',
- tableComment varchar(500) default '' comment '表描述',
- subTableName varchar(64) default null comment '关联子表的表名',
- subTableFkName varchar(64) default null comment '子表关联的外键名',
- className varchar(100) default '' comment '实体类名称',
- tplCategory varchar(200) default 'crud' comment '使用的模板(crud单表操作 tree树表操作)',
- baseNameSpace varchar(100) comment '生成命名空间前缀',
- moduleName varchar(30) comment '生成模块名',
- businessName varchar(30) comment '生成业务名',
- functionName varchar(50) comment '生成功能名',
- functionAuthor varchar(50) comment '生成功能作者',
- genType char(1) default '0' comment '生成代码方式(0zip压缩包 1自定义路径)',
- genPath varchar(200) default '/' comment '生成路径(不填默认项目路径)',
- options varchar(1000) comment '其它生成选项',
- create_by varchar(64) default '' comment '创建者',
- create_time datetime comment '创建时间',
- update_by varchar(64) default '' comment '更新者',
- update_time datetime comment '更新时间',
- remark varchar(500) default null comment '备注',
- dbName VARCHAR(100) comment '数据库名',
- PRIMARY key (tableId)
-) engine=innodb auto_increment=1 comment = '代码生成业务表';
+DROP TABLE
+IF
+ EXISTS gen_table;
+CREATE TABLE gen_table (
+ tableId BIGINT ( 20 ) NOT NULL auto_increment COMMENT '编号',
+ tableName VARCHAR ( 200 ) DEFAULT '' COMMENT '表名称',
+ tableComment VARCHAR ( 500 ) CHARACTER
+ SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '表描述',
+ subTableName VARCHAR ( 64 ) CHARACTER
+ SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联子表的表名',
+ subTableFkName VARCHAR ( 64 ) CHARACTER
+ SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表关联的外键名',
+ className VARCHAR ( 100 ) DEFAULT '' COMMENT '实体类名称',
+ tplCategory VARCHAR ( 200 ) DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)',
+ baseNameSpace VARCHAR ( 100 ) COMMENT '生成命名空间前缀',
+ moduleName VARCHAR ( 30 ) CHARACTER
+ SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '生成模块名',
+ businessName VARCHAR ( 30 ) CHARACTER
+ SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '生成业务名',
+ functionName VARCHAR ( 50 ) CHARACTER
+ SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '生成功能名',
+ functionAuthor VARCHAR ( 50 ) COMMENT '生成功能作者',
+ genType CHAR ( 1 ) DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)',
+ genPath VARCHAR ( 200 ) DEFAULT '/' COMMENT '生成路径(不填默认项目路径)',
+ OPTIONS VARCHAR ( 1000 ) COMMENT '其它生成选项',
+ create_by VARCHAR ( 64 ) DEFAULT '' COMMENT '创建者',
+ create_time datetime COMMENT '创建时间',
+ update_by VARCHAR ( 64 ) DEFAULT '' COMMENT '更新者',
+ update_time datetime COMMENT '更新时间',
+ remark VARCHAR ( 500 ) DEFAULT NULL COMMENT '备注',
+ dbName VARCHAR ( 100 ) COMMENT '数据库名',
+PRIMARY KEY ( tableId )
+) ENGINE = INNODB auto_increment = 1 COMMENT = '代码生成业务表';
-- ----------------------------
diff --git a/document/pgsql/admin-pg15.sql b/document/pgsql/admin-pg15.sql
index 3e13e9b..d14fb75 100644
--- a/document/pgsql/admin-pg15.sql
+++ b/document/pgsql/admin-pg15.sql
@@ -217,7 +217,8 @@ CREATE TABLE "public"."article" (
"createtime" timestamp(6),
"updatetime" timestamp(6),
"authorname" varchar(20) COLLATE "pg_catalog"."default",
- "coverurl" varchar(255) COLLATE "pg_catalog"."default"
+ "coverurl" varchar(255) COLLATE "pg_catalog"."default",
+"isPublic" int4
)
;
COMMENT ON COLUMN "public"."article"."title" IS '文章标题';
diff --git a/document/sqlserver/admin-sqlserver.sql b/document/sqlserver/admin-sqlserver.sql
index 826b35f..3c72ac8 100644
--- a/document/sqlserver/admin-sqlserver.sql
+++ b/document/sqlserver/admin-sqlserver.sql
@@ -337,6 +337,7 @@ CREATE TABLE article (
updateTime datetime NULL DEFAULT NULL , -- '修改时间',
authorName varchar(20) DEFAULT NULL , -- '作者名',
coverUrl varchar(300) NULL, --文章封面
+ isPublic int default(0) --是否公开
)
GO
-- ----------------------------