From f52d5d662b8482485d5e44016f0f249f79cbfe19 Mon Sep 17 00:00:00 2001 From: xiangheng <11675084@qq.com> Date: Mon, 13 May 2024 20:31:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/views/monitor_web/index.vue | 2 +- server/README.md | 1 + server/admin/common/album/service.go | 5 +- .../flow/flow_apply/flow_apply_service.go | 1 + server/admin/generator/gen/schema.go | 8 +- server/admin/generator/gen/service.go | 4 +- .../tpl_utils/templates/gocode/model.go.tpl | 19 +- .../tpl_utils/templates/gocode/route.go.tpl | 18 +- .../tpl_utils/templates/gocode/schema.go.tpl | 2 +- .../tpl_utils/templates/gocode/service.go.tpl | 7 +- .../tpl_utils/templates/vue/index.vue.tpl | 3 +- server/admin/generator/tpl_utils/utils.go | 10 +- .../monitor_client/monitor_client_service.go | 2 +- .../admin/monitor_web/monitor_web_service.go | 8 +- server/admin/monitor_web_route.go | 23 +- server/admin/setting/dict_data/service.go | 3 +- server/admin/setting/dict_type/service.go | 3 +- server/admin/system/admin/service.go | 4 +- server/admin/system/dept/service.go | 37 +- server/admin/system/log/service.go | 8 +- server/admin/system/login/service.go | 3 +- server/admin/system/post/service.go | 40 +- server/core/time.go | 120 +- server/go.mod | 1 + server/go.sum | 10 + server/middleware/log.go | 18 +- server/model/article_collect.go | 16 +- server/model/common_model/album.go | 44 +- server/model/flow_apply.go | 34 +- server/model/flow_history.go | 8 +- server/model/flow_template.go | 7 + server/model/gen_model/gen.go | 50 +- server/model/monitor_client.go | 6 +- server/model/monitor_project.go | 8 +- server/model/monitor_web.go | 6 +- server/model/setting_model/dict_data.go | 26 +- server/model/setting_model/dict_type.go | 20 +- server/model/system_model/system.go | 204 +-- sql/x_admin - 副本.sql | 1287 +++++++++++++++++ sql/x_admin.sql | 866 ++++------- 40 files changed, 1998 insertions(+), 944 deletions(-) create mode 100644 sql/x_admin - 副本.sql diff --git a/admin/src/views/monitor_web/index.vue b/admin/src/views/monitor_web/index.vue index 1501acb..6c86f88 100644 --- a/admin/src/views/monitor_web/index.vue +++ b/admin/src/views/monitor_web/index.vue @@ -113,7 +113,7 @@ import { monitor_web_export_file } from '@/api/monitor_web' import { monitor_project_list_all } from '@/api/monitor_project' -import { useDictData, useDictOptions } from '@/hooks/useDictOptions' +import { useDictOptions } from '@/hooks/useDictOptions' import { usePaging } from '@/hooks/usePaging' import feedback from '@/utils/feedback' import EditPopup from './edit.vue' diff --git a/server/README.md b/server/README.md index 70741b6..7976779 100644 --- a/server/README.md +++ b/server/README.md @@ -30,3 +30,4 @@ ### Go应该注意的问题 1. 循环依赖 2. 零值更新,避免数据库默认值为0 +3. 软删除,本系统需要IsDelete和DeleteTime字段,https://gorm.io/zh_CN/docs/delete.html#%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F \ No newline at end of file diff --git a/server/admin/common/album/service.go b/server/admin/common/album/service.go index 0d626f8..93a292c 100644 --- a/server/admin/common/album/service.go +++ b/server/admin/common/album/service.go @@ -2,7 +2,6 @@ package album import ( "path" - "time" "x_admin/config" "x_admin/core" "x_admin/core/request" @@ -154,7 +153,7 @@ func (albSrv albumService) AlbumDel(ids []uint) (e error) { return response.AssertArgumentError.Make("文件丢失!") } err = albSrv.db.Model(&common_model.Album{}).Where("id in ?", ids).Updates( - common_model.Album{IsDelete: 1, DeleteTime: time.Now().Unix()}).Error + common_model.Album{IsDelete: 1, DeleteTime: core.NowTime()}).Error e = response.CheckErr(err, "AlbumDel UpdateColumn err") return } @@ -222,7 +221,7 @@ func (albSrv albumService) CateDel(id uint) (e error) { return response.AssertArgumentError.Make("当前分类正被使用中,不能删除!") } cate.IsDelete = 1 - cate.DeleteTime = time.Now().Unix() + cate.DeleteTime = core.NowTime() err = albSrv.db.Save(&cate).Error e = response.CheckErr(err, "CateDel Save err") return diff --git a/server/admin/flow/flow_apply/flow_apply_service.go b/server/admin/flow/flow_apply/flow_apply_service.go index fdf5657..82ebd3c 100644 --- a/server/admin/flow/flow_apply/flow_apply_service.go +++ b/server/admin/flow/flow_apply/flow_apply_service.go @@ -159,6 +159,7 @@ func (Service flowApplyService) Del(id int) (e error) { } // 删除 obj.IsDelete = 1 + obj.DeleteTime = core.NowTime() err = Service.db.Save(&obj).Error e = response.CheckErr(err, "Del Save err") return diff --git a/server/admin/generator/gen/schema.go b/server/admin/generator/gen/schema.go index 1286c1c..1e602a1 100644 --- a/server/admin/generator/gen/schema.go +++ b/server/admin/generator/gen/schema.go @@ -102,10 +102,10 @@ type DownloadReq struct { // DbTableResp 数据表返回信息 type DbTableResp struct { - TableName string `json:"tableName" structs:"tableName"` // 表的名称 - TableComment string `json:"tableComment" structs:"tableComment"` // 表的描述 - CreateTime core.OnlyRespTsTime `json:"createTime" structs:"createTime"` // 创建时间 - UpdateTime core.OnlyRespTsTime `json:"updateTime" structs:"updateTime"` // 更新时间 + TableName string `json:"tableName" structs:"tableName"` // 表的名称 + TableComment string `json:"tableComment" structs:"tableComment"` // 表的描述 + CreateTime core.TsTime `json:"createTime" structs:"createTime"` // 创建时间 + UpdateTime core.TsTime `json:"updateTime" structs:"updateTime"` // 更新时间 } // GenTableResp 生成表返回信息 diff --git a/server/admin/generator/gen/service.go b/server/admin/generator/gen/service.go index 6eba35b..e4f21e7 100644 --- a/server/admin/generator/gen/service.go +++ b/server/admin/generator/gen/service.go @@ -82,10 +82,10 @@ func (genSrv generateService) List(page request.PageReq, listReq ListTableReq) ( genModel = genModel.Where("table_comment like ?", "%"+listReq.TableComment+"%") } if !listReq.StartTime.IsZero() { - genModel = genModel.Where("create_time >= ?", listReq.StartTime.Unix()) + genModel = genModel.Where("create_time >= ?", listReq.StartTime) } if !listReq.EndTime.IsZero() { - genModel = genModel.Where("create_time <= ?", listReq.EndTime.Unix()) + genModel = genModel.Where("create_time <= ?", listReq.EndTime) } // 总数 var count int64 diff --git a/server/admin/generator/tpl_utils/templates/gocode/model.go.tpl b/server/admin/generator/tpl_utils/templates/gocode/model.go.tpl index 9403a7b..4d59a9e 100644 --- a/server/admin/generator/tpl_utils/templates/gocode/model.go.tpl +++ b/server/admin/generator/tpl_utils/templates/gocode/model.go.tpl @@ -1,14 +1,23 @@ package model +import ( + "x_admin/core" + "gorm.io/plugin/soft_delete" +) //{{{ title (toCamelCase .EntityName) }}} {{{ .FunctionName }}}实体 type {{{ title (toCamelCase .EntityName) }}} struct { {{{- range .Columns }}} {{{- if not (contains $.SubTableFields .ColumnName) }}} - {{{ if eq .GoType "core.TsTime" }}} - {{{ title (toCamelCase .GoField) }}} int64 `gorm:"{{{ if eq .GoField "create_time" }}}autoCreateTime;{{{ else }}}{{{if eq .GoField "update_time"}}}autoUpdateTime;{{{ end }}}{{{ end }}}comment:'{{{ .ColumnComment }}}'" excel:"name:{{{ .ColumnComment }}};"` // {{{ .ColumnComment }}} - {{{ else }}} - {{{ title (toCamelCase .GoField) }}} {{{ .GoType }}} `gorm:"{{{ if .IsPk }}}primarykey;{{{ end }}}comment:'{{{ .ColumnComment }}}'" excel:"name:{{{ .ColumnComment }}};"` // {{{ .ColumnComment }}} - {{{- end }}} + {{{ if eq .GoField "is_delete" }}} + IsDelete soft_delete.DeletedAt `gorm:"not null;default:0;softDelete:flag,DeletedAtField:DeleteTime;comment:'是否删除: 0=否, 1=是'"` + {{{ else }}} + {{{ if eq .GoType "core.TsTime" }}} + {{{ title (toCamelCase .GoField) }}} core.TsTime `gorm:"{{{ if eq .GoField "create_time" }}}autoCreateTime;{{{ else }}}{{{if eq .GoField "update_time"}}}autoUpdateTime;{{{ end }}}{{{ end }}}comment:'{{{ .ColumnComment }}}'" excel:"name:{{{ .ColumnComment }}};"` // {{{ .ColumnComment }}} + {{{ else }}} + {{{ title (toCamelCase .GoField) }}} {{{ .GoType }}} `gorm:"{{{ if .IsPk }}}primarykey;{{{ end }}}comment:'{{{ .ColumnComment }}}'" excel:"name:{{{ .ColumnComment }}};"` // {{{ .ColumnComment }}} + {{{- end }}} + {{{- end }}} + {{{- end }}} {{{- end }}} } diff --git a/server/admin/generator/tpl_utils/templates/gocode/route.go.tpl b/server/admin/generator/tpl_utils/templates/gocode/route.go.tpl index 0d39bd5..dacfded 100644 --- a/server/admin/generator/tpl_utils/templates/gocode/route.go.tpl +++ b/server/admin/generator/tpl_utils/templates/gocode/route.go.tpl @@ -26,16 +26,16 @@ admin:{{{.ModuleName }}}:ExportFile admin:{{{.ModuleName }}}:ImportFile // 列表 -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, paths, component, is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'C', '{{{ .FunctionName }}}', '/{{{ .ModuleName }}}/index', '{{{ .ModuleName }}}/index', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, paths, component, is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'C', '{{{ .FunctionName }}}', '/{{{ .ModuleName }}}/index', '{{{ .ModuleName }}}/index', 0, 1, 0, now(), now()); 按钮 -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}添加','admin:{{{ .ModuleName }}}:add', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}编辑','admin:{{{ .ModuleName }}}:edit', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}删除','admin:{{{ .ModuleName }}}:del', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}列表','admin:{{{ .ModuleName }}}:list', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}全部列表','admin:{{{ .ModuleName }}}:listAll', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}详情','admin:{{{ .ModuleName }}}:detail', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}导出excel','admin:{{{ .ModuleName }}}:ExportFile', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); -INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}导入excel','admin:{{{ .ModuleName }}}:ImportFile', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}添加','admin:{{{ .ModuleName }}}:add', 0, 1, 0, now(), now()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}编辑','admin:{{{ .ModuleName }}}:edit', 0, 1, 0, now(), now()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}删除','admin:{{{ .ModuleName }}}:del', 0, 1, 0, now(), now()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}列表','admin:{{{ .ModuleName }}}:list', 0, 1, 0, now(), now()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}全部列表','admin:{{{ .ModuleName }}}:listAll', 0, 1, 0, now(), now()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}详情','admin:{{{ .ModuleName }}}:detail', 0, 1, 0, now(), now()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}导出excel','admin:{{{ .ModuleName }}}:ExportFile', 0, 1, 0, now(), now()); +INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '{{{ .FunctionName }}}导入excel','admin:{{{ .ModuleName }}}:ImportFile', 0, 1, 0, now(), now()); */ diff --git a/server/admin/generator/tpl_utils/templates/gocode/schema.go.tpl b/server/admin/generator/tpl_utils/templates/gocode/schema.go.tpl index a9c3f3c..6861d92 100644 --- a/server/admin/generator/tpl_utils/templates/gocode/schema.go.tpl +++ b/server/admin/generator/tpl_utils/templates/gocode/schema.go.tpl @@ -1,5 +1,5 @@ package {{{ .ModuleName }}} - + //{{{ title (toCamelCase .EntityName) }}}ListReq {{{ .FunctionName }}}列表参数 type {{{ title (toCamelCase .EntityName) }}}ListReq struct { diff --git a/server/admin/generator/tpl_utils/templates/gocode/service.go.tpl b/server/admin/generator/tpl_utils/templates/gocode/service.go.tpl index 009ec9d..dc25a13 100644 --- a/server/admin/generator/tpl_utils/templates/gocode/service.go.tpl +++ b/server/admin/generator/tpl_utils/templates/gocode/service.go.tpl @@ -29,10 +29,10 @@ func (service {{{ toCamelCase .EntityName }}}Service) GetModel(listReq {{{ title {{{- $queryOpr := index $.ModelOprMap .QueryType }}} {{{- if eq .HtmlType "datetime" }}} if listReq.{{{ title (toCamelCase .ColumnName) }}}Start != "" { - dbModel = dbModel.Where("{{{ .ColumnName }}} >= UNIX_TIMESTAMP(?)", listReq.{{{ title (toCamelCase .ColumnName) }}}Start) + dbModel = dbModel.Where("{{{ .ColumnName }}} >= ?", listReq.{{{ title (toCamelCase .ColumnName) }}}Start) } if listReq.{{{ title (toCamelCase .ColumnName) }}}End != "" { - dbModel = dbModel.Where("{{{ .ColumnName }}} <= UNIX_TIMESTAMP(?)", listReq.{{{ title (toCamelCase .ColumnName) }}}End) + dbModel = dbModel.Where("{{{ .ColumnName }}} <= ?", listReq.{{{ title (toCamelCase .ColumnName) }}}End) } {{{- else }}} {{{- if and (eq .GoType "string") (eq $queryOpr "like") }}} @@ -154,6 +154,9 @@ func (service {{{ toCamelCase .EntityName }}}Service) Del(id int) (e error) { // 删除 {{{- if contains .AllFields "is_delete" }}} obj.IsDelete = 1 + {{{- if contains .AllFields "delete_time" }}} + obj.DeleteTime = core.NowTime() + {{{- end }}} err = service.db.Save(&obj).Error e = response.CheckErr(err, "删除失败") {{{- else }}} diff --git a/server/admin/generator/tpl_utils/templates/vue/index.vue.tpl b/server/admin/generator/tpl_utils/templates/vue/index.vue.tpl index 25c7405..15c0e2f 100644 --- a/server/admin/generator/tpl_utils/templates/vue/index.vue.tpl +++ b/server/admin/generator/tpl_utils/templates/vue/index.vue.tpl @@ -1,7 +1,8 @@