From 68d43240e745310fb10d41b8837725cea95d723f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Thu, 1 Jun 2023 15:06:41 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BC=98=E5=8C=96=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=85=AC=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/System/SysNoticeController.cs | 44 +---- ZR.Model/System/Dto/SysNoticeDto.cs | 11 +- ZR.Model/System/SysNotice.cs | 4 +- ZR.Service/System/SysNoticeService.cs | 2 +- ZR.Vue/src/views/system/notice/index.vue | 180 ++++++++++-------- document/images/qrcodeH5.png | Bin 19517 -> 38876 bytes document/mysql/admin-mysql.sql | 72 ++++--- document/pgsql/admin-pg15.sql | 4 +- document/sqlserver/admin-sqlserver.sql | 5 +- 9 files changed, 162 insertions(+), 160 deletions(-) diff --git a/ZR.Admin.WebApi/Controllers/System/SysNoticeController.cs b/ZR.Admin.WebApi/Controllers/System/SysNoticeController.cs index 8b7d251..1027660 100644 --- a/ZR.Admin.WebApi/Controllers/System/SysNoticeController.cs +++ b/ZR.Admin.WebApi/Controllers/System/SysNoticeController.cs @@ -45,7 +45,7 @@ namespace ZR.Admin.WebApi.Controllers.System { var predicate = Expressionable.Create(); - predicate = predicate.And(m => m.Status == "0"); + predicate = predicate.And(m => m.Status == 0); var response = _SysNoticeService.GetPages(predicate.ToExpression(), parm); return SUCCESS(response); } @@ -61,9 +61,9 @@ namespace ZR.Admin.WebApi.Controllers.System var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.NoticeTitle), m => m.NoticeTitle.Contains(parm.NoticeTitle)); - predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.NoticeType), m => m.NoticeType == parm.NoticeType); + predicate = predicate.AndIF(parm.NoticeType != null, m => m.NoticeType == parm.NoticeType); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.CreateBy), m => m.Create_by.Contains(parm.CreateBy) || m.Update_by.Contains(parm.CreateBy)); - predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Status), m => m.Status == parm.Status); + predicate = predicate.AndIF(parm.Status != null, m => m.Status == parm.Status); var response = _SysNoticeService.GetPages(predicate.ToExpression(), parm); return SUCCESS(response); } @@ -88,14 +88,9 @@ namespace ZR.Admin.WebApi.Controllers.System /// [HttpPost] [ActionPermissionFilter(Permission = "system:notice:add")] - [Log(Title = "通知公告表", BusinessType = BusinessType.INSERT)] + [Log(Title = "发布通告", BusinessType = BusinessType.INSERT)] public IActionResult AddSysNotice([FromBody] SysNoticeDto parm) { - if (parm == null) - { - throw new CustomException("请求参数错误"); - } - //从 Dto 映射到 实体 var modal = parm.Adapt().ToCreate(HttpContext); modal.Create_by = HttpContext.GetName(); modal.Create_time = DateTime.Now; @@ -120,19 +115,13 @@ namespace ZR.Admin.WebApi.Controllers.System /// [HttpPut] [ActionPermissionFilter(Permission = "system:notice:update")] - [Log(Title = "通知公告表", BusinessType = BusinessType.UPDATE)] + [Log(Title = "修改公告", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateSysNotice([FromBody] SysNoticeDto parm) { - if (parm == null) - { - throw new CustomException("请求实体不能为空"); - } - //从 Dto 映射到 实体 var model = parm.Adapt().ToUpdate(HttpContext); - + model.Update_by = HttpContext.GetName(); var response = _SysNoticeService.Update(w => w.NoticeId == model.NoticeId, it => new SysNotice() { - //Update 字段映射 NoticeTitle = model.NoticeTitle, NoticeType = model.NoticeType, NoticeContent = model.NoticeContent, @@ -150,7 +139,7 @@ namespace ZR.Admin.WebApi.Controllers.System /// [HttpPut("send/{NoticeId}")] [ActionPermissionFilter(Permission = "system:notice:update")] - [Log(Title = "通知公告表", BusinessType = BusinessType.OTHER)] + [Log(Title = "发送通知公告", BusinessType = BusinessType.OTHER)] public IActionResult SendNotice(int NoticeId = 0) { if (NoticeId <= 0) @@ -158,7 +147,7 @@ namespace ZR.Admin.WebApi.Controllers.System throw new CustomException("请求实体不能为空"); } var response = _SysNoticeService.GetFirst(x => x.NoticeId == NoticeId); - if (response != null && response.Status == "0") + if (response != null && response.Status == 0) { _hubContext.Clients.All.SendAsync(HubsConstant.ReceiveNotice, response.NoticeTitle, response.NoticeContent); } @@ -171,7 +160,7 @@ namespace ZR.Admin.WebApi.Controllers.System /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "system:notice:delete")] - [Log(Title = "通知公告表", BusinessType = BusinessType.DELETE)] + [Log(Title = "通知公告", BusinessType = BusinessType.DELETE)] public IActionResult DeleteSysNotice(string ids) { int[] idsArr = Tools.SpitIntArrary(ids); @@ -181,20 +170,5 @@ namespace ZR.Admin.WebApi.Controllers.System return SUCCESS(response); } - - /// - /// 通知公告表导出 - /// - /// - [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "通知公告表")] - [HttpGet("export")] - [ActionPermissionFilter(Permission = "system:notice:export")] - public IActionResult Export() - { - var list = _SysNoticeService.GetAll(); - - string sFileName = ExportExcel(list, "SysNotice", "通知公告表"); - return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); - } } } \ No newline at end of file diff --git a/ZR.Model/System/Dto/SysNoticeDto.cs b/ZR.Model/System/Dto/SysNoticeDto.cs index 26e23d9..e770064 100644 --- a/ZR.Model/System/Dto/SysNoticeDto.cs +++ b/ZR.Model/System/Dto/SysNoticeDto.cs @@ -1,3 +1,5 @@ +using System.ComponentModel.DataAnnotations; + namespace ZR.Model.System.Dto { /// @@ -6,10 +8,11 @@ namespace ZR.Model.System.Dto public class SysNoticeDto { public int NoticeId { get; set; } + [Required] public string NoticeTitle { get; set; } - public string NoticeType { get; set; } + public int NoticeType { get; set; } public string NoticeContent { get; set; } - public string Status { get; set; } + public int Status { get; set; } public string Remark { get; set; } } @@ -19,8 +22,8 @@ namespace ZR.Model.System.Dto public class SysNoticeQueryDto : PagerInfo { public string NoticeTitle { get; set; } - public string NoticeType { get; set; } + public int? NoticeType { get; set; } public string CreateBy { get; set; } - public string Status { get; set; } + public int? Status { get; set; } } } diff --git a/ZR.Model/System/SysNotice.cs b/ZR.Model/System/SysNotice.cs index accf568..758fc03 100644 --- a/ZR.Model/System/SysNotice.cs +++ b/ZR.Model/System/SysNotice.cs @@ -26,7 +26,7 @@ namespace ZR.Model.System /// 公告类型 (1通知 2公告) /// [SugarColumn(ColumnName = "notice_type")] - public string NoticeType { get; set; } + public int NoticeType { get; set; } /// /// 公告内容 /// @@ -35,6 +35,6 @@ namespace ZR.Model.System /// /// 公告状态 (0正常 1关闭) /// - public string Status { get; set; } + public int Status { get; set; } } } \ No newline at end of file diff --git a/ZR.Service/System/SysNoticeService.cs b/ZR.Service/System/SysNoticeService.cs index bbe99e9..168297a 100644 --- a/ZR.Service/System/SysNoticeService.cs +++ b/ZR.Service/System/SysNoticeService.cs @@ -28,7 +28,7 @@ namespace ZR.Service.System var predicate = Expressionable.Create(); //搜索条件查询语法参考Sqlsugar - predicate = predicate.And(m => m.Status == "0"); + predicate = predicate.And(m => m.Status == 0); return GetList(predicate.ToExpression()); } diff --git a/ZR.Vue/src/views/system/notice/index.vue b/ZR.Vue/src/views/system/notice/index.vue index ee85336..301947c 100644 --- a/ZR.Vue/src/views/system/notice/index.vue +++ b/ZR.Vue/src/views/system/notice/index.vue @@ -23,13 +23,28 @@ 新增 - + 修改 - 删除 + 删除 @@ -58,15 +73,20 @@ - + @@ -80,14 +100,14 @@ - + - {{dict.dictLabel}} + {{ dict.dictLabel }} @@ -115,10 +135,10 @@ import { updateNotice, sendNotice, // exportNotice, -} from "@/api/system/notice"; +} from '@/api/system/notice' export default { - name: "notice", + name: 'notice', data() { return { // 遮罩层 @@ -136,7 +156,7 @@ export default { // 公告表格数据 noticeList: [], // 弹出层标题 - title: "", + title: '', // 是否显示弹出层 open: false, // 类型数据字典 @@ -155,38 +175,34 @@ export default { form: {}, // 表单校验 rules: { - noticeTitle: [ - { required: true, message: "公告标题不能为空", trigger: "blur" }, - ], - noticeType: [ - { required: true, message: "公告类型不能为空", trigger: "change" }, - ], + noticeTitle: [{ required: true, message: '公告标题不能为空', trigger: 'blur' }], + noticeType: [{ required: true, message: '公告类型不能为空', trigger: 'change' }], }, - }; + } }, created() { - this.getList(); - this.getDicts("sys_notice_status").then((response) => { - this.statusOptions = response.data; - }); - this.getDicts("sys_notice_type").then((response) => { - this.typeOptions = response.data; - }); + this.getList() + this.getDicts('sys_notice_status').then((response) => { + this.statusOptions = response.data + }) + this.getDicts('sys_notice_type').then((response) => { + this.typeOptions = response.data + }) }, methods: { /** 查询公告列表 */ getList() { - this.loading = true; + this.loading = true listNotice(this.queryParams).then((res) => { - this.noticeList = res.data.result; - this.total = res.data.totalNum; - this.loading = false; - }); + this.noticeList = res.data.result + this.total = res.data.totalNum + this.loading = false + }) }, // 取消按钮 cancel() { - this.open = false; - this.reset(); + this.open = false + this.reset() }, // 表单重置 reset() { @@ -195,93 +211,89 @@ export default { noticeTitle: undefined, noticeType: undefined, noticeContent: undefined, - status: "0", - }; - this.resetForm("form"); + status: 0, + } + this.resetForm('form') }, /** 搜索按钮操作 */ handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); + this.queryParams.pageNum = 1 + this.getList() }, /** 重置按钮操作 */ resetQuery() { - this.resetForm("queryForm"); - this.handleQuery(); + this.resetForm('queryForm') + this.handleQuery() }, // 多选框选中数据 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.noticeId); - this.single = selection.length != 1; - this.multiple = !selection.length; + this.ids = selection.map((item) => item.noticeId) + this.single = selection.length != 1 + this.multiple = !selection.length }, /** 新增按钮操作 */ handleAdd() { - this.reset(); - this.open = true; - this.title = "添加公告"; + this.reset() + this.open = true + this.title = '添加公告' }, /** 修改按钮操作 */ handleUpdate(row) { - this.reset(); - const noticeId = row.noticeId || this.ids; + this.reset() + const noticeId = row.noticeId || this.ids getNotice(noticeId).then((response) => { - this.form = response.data; - this.open = true; - this.title = "修改公告"; - }); + this.form = response.data + this.open = true + this.title = '修改公告' + }) }, - // 发送通知 + // 发送通知 handleNotice(row) { - const noticeId = row.noticeId || this.ids; - sendNotice(noticeId).then(res => { - this.msgSuccess("发送通知成功"); - }); + const noticeId = row.noticeId || this.ids + sendNotice(noticeId).then((res) => { + this.msgSuccess('发送通知成功') + }) }, /** 提交按钮 */ submitForm: function () { - this.$refs["form"].validate((valid) => { + this.$refs['form'].validate((valid) => { if (valid) { if (this.form.noticeId != undefined) { updateNotice(this.form).then((response) => { if (!response.data) { - this.msgError("修改失败"); - return; + this.msgError('修改失败') + return } - this.msgSuccess("修改成功"); - this.open = false; - this.getList(); - }); + this.msgSuccess('修改成功') + this.open = false + this.getList() + }) } else { addNotice(this.form).then((response) => { - this.msgSuccess("新增成功"); - this.open = false; - this.getList(); - }); + this.msgSuccess('新增成功') + this.open = false + this.getList() + }) } } - }); + }) }, /** 删除按钮操作 */ handleDelete(row) { - const noticeIds = row.noticeId || this.ids; - this.$confirm( - '是否确认删除公告编号为"' + noticeIds + '"的数据项?', - "警告", - { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning", - } - ) + const noticeIds = row.noticeId || this.ids + this.$confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?', '警告', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) .then(function () { - return delNotice(noticeIds); + return delNotice(noticeIds) }) .then(() => { - this.getList(); - this.msgSuccess("删除成功"); - }); + this.getList() + this.msgSuccess('删除成功') + }) }, }, -}; +} diff --git a/document/images/qrcodeH5.png b/document/images/qrcodeH5.png index 0f27fa57dae1d70e0be7c6a0ebf5208b12a0ccd4..584c0b0e56b7d91e15c2aedd0004b9169a495b5a 100644 GIT binary patch literal 38876 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 literal 19517 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 diff --git a/document/mysql/admin-mysql.sql b/document/mysql/admin-mysql.sql index 7b56701..2743423 100644 --- a/document/mysql/admin-mysql.sql +++ b/document/mysql/admin-mysql.sql @@ -35,38 +35,52 @@ CREATE TABLE `sys_tasks` ( -- ---------------------------- -- Table structure for sys_tasks_log -- ---------------------------- -DROP TABLE IF EXISTS `sys_tasks_log`; -CREATE TABLE `sys_tasks_log` ( - `jobLogId` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID', - `jobId` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务id', - `jobName` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务名称', - `jobGroup` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务组名', - `jobMessage` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志信息', - `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '执行状态(0正常 1失败)', - `exception` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '异常信息', - `createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', - `invokeTarget` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '调用目标', - `elapsed` double(10, 0) NULL DEFAULT NULL COMMENT '作业用时', - PRIMARY KEY (`jobLogId`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 198 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度日志表' ROW_FORMAT = Dynamic; - +DROP TABLE +IF + EXISTS `sys_tasks_log`; +CREATE TABLE `sys_tasks_log` ( + `jobLogId` BIGINT ( 20 ) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID', + `jobId` VARCHAR ( 20 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务id', + `jobName` VARCHAR ( 64 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务名称', + `jobGroup` VARCHAR ( 64 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务组名', + `jobMessage` VARCHAR ( 500 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志信息', + `status` CHAR ( 1 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '执行状态(0正常 1失败)', + `exception` VARCHAR ( 2000 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '异常信息', + `createTime` DATETIME ( 0 ) NULL DEFAULT NULL COMMENT '创建时间', + `invokeTarget` VARCHAR ( 200 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '调用目标', + `elapsed` DOUBLE ( 10, 0 ) NULL DEFAULT NULL COMMENT '作业用时', + PRIMARY KEY ( `jobLogId` ) USING BTREE +) ENGINE = INNODB AUTO_INCREMENT = 198 CHARACTER +SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度日志表' ROW_FORMAT = Dynamic; -- ---------------------------- -- 通知公告表 -- ---------------------------- -drop table if exists sys_notice; -create table sys_notice ( - notice_id int(4) not null auto_increment comment '公告ID', - notice_title varchar(50) not null comment '公告标题', - notice_type char(1) not null comment '公告类型(1通知 2公告)', - notice_content varchar(500) default null comment '公告内容', - status char(1) default '0' comment '公告状态(0正常 1关闭)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(255) default null comment '备注', - primary key (notice_id) -) engine=innodb auto_increment=10 comment = '通知公告表'; +DROP TABLE +IF + EXISTS sys_notice; +CREATE TABLE sys_notice ( + notice_id INT ( 4 ) NOT NULL auto_increment COMMENT '公告ID', + notice_title VARCHAR ( 50 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告标题', + notice_type INT NOT NULL COMMENT '公告类型(1通知 2公告)', + notice_content TEXT CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公告内容', + `status` INT DEFAULT 0 COMMENT '公告状态(0正常 1关闭)', + create_by VARCHAR ( 64 ) DEFAULT '' COMMENT '创建者', + create_time DATETIME COMMENT '创建时间', + update_by VARCHAR ( 64 ) DEFAULT '' COMMENT '更新者', + update_time DATETIME COMMENT '更新时间', + remark VARCHAR ( 255 ) CHARACTER + SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY ( notice_id ) +) ENGINE = INNODB auto_increment = 1 COMMENT = '通知公告表'; -- ---------------------------- diff --git a/document/pgsql/admin-pg15.sql b/document/pgsql/admin-pg15.sql index d14fb75..31ad71b 100644 --- a/document/pgsql/admin-pg15.sql +++ b/document/pgsql/admin-pg15.sql @@ -683,9 +683,9 @@ DROP TABLE IF EXISTS "public"."sys_notice"; CREATE TABLE "public"."sys_notice" ( "notice_id" int4 NOT NULL DEFAULT nextval('sys_noticeid_seq'::regclass), "notice_title" varchar(50) COLLATE "pg_catalog"."default" NOT NULL, - "notice_type" char(1) COLLATE "pg_catalog"."default" NOT NULL, + "notice_type" int4 NOT NULL, "notice_content" varchar(500) COLLATE "pg_catalog"."default", - "status" char(1) COLLATE "pg_catalog"."default", + "status" int4, "create_by" varchar(64) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "update_by" varchar(64) COLLATE "pg_catalog"."default", diff --git a/document/sqlserver/admin-sqlserver.sql b/document/sqlserver/admin-sqlserver.sql index 3c72ac8..e49d7f6 100644 --- a/document/sqlserver/admin-sqlserver.sql +++ b/document/sqlserver/admin-sqlserver.sql @@ -31,7 +31,6 @@ CREATE TABLE sys_tasks requestMethod VARCHAR(10) --请求方法 ) GO -GO if OBJECT_ID(N'sys_tasks_log',N'U') is not NULL DROP TABLE sys_tasks_log GO /**定时任务调度日志表*/ @@ -55,9 +54,9 @@ GO CREATE TABLE [dbo].[sys_notice]( [notice_id] [int] NOT NULL PRIMARY KEY IDENTITY(1,1), [notice_title] [varchar](100) NULL, - [notice_type] [char](1) NULL, + [notice_type] int NULL, [notice_content] [text] NULL, - [status] [char](1) NULL, + [status] int NULL, [create_by] [varchar](64) NULL, [create_time] [datetime] NULL, [update_by] [varchar](64) NULL,