From a3ab97019dd1fc2267db987ade80fa6749e24e4d Mon Sep 17 00:00:00 2001 From: nsnail Date: Tue, 11 Jun 2024 18:10:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20=E6=9B=B4=E6=96=B0=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E5=A2=9E=E5=8A=A0sql=E8=BF=87=E6=BB=A4=E5=8F=82?= =?UTF-8?q?=E6=95=B0=20(#140)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: tk --- .../NetAdmin.Application/Services/RepositoryService.cs | 4 +++- .../Services/Sys/JobService.cs | 4 ++-- src/frontend/admin/src/views/sys/api/index.vue | 2 +- src/frontend/admin/src/views/sys/config/index.vue | 6 +++--- src/frontend/admin/src/views/sys/dept/index.vue | 6 +++--- src/frontend/admin/src/views/sys/dic/list/index.vue | 2 +- src/frontend/admin/src/views/sys/job/index.vue | 8 ++++---- src/frontend/admin/src/views/sys/msg/index.vue | 4 ++-- src/frontend/admin/src/views/sys/role/index.vue | 6 +++--- src/frontend/admin/src/views/sys/user/index.vue | 2 +- 10 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/backend/NetAdmin.Application/Services/RepositoryService.cs b/src/backend/NetAdmin.Application/Services/RepositoryService.cs index 2fbf4476..067e394a 100644 --- a/src/backend/NetAdmin.Application/Services/RepositoryService.cs +++ b/src/backend/NetAdmin.Application/Services/RepositoryService.cs @@ -35,6 +35,7 @@ public abstract class RepositoryService(BasicReposit /// 包含的属性 /// 排除的属性 /// 查询表达式 + /// 查询sql /// 是否忽略版本锁 /// 更新行数 protected Task UpdateAsync( // @@ -42,11 +43,12 @@ public abstract class RepositoryService(BasicReposit , IEnumerable includeFields // , string[] excludeFields = null // , Expression> whereExp = null // + , string whereSql = null // , bool ignoreVersion = false) { // 默认匹配主键 whereExp ??= a => a.Id.Equals(newValue.Id); - var update = BuildUpdate(newValue, includeFields, excludeFields, ignoreVersion).Where(whereExp); + var update = BuildUpdate(newValue, includeFields, excludeFields, ignoreVersion).Where(whereExp).Where(whereSql); return update.ExecuteAffrowsAsync(); } diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs index f752c7c7..a624e0a1 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs @@ -282,14 +282,14 @@ public sealed class JobService(BasicRepository rpo, IJobRecordSer new Sys_Job { Status = JobStatues.Idle }, [nameof(Sys_Job.Status)], null , a => a.Status == JobStatues.Running && a.LastExecTime < DateTime.Now.AddSeconds(-Numbers.SECS_TIMEOUT_JOB) - , true) + , null, true) .ConfigureAwait(false); var ret2 = await UpdateAsync( // 空闲中,下次执行时间在当前时间减去超时时间以前;将下次执行时间调整到现在 new Sys_Job { NextExecTime = DateTime.Now, NextTimeId = DateTime.Now.TimeUnixUtc() } , [nameof(Sys_Job.NextExecTime), nameof(Sys_Job.NextTimeId)], null , a => a.Status == JobStatues.Idle && a.NextExecTime < DateTime.Now.AddSeconds(-Numbers.SECS_TIMEOUT_JOB) - , true) + , null, true) .ConfigureAwait(false); return ret1 + ret2; } diff --git a/src/frontend/admin/src/views/sys/api/index.vue b/src/frontend/admin/src/views/sys/api/index.vue index 3733b6f3..9079668b 100644 --- a/src/frontend/admin/src/views/sys/api/index.vue +++ b/src/frontend/admin/src/views/sys/api/index.vue @@ -67,11 +67,11 @@ export default { this.loading = true try { await this.$API.sys_api.sync.post() - this.$refs.table.refresh() this.$message.success('同步成功') } catch { // } + this.$refs.table.refresh() this.loading = false }, }, diff --git a/src/frontend/admin/src/views/sys/config/index.vue b/src/frontend/admin/src/views/sys/config/index.vue index fba1efad..a02ad4ce 100644 --- a/src/frontend/admin/src/views/sys/config/index.vue +++ b/src/frontend/admin/src/views/sys/config/index.vue @@ -133,21 +133,21 @@ export default { const res = await this.$API.sys_config.bulkDelete.post({ items: this.selection, }) - this.$refs.table.refresh() this.$message.success(`删除 ${res.data} 项`) } catch { // } + this.$refs.table.refresh() loading?.close() }, async changeSwitch(event, row) { try { await this.$API.sys_config.edit.post(row) - this.$refs.table.refresh() this.$message.success(`操作成功`) } catch { // } + this.$refs.table.refresh() }, filterChange(data) { Object.entries(data).forEach(([key, value]) => { @@ -160,10 +160,10 @@ export default { try { const res = await this.$API.sys_config.delete.post({ id: row.id }) this.$message.success(`删除 ${res.data} 项`) - this.$refs.table.refresh() } catch { // } + this.$refs.table.refresh() }, onSearch(form) { if (Array.isArray(form.dy.createdTime)) { diff --git a/src/frontend/admin/src/views/sys/dept/index.vue b/src/frontend/admin/src/views/sys/dept/index.vue index b58076e5..98f737e8 100644 --- a/src/frontend/admin/src/views/sys/dept/index.vue +++ b/src/frontend/admin/src/views/sys/dept/index.vue @@ -129,11 +129,11 @@ export default { async changeSwitch(event, row) { try { await this.$API.sys_dept.setEnabled.post(row) - this.$refs.table.refresh() this.$message.success(`操作成功`) } catch { // } + this.$refs.table.refresh() }, async batchDel() { let loading @@ -145,11 +145,11 @@ export default { const res = await this.$API.sys_dept.bulkDelete.post({ items: this.selection, }) - this.$refs.table.refresh() this.$message.success(`删除 ${res.data} 项`) } catch { // } + this.$refs.table.refresh() loading?.close() }, filterChange(data) { @@ -162,10 +162,10 @@ export default { try { const res = await this.$API.sys_dept.delete.post({ id: row.id }) this.$message.success(`删除 ${res.data} 项`) - this.$refs.table.refresh() } catch { // } + this.$refs.table.refresh() }, onSearch(form) { if (Array.isArray(form.dy.createdTime)) { diff --git a/src/frontend/admin/src/views/sys/dic/list/index.vue b/src/frontend/admin/src/views/sys/dic/list/index.vue index 9e80c638..6eebb1ca 100644 --- a/src/frontend/admin/src/views/sys/dic/list/index.vue +++ b/src/frontend/admin/src/views/sys/dic/list/index.vue @@ -139,11 +139,11 @@ export default { async rowDel(row) { try { const res = await this.$API.sys_dic.deleteContent.post({ id: row.id }) - this.$refs.table.refresh() this.$message.success(`删除 ${res.data} 项`) } catch { // } + this.$refs.table.refresh() }, }, } diff --git a/src/frontend/admin/src/views/sys/job/index.vue b/src/frontend/admin/src/views/sys/job/index.vue index 35c7f132..9a125d2a 100644 --- a/src/frontend/admin/src/views/sys/job/index.vue +++ b/src/frontend/admin/src/views/sys/job/index.vue @@ -241,15 +241,14 @@ export default { try { await this.$API.sys_job.setEnabled.post(row) this.$message.success(`操作成功`) - this.$refs.table.refresh() } catch { // } + this.$refs.table.refresh() }, async execute(row) { try { await this.$API.sys_job.execute.post({ id: row.id }) - this.$refs.table.refresh() this.$notify.success({ dangerouslyUseHTMLString: true, message: `
已发起执行请求,5 秒后弹出执行结果
`, @@ -270,16 +269,17 @@ export default { .innerText.replace(countdown, `${parseInt(countdown) - 1}`) }, 1000) } catch {} + this.$refs.table.refresh() }, //删除 async rowDel(row) { try { const res = await this.$API.sys_job.delete.post({ id: row.id }) - this.$refs.table.refresh() this.$message.success(`删除 ${res.data} 项`) } catch { // } + this.$refs.table.refresh() }, //批量删除 async batchDel() { @@ -292,12 +292,12 @@ export default { const res = await this.$API.sys_job.bulkDelete.post({ items: this.selection, }) - this.$refs.table.refresh() this.$message.success(`删除 ${res.data} 项`) } catch { // } loading?.close() + this.$refs.table.refresh() }, //搜索 diff --git a/src/frontend/admin/src/views/sys/msg/index.vue b/src/frontend/admin/src/views/sys/msg/index.vue index f8249b3d..13f04ffb 100644 --- a/src/frontend/admin/src/views/sys/msg/index.vue +++ b/src/frontend/admin/src/views/sys/msg/index.vue @@ -143,11 +143,11 @@ export default { async rowDel(row) { try { const res = await this.$API.sys_sitemsg.delete.post({ id: row.id }) - this.$refs.table.refresh() this.$message.success(`删除 ${res.data} 项`) } catch { // } + this.$refs.table.refresh() }, //批量删除 async batchDel() { @@ -160,12 +160,12 @@ export default { const res = await this.$API.sys_sitemsg.bulkDelete.post({ items: this.selection, }) - this.$refs.table.refresh() this.$message.success(`删除 ${res.data} 项`) } catch { // } loading?.close() + this.$refs.table.refresh() }, //搜索 diff --git a/src/frontend/admin/src/views/sys/role/index.vue b/src/frontend/admin/src/views/sys/role/index.vue index 8dacf335..b2f34d6f 100644 --- a/src/frontend/admin/src/views/sys/role/index.vue +++ b/src/frontend/admin/src/views/sys/role/index.vue @@ -177,11 +177,11 @@ export default { async changeSwitch(event, row) { try { await this.$API.sys_role.setEnabled.post(row) - this.$refs.table.refresh() this.$message.success(`操作成功`) } catch { // } + this.$refs.table.refresh() }, async batchDel() { let loading @@ -193,12 +193,12 @@ export default { const res = await this.$API.sys_role.bulkDelete.post({ items: this.selection, }) - this.$refs.table.refresh() this.$message.success(`删除 ${res.data} 项`) } catch { // } loading?.close() + this.$refs.table.refresh() }, filterChange(data) { Object.entries(data).forEach(([key, value]) => { @@ -210,10 +210,10 @@ export default { try { const res = await this.$API.sys_role.delete.post({ id: row.id }) this.$message.success(`删除 ${res.data} 项`) - this.$refs.table.refresh() } catch { // } + this.$refs.table.refresh() }, onSearch(form) { if (Array.isArray(form.dy.createdTime)) { diff --git a/src/frontend/admin/src/views/sys/user/index.vue b/src/frontend/admin/src/views/sys/user/index.vue index af81ae73..51994783 100644 --- a/src/frontend/admin/src/views/sys/user/index.vue +++ b/src/frontend/admin/src/views/sys/user/index.vue @@ -139,11 +139,11 @@ export default { async changeSwitch(event, row) { try { await this.$API.sys_user.setEnabled.post(row) - this.$refs.table.refresh() this.$message.success(`操作成功`) } catch { // } + this.$refs.table.refresh() }, filterChange(data) { Object.entries(data).forEach(([key, value]) => {