From 57330784ac67c7d5df3edb0e1e147c40fd379114 Mon Sep 17 00:00:00 2001 From: linwenxiang <991154416@qq.com> Date: Tue, 7 Sep 2021 21:45:25 +0800 Subject: [PATCH 01/41] feat :sparkles: mirror to gitlab --- .github/workflows/mirror.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/mirror.yaml b/.github/workflows/mirror.yaml index 902a19c8..9249c8e7 100644 --- a/.github/workflows/mirror.yaml +++ b/.github/workflows/mirror.yaml @@ -15,3 +15,15 @@ jobs: git@gitee.com:go-admin-team/go-admin.git ssh_private_key: ${{ secrets.GITEE_KEY }} + mirror_to_gitlab: + runs-on: ubuntu-latest + steps: + - name: 'Checkout' + uses: actions/checkout@v1 + - name: 'Mirror to gitlab' + uses: pixta-dev/repository-mirroring-action@v1 + with: + target_repo_url: + git@gitlab.com:go-admin-team/go-admin.git + ssh_private_key: + ${{ secrets.GITLAB_KEY }} From 64cbf311848169d154d1dfa29157df30f0c1844f Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 22 Oct 2021 12:04:48 +0800 Subject: [PATCH 02/41] Update db.sql --- config/db.sql | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/config/db.sql b/config/db.sql index 8bae7d27..d1c97d14 100644 --- a/config/db.sql +++ b/config/db.sql @@ -2,7 +2,6 @@ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -BEGIN; INSERT INTO `sys_api` VALUES (5, 'go-admin/app/admin/apis.SysLoginLog.Get-fm', '登录日志通过id获取', '/api/v1/sys-login-log/:id', 'BUS', 'GET', '2021-05-13 19:59:00.728', '2021-06-17 11:37:12.331', NULL, 0, 0); INSERT INTO `sys_api` VALUES (6, 'go-admin/app/admin/apis.SysOperaLog.GetPage-fm', '操作日志列表', '/api/v1/sys-opera-log', 'BUS', 'GET', '2021-05-13 19:59:00.778', '2021-06-17 11:48:40.732', NULL, 0, 0); INSERT INTO `sys_api` VALUES (7, 'go-admin/app/admin/apis.SysOperaLog.Get-fm', '操作日志通过id获取', '/api/v1/sys-opera-log/:id', 'BUS', 'GET', '2021-05-13 19:59:00.821', '2021-06-16 21:49:48.598', NULL, 0, 0); @@ -124,25 +123,19 @@ INSERT INTO `sys_api` VALUES (156, 'go-admin/app/admin/apis.SysUser.Delete-fm', INSERT INTO `sys_api` VALUES (157, 'go-admin/app/admin/apis/tools.(*SysTable).DeleteSysTables-fm', '', '/api/v1/sys/tables/info/:tableId', '', 'DELETE', '2021-06-13 19:25:02.283', '2021-06-13 20:53:52.367', NULL, 0, 0); INSERT INTO `sys_api` VALUES (158, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/static/*filepath', '', 'HEAD', '2021-06-13 19:25:02.734', '2021-06-13 20:53:52.791', NULL, 0, 0); INSERT INTO `sys_api` VALUES (159, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/form-generator/*filepath', '', 'HEAD', '2021-06-13 19:25:02.808', '2021-06-13 20:53:52.838', NULL, 0, 0); -COMMIT; -BEGIN; INSERT INTO `sys_config` VALUES (1, '皮肤样式', 'sys_index_skinName', 'skin-green', 'Y', '0', '主框架页-默认皮肤样式名称:蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 13:50:13.123', NULL); INSERT INTO `sys_config` VALUES (2, '初始密码', 'sys_user_initPassword', '123456', 'Y', '0', '用户管理-账号初始密码:123456', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); INSERT INTO `sys_config` VALUES (3, '侧栏主题', 'sys_index_sideTheme', 'theme-dark', 'Y', '0', '主框架页-侧边栏主题:深色主题theme-dark,浅色主题theme-light', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); INSERT INTO `sys_config` VALUES (4, '系统名称', 'sys_app_name', 'go-admin管理系统', 'Y', '1', '', 1, 0, '2021-03-17 08:52:06.067', '2021-05-28 10:08:25.248', NULL); INSERT INTO `sys_config` VALUES (5, '系统logo', 'sys_app_logo', 'https://gitee.com/mydearzwj/image/raw/master/img/go-admin.png', 'Y', '1', '', 1, 0, '2021-03-17 08:53:19.462', '2021-03-17 08:53:19.462', NULL); -COMMIT; -BEGIN; INSERT INTO `sys_dept` VALUES (1, 0, '/0/1/', '爱拓科技', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:06:44.960', NULL); INSERT INTO `sys_dept` VALUES (7, 1, '/0/1/7/', '研发部', 1, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-16 21:35:00.109', NULL); INSERT INTO `sys_dept` VALUES (8, 1, '/0/1/8/', '运维部', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-16 21:41:39.747', NULL); INSERT INTO `sys_dept` VALUES (9, 1, '/0/1/9/', '客服部', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:07:05.993', NULL); INSERT INTO `sys_dept` VALUES (10, 1, '/0/1/10/', '人力资源', 3, 'aituo', '13782218188', 'atuo@aituo.com', '1', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:07:08.503', NULL); -COMMIT; -BEGIN; INSERT INTO `sys_dict_data` VALUES (1, 0, '正常', '2', 'sys_normal_disable', '', '', '', '2', '', '系统正常', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:40.168', NULL); INSERT INTO `sys_dict_data` VALUES (2, 0, '停用', '1', 'sys_normal_disable', '', '', '', '2', '', '系统停用', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); INSERT INTO `sys_dict_data` VALUES (3, 0, '男', '0', 'sys_user_sex', '', '', '', '2', '', '性别男', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); @@ -176,9 +169,7 @@ INSERT INTO `sys_dict_data` VALUES (30, 0, '退出', '11', 'sys_oper_type', '', INSERT INTO `sys_dict_data` VALUES (31, 0, '获取验证码', '12', 'sys_oper_type', '', '', '', '2', '', '获取验证码', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); INSERT INTO `sys_dict_data` VALUES (32, 0, '正常', '1', 'sys_content_status', '', '', '', '1', '', '', 1, 1, '2021-05-13 19:56:40.845', '2021-05-13 19:56:40.845', NULL); INSERT INTO `sys_dict_data` VALUES (33, 1, '禁用', '2', 'sys_content_status', '', '', '', '1', '', '', 1, 1, '2021-05-13 19:56:40.845', '2021-05-13 19:56:40.845', NULL); -COMMIT; -BEGIN; INSERT INTO `sys_dict_type` VALUES (1, '系统开关', 'sys_normal_disable', '2', '系统开关列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); INSERT INTO `sys_dict_type` VALUES (2, '用户性别', 'sys_user_sex', '2', '用户性别列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); INSERT INTO `sys_dict_type` VALUES (3, '菜单状态', 'sys_show_hide', '2', '菜单状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); @@ -190,14 +181,10 @@ INSERT INTO `sys_dict_type` VALUES (8, '系统状态', 'sys_common_status', '2', INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '2', '操作类型列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); INSERT INTO `sys_dict_type` VALUES (10, '通知状态', 'sys_notice_status', '2', '通知状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); INSERT INTO `sys_dict_type` VALUES (11, '内容状态', 'sys_content_status', '2', '', 1, 1, '2021-05-13 19:56:40.813', '2021-05-13 19:56:40.813', NULL); -COMMIT; -BEGIN; INSERT INTO `sys_job` VALUES (1, '接口测试', 'DEFAULT', 1, '0/5 * * * * ', 'http://localhost:8000', '', 1, 1, 1, 0, '2021-05-13 19:56:37.914', '2021-06-14 20:59:55.417', NULL, 1, 1); INSERT INTO `sys_job` VALUES (2, '函数测试', 'DEFAULT', 2, '0/5 * * * * ', 'ExamplesOne', '参数', 1, 1, 1, 0, '2021-05-13 19:56:37.914', '2021-05-31 23:55:37.221', NULL, 1, 1); -COMMIT; -BEGIN; INSERT INTO `sys_menu` VALUES (2, 'Admin', '系统管理', 'api-server', '/admin', '/0/2', 'M', '无', '', 0, 1, '', 'Layout', 10, '0', '1', 0, 1, '2021-05-20 21:58:45.679', '2021-06-17 11:48:40.703', NULL); INSERT INTO `sys_menu` VALUES (3, 'SysUserManage', '用户管理', 'user', '/admin/sys-user', '/0/2/3', 'C', '无', 'admin:sysUser:list', 2, 0, '', '/admin/sys-user/index', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); INSERT INTO `sys_menu` VALUES (43, '', '新增管理员', 'app-group-fill', '', '/0/2/3/43', 'F', 'POST', 'admin:sysUser:add', 3, 0, '', '', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); @@ -337,8 +324,7 @@ INSERT INTO `sys_post` VALUES (2, '首席技术执行官', 'CTO', 2, '2','首席 INSERT INTO `sys_post` VALUES (3, '首席运营官', 'COO', 3, '2','测试工程师', 1, 1,'2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); INSERT INTO `sys_role` VALUES (1, '系统管理员', '2', 'admin', 1, '', '', 1, '', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$/Glr4g9Svr6O0kvjsRJCXu3f0W8/dsP3XZyVNi1019ratWpSPMyw.', 'zhangwj', '13818888888', 1, '', '', '1', '1@qq.com', 1, 1, '', '2', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:40.205', NULL); -COMMIT; SET FOREIGN_KEY_CHECKS = 1; --- 数据完成 ; \ No newline at end of file +-- 数据完成 ; From 443c30d48cddffc1ed974eb4e04dac8f1c23cddd Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 22 Oct 2021 12:05:39 +0800 Subject: [PATCH 03/41] Update 1599190683659_tables.go --- cmd/migrate/migration/version/1599190683659_tables.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/migrate/migration/version/1599190683659_tables.go b/cmd/migrate/migration/version/1599190683659_tables.go index ef3076da..09a8e0e0 100644 --- a/cmd/migrate/migration/version/1599190683659_tables.go +++ b/cmd/migrate/migration/version/1599190683659_tables.go @@ -43,8 +43,8 @@ func _1599190683659Tables(db *gorm.DB, version string) error { if err := models.InitDb(tx); err != nil { } - return db.Create(&common.Migration{ + return tx.Create(&common.Migration{ Version: version, }).Error }) -} \ No newline at end of file +} From 88e4b37c03775b0291b9ef3233217ebcce1f3785 Mon Sep 17 00:00:00 2001 From: linwenxiang <991154416@qq.com> Date: Tue, 7 Dec 2021 22:44:39 +0800 Subject: [PATCH 04/41] feat :sparkles: push docker to github --- .github/workflows/go.yml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 797c12e9..8ee2a676 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -42,4 +42,25 @@ jobs: - run: | ref=${{ github.ref }} docker push goadminteam/go-admin:${ref##*/}-${{ github.sha }} - docker push goadminteam/go-admin:latest \ No newline at end of file + docker push goadminteam/go-admin:latest + + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From 562f761807291e83b7586e35bc434fee14c61227 Mon Sep 17 00:00:00 2001 From: linwenxiang <991154416@qq.com> Date: Tue, 7 Dec 2021 22:47:44 +0800 Subject: [PATCH 05/41] feat :sparkles: add dev to ci --- .github/workflows/go.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 8ee2a676..22c9b531 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -2,7 +2,7 @@ name: build on: push: - branches: [ master ] + branches: [ master, dev ] pull_request: branches: [ master ] From 0cc27355f7762e0ee84e91b3c3cc54a91f304836 Mon Sep 17 00:00:00 2001 From: linwenxiang <991154416@qq.com> Date: Tue, 7 Dec 2021 23:24:19 +0800 Subject: [PATCH 06/41] fix :bug: push to gihub --- .github/workflows/go.yml | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 22c9b531..cf466b2f 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -5,6 +5,9 @@ on: branches: [ master, dev ] pull_request: branches: [ master ] +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} jobs: @@ -33,16 +36,6 @@ jobs: run: | ref=${{ github.ref }} go mod vendor - docker build . -t goadminteam/go-admin:${ref##*/}-${{ github.sha }} - docker tag goadminteam/go-admin:${ref##*/}-${{ github.sha }} goadminteam/go-admin:latest - - uses: Azure/docker-login@v1 - with: - username: ${{ secrets.REGISTRY_USERNAME }} - password: ${{ secrets.REGISTRY_PASSWORD }} - - run: | - ref=${{ github.ref }} - docker push goadminteam/go-admin:${ref##*/}-${{ github.sha }} - docker push goadminteam/go-admin:latest - name: Log in to the Container registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 From 3ac1878c3c1ee2ef6538ed3fd40b1b36e29d9730 Mon Sep 17 00:00:00 2001 From: linwenxiang <991154416@qq.com> Date: Tue, 7 Dec 2021 23:37:33 +0800 Subject: [PATCH 07/41] perf :zap: performance docker build --- .github/workflows/go.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index cf466b2f..bf741c08 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -35,7 +35,7 @@ jobs: - name: Build run: | ref=${{ github.ref }} - go mod vendor + CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -a -installsuffix cgo -o go-admin . - name: Log in to the Container registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 @@ -54,6 +54,7 @@ jobs: uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc with: context: . + file: scripts/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From abdc80b756a51ab418f84ee3d626282decce8ebb Mon Sep 17 00:00:00 2001 From: inits Date: Mon, 10 Jan 2022 10:21:10 +0800 Subject: [PATCH 08/41] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E4=B8=8D?= =?UTF-8?q?=E7=94=9F=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/service/sys_role.go | 6 +++--- template/v4/dto.go.template | 6 ++++-- template/v4/no_actions/router_check_role.go.template | 7 ++++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/admin/service/sys_role.go b/app/admin/service/sys_role.go index ab374822..c10c18c2 100644 --- a/app/admin/service/sys_role.go +++ b/app/admin/service/sys_role.go @@ -142,7 +142,7 @@ func (e *SysRole) Update(c *dto.SysRoleUpdateReq, cb *casbin.SyncedEnforcer) err e.Log.Errorf("delete policy error:%s", err) return err } - mp:=make(map [string] interface{} ,0) + mp := make(map[string]interface{}, 0) polices := make([][]string, 0) for _, menu := range mlist { for _, api := range menu.SysApi { @@ -214,7 +214,7 @@ func (e *SysRole) UpdateDataScope(c *dto.RoleDataScopeReq) *SysRole { var dlist = make([]models.SysDept, 0) var model = models.SysRole{} tx.Preload("SysDept").First(&model, c.RoleId) - tx.Where("id in ?", c.DeptIds).Find(&dlist) + tx.Where("dept_id in ?", c.DeptIds).Find(&dlist) err = tx.Model(&model).Association("SysDept").Delete(model.SysDept) if err != nil { e.Log.Errorf("delete SysDept error:%s", err) @@ -299,4 +299,4 @@ func (e *SysRole) GetById(roleId int) ([]string, error) { permissions = append(permissions, l[i].Permission) } return permissions, nil -} \ No newline at end of file +} diff --git a/template/v4/dto.go.template b/template/v4/dto.go.template index 1aa5bfe4..82ee1355 100644 --- a/template/v4/dto.go.template +++ b/template/v4/dto.go.template @@ -70,7 +70,8 @@ func (s *{{.ClassName}}InsertReq) Generate(model *models.{{.ClassName}}) { {{- else if eq .GoField "CreatedAt" -}} {{- else if eq .GoField "UpdatedAt" -}} {{- else if eq .GoField "DeletedAt" -}} - {{- else if eq .GoField "CreateBy" -}} + {{- else if eq .GoField "CreateBy"}} + model.{{.GoField}} = s.{{.GoField}} // 添加这而,需要记录是被谁创建的 {{- else if eq .GoField "UpdateBy" -}} {{- else }} model.{{.GoField}} = s.{{.GoField}} @@ -110,7 +111,8 @@ func (s *{{.ClassName}}UpdateReq) Generate(model *models.{{.ClassName}}) { {{- else if eq .GoField "UpdatedAt" -}} {{- else if eq .GoField "DeletedAt" -}} {{- else if eq .GoField "CreateBy" -}} - {{- else if eq .GoField "UpdateBy" -}} + {{- else if eq .GoField "UpdateBy"}} + model.{{.GoField}} = s.{{.GoField}} // 添加这而,需要记录是被谁更新的 {{- else }} model.{{.GoField}} = s.{{.GoField}} {{- end -}} diff --git a/template/v4/no_actions/router_check_role.go.template b/template/v4/no_actions/router_check_role.go.template index 249c61c4..f8a3c3a7 100644 --- a/template/v4/no_actions/router_check_role.go.template +++ b/template/v4/no_actions/router_check_role.go.template @@ -6,6 +6,7 @@ import ( "go-admin/app/{{.PackageName}}/apis" "go-admin/common/middleware" + "go-admin/common/actions" ) func init() { @@ -17,10 +18,10 @@ func register{{.ClassName}}Router(v1 *gin.RouterGroup, authMiddleware *jwt.GinJW api := apis.{{.ClassName}}{} r := v1.Group("/{{.ModuleName}}").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { - r.GET("", api.GetPage) - r.GET("/:id", api.Get) + r.GET("", actions.PermissionAction(), api.GetPage) + r.GET("/:id", actions.PermissionAction(), api.Get) r.POST("", api.Insert) - r.PUT("/:id", api.Update) + r.PUT("/:id", actions.PermissionAction(), api.Update) r.DELETE("", api.Delete) } } \ No newline at end of file From 34b3395d15cd3674e9852666491d7197292daba1 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Mon, 10 Jan 2022 13:17:28 +0800 Subject: [PATCH 09/41] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 860b6290..4338902d 100644 --- a/README.md +++ b/README.md @@ -161,10 +161,10 @@ cgo: exec gcc: exec: "gcc": executable file not found in %PATH% ``` bash # The first configuration needs to initialize the database resource information # Use under macOS or linux -$ ./go-admin migrate -c=config/settings.dev.yml +$ ./go-admin migrate -c config/settings.dev.yml # ⚠️Note: Use under windows -$ go-admin.exe migrate -c=config/settings.dev.yml +$ go-admin.exe migrate -c config/settings.dev.yml # Start the project, you can also use the IDE for debugging # Use under macOS or linux @@ -274,4 +274,4 @@ The `go-admin` project has always been developed in the GoLand integrated develo [MIT](https://github.com/go-admin-team/go-admin/blob/master/LICENSE.md) -Copyright (c) 2020 wenjianzhang \ No newline at end of file +Copyright (c) 2020 wenjianzhang From fd2709affa8b760a07c5f725b15e8ef0d6e91bc1 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Mon, 10 Jan 2022 13:18:23 +0800 Subject: [PATCH 10/41] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 860b6290..4338902d 100644 --- a/README.md +++ b/README.md @@ -161,10 +161,10 @@ cgo: exec gcc: exec: "gcc": executable file not found in %PATH% ``` bash # The first configuration needs to initialize the database resource information # Use under macOS or linux -$ ./go-admin migrate -c=config/settings.dev.yml +$ ./go-admin migrate -c config/settings.dev.yml # ⚠️Note: Use under windows -$ go-admin.exe migrate -c=config/settings.dev.yml +$ go-admin.exe migrate -c config/settings.dev.yml # Start the project, you can also use the IDE for debugging # Use under macOS or linux @@ -274,4 +274,4 @@ The `go-admin` project has always been developed in the GoLand integrated develo [MIT](https://github.com/go-admin-team/go-admin/blob/master/LICENSE.md) -Copyright (c) 2020 wenjianzhang \ No newline at end of file +Copyright (c) 2020 wenjianzhang From ae8e32d8060d95efdf2c5432b04982ea698af56f Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Mon, 10 Jan 2022 13:18:59 +0800 Subject: [PATCH 11/41] Update README.Zh-cn.md --- README.Zh-cn.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.Zh-cn.md b/README.Zh-cn.md index 1d4cc323..9447895f 100644 --- a/README.Zh-cn.md +++ b/README.Zh-cn.md @@ -167,10 +167,10 @@ cgo: exec gcc: exec: "gcc": executable file not found in %PATH% ``` bash # 首次配置需要初始化数据库资源信息 # macOS or linux 下使用 -$ ./go-admin migrate -c=config/settings.dev.yml +$ ./go-admin migrate -c config/settings.dev.yml # ⚠️注意:windows 下使用 -$ go-admin.exe migrate -c=config/settings.dev.yml +$ go-admin.exe migrate -c config/settings.dev.yml # 启动项目,也可以用IDE进行调试 @@ -284,4 +284,4 @@ npm run dev [MIT](https://github.com/go-admin-team/go-admin/blob/master/LICENSE.md) -Copyright (c) 2020 wenjianzhang \ No newline at end of file +Copyright (c) 2020 wenjianzhang From 0b73bd7b25c9281e0e4b91e005b975fe8fe1e103 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 22 Jan 2022 19:37:56 +0800 Subject: [PATCH 12/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9sqplite=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/migrate/migration/models/initdb.go | 12 +- config/db-begin-mysql.sql | 2 + config/db-end-mysql.sql | 1 + config/db.sql | 640 ++++++++++++------------- go-admin-db.db | Bin 0 -> 319488 bytes 5 files changed, 330 insertions(+), 325 deletions(-) create mode 100644 config/db-begin-mysql.sql create mode 100644 config/db-end-mysql.sql create mode 100644 go-admin-db.db diff --git a/cmd/migrate/migration/models/initdb.go b/cmd/migrate/migration/models/initdb.go index 9bb37a2a..5a37ec59 100644 --- a/cmd/migrate/migration/models/initdb.go +++ b/cmd/migrate/migration/models/initdb.go @@ -11,10 +11,18 @@ import ( func InitDb(db *gorm.DB) (err error) { filePath := "config/db.sql" - err = ExecSql(db, filePath) if global.Driver == "postgres" { filePath = "config/pg.sql" err = ExecSql(db, filePath) + } else if global.Driver == "mysql" { + filePath = "config/db-begin-mysql.sql" + err = ExecSql(db, filePath) + filePath = "config/db.sql" + err = ExecSql(db, filePath) + filePath = "config/db-end-mysql.sql" + err = ExecSql(db, filePath) + } else { + err = ExecSql(db, filePath) } return err } @@ -52,4 +60,4 @@ func Ioutil(filePath string) (string, error) { } else { return "", err } -} +} \ No newline at end of file diff --git a/config/db-begin-mysql.sql b/config/db-begin-mysql.sql new file mode 100644 index 00000000..04da2f1a --- /dev/null +++ b/config/db-begin-mysql.sql @@ -0,0 +1,2 @@ +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; \ No newline at end of file diff --git a/config/db-end-mysql.sql b/config/db-end-mysql.sql new file mode 100644 index 00000000..4bd9d01e --- /dev/null +++ b/config/db-end-mysql.sql @@ -0,0 +1 @@ +SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/config/db.sql b/config/db.sql index d1c97d14..9ec63b4c 100644 --- a/config/db.sql +++ b/config/db.sql @@ -1,330 +1,324 @@ -- 开始初始化数据 ; -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; +INSERT INTO sys_api VALUES (5, 'go-admin/app/admin/apis.SysLoginLog.Get-fm', '登录日志通过id获取', '/api/v1/sys-login-log/:id', 'BUS', 'GET', '2021-05-13 19:59:00.728', '2021-06-17 11:37:12.331', NULL, 0, 0); +INSERT INTO sys_api VALUES (6, 'go-admin/app/admin/apis.SysOperaLog.GetPage-fm', '操作日志列表', '/api/v1/sys-opera-log', 'BUS', 'GET', '2021-05-13 19:59:00.778', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (7, 'go-admin/app/admin/apis.SysOperaLog.Get-fm', '操作日志通过id获取', '/api/v1/sys-opera-log/:id', 'BUS', 'GET', '2021-05-13 19:59:00.821', '2021-06-16 21:49:48.598', NULL, 0, 0); +INSERT INTO sys_api VALUES (8, 'go-admin/common/actions.IndexAction.func1', '分类列表', '/api/v1/syscategory', 'BUS', 'GET', '2021-05-13 19:59:00.870', '2021-06-13 20:53:47.883', NULL, 0, 0); +INSERT INTO sys_api VALUES (9, 'go-admin/common/actions.ViewAction.func1', '分类通过id获取', '/api/v1/syscategory/:id', 'BUS', 'GET', '2021-05-13 19:59:00.945', '2021-06-13 20:53:47.926', NULL, 0, 0); +INSERT INTO sys_api VALUES (10, 'go-admin/common/actions.IndexAction.func1', '内容列表', '/api/v1/syscontent', 'BUS', 'GET', '2021-05-13 19:59:01.005', '2021-06-13 20:53:47.966', NULL, 0, 0); +INSERT INTO sys_api VALUES (11, 'go-admin/common/actions.ViewAction.func1', '内容通过id获取', '/api/v1/syscontent/:id', 'BUS', 'GET', '2021-05-13 19:59:01.056', '2021-06-13 20:53:48.005', NULL, 0, 0); +INSERT INTO sys_api VALUES (15, 'go-admin/common/actions.IndexAction.func1', 'job列表', '/api/v1/sysjob', 'BUS', 'GET', '2021-05-13 19:59:01.248', '2021-06-13 20:53:48.169', NULL, 0, 0); +INSERT INTO sys_api VALUES (16, 'go-admin/common/actions.ViewAction.func1', 'job通过id获取', '/api/v1/sysjob/:id', 'BUS', 'GET', '2021-05-13 19:59:01.298', '2021-06-13 20:53:48.214', NULL, 0, 0); +INSERT INTO sys_api VALUES (21, 'go-admin/app/admin/apis.SysDictType.GetPage-fm', '字典类型列表', '/api/v1/dict/type', 'BUS', 'GET', '2021-05-13 19:59:01.525', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (22, 'go-admin/app/admin/apis.SysDictType.GetAll-fm', '字典类型查询【代码生成】', '/api/v1/dict/type-option-select', 'SYS', 'GET', '2021-05-13 19:59:01.582', '2021-06-13 20:53:48.388', NULL, 0, 0); +INSERT INTO sys_api VALUES (23, 'go-admin/app/admin/apis.SysDictType.Get-fm', '字典类型通过id获取', '/api/v1/dict/type/:id', 'BUS', 'GET', '2021-05-13 19:59:01.632', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (24, 'go-admin/app/admin/apis.SysDictData.GetPage-fm', '字典数据列表', '/api/v1/dict/data', 'BUS', 'GET', '2021-05-13 19:59:01.684', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (25, 'go-admin/app/admin/apis.SysDictData.Get-fm', '字典数据通过code获取', '/api/v1/dict/data/:dictCode', 'BUS', 'GET', '2021-05-13 19:59:01.732', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (26, 'go-admin/app/admin/apis.SysDictData.GetSysDictDataAll-fm', '数据字典根据key获取', '/api/v1/dict-data/option-select', 'SYS', 'GET', '2021-05-13 19:59:01.832', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (27, 'go-admin/app/admin/apis.SysDept.GetPage-fm', '部门列表', '/api/v1/dept', 'BUS', 'GET', '2021-05-13 19:59:01.940', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (28, 'go-admin/app/admin/apis.SysDept.Get-fm', '部门通过id获取', '/api/v1/dept/:id', 'BUS', 'GET', '2021-05-13 19:59:02.009', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (29, 'go-admin/app/admin/apis.SysDept.Get2Tree-fm', '查询部门下拉树【角色权限-自定权限】', '/api/v1/deptTree', 'SYS', 'GET', '2021-05-13 19:59:02.050', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (30, 'go-admin/app/admin/apis/tools.(*Gen).GetDBTableList-fm', '数据库表列表', '/api/v1/db/tables/page', 'SYS', 'GET', '2021-05-13 19:59:02.098', '2021-06-13 20:53:48.730', NULL, 0, 0); +INSERT INTO sys_api VALUES (31, 'go-admin/app/admin/apis/tools.(*Gen).GetDBColumnList-fm', '数据表列列表', '/api/v1/db/columns/page', 'SYS', 'GET', '2021-05-13 19:59:02.140', '2021-06-13 20:53:48.771', NULL, 0, 0); +INSERT INTO sys_api VALUES (32, 'go-admin/app/admin/apis/tools.Gen.GenCode-fm', '数据库表生成到项目', '/api/v1/gen/toproject/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.183', '2021-06-13 20:53:48.812', NULL, 0, 0); +INSERT INTO sys_api VALUES (33, 'go-admin/app/admin/apis/tools.Gen.GenMenuAndApi-fm', '数据库表生成到DB', '/api/v1/gen/todb/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.227', '2021-06-13 20:53:48.853', NULL, 0, 0); +INSERT INTO sys_api VALUES (34, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTablesTree-fm', '关系表数据【代码生成】', '/api/v1/gen/tabletree', 'SYS', 'GET', '2021-05-13 19:59:02.271', '2021-06-13 20:53:48.893', NULL, 0, 0); +INSERT INTO sys_api VALUES (35, 'go-admin/app/admin/apis/tools.Gen.Preview-fm', '生成预览通过id获取', '/api/v1/gen/preview/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.315', '2021-06-13 20:53:48.935', NULL, 0, 0); +INSERT INTO sys_api VALUES (36, 'go-admin/app/admin/apis/tools.Gen.GenApiToFile-fm', '生成api带文件', '/api/v1/gen/apitofile/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.357', '2021-06-13 20:53:48.977', NULL, 0, 0); +INSERT INTO sys_api VALUES (37, 'go-admin/app/admin/apis.System.GenerateCaptchaHandler-fm', '验证码获取', '/api/v1/getCaptcha', 'SYS', 'GET', '2021-05-13 19:59:02.405', '2021-06-13 20:53:49.020', NULL, 0, 0); +INSERT INTO sys_api VALUES (38, 'go-admin/app/admin/apis.SysUser.GetInfo-fm', '用户信息获取', '/api/v1/getinfo', 'SYS', 'GET', '2021-05-13 19:59:02.447', '2021-06-13 20:53:49.065', NULL, 0, 0); +INSERT INTO sys_api VALUES (39, 'go-admin/app/admin/apis.SysMenu.GetPage-fm', '菜单列表', '/api/v1/menu', 'BUS', 'GET', '2021-05-13 19:59:02.497', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (40, 'go-admin/app/admin/apis.SysMenu.GetMenuTreeSelect-fm', '查询菜单下拉树结构【废弃】', '/api/v1/menuTreeselect', 'SYS', 'GET', '2021-05-13 19:59:02.542', '2021-06-03 22:37:21.857', NULL, 0, 0); +INSERT INTO sys_api VALUES (41, 'go-admin/app/admin/apis.SysMenu.Get-fm', '菜单通过id获取', '/api/v1/menu/:id', 'BUS', 'GET', '2021-05-13 19:59:02.584', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (42, 'go-admin/app/admin/apis.SysMenu.GetMenuRole-fm', '角色菜单【顶部左侧菜单】', '/api/v1/menurole', 'SYS', 'GET', '2021-05-13 19:59:02.630', '2021-06-13 20:53:49.574', NULL, 0, 0); +INSERT INTO sys_api VALUES (43, 'go-admin/app/admin/apis.SysMenu.GetMenuIDS-fm', '获取角色对应的菜单id数组【废弃】', '/api/v1/menuids', 'SYS', 'GET', '2021-05-13 19:59:02.675', '2021-06-03 22:39:52.500', NULL, 0, 0); +INSERT INTO sys_api VALUES (44, 'go-admin/app/admin/apis.SysRole.GetPage-fm', '角色列表', '/api/v1/role', 'BUS', 'GET', '2021-05-13 19:59:02.720', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (45, 'go-admin/app/admin/apis.SysMenu.GetMenuTreeSelect-fm', '菜单权限列表【角色配菜单使用】', '/api/v1/roleMenuTreeselect/:roleId', 'SYS', 'GET', '2021-05-13 19:59:02.762', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (46, 'go-admin/app/admin/apis.SysDept.GetDeptTreeRoleSelect-fm', '角色部门结构树【自定义数据权限】', '/api/v1/roleDeptTreeselect/:roleId', 'SYS', 'GET', '2021-05-13 19:59:02.809', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (47, 'go-admin/app/admin/apis.SysRole.Get-fm', '角色通过id获取', '/api/v1/role/:id', 'BUS', 'GET', '2021-05-13 19:59:02.850', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (48, 'github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth.(*GinJWTMiddleware).RefreshHandler-fm', '刷新token', '/api/v1/refresh_token', 'SYS', 'GET', '2021-05-13 19:59:02.892', '2021-06-13 20:53:49.278', NULL, 0, 0); +INSERT INTO sys_api VALUES (53, 'go-admin/app/admin/apis.SysConfig.GetPage-fm', '参数列表', '/api/v1/config', 'BUS', 'GET', '2021-05-13 19:59:03.116', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (54, 'go-admin/app/admin/apis.SysConfig.Get-fm', '参数通过id获取', '/api/v1/config/:id', 'BUS', 'GET', '2021-05-13 19:59:03.157', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (55, 'go-admin/app/admin/apis.SysConfig.GetSysConfigByKEYForService-fm', '参数通过键名搜索【基础默认配置】', '/api/v1/configKey/:configKey', 'SYS', 'GET', '2021-05-13 19:59:03.198', '2021-06-13 20:53:49.745', NULL, 0, 0); +INSERT INTO sys_api VALUES (57, 'go-admin/app/jobs/apis.SysJob.RemoveJobForService-fm', 'job移除', '/api/v1/job/remove/:id', 'BUS', 'GET', '2021-05-13 19:59:03.295', '2021-06-13 20:53:49.786', NULL, 0, 0); +INSERT INTO sys_api VALUES (58, 'go-admin/app/jobs/apis.SysJob.StartJobForService-fm', 'job启动', '/api/v1/job/start/:id', 'BUS', 'GET', '2021-05-13 19:59:03.339', '2021-06-13 20:53:49.829', NULL, 0, 0); +INSERT INTO sys_api VALUES (59, 'go-admin/app/admin/apis.SysPost.GetPage-fm', '岗位列表', '/api/v1/post', 'BUS', 'GET', '2021-05-13 19:59:03.381', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (60, 'go-admin/app/admin/apis.SysPost.Get-fm', '岗位通过id获取', '/api/v1/post/:id', 'BUS', 'GET', '2021-05-13 19:59:03.433', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (62, 'go-admin/app/admin/apis.SysConfig.GetSysConfigBySysApp-fm', '系统前端参数', '/api/v1/app-config', 'SYS', 'GET', '2021-05-13 19:59:03.526', '2021-06-13 20:53:49.994', NULL, 0, 0); +INSERT INTO sys_api VALUES (63, 'go-admin/app/admin/apis.SysUser.GetProfile-fm', '*用户信息获取', '/api/v1/user/profile', 'SYS', 'GET', '2021-05-13 19:59:03.567', '2021-06-13 20:53:50.038', NULL, 0, 0); +INSERT INTO sys_api VALUES (66, 'github.com/go-admin-team/go-admin-core/sdk/pkg/ws.(*Manager).WsClient-fm', '链接ws【定时任务log】', '/ws/:id/:channel', 'BUS', 'GET', '2021-05-13 19:59:03.705', '2021-06-13 20:53:50.167', NULL, 0, 0); +INSERT INTO sys_api VALUES (67, 'github.com/go-admin-team/go-admin-core/sdk/pkg/ws.(*Manager).UnWsClient-fm', '退出ws【定时任务log】', '/wslogout/:id/:channel', 'BUS', 'GET', '2021-05-13 19:59:03.756', '2021-06-13 20:53:50.209', NULL, 0, 0); +INSERT INTO sys_api VALUES (68, 'go-admin/common/middleware/handler.Ping', '*用户基本信息', '/info', 'SYS', 'GET', '2021-05-13 19:59:03.800', '2021-06-13 20:53:50.251', NULL, 0, 0); +INSERT INTO sys_api VALUES (72, 'go-admin/common/actions.CreateAction.func1', '分类创建', '/api/v1/syscategory', 'BUS', 'POST', '2021-05-13 19:59:03.982', '2021-06-13 20:53:50.336', NULL, 0, 0); +INSERT INTO sys_api VALUES (73, 'go-admin/common/actions.CreateAction.func1', '内容创建', '/api/v1/syscontent', 'BUS', 'POST', '2021-05-13 19:59:04.027', '2021-06-13 20:53:50.375', NULL, 0, 0); +INSERT INTO sys_api VALUES (76, 'go-admin/common/actions.CreateAction.func1', 'job创建', '/api/v1/sysjob', 'BUS', 'POST', '2021-05-13 19:59:04.164', '2021-06-13 20:53:50.500', NULL, 0, 0); +INSERT INTO sys_api VALUES (80, 'go-admin/app/admin/apis.SysDictData.Insert-fm', '字典数据创建', '/api/v1/dict/data', 'BUS', 'POST', '2021-05-13 19:59:04.347', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (81, 'go-admin/app/admin/apis.SysDictType.Insert-fm', '字典类型创建', '/api/v1/dict/type', 'BUS', 'POST', '2021-05-13 19:59:04.391', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (82, 'go-admin/app/admin/apis.SysDept.Insert-fm', '部门创建', '/api/v1/dept', 'BUS', 'POST', '2021-05-13 19:59:04.435', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (85, 'github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth.(*GinJWTMiddleware).LoginHandler-fm', '*登录', '/api/v1/login', 'SYS', 'POST', '2021-05-13 19:59:04.597', '2021-06-13 20:53:50.784', NULL, 0, 0); +INSERT INTO sys_api VALUES (86, 'go-admin/common/middleware/handler.LogOut', '*退出', '/api/v1/logout', 'SYS', 'POST', '2021-05-13 19:59:04.642', '2021-06-13 20:53:50.824', NULL, 0, 0); +INSERT INTO sys_api VALUES (87, 'go-admin/app/admin/apis.SysConfig.Insert-fm', '参数创建', '/api/v1/config', 'BUS', 'POST', '2021-05-13 19:59:04.685', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (88, 'go-admin/app/admin/apis.SysMenu.Insert-fm', '菜单创建', '/api/v1/menu', 'BUS', 'POST', '2021-05-13 19:59:04.777', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (89, 'go-admin/app/admin/apis.SysPost.Insert-fm', '岗位创建', '/api/v1/post', 'BUS', 'POST', '2021-05-13 19:59:04.886', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (90, 'go-admin/app/admin/apis.SysRole.Insert-fm', '角色创建', '/api/v1/role', 'BUS', 'POST', '2021-05-13 19:59:04.975', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (91, 'go-admin/app/admin/apis.SysUser.InsetAvatar-fm', '*用户头像编辑', '/api/v1/user/avatar', 'SYS', 'POST', '2021-05-13 19:59:05.058', '2021-06-13 20:53:51.079', NULL, 0, 0); +INSERT INTO sys_api VALUES (92, 'go-admin/app/admin/apis.SysApi.Update-fm', '接口编辑', '/api/v1/sys-api/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.122', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (95, 'go-admin/common/actions.UpdateAction.func1', '分类编辑', '/api/v1/syscategory/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.255', '2021-06-13 20:53:51.247', NULL, 0, 0); +INSERT INTO sys_api VALUES (96, 'go-admin/common/actions.UpdateAction.func1', '内容编辑', '/api/v1/syscontent/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.299', '2021-06-13 20:53:51.289', NULL, 0, 0); +INSERT INTO sys_api VALUES (97, 'go-admin/common/actions.UpdateAction.func1', 'job编辑', '/api/v1/sysjob', 'BUS', 'PUT', '2021-05-13 19:59:05.343', '2021-06-13 20:53:51.331', NULL, 0, 0); +INSERT INTO sys_api VALUES (101, 'go-admin/app/admin/apis.SysDictData.Update-fm', '字典数据编辑', '/api/v1/dict/data/:dictCode', 'BUS', 'PUT', '2021-05-13 19:59:05.519', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (102, 'go-admin/app/admin/apis.SysDictType.Update-fm', '字典类型编辑', '/api/v1/dict/type/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.569', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (103, 'go-admin/app/admin/apis.SysDept.Update-fm', '部门编辑', '/api/v1/dept/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.613', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (104, 'go-admin/app/other/apis.SysFileDir.Update-fm', '文件夹编辑', '/api/v1/file-dir/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.662', '2021-06-13 20:53:51.847', NULL, 0, 0); +INSERT INTO sys_api VALUES (105, 'go-admin/app/other/apis.SysFileInfo.Update-fm', '文件编辑', '/api/v1/file-info/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.709', '2021-06-13 20:53:51.892', NULL, 0, 0); +INSERT INTO sys_api VALUES (106, 'go-admin/app/admin/apis.SysRole.Update-fm', '角色编辑', '/api/v1/role/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.752', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (107, 'go-admin/app/admin/apis.SysRole.Update2DataScope-fm', '角色数据权限修改', '/api/v1/roledatascope', 'BUS', 'PUT', '2021-05-13 19:59:05.803', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (108, 'go-admin/app/admin/apis.SysConfig.Update-fm', '参数编辑', '/api/v1/config/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.848', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (109, 'go-admin/app/admin/apis.SysMenu.Update-fm', '编辑菜单', '/api/v1/menu/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.891', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (110, 'go-admin/app/admin/apis.SysPost.Update-fm', '岗位编辑', '/api/v1/post/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.934', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (111, 'go-admin/app/admin/apis.SysUser.UpdatePwd-fm', '*用户修改密码', '/api/v1/user/pwd', 'SYS', 'PUT', '2021-05-13 19:59:05.987', '2021-06-13 20:53:51.724', NULL, 0, 0); +INSERT INTO sys_api VALUES (112, 'go-admin/common/actions.DeleteAction.func1', '分类删除', '/api/v1/syscategory', 'BUS', 'DELETE', '2021-05-13 19:59:06.030', '2021-06-13 20:53:52.237', NULL, 0, 0); +INSERT INTO sys_api VALUES (113, 'go-admin/common/actions.DeleteAction.func1', '内容删除', '/api/v1/syscontent', 'BUS', 'DELETE', '2021-05-13 19:59:06.076', '2021-06-13 20:53:52.278', NULL, 0, 0); +INSERT INTO sys_api VALUES (114, 'go-admin/app/admin/apis.SysLoginLog.Delete-fm', '登录日志删除', '/api/v1/sys-login-log', 'BUS', 'DELETE', '2021-05-13 19:59:06.118', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (115, 'go-admin/app/admin/apis.SysOperaLog.Delete-fm', '操作日志删除', '/api/v1/sys-opera-log', 'BUS', 'DELETE', '2021-05-13 19:59:06.162', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (116, 'go-admin/common/actions.DeleteAction.func1', 'job删除', '/api/v1/sysjob', 'BUS', 'DELETE', '2021-05-13 19:59:06.206', '2021-06-13 20:53:52.323', NULL, 0, 0); +INSERT INTO sys_api VALUES (117, 'go-admin/app/other/apis.SysChinaAreaData.Delete-fm', '行政区删除', '/api/v1/sys-area-data', 'BUS', 'DELETE', '2021-05-13 19:59:06.249', '2021-06-13 20:53:52.061', NULL, 0, 0); +INSERT INTO sys_api VALUES (120, 'go-admin/app/admin/apis.SysDictData.Delete-fm', '字典数据删除', '/api/v1/dict/data', 'BUS', 'DELETE', '2021-05-13 19:59:06.387', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (121, 'go-admin/app/admin/apis.SysDictType.Delete-fm', '字典类型删除', '/api/v1/dict/type', 'BUS', 'DELETE', '2021-05-13 19:59:06.432', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (122, 'go-admin/app/admin/apis.SysDept.Delete-fm', '部门删除', '/api/v1/dept/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.475', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (123, 'go-admin/app/other/apis.SysFileDir.Delete-fm', '文件夹删除', '/api/v1/file-dir/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.520', '2021-06-13 20:53:52.539', NULL, 0, 0); +INSERT INTO sys_api VALUES (124, 'go-admin/app/other/apis.SysFileInfo.Delete-fm', '文件删除', '/api/v1/file-info/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.566', '2021-06-13 20:53:52.580', NULL, 0, 0); +INSERT INTO sys_api VALUES (125, 'go-admin/app/admin/apis.SysConfig.Delete-fm', '参数删除', '/api/v1/config', 'BUS', 'DELETE', '2021-05-13 19:59:06.612', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (126, 'go-admin/app/admin/apis.SysMenu.Delete-fm', '删除菜单', '/api/v1/menu', 'BUS', 'DELETE', '2021-05-13 19:59:06.654', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (127, 'go-admin/app/admin/apis.SysPost.Delete-fm', '岗位删除', '/api/v1/post/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.702', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (128, 'go-admin/app/admin/apis.SysRole.Delete-fm', '角色删除', '/api/v1/role', 'BUS', 'DELETE', '2021-05-13 19:59:06.746', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (131, 'github.com/go-admin-team/go-admin-core/tools/transfer.Handler.func1', '系统指标', '/api/v1/metrics', 'SYS', 'GET', '2021-05-17 22:13:55.933', '2021-06-13 20:53:49.614', NULL, 0, 0); +INSERT INTO sys_api VALUES (132, 'go-admin/app/other/router.registerMonitorRouter.func1', '健康状态', '/api/v1/health', 'SYS', 'GET', '2021-05-17 22:13:56.285', '2021-06-13 20:53:49.951', NULL, 0, 0); +INSERT INTO sys_api VALUES (133, 'go-admin/app/admin/apis.HelloWorld', '项目默认接口', '/', 'SYS', 'GET', '2021-05-24 10:30:44.553', '2021-06-13 20:53:47.406', NULL, 0, 0); +INSERT INTO sys_api VALUES (134, 'go-admin/app/other/apis.ServerMonitor.ServerInfo-fm', '服务器基本状态', '/api/v1/server-monitor', 'SYS', 'GET', '2021-05-24 10:30:44.937', '2021-06-13 20:53:48.255', NULL, 0, 0); +INSERT INTO sys_api VALUES (135, 'go-admin/app/admin/apis.SysApi.GetPage-fm', '接口列表', '/api/v1/sys-api', 'BUS', 'GET', '2021-05-24 11:37:53.303', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (136, 'go-admin/app/admin/apis.SysApi.Get-fm', '接口通过id获取', '/api/v1/sys-api/:id', 'BUS', 'GET', '2021-05-24 11:37:53.359', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (137, 'go-admin/app/admin/apis.SysLoginLog.GetPage-fm', '登录日志列表', '/api/v1/sys-login-log', 'BUS', 'GET', '2021-05-24 11:47:30.397', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (138, 'go-admin/app/other/apis.File.UploadFile-fm', '文件上传', '/api/v1/public/uploadFile', 'SYS', 'POST', '2021-05-25 19:16:18.493', '2021-06-13 20:53:50.866', NULL, 0, 0); +INSERT INTO sys_api VALUES (139, 'go-admin/app/admin/apis.SysConfig.Update2Set-fm', '参数信息修改【参数配置】', '/api/v1/set-config', 'BUS', 'PUT', '2021-05-27 09:45:14.853', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (140, 'go-admin/app/admin/apis.SysConfig.Get2Set-fm', '参数获取全部【配置使用】', '/api/v1/set-config', 'BUS', 'GET', '2021-05-27 11:54:14.384', '2021-06-17 11:48:40.732', NULL, 0, 0); +INSERT INTO sys_api VALUES (141, 'go-admin/app/admin/apis.SysUser.GetPage-fm', '管理员列表', '/api/v1/sys-user', 'BUS', 'GET', '2021-06-13 19:24:57.111', '2021-06-17 20:31:14.318', NULL, 0, 0); +INSERT INTO sys_api VALUES (142, 'go-admin/app/admin/apis.SysUser.Get-fm', '管理员通过id获取', '/api/v1/sys-user/:id', 'BUS', 'GET', '2021-06-13 19:24:57.188', '2021-06-17 20:31:14.318', NULL, 0, 0); +INSERT INTO sys_api VALUES (143, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTablesInfo-fm', '', '/api/v1/sys/tables/info', '', 'GET', '2021-06-13 19:24:57.437', '2021-06-13 20:53:48.047', NULL, 0, 0); +INSERT INTO sys_api VALUES (144, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTables-fm', '', '/api/v1/sys/tables/info/:tableId', '', 'GET', '2021-06-13 19:24:57.510', '2021-06-13 20:53:48.088', NULL, 0, 0); +INSERT INTO sys_api VALUES (145, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTableList-fm', '', '/api/v1/sys/tables/page', '', 'GET', '2021-06-13 19:24:57.582', '2021-06-13 20:53:48.128', NULL, 0, 0); +INSERT INTO sys_api VALUES (146, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/static/*filepath', '', 'GET', '2021-06-13 19:24:59.641', '2021-06-13 20:53:50.081', NULL, 0, 0); +INSERT INTO sys_api VALUES (147, 'github.com/swaggo/gin-swagger.CustomWrapHandler.func1', '', '/swagger/*any', '', 'GET', '2021-06-13 19:24:59.713', '2021-06-13 20:53:50.123', NULL, 0, 0); +INSERT INTO sys_api VALUES (148, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/form-generator/*filepath', '', 'GET', '2021-06-13 19:24:59.914', '2021-06-13 20:53:50.295', NULL, 0, 0); +INSERT INTO sys_api VALUES (149, 'go-admin/app/admin/apis/tools.(*SysTable).InsertSysTable-fm', '', '/api/v1/sys/tables/info', '', 'POST', '2021-06-13 19:25:00.163', '2021-06-13 20:53:50.539', NULL, 0, 0); +INSERT INTO sys_api VALUES (150, 'go-admin/app/admin/apis.SysUser.Insert-fm', '管理员创建', '/api/v1/sys-user', 'BUS', 'POST', '2021-06-13 19:25:00.233', '2021-06-17 20:31:14.318', NULL, 0, 0); +INSERT INTO sys_api VALUES (151, 'go-admin/app/admin/apis.SysUser.Update-fm', '管理员编辑', '/api/v1/sys-user', 'BUS', 'PUT', '2021-06-13 19:25:00.986', '2021-06-17 20:31:14.318', NULL, 0, 0); +INSERT INTO sys_api VALUES (152, 'go-admin/app/admin/apis/tools.(*SysTable).UpdateSysTable-fm', '', '/api/v1/sys/tables/info', '', 'PUT', '2021-06-13 19:25:01.149', '2021-06-13 20:53:51.375', NULL, 0, 0); +INSERT INTO sys_api VALUES (153, 'go-admin/app/admin/apis.SysRole.Update2Status-fm', '', '/api/v1/role-status', '', 'PUT', '2021-06-13 19:25:01.446', '2021-06-13 20:53:51.636', NULL, 0, 0); +INSERT INTO sys_api VALUES (154, 'go-admin/app/admin/apis.SysUser.ResetPwd-fm', '', '/api/v1/user/pwd/reset', '', 'PUT', '2021-06-13 19:25:01.601', '2021-06-13 20:53:51.764', NULL, 0, 0); +INSERT INTO sys_api VALUES (155, 'go-admin/app/admin/apis.SysUser.UpdateStatus-fm', '', '/api/v1/user/status', '', 'PUT', '2021-06-13 19:25:01.671', '2021-06-13 20:53:51.806', NULL, 0, 0); +INSERT INTO sys_api VALUES (156, 'go-admin/app/admin/apis.SysUser.Delete-fm', '管理员删除', '/api/v1/sys-user', 'BUS', 'DELETE', '2021-06-13 19:25:02.043', '2021-06-17 20:31:14.318', NULL, 0, 0); +INSERT INTO sys_api VALUES (157, 'go-admin/app/admin/apis/tools.(*SysTable).DeleteSysTables-fm', '', '/api/v1/sys/tables/info/:tableId', '', 'DELETE', '2021-06-13 19:25:02.283', '2021-06-13 20:53:52.367', NULL, 0, 0); +INSERT INTO sys_api VALUES (158, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/static/*filepath', '', 'HEAD', '2021-06-13 19:25:02.734', '2021-06-13 20:53:52.791', NULL, 0, 0); +INSERT INTO sys_api VALUES (159, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/form-generator/*filepath', '', 'HEAD', '2021-06-13 19:25:02.808', '2021-06-13 20:53:52.838', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (5, 'go-admin/app/admin/apis.SysLoginLog.Get-fm', '登录日志通过id获取', '/api/v1/sys-login-log/:id', 'BUS', 'GET', '2021-05-13 19:59:00.728', '2021-06-17 11:37:12.331', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (6, 'go-admin/app/admin/apis.SysOperaLog.GetPage-fm', '操作日志列表', '/api/v1/sys-opera-log', 'BUS', 'GET', '2021-05-13 19:59:00.778', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (7, 'go-admin/app/admin/apis.SysOperaLog.Get-fm', '操作日志通过id获取', '/api/v1/sys-opera-log/:id', 'BUS', 'GET', '2021-05-13 19:59:00.821', '2021-06-16 21:49:48.598', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (8, 'go-admin/common/actions.IndexAction.func1', '分类列表', '/api/v1/syscategory', 'BUS', 'GET', '2021-05-13 19:59:00.870', '2021-06-13 20:53:47.883', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (9, 'go-admin/common/actions.ViewAction.func1', '分类通过id获取', '/api/v1/syscategory/:id', 'BUS', 'GET', '2021-05-13 19:59:00.945', '2021-06-13 20:53:47.926', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (10, 'go-admin/common/actions.IndexAction.func1', '内容列表', '/api/v1/syscontent', 'BUS', 'GET', '2021-05-13 19:59:01.005', '2021-06-13 20:53:47.966', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (11, 'go-admin/common/actions.ViewAction.func1', '内容通过id获取', '/api/v1/syscontent/:id', 'BUS', 'GET', '2021-05-13 19:59:01.056', '2021-06-13 20:53:48.005', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (15, 'go-admin/common/actions.IndexAction.func1', 'job列表', '/api/v1/sysjob', 'BUS', 'GET', '2021-05-13 19:59:01.248', '2021-06-13 20:53:48.169', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (16, 'go-admin/common/actions.ViewAction.func1', 'job通过id获取', '/api/v1/sysjob/:id', 'BUS', 'GET', '2021-05-13 19:59:01.298', '2021-06-13 20:53:48.214', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (21, 'go-admin/app/admin/apis.SysDictType.GetPage-fm', '字典类型列表', '/api/v1/dict/type', 'BUS', 'GET', '2021-05-13 19:59:01.525', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (22, 'go-admin/app/admin/apis.SysDictType.GetAll-fm', '字典类型查询【代码生成】', '/api/v1/dict/type-option-select', 'SYS', 'GET', '2021-05-13 19:59:01.582', '2021-06-13 20:53:48.388', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (23, 'go-admin/app/admin/apis.SysDictType.Get-fm', '字典类型通过id获取', '/api/v1/dict/type/:id', 'BUS', 'GET', '2021-05-13 19:59:01.632', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (24, 'go-admin/app/admin/apis.SysDictData.GetPage-fm', '字典数据列表', '/api/v1/dict/data', 'BUS', 'GET', '2021-05-13 19:59:01.684', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (25, 'go-admin/app/admin/apis.SysDictData.Get-fm', '字典数据通过code获取', '/api/v1/dict/data/:dictCode', 'BUS', 'GET', '2021-05-13 19:59:01.732', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (26, 'go-admin/app/admin/apis.SysDictData.GetSysDictDataAll-fm', '数据字典根据key获取', '/api/v1/dict-data/option-select', 'SYS', 'GET', '2021-05-13 19:59:01.832', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (27, 'go-admin/app/admin/apis.SysDept.GetPage-fm', '部门列表', '/api/v1/dept', 'BUS', 'GET', '2021-05-13 19:59:01.940', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (28, 'go-admin/app/admin/apis.SysDept.Get-fm', '部门通过id获取', '/api/v1/dept/:id', 'BUS', 'GET', '2021-05-13 19:59:02.009', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (29, 'go-admin/app/admin/apis.SysDept.Get2Tree-fm', '查询部门下拉树【角色权限-自定权限】', '/api/v1/deptTree', 'SYS', 'GET', '2021-05-13 19:59:02.050', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (30, 'go-admin/app/admin/apis/tools.(*Gen).GetDBTableList-fm', '数据库表列表', '/api/v1/db/tables/page', 'SYS', 'GET', '2021-05-13 19:59:02.098', '2021-06-13 20:53:48.730', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (31, 'go-admin/app/admin/apis/tools.(*Gen).GetDBColumnList-fm', '数据表列列表', '/api/v1/db/columns/page', 'SYS', 'GET', '2021-05-13 19:59:02.140', '2021-06-13 20:53:48.771', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (32, 'go-admin/app/admin/apis/tools.Gen.GenCode-fm', '数据库表生成到项目', '/api/v1/gen/toproject/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.183', '2021-06-13 20:53:48.812', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (33, 'go-admin/app/admin/apis/tools.Gen.GenMenuAndApi-fm', '数据库表生成到DB', '/api/v1/gen/todb/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.227', '2021-06-13 20:53:48.853', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (34, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTablesTree-fm', '关系表数据【代码生成】', '/api/v1/gen/tabletree', 'SYS', 'GET', '2021-05-13 19:59:02.271', '2021-06-13 20:53:48.893', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (35, 'go-admin/app/admin/apis/tools.Gen.Preview-fm', '生成预览通过id获取', '/api/v1/gen/preview/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.315', '2021-06-13 20:53:48.935', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (36, 'go-admin/app/admin/apis/tools.Gen.GenApiToFile-fm', '生成api带文件', '/api/v1/gen/apitofile/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.357', '2021-06-13 20:53:48.977', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (37, 'go-admin/app/admin/apis.System.GenerateCaptchaHandler-fm', '验证码获取', '/api/v1/getCaptcha', 'SYS', 'GET', '2021-05-13 19:59:02.405', '2021-06-13 20:53:49.020', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (38, 'go-admin/app/admin/apis.SysUser.GetInfo-fm', '用户信息获取', '/api/v1/getinfo', 'SYS', 'GET', '2021-05-13 19:59:02.447', '2021-06-13 20:53:49.065', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (39, 'go-admin/app/admin/apis.SysMenu.GetPage-fm', '菜单列表', '/api/v1/menu', 'BUS', 'GET', '2021-05-13 19:59:02.497', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (40, 'go-admin/app/admin/apis.SysMenu.GetMenuTreeSelect-fm', '查询菜单下拉树结构【废弃】', '/api/v1/menuTreeselect', 'SYS', 'GET', '2021-05-13 19:59:02.542', '2021-06-03 22:37:21.857', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (41, 'go-admin/app/admin/apis.SysMenu.Get-fm', '菜单通过id获取', '/api/v1/menu/:id', 'BUS', 'GET', '2021-05-13 19:59:02.584', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (42, 'go-admin/app/admin/apis.SysMenu.GetMenuRole-fm', '角色菜单【顶部左侧菜单】', '/api/v1/menurole', 'SYS', 'GET', '2021-05-13 19:59:02.630', '2021-06-13 20:53:49.574', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (43, 'go-admin/app/admin/apis.SysMenu.GetMenuIDS-fm', '获取角色对应的菜单id数组【废弃】', '/api/v1/menuids', 'SYS', 'GET', '2021-05-13 19:59:02.675', '2021-06-03 22:39:52.500', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (44, 'go-admin/app/admin/apis.SysRole.GetPage-fm', '角色列表', '/api/v1/role', 'BUS', 'GET', '2021-05-13 19:59:02.720', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (45, 'go-admin/app/admin/apis.SysMenu.GetMenuTreeSelect-fm', '菜单权限列表【角色配菜单使用】', '/api/v1/roleMenuTreeselect/:roleId', 'SYS', 'GET', '2021-05-13 19:59:02.762', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (46, 'go-admin/app/admin/apis.SysDept.GetDeptTreeRoleSelect-fm', '角色部门结构树【自定义数据权限】', '/api/v1/roleDeptTreeselect/:roleId', 'SYS', 'GET', '2021-05-13 19:59:02.809', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (47, 'go-admin/app/admin/apis.SysRole.Get-fm', '角色通过id获取', '/api/v1/role/:id', 'BUS', 'GET', '2021-05-13 19:59:02.850', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (48, 'github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth.(*GinJWTMiddleware).RefreshHandler-fm', '刷新token', '/api/v1/refresh_token', 'SYS', 'GET', '2021-05-13 19:59:02.892', '2021-06-13 20:53:49.278', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (53, 'go-admin/app/admin/apis.SysConfig.GetPage-fm', '参数列表', '/api/v1/config', 'BUS', 'GET', '2021-05-13 19:59:03.116', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (54, 'go-admin/app/admin/apis.SysConfig.Get-fm', '参数通过id获取', '/api/v1/config/:id', 'BUS', 'GET', '2021-05-13 19:59:03.157', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (55, 'go-admin/app/admin/apis.SysConfig.GetSysConfigByKEYForService-fm', '参数通过键名搜索【基础默认配置】', '/api/v1/configKey/:configKey', 'SYS', 'GET', '2021-05-13 19:59:03.198', '2021-06-13 20:53:49.745', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (57, 'go-admin/app/jobs/apis.SysJob.RemoveJobForService-fm', 'job移除', '/api/v1/job/remove/:id', 'BUS', 'GET', '2021-05-13 19:59:03.295', '2021-06-13 20:53:49.786', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (58, 'go-admin/app/jobs/apis.SysJob.StartJobForService-fm', 'job启动', '/api/v1/job/start/:id', 'BUS', 'GET', '2021-05-13 19:59:03.339', '2021-06-13 20:53:49.829', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (59, 'go-admin/app/admin/apis.SysPost.GetPage-fm', '岗位列表', '/api/v1/post', 'BUS', 'GET', '2021-05-13 19:59:03.381', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (60, 'go-admin/app/admin/apis.SysPost.Get-fm', '岗位通过id获取', '/api/v1/post/:id', 'BUS', 'GET', '2021-05-13 19:59:03.433', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (62, 'go-admin/app/admin/apis.SysConfig.GetSysConfigBySysApp-fm', '系统前端参数', '/api/v1/app-config', 'SYS', 'GET', '2021-05-13 19:59:03.526', '2021-06-13 20:53:49.994', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (63, 'go-admin/app/admin/apis.SysUser.GetProfile-fm', '*用户信息获取', '/api/v1/user/profile', 'SYS', 'GET', '2021-05-13 19:59:03.567', '2021-06-13 20:53:50.038', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (66, 'github.com/go-admin-team/go-admin-core/sdk/pkg/ws.(*Manager).WsClient-fm', '链接ws【定时任务log】', '/ws/:id/:channel', 'BUS', 'GET', '2021-05-13 19:59:03.705', '2021-06-13 20:53:50.167', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (67, 'github.com/go-admin-team/go-admin-core/sdk/pkg/ws.(*Manager).UnWsClient-fm', '退出ws【定时任务log】', '/wslogout/:id/:channel', 'BUS', 'GET', '2021-05-13 19:59:03.756', '2021-06-13 20:53:50.209', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (68, 'go-admin/common/middleware/handler.Ping', '*用户基本信息', '/info', 'SYS', 'GET', '2021-05-13 19:59:03.800', '2021-06-13 20:53:50.251', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (72, 'go-admin/common/actions.CreateAction.func1', '分类创建', '/api/v1/syscategory', 'BUS', 'POST', '2021-05-13 19:59:03.982', '2021-06-13 20:53:50.336', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (73, 'go-admin/common/actions.CreateAction.func1', '内容创建', '/api/v1/syscontent', 'BUS', 'POST', '2021-05-13 19:59:04.027', '2021-06-13 20:53:50.375', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (76, 'go-admin/common/actions.CreateAction.func1', 'job创建', '/api/v1/sysjob', 'BUS', 'POST', '2021-05-13 19:59:04.164', '2021-06-13 20:53:50.500', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (80, 'go-admin/app/admin/apis.SysDictData.Insert-fm', '字典数据创建', '/api/v1/dict/data', 'BUS', 'POST', '2021-05-13 19:59:04.347', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (81, 'go-admin/app/admin/apis.SysDictType.Insert-fm', '字典类型创建', '/api/v1/dict/type', 'BUS', 'POST', '2021-05-13 19:59:04.391', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (82, 'go-admin/app/admin/apis.SysDept.Insert-fm', '部门创建', '/api/v1/dept', 'BUS', 'POST', '2021-05-13 19:59:04.435', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (85, 'github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth.(*GinJWTMiddleware).LoginHandler-fm', '*登录', '/api/v1/login', 'SYS', 'POST', '2021-05-13 19:59:04.597', '2021-06-13 20:53:50.784', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (86, 'go-admin/common/middleware/handler.LogOut', '*退出', '/api/v1/logout', 'SYS', 'POST', '2021-05-13 19:59:04.642', '2021-06-13 20:53:50.824', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (87, 'go-admin/app/admin/apis.SysConfig.Insert-fm', '参数创建', '/api/v1/config', 'BUS', 'POST', '2021-05-13 19:59:04.685', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (88, 'go-admin/app/admin/apis.SysMenu.Insert-fm', '菜单创建', '/api/v1/menu', 'BUS', 'POST', '2021-05-13 19:59:04.777', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (89, 'go-admin/app/admin/apis.SysPost.Insert-fm', '岗位创建', '/api/v1/post', 'BUS', 'POST', '2021-05-13 19:59:04.886', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (90, 'go-admin/app/admin/apis.SysRole.Insert-fm', '角色创建', '/api/v1/role', 'BUS', 'POST', '2021-05-13 19:59:04.975', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (91, 'go-admin/app/admin/apis.SysUser.InsetAvatar-fm', '*用户头像编辑', '/api/v1/user/avatar', 'SYS', 'POST', '2021-05-13 19:59:05.058', '2021-06-13 20:53:51.079', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (92, 'go-admin/app/admin/apis.SysApi.Update-fm', '接口编辑', '/api/v1/sys-api/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.122', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (95, 'go-admin/common/actions.UpdateAction.func1', '分类编辑', '/api/v1/syscategory/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.255', '2021-06-13 20:53:51.247', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (96, 'go-admin/common/actions.UpdateAction.func1', '内容编辑', '/api/v1/syscontent/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.299', '2021-06-13 20:53:51.289', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (97, 'go-admin/common/actions.UpdateAction.func1', 'job编辑', '/api/v1/sysjob', 'BUS', 'PUT', '2021-05-13 19:59:05.343', '2021-06-13 20:53:51.331', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (101, 'go-admin/app/admin/apis.SysDictData.Update-fm', '字典数据编辑', '/api/v1/dict/data/:dictCode', 'BUS', 'PUT', '2021-05-13 19:59:05.519', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (102, 'go-admin/app/admin/apis.SysDictType.Update-fm', '字典类型编辑', '/api/v1/dict/type/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.569', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (103, 'go-admin/app/admin/apis.SysDept.Update-fm', '部门编辑', '/api/v1/dept/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.613', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (104, 'go-admin/app/other/apis.SysFileDir.Update-fm', '文件夹编辑', '/api/v1/file-dir/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.662', '2021-06-13 20:53:51.847', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (105, 'go-admin/app/other/apis.SysFileInfo.Update-fm', '文件编辑', '/api/v1/file-info/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.709', '2021-06-13 20:53:51.892', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (106, 'go-admin/app/admin/apis.SysRole.Update-fm', '角色编辑', '/api/v1/role/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.752', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (107, 'go-admin/app/admin/apis.SysRole.Update2DataScope-fm', '角色数据权限修改', '/api/v1/roledatascope', 'BUS', 'PUT', '2021-05-13 19:59:05.803', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (108, 'go-admin/app/admin/apis.SysConfig.Update-fm', '参数编辑', '/api/v1/config/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.848', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (109, 'go-admin/app/admin/apis.SysMenu.Update-fm', '编辑菜单', '/api/v1/menu/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.891', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (110, 'go-admin/app/admin/apis.SysPost.Update-fm', '岗位编辑', '/api/v1/post/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.934', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (111, 'go-admin/app/admin/apis.SysUser.UpdatePwd-fm', '*用户修改密码', '/api/v1/user/pwd', 'SYS', 'PUT', '2021-05-13 19:59:05.987', '2021-06-13 20:53:51.724', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (112, 'go-admin/common/actions.DeleteAction.func1', '分类删除', '/api/v1/syscategory', 'BUS', 'DELETE', '2021-05-13 19:59:06.030', '2021-06-13 20:53:52.237', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (113, 'go-admin/common/actions.DeleteAction.func1', '内容删除', '/api/v1/syscontent', 'BUS', 'DELETE', '2021-05-13 19:59:06.076', '2021-06-13 20:53:52.278', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (114, 'go-admin/app/admin/apis.SysLoginLog.Delete-fm', '登录日志删除', '/api/v1/sys-login-log', 'BUS', 'DELETE', '2021-05-13 19:59:06.118', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (115, 'go-admin/app/admin/apis.SysOperaLog.Delete-fm', '操作日志删除', '/api/v1/sys-opera-log', 'BUS', 'DELETE', '2021-05-13 19:59:06.162', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (116, 'go-admin/common/actions.DeleteAction.func1', 'job删除', '/api/v1/sysjob', 'BUS', 'DELETE', '2021-05-13 19:59:06.206', '2021-06-13 20:53:52.323', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (117, 'go-admin/app/other/apis.SysChinaAreaData.Delete-fm', '行政区删除', '/api/v1/sys-area-data', 'BUS', 'DELETE', '2021-05-13 19:59:06.249', '2021-06-13 20:53:52.061', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (120, 'go-admin/app/admin/apis.SysDictData.Delete-fm', '字典数据删除', '/api/v1/dict/data', 'BUS', 'DELETE', '2021-05-13 19:59:06.387', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (121, 'go-admin/app/admin/apis.SysDictType.Delete-fm', '字典类型删除', '/api/v1/dict/type', 'BUS', 'DELETE', '2021-05-13 19:59:06.432', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (122, 'go-admin/app/admin/apis.SysDept.Delete-fm', '部门删除', '/api/v1/dept/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.475', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (123, 'go-admin/app/other/apis.SysFileDir.Delete-fm', '文件夹删除', '/api/v1/file-dir/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.520', '2021-06-13 20:53:52.539', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (124, 'go-admin/app/other/apis.SysFileInfo.Delete-fm', '文件删除', '/api/v1/file-info/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.566', '2021-06-13 20:53:52.580', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (125, 'go-admin/app/admin/apis.SysConfig.Delete-fm', '参数删除', '/api/v1/config', 'BUS', 'DELETE', '2021-05-13 19:59:06.612', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (126, 'go-admin/app/admin/apis.SysMenu.Delete-fm', '删除菜单', '/api/v1/menu', 'BUS', 'DELETE', '2021-05-13 19:59:06.654', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (127, 'go-admin/app/admin/apis.SysPost.Delete-fm', '岗位删除', '/api/v1/post/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.702', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (128, 'go-admin/app/admin/apis.SysRole.Delete-fm', '角色删除', '/api/v1/role', 'BUS', 'DELETE', '2021-05-13 19:59:06.746', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (131, 'github.com/go-admin-team/go-admin-core/tools/transfer.Handler.func1', '系统指标', '/api/v1/metrics', 'SYS', 'GET', '2021-05-17 22:13:55.933', '2021-06-13 20:53:49.614', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (132, 'go-admin/app/other/router.registerMonitorRouter.func1', '健康状态', '/api/v1/health', 'SYS', 'GET', '2021-05-17 22:13:56.285', '2021-06-13 20:53:49.951', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (133, 'go-admin/app/admin/apis.HelloWorld', '项目默认接口', '/', 'SYS', 'GET', '2021-05-24 10:30:44.553', '2021-06-13 20:53:47.406', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (134, 'go-admin/app/other/apis.ServerMonitor.ServerInfo-fm', '服务器基本状态', '/api/v1/server-monitor', 'SYS', 'GET', '2021-05-24 10:30:44.937', '2021-06-13 20:53:48.255', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (135, 'go-admin/app/admin/apis.SysApi.GetPage-fm', '接口列表', '/api/v1/sys-api', 'BUS', 'GET', '2021-05-24 11:37:53.303', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (136, 'go-admin/app/admin/apis.SysApi.Get-fm', '接口通过id获取', '/api/v1/sys-api/:id', 'BUS', 'GET', '2021-05-24 11:37:53.359', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (137, 'go-admin/app/admin/apis.SysLoginLog.GetPage-fm', '登录日志列表', '/api/v1/sys-login-log', 'BUS', 'GET', '2021-05-24 11:47:30.397', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (138, 'go-admin/app/other/apis.File.UploadFile-fm', '文件上传', '/api/v1/public/uploadFile', 'SYS', 'POST', '2021-05-25 19:16:18.493', '2021-06-13 20:53:50.866', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (139, 'go-admin/app/admin/apis.SysConfig.Update2Set-fm', '参数信息修改【参数配置】', '/api/v1/set-config', 'BUS', 'PUT', '2021-05-27 09:45:14.853', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (140, 'go-admin/app/admin/apis.SysConfig.Get2Set-fm', '参数获取全部【配置使用】', '/api/v1/set-config', 'BUS', 'GET', '2021-05-27 11:54:14.384', '2021-06-17 11:48:40.732', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (141, 'go-admin/app/admin/apis.SysUser.GetPage-fm', '管理员列表', '/api/v1/sys-user', 'BUS', 'GET', '2021-06-13 19:24:57.111', '2021-06-17 20:31:14.318', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (142, 'go-admin/app/admin/apis.SysUser.Get-fm', '管理员通过id获取', '/api/v1/sys-user/:id', 'BUS', 'GET', '2021-06-13 19:24:57.188', '2021-06-17 20:31:14.318', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (143, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTablesInfo-fm', '', '/api/v1/sys/tables/info', '', 'GET', '2021-06-13 19:24:57.437', '2021-06-13 20:53:48.047', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (144, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTables-fm', '', '/api/v1/sys/tables/info/:tableId', '', 'GET', '2021-06-13 19:24:57.510', '2021-06-13 20:53:48.088', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (145, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTableList-fm', '', '/api/v1/sys/tables/page', '', 'GET', '2021-06-13 19:24:57.582', '2021-06-13 20:53:48.128', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (146, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/static/*filepath', '', 'GET', '2021-06-13 19:24:59.641', '2021-06-13 20:53:50.081', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (147, 'github.com/swaggo/gin-swagger.CustomWrapHandler.func1', '', '/swagger/*any', '', 'GET', '2021-06-13 19:24:59.713', '2021-06-13 20:53:50.123', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (148, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/form-generator/*filepath', '', 'GET', '2021-06-13 19:24:59.914', '2021-06-13 20:53:50.295', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (149, 'go-admin/app/admin/apis/tools.(*SysTable).InsertSysTable-fm', '', '/api/v1/sys/tables/info', '', 'POST', '2021-06-13 19:25:00.163', '2021-06-13 20:53:50.539', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (150, 'go-admin/app/admin/apis.SysUser.Insert-fm', '管理员创建', '/api/v1/sys-user', 'BUS', 'POST', '2021-06-13 19:25:00.233', '2021-06-17 20:31:14.318', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (151, 'go-admin/app/admin/apis.SysUser.Update-fm', '管理员编辑', '/api/v1/sys-user', 'BUS', 'PUT', '2021-06-13 19:25:00.986', '2021-06-17 20:31:14.318', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (152, 'go-admin/app/admin/apis/tools.(*SysTable).UpdateSysTable-fm', '', '/api/v1/sys/tables/info', '', 'PUT', '2021-06-13 19:25:01.149', '2021-06-13 20:53:51.375', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (153, 'go-admin/app/admin/apis.SysRole.Update2Status-fm', '', '/api/v1/role-status', '', 'PUT', '2021-06-13 19:25:01.446', '2021-06-13 20:53:51.636', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (154, 'go-admin/app/admin/apis.SysUser.ResetPwd-fm', '', '/api/v1/user/pwd/reset', '', 'PUT', '2021-06-13 19:25:01.601', '2021-06-13 20:53:51.764', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (155, 'go-admin/app/admin/apis.SysUser.UpdateStatus-fm', '', '/api/v1/user/status', '', 'PUT', '2021-06-13 19:25:01.671', '2021-06-13 20:53:51.806', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (156, 'go-admin/app/admin/apis.SysUser.Delete-fm', '管理员删除', '/api/v1/sys-user', 'BUS', 'DELETE', '2021-06-13 19:25:02.043', '2021-06-17 20:31:14.318', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (157, 'go-admin/app/admin/apis/tools.(*SysTable).DeleteSysTables-fm', '', '/api/v1/sys/tables/info/:tableId', '', 'DELETE', '2021-06-13 19:25:02.283', '2021-06-13 20:53:52.367', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (158, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/static/*filepath', '', 'HEAD', '2021-06-13 19:25:02.734', '2021-06-13 20:53:52.791', NULL, 0, 0); -INSERT INTO `sys_api` VALUES (159, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/form-generator/*filepath', '', 'HEAD', '2021-06-13 19:25:02.808', '2021-06-13 20:53:52.838', NULL, 0, 0); +INSERT INTO sys_config VALUES (1, '皮肤样式', 'sys_index_skinName', 'skin-green', 'Y', '0', '主框架页-默认皮肤样式名称:蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 13:50:13.123', NULL); +INSERT INTO sys_config VALUES (2, '初始密码', 'sys_user_initPassword', '123456', 'Y', '0', '用户管理-账号初始密码:123456', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); +INSERT INTO sys_config VALUES (3, '侧栏主题', 'sys_index_sideTheme', 'theme-dark', 'Y', '0', '主框架页-侧边栏主题:深色主题theme-dark,浅色主题theme-light', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); +INSERT INTO sys_config VALUES (4, '系统名称', 'sys_app_name', 'go-admin管理系统', 'Y', '1', '', 1, 0, '2021-03-17 08:52:06.067', '2021-05-28 10:08:25.248', NULL); +INSERT INTO sys_config VALUES (5, '系统logo', 'sys_app_logo', 'https://gitee.com/mydearzwj/image/raw/master/img/go-admin.png', 'Y', '1', '', 1, 0, '2021-03-17 08:53:19.462', '2021-03-17 08:53:19.462', NULL); -INSERT INTO `sys_config` VALUES (1, '皮肤样式', 'sys_index_skinName', 'skin-green', 'Y', '0', '主框架页-默认皮肤样式名称:蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 13:50:13.123', NULL); -INSERT INTO `sys_config` VALUES (2, '初始密码', 'sys_user_initPassword', '123456', 'Y', '0', '用户管理-账号初始密码:123456', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); -INSERT INTO `sys_config` VALUES (3, '侧栏主题', 'sys_index_sideTheme', 'theme-dark', 'Y', '0', '主框架页-侧边栏主题:深色主题theme-dark,浅色主题theme-light', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); -INSERT INTO `sys_config` VALUES (4, '系统名称', 'sys_app_name', 'go-admin管理系统', 'Y', '1', '', 1, 0, '2021-03-17 08:52:06.067', '2021-05-28 10:08:25.248', NULL); -INSERT INTO `sys_config` VALUES (5, '系统logo', 'sys_app_logo', 'https://gitee.com/mydearzwj/image/raw/master/img/go-admin.png', 'Y', '1', '', 1, 0, '2021-03-17 08:53:19.462', '2021-03-17 08:53:19.462', NULL); +INSERT INTO sys_dept VALUES (1, 0, '/0/1/', '爱拓科技', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:06:44.960', NULL); +INSERT INTO sys_dept VALUES (7, 1, '/0/1/7/', '研发部', 1, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-16 21:35:00.109', NULL); +INSERT INTO sys_dept VALUES (8, 1, '/0/1/8/', '运维部', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-16 21:41:39.747', NULL); +INSERT INTO sys_dept VALUES (9, 1, '/0/1/9/', '客服部', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:07:05.993', NULL); +INSERT INTO sys_dept VALUES (10, 1, '/0/1/10/', '人力资源', 3, 'aituo', '13782218188', 'atuo@aituo.com', '1', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:07:08.503', NULL); -INSERT INTO `sys_dept` VALUES (1, 0, '/0/1/', '爱拓科技', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:06:44.960', NULL); -INSERT INTO `sys_dept` VALUES (7, 1, '/0/1/7/', '研发部', 1, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-16 21:35:00.109', NULL); -INSERT INTO `sys_dept` VALUES (8, 1, '/0/1/8/', '运维部', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-16 21:41:39.747', NULL); -INSERT INTO `sys_dept` VALUES (9, 1, '/0/1/9/', '客服部', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:07:05.993', NULL); -INSERT INTO `sys_dept` VALUES (10, 1, '/0/1/10/', '人力资源', 3, 'aituo', '13782218188', 'atuo@aituo.com', '1', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:07:08.503', NULL); +INSERT INTO sys_dict_data VALUES (1, 0, '正常', '2', 'sys_normal_disable', '', '', '', '2', '', '系统正常', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:40.168', NULL); +INSERT INTO sys_dict_data VALUES (2, 0, '停用', '1', 'sys_normal_disable', '', '', '', '2', '', '系统停用', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (3, 0, '男', '0', 'sys_user_sex', '', '', '', '2', '', '性别男', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (4, 0, '女', '1', 'sys_user_sex', '', '', '', '2', '', '性别女', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (5, 0, '未知', '2', 'sys_user_sex', '', '', '', '2', '', '性别未知', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (6, 0, '显示', '0', 'sys_show_hide', '', '', '', '2', '', '显示菜单', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (7, 0, '隐藏', '1', 'sys_show_hide', '', '', '', '2', '', '隐藏菜单', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (8, 0, '是', 'Y', 'sys_yes_no', '', '', '', '2', '', '系统默认是', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (9, 0, '否', 'N', 'sys_yes_no', '', '', '', '2', '', '系统默认否', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (10, 0, '正常', '2', 'sys_job_status', '', '', '', '2', '', '正常状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (11, 0, '停用', '1', 'sys_job_status', '', '', '', '2', '', '停用状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (12, 0, '默认', 'DEFAULT', 'sys_job_group', '', '', '', '2', '', '默认分组', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (13, 0, '系统', 'SYSTEM', 'sys_job_group', '', '', '', '2', '', '系统分组', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (14, 0, '通知', '1', 'sys_notice_type', '', '', '', '2', '', '通知', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (15, 0, '公告', '2', 'sys_notice_type', '', '', '', '2', '', '公告', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (16, 0, '正常', '2', 'sys_common_status', '', '', '', '2', '', '正常状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (17, 0, '关闭', '1', 'sys_common_status', '', '', '', '2', '', '关闭状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (18, 0, '新增', '1', 'sys_oper_type', '', '', '', '2', '', '新增操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (19, 0, '修改', '2', 'sys_oper_type', '', '', '', '2', '', '修改操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (20, 0, '删除', '3', 'sys_oper_type', '', '', '', '2', '', '删除操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (21, 0, '授权', '4', 'sys_oper_type', '', '', '', '2', '', '授权操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (22, 0, '导出', '5', 'sys_oper_type', '', '', '', '2', '', '导出操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (23, 0, '导入', '6', 'sys_oper_type', '', '', '', '2', '', '导入操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (24, 0, '强退', '7', 'sys_oper_type', '', '', '', '2', '', '强退操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (25, 0, '生成代码', '8', 'sys_oper_type', '', '', '', '2', '', '生成操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (26, 0, '清空数据', '9', 'sys_oper_type', '', '', '', '2', '', '清空操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (27, 0, '成功', '0', 'sys_notice_status', '', '', '', '2', '', '成功状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (28, 0, '失败', '1', 'sys_notice_status', '', '', '', '2', '', '失败状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (29, 0, '登录', '10', 'sys_oper_type', '', '', '', '2', '', '登录操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (30, 0, '退出', '11', 'sys_oper_type', '', '', '', '2', '', '', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (31, 0, '获取验证码', '12', 'sys_oper_type', '', '', '', '2', '', '获取验证码', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (32, 0, '正常', '1', 'sys_content_status', '', '', '', '1', '', '', 1, 1, '2021-05-13 19:56:40.845', '2021-05-13 19:56:40.845', NULL); +INSERT INTO sys_dict_data VALUES (33, 1, '禁用', '2', 'sys_content_status', '', '', '', '1', '', '', 1, 1, '2021-05-13 19:56:40.845', '2021-05-13 19:56:40.845', NULL); -INSERT INTO `sys_dict_data` VALUES (1, 0, '正常', '2', 'sys_normal_disable', '', '', '', '2', '', '系统正常', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:40.168', NULL); -INSERT INTO `sys_dict_data` VALUES (2, 0, '停用', '1', 'sys_normal_disable', '', '', '', '2', '', '系统停用', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (3, 0, '男', '0', 'sys_user_sex', '', '', '', '2', '', '性别男', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (4, 0, '女', '1', 'sys_user_sex', '', '', '', '2', '', '性别女', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (5, 0, '未知', '2', 'sys_user_sex', '', '', '', '2', '', '性别未知', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (6, 0, '显示', '0', 'sys_show_hide', '', '', '', '2', '', '显示菜单', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (7, 0, '隐藏', '1', 'sys_show_hide', '', '', '', '2', '', '隐藏菜单', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (8, 0, '是', 'Y', 'sys_yes_no', '', '', '', '2', '', '系统默认是', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (9, 0, '否', 'N', 'sys_yes_no', '', '', '', '2', '', '系统默认否', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (10, 0, '正常', '2', 'sys_job_status', '', '', '', '2', '', '正常状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (11, 0, '停用', '1', 'sys_job_status', '', '', '', '2', '', '停用状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (12, 0, '默认', 'DEFAULT', 'sys_job_group', '', '', '', '2', '', '默认分组', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (13, 0, '系统', 'SYSTEM', 'sys_job_group', '', '', '', '2', '', '系统分组', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (14, 0, '通知', '1', 'sys_notice_type', '', '', '', '2', '', '通知', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (15, 0, '公告', '2', 'sys_notice_type', '', '', '', '2', '', '公告', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (16, 0, '正常', '2', 'sys_common_status', '', '', '', '2', '', '正常状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (17, 0, '关闭', '1', 'sys_common_status', '', '', '', '2', '', '关闭状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (18, 0, '新增', '1', 'sys_oper_type', '', '', '', '2', '', '新增操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (19, 0, '修改', '2', 'sys_oper_type', '', '', '', '2', '', '修改操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (20, 0, '删除', '3', 'sys_oper_type', '', '', '', '2', '', '删除操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (21, 0, '授权', '4', 'sys_oper_type', '', '', '', '2', '', '授权操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (22, 0, '导出', '5', 'sys_oper_type', '', '', '', '2', '', '导出操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (23, 0, '导入', '6', 'sys_oper_type', '', '', '', '2', '', '导入操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (24, 0, '强退', '7', 'sys_oper_type', '', '', '', '2', '', '强退操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (25, 0, '生成代码', '8', 'sys_oper_type', '', '', '', '2', '', '生成操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (26, 0, '清空数据', '9', 'sys_oper_type', '', '', '', '2', '', '清空操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (27, 0, '成功', '0', 'sys_notice_status', '', '', '', '2', '', '成功状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (28, 0, '失败', '1', 'sys_notice_status', '', '', '', '2', '', '失败状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (29, 0, '登录', '10', 'sys_oper_type', '', '', '', '2', '', '登录操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (30, 0, '退出', '11', 'sys_oper_type', '', '', '', '2', '', '', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (31, 0, '获取验证码', '12', 'sys_oper_type', '', '', '', '2', '', '获取验证码', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_data` VALUES (32, 0, '正常', '1', 'sys_content_status', '', '', '', '1', '', '', 1, 1, '2021-05-13 19:56:40.845', '2021-05-13 19:56:40.845', NULL); -INSERT INTO `sys_dict_data` VALUES (33, 1, '禁用', '2', 'sys_content_status', '', '', '', '1', '', '', 1, 1, '2021-05-13 19:56:40.845', '2021-05-13 19:56:40.845', NULL); +INSERT INTO sys_dict_type VALUES (1, '系统开关', 'sys_normal_disable', '2', '系统开关列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (2, '用户性别', 'sys_user_sex', '2', '用户性别列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (3, '菜单状态', 'sys_show_hide', '2', '菜单状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (4, '系统是否', 'sys_yes_no', '2', '系统是否列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (5, '任务状态', 'sys_job_status', '2', '任务状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (6, '任务分组', 'sys_job_group', '2', '任务分组列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (7, '通知类型', 'sys_notice_type', '2', '通知类型列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (8, '系统状态', 'sys_common_status', '2', '登录状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (9, '操作类型', 'sys_oper_type', '2', '操作类型列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (10, '通知状态', 'sys_notice_status', '2', '通知状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (11, '内容状态', 'sys_content_status', '2', '', 1, 1, '2021-05-13 19:56:40.813', '2021-05-13 19:56:40.813', NULL); -INSERT INTO `sys_dict_type` VALUES (1, '系统开关', 'sys_normal_disable', '2', '系统开关列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (2, '用户性别', 'sys_user_sex', '2', '用户性别列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (3, '菜单状态', 'sys_show_hide', '2', '菜单状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (4, '系统是否', 'sys_yes_no', '2', '系统是否列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (5, '任务状态', 'sys_job_status', '2', '任务状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (6, '任务分组', 'sys_job_group', '2', '任务分组列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '2', '通知类型列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (8, '系统状态', 'sys_common_status', '2', '登录状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '2', '操作类型列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (10, '通知状态', 'sys_notice_status', '2', '通知状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); -INSERT INTO `sys_dict_type` VALUES (11, '内容状态', 'sys_content_status', '2', '', 1, 1, '2021-05-13 19:56:40.813', '2021-05-13 19:56:40.813', NULL); +INSERT INTO sys_job VALUES (1, '接口测试', 'DEFAULT', 1, '0/5 * * * * ', 'http://localhost:8000', '', 1, 1, 1, 0, '2021-05-13 19:56:37.914', '2021-06-14 20:59:55.417', NULL, 1, 1); +INSERT INTO sys_job VALUES (2, '函数测试', 'DEFAULT', 2, '0/5 * * * * ', 'ExamplesOne', '参数', 1, 1, 1, 0, '2021-05-13 19:56:37.914', '2021-05-31 23:55:37.221', NULL, 1, 1); -INSERT INTO `sys_job` VALUES (1, '接口测试', 'DEFAULT', 1, '0/5 * * * * ', 'http://localhost:8000', '', 1, 1, 1, 0, '2021-05-13 19:56:37.914', '2021-06-14 20:59:55.417', NULL, 1, 1); -INSERT INTO `sys_job` VALUES (2, '函数测试', 'DEFAULT', 2, '0/5 * * * * ', 'ExamplesOne', '参数', 1, 1, 1, 0, '2021-05-13 19:56:37.914', '2021-05-31 23:55:37.221', NULL, 1, 1); - -INSERT INTO `sys_menu` VALUES (2, 'Admin', '系统管理', 'api-server', '/admin', '/0/2', 'M', '无', '', 0, 1, '', 'Layout', 10, '0', '1', 0, 1, '2021-05-20 21:58:45.679', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (3, 'SysUserManage', '用户管理', 'user', '/admin/sys-user', '/0/2/3', 'C', '无', 'admin:sysUser:list', 2, 0, '', '/admin/sys-user/index', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); -INSERT INTO `sys_menu` VALUES (43, '', '新增管理员', 'app-group-fill', '', '/0/2/3/43', 'F', 'POST', 'admin:sysUser:add', 3, 0, '', '', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); -INSERT INTO `sys_menu` VALUES (44, '', '查询管理员', 'app-group-fill', '', '/0/2/3/44', 'F', 'GET', 'admin:sysUser:query', 3, 0, '', '', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); -INSERT INTO `sys_menu` VALUES (45, '', '修改管理员', 'app-group-fill', '', '/0/2/3/45', 'F', 'PUT', 'admin:sysUser:edit', 3, 0, '', '', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); -INSERT INTO `sys_menu` VALUES (46, '', '删除管理员', 'app-group-fill', '', '/0/2/3/46', 'F', 'DELETE', 'admin:sysUser:remove', 3, 0, '', '', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); -INSERT INTO `sys_menu` VALUES (51, 'SysMenuManage', '菜单管理', 'tree-table', '/admin/sys-menu', '/0/2/51', 'C', '无', 'admin:sysMenu:list', 2, 1, '', '/admin/sys-menu/index', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (52, 'SysRoleManage', '角色管理', 'peoples', '/admin/sys-role', '/0/2/52', 'C', '无', 'admin:sysRole:list', 2, 1, '', '/admin/sys-role/index', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (56, 'SysDeptManage', '部门管理', 'tree', '/admin/sys-dept', '/0/2/56', 'C', '无', 'admin:sysDept:list', 2, 0, '', '/admin/sys-dept/index', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (57, 'SysPostManage', '岗位管理', 'pass', '/admin/sys-post', '/0/2/57', 'C', '无', 'admin:sysPost:list', 2, 0, '', '/admin/sys-post/index', 50, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (58, 'Dict', '字典管理', 'education', '/admin/dict', '/0/2/58', 'C', '无', 'admin:sysDictType:list', 2, 0, '', '/admin/dict/index', 60, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (59, 'SysDictDataManage', '字典数据', 'education', '/admin/dict/data/:dictId', '/0/2/59', 'C', '无', 'admin:sysDictData:list', 2, 0, '', '/admin/dict/data', 100, '1', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (60, 'Tools', '开发工具', 'dev-tools', '/dev-tools', '/0/60', 'M', '无', '', 0, 0, '', 'Layout', 40, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (61, 'Swagger', '系统接口', 'guide', '/dev-tools/swagger', '/0/60/61', 'C', '无', '', 60, 0, '', '/dev-tools/swagger/index', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (62, 'SysConfigManage', '参数管理', 'swagger', '/admin/sys-config', '/0/2/62', 'C', '无', 'admin:sysConfig:list', 2, 0, '', '/admin/sys-config/index', 70, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (211, 'Log', '日志管理', 'log', '/log', '/0/2/211', 'M', '', '', 2, 0, '', '/log/index', 80, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (212, 'SysLoginLogManage', '登录日志', 'logininfor', '/admin/sys-login-log', '/0/2/211/212', 'C', '', 'admin:sysLoginLog:list', 211, 0, '', '/admin/sys-login-log/index', 1, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (216, 'OperLog', '操作日志', 'skill', '/admin/sys-oper-log', '/0/2/211/216', 'C', '', 'admin:sysOperLog:list', 211, 0, '', '/admin/sys-oper-log/index', 1, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (220, '', '新增菜单', 'app-group-fill', '', '/0/2/51/220', 'F', '', 'admin:sysMenu:add', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (221, '', '修改菜单', 'app-group-fill', '', '/0/2/51/221', 'F', '', 'admin:sysMenu:edit', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (222, '', '查询菜单', 'app-group-fill', '', '/0/2/51/222', 'F', '', 'admin:sysMenu:query', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (223, '', '删除菜单', 'app-group-fill', '', '/0/2/51/223', 'F', '', 'admin:sysMenu:remove', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (224, '', '新增角色', 'app-group-fill', '', '/0/2/52/224', 'F', '', 'admin:sysRole:add', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (225, '', '查询角色', 'app-group-fill', '', '/0/2/52/225', 'F', '', 'admin:sysRole:query', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (226, '', '修改角色', 'app-group-fill', '', '/0/2/52/226', 'F', '', 'admin:sysRole:update', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (227, '', '删除角色', 'app-group-fill', '', '/0/2/52/227', 'F', '', 'admin:sysRole:remove', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (228, '', '查询部门', 'app-group-fill', '', '/0/2/56/228', 'F', '', 'admin:sysDept:query', 56, 0, '', '', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (229, '', '新增部门', 'app-group-fill', '', '/0/2/56/229', 'F', '', 'admin:sysDept:add', 56, 0, '', '', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (230, '', '修改部门', 'app-group-fill', '', '/0/2/56/230', 'F', '', 'admin:sysDept:edit', 56, 0, '', '', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (231, '', '删除部门', 'app-group-fill', '', '/0/2/56/231', 'F', '', 'admin:sysDept:remove', 56, 0, '', '', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (232, '', '查询岗位', 'app-group-fill', '', '/0/2/57/232', 'F', '', 'admin:sysPost:query', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (233, '', '新增岗位', 'app-group-fill', '', '/0/2/57/233', 'F', '', 'admin:sysPost:add', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (234, '', '修改岗位', 'app-group-fill', '', '/0/2/57/234', 'F', '', 'admin:sysPost:edit', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (235, '', '删除岗位', 'app-group-fill', '', '/0/2/57/235', 'F', '', 'admin:sysPost:remove', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (236, '', '查询字典', 'app-group-fill', '', '/0/2/58/236', 'F', '', 'admin:sysDictType:query', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (237, '', '新增类型', 'app-group-fill', '', '/0/2/58/237', 'F', '', 'admin:sysDictType:add', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (238, '', '修改类型', 'app-group-fill', '', '/0/2/58/238', 'F', '', 'admin:sysDictType:edit', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (239, '', '删除类型', 'app-group-fill', '', '/0/2/58/239', 'F', '', 'system:sysdicttype:remove', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (240, '', '查询数据', 'app-group-fill', '', '/0/2/59/240', 'F', '', 'admin:sysDictData:query', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (241, '', '新增数据', 'app-group-fill', '', '/0/2/59/241', 'F', '', 'admin:sysDictData:add', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (242, '', '修改数据', 'app-group-fill', '', '/0/2/59/242', 'F', '', 'admin:sysDictData:edit', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (243, '', '删除数据', 'app-group-fill', '', '/0/2/59/243', 'F', '', 'admin:sysDictData:remove', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (244, '', '查询参数', 'app-group-fill', '', '/0/2/62/244', 'F', '', 'admin:sysConfig:query', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (245, '', '新增参数', 'app-group-fill', '', '/0/2/62/245', 'F', '', 'admin:sysConfig:add', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (246, '', '修改参数', 'app-group-fill', '', '/0/2/62/246', 'F', '', 'admin:sysConfig:edit', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (247, '', '删除参数', 'app-group-fill', '', '/0/2/62/247', 'F', '', 'admin:sysConfig:remove', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (248, '', '查询登录日志', 'app-group-fill', '', '/0/2/211/212/248', 'F', '', 'admin:sysLoginLog:query', 212, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (249, '', '删除登录日志', 'app-group-fill', '', '/0/2/211/212/249', 'F', '', 'admin:sysLoginLog:remove', 212, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (250, '', '查询操作日志', 'app-group-fill', '', '/0/2/211/216/250', 'F', '', 'admin:sysOperLog:query', 216, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (251, '', '删除操作日志', 'app-group-fill', '', '/0/2/211/216/251', 'F', '', 'admin:sysOperLog:remove', 216, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (261, 'Gen', '代码生成', 'code', '/dev-tools/gen', '/0/60/261', 'C', '', '', 60, 0, '', '/dev-tools/gen/index', 2, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL); -INSERT INTO `sys_menu` VALUES (262, 'EditTable', '代码生成修改', 'build', '/dev-tools/editTable', '/0/60/262', 'C', '', '', 60, 0, '', '/dev-tools/gen/editTable', 100, '1', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL); -INSERT INTO `sys_menu` VALUES (264, 'Build', '表单构建', 'build', '/dev-tools/build', '/0/60/264', 'C', '', '', 60, 0, '', '/dev-tools/build/index', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL); -INSERT INTO `sys_menu` VALUES (269, 'ServerMonitor', '服务监控', 'druid', '/sys-tools/monitor', '/0/60/269', 'C', '', 'sysTools:serverMonitor:list', 537, 0, '', '/sys-tools/monitor', 0, '0', '1', 1, 1, '2020-04-14 00:28:19.000', '2021-06-16 21:26:12.446', NULL); -INSERT INTO `sys_menu` VALUES (459, 'Schedule', '定时任务', 'time-range', '/schedule', '/0/459', 'M', '无', '', 0, 0, '', 'Layout', 20, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (460, 'ScheduleManage', 'Schedule', 'job', '/schedule/manage', '/0/459/460', 'C', '无', 'job:sysJob:list', 459, 0, '', '/schedule/index', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (461, 'sys_job', '分页获取定时任务', 'app-group-fill', '', '/0/459/460/461', 'F', '无', 'job:sysJob:query', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (462, 'sys_job', '创建定时任务', 'app-group-fill', '', '/0/459/460/462', 'F', '无', 'job:sysJob:add', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (463, 'sys_job', '修改定时任务', 'app-group-fill', '', '/0/459/460/463', 'F', '无', 'job:sysJob:edit', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (464, 'sys_job', '删除定时任务', 'app-group-fill', '', '/0/459/460/464', 'F', '无', 'job:sysJob:remove', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (471, 'JobLog', '日志', 'bug', '/schedule/log', '/0/459/471', 'C', '', '', 459, 0, '', '/schedule/log', 0, '1', '1', 1, 1, '2020-08-05 21:24:46.000', '2021-06-05 22:15:03.465', NULL); -INSERT INTO `sys_menu` VALUES (528, 'SysApiManage', '接口管理', 'api-doc', '/admin/sys-api', '/0/527/528', 'C', '无', 'admin:sysApi:list', 2, 0, '', '/admin/sys-api/index', 0, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (529, '', '查询接口', 'app-group-fill', '', '/0/527/528/529', 'F', '无', 'admin:sysApi:query', 528, 0, '', '', 40, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (531, '', '修改接口', 'app-group-fill', '', '/0/527/528/531', 'F', '无', 'admin:sysApi:edit', 528, 0, '', '', 30, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (537, 'SysTools', '系统工具', 'system-tools', '/sys-tools', '', 'M', '', '', 0, 0, '', 'Layout', 30, '0', '1', 1, 1, '2021-05-21 11:13:32.166', '2021-06-16 21:26:12.446', NULL); -INSERT INTO `sys_menu` VALUES (540, 'SysConfigSet', '参数设置', 'system-tools', '/admin/sys-config/set', '', 'C', '', 'admin:sysConfigSet:list', 2, 0, '', '/admin/sys-config/set', 0, '0', '1', 1, 1, '2021-05-25 16:06:52.560', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu` VALUES (542, '', '修改', 'upload', '', '', 'F', '', 'admin:sysConfigSet:update', 540, 0, '', '', 0, '0', '1', 1, 1, '2021-06-13 11:45:48.670', '2021-06-17 11:48:40.703', NULL); -INSERT INTO `sys_menu_api_rule` VALUES (216, 6); -INSERT INTO `sys_menu_api_rule` VALUES (250, 6); -INSERT INTO `sys_menu_api_rule` VALUES (58, 21); -INSERT INTO `sys_menu_api_rule` VALUES (236, 21); -INSERT INTO `sys_menu_api_rule` VALUES (238, 23); -INSERT INTO `sys_menu_api_rule` VALUES (59, 24); -INSERT INTO `sys_menu_api_rule` VALUES (240, 24); -INSERT INTO `sys_menu_api_rule` VALUES (242, 25); -INSERT INTO `sys_menu_api_rule` VALUES (58, 26); -INSERT INTO `sys_menu_api_rule` VALUES (236, 26); -INSERT INTO `sys_menu_api_rule` VALUES (56, 27); -INSERT INTO `sys_menu_api_rule` VALUES (228, 27); -INSERT INTO `sys_menu_api_rule` VALUES (230, 28); -INSERT INTO `sys_menu_api_rule` VALUES (226, 29); -INSERT INTO `sys_menu_api_rule` VALUES (51, 39); -INSERT INTO `sys_menu_api_rule` VALUES (51, 135); -INSERT INTO `sys_menu_api_rule` VALUES (222, 39); -INSERT INTO `sys_menu_api_rule` VALUES (221, 41); -INSERT INTO `sys_menu_api_rule` VALUES (52, 44); -INSERT INTO `sys_menu_api_rule` VALUES (225, 44); -INSERT INTO `sys_menu_api_rule` VALUES (226, 45); -INSERT INTO `sys_menu_api_rule` VALUES (226, 46); -INSERT INTO `sys_menu_api_rule` VALUES (226, 47); -INSERT INTO `sys_menu_api_rule` VALUES (62, 53); -INSERT INTO `sys_menu_api_rule` VALUES (244, 53); -INSERT INTO `sys_menu_api_rule` VALUES (246, 54); -INSERT INTO `sys_menu_api_rule` VALUES (57, 59); -INSERT INTO `sys_menu_api_rule` VALUES (232, 59); -INSERT INTO `sys_menu_api_rule` VALUES (234, 60); -INSERT INTO `sys_menu_api_rule` VALUES (241, 80); -INSERT INTO `sys_menu_api_rule` VALUES (237, 81); -INSERT INTO `sys_menu_api_rule` VALUES (229, 82); -INSERT INTO `sys_menu_api_rule` VALUES (245, 87); -INSERT INTO `sys_menu_api_rule` VALUES (220, 88); -INSERT INTO `sys_menu_api_rule` VALUES (233, 89); -INSERT INTO `sys_menu_api_rule` VALUES (224, 90); -INSERT INTO `sys_menu_api_rule` VALUES (531, 92); -INSERT INTO `sys_menu_api_rule` VALUES (242, 101); -INSERT INTO `sys_menu_api_rule` VALUES (238, 102); -INSERT INTO `sys_menu_api_rule` VALUES (230, 103); -INSERT INTO `sys_menu_api_rule` VALUES (226, 106); -INSERT INTO `sys_menu_api_rule` VALUES (226, 107); -INSERT INTO `sys_menu_api_rule` VALUES (246, 108); -INSERT INTO `sys_menu_api_rule` VALUES (221, 109); -INSERT INTO `sys_menu_api_rule` VALUES (234, 110); -INSERT INTO `sys_menu_api_rule` VALUES (249, 114); -INSERT INTO `sys_menu_api_rule` VALUES (251, 115); -INSERT INTO `sys_menu_api_rule` VALUES (243, 120); -INSERT INTO `sys_menu_api_rule` VALUES (239, 121); -INSERT INTO `sys_menu_api_rule` VALUES (231, 122); -INSERT INTO `sys_menu_api_rule` VALUES (247, 125); -INSERT INTO `sys_menu_api_rule` VALUES (223, 126); -INSERT INTO `sys_menu_api_rule` VALUES (235, 127); -INSERT INTO `sys_menu_api_rule` VALUES (227, 128); -INSERT INTO `sys_menu_api_rule` VALUES (528, 135); -INSERT INTO `sys_menu_api_rule` VALUES (529, 135); -INSERT INTO `sys_menu_api_rule` VALUES (531, 136); -INSERT INTO `sys_menu_api_rule` VALUES (212, 137); -INSERT INTO `sys_menu_api_rule` VALUES (248, 137); -INSERT INTO `sys_menu_api_rule` VALUES (542, 139); -INSERT INTO `sys_menu_api_rule` VALUES (540, 140); -INSERT INTO `sys_menu_api_rule` VALUES (3, 141); -INSERT INTO `sys_menu_api_rule` VALUES (44, 141); -INSERT INTO `sys_menu_api_rule` VALUES (45, 142); -INSERT INTO `sys_menu_api_rule` VALUES (43, 150); -INSERT INTO `sys_menu_api_rule` VALUES (45, 151); -INSERT INTO `sys_menu_api_rule` VALUES (46, 156); -INSERT INTO `sys_post` VALUES (1, '首席执行官', 'CEO', 0, '2','首席执行官', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); -INSERT INTO `sys_post` VALUES (2, '首席技术执行官', 'CTO', 2, '2','首席技术执行官', 1, 1,'2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); -INSERT INTO `sys_post` VALUES (3, '首席运营官', 'COO', 3, '2','测试工程师', 1, 1,'2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); -INSERT INTO `sys_role` VALUES (1, '系统管理员', '2', 'admin', 1, '', '', 1, '', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); -INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$/Glr4g9Svr6O0kvjsRJCXu3f0W8/dsP3XZyVNi1019ratWpSPMyw.', 'zhangwj', '13818888888', 1, '', '', '1', '1@qq.com', 1, 1, '', '2', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:40.205', NULL); - -SET FOREIGN_KEY_CHECKS = 1; - --- 数据完成 ; +INSERT INTO sys_menu VALUES (2, 'Admin', '系统管理', 'api-server', '/admin', '/0/2', 'M', '无', '', 0, 1, '', 'Layout', 10, '0', '1', 0, 1, '2021-05-20 21:58:45.679', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (3, 'SysUserManage', '用户管理', 'user', '/admin/sys-user', '/0/2/3', 'C', '无', 'admin:sysUser:list', 2, 0, '', '/admin/sys-user/index', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); +INSERT INTO sys_menu VALUES (43, '', '新增管理员', 'app-group-fill', '', '/0/2/3/43', 'F', 'POST', 'admin:sysUser:add', 3, 0, '', '', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); +INSERT INTO sys_menu VALUES (44, '', '查询管理员', 'app-group-fill', '', '/0/2/3/44', 'F', 'GET', 'admin:sysUser:query', 3, 0, '', '', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); +INSERT INTO sys_menu VALUES (45, '', '修改管理员', 'app-group-fill', '', '/0/2/3/45', 'F', 'PUT', 'admin:sysUser:edit', 3, 0, '', '', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); +INSERT INTO sys_menu VALUES (46, '', '删除管理员', 'app-group-fill', '', '/0/2/3/46', 'F', 'DELETE', 'admin:sysUser:remove', 3, 0, '', '', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL); +INSERT INTO sys_menu VALUES (51, 'SysMenuManage', '菜单管理', 'tree-table', '/admin/sys-menu', '/0/2/51', 'C', '无', 'admin:sysMenu:list', 2, 1, '', '/admin/sys-menu/index', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (52, 'SysRoleManage', '角色管理', 'peoples', '/admin/sys-role', '/0/2/52', 'C', '无', 'admin:sysRole:list', 2, 1, '', '/admin/sys-role/index', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (56, 'SysDeptManage', '部门管理', 'tree', '/admin/sys-dept', '/0/2/56', 'C', '无', 'admin:sysDept:list', 2, 0, '', '/admin/sys-dept/index', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (57, 'SysPostManage', '岗位管理', 'pass', '/admin/sys-post', '/0/2/57', 'C', '无', 'admin:sysPost:list', 2, 0, '', '/admin/sys-post/index', 50, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (58, 'Dict', '字典管理', 'education', '/admin/dict', '/0/2/58', 'C', '无', 'admin:sysDictType:list', 2, 0, '', '/admin/dict/index', 60, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (59, 'SysDictDataManage', '字典数据', 'education', '/admin/dict/data/:dictId', '/0/2/59', 'C', '无', 'admin:sysDictData:list', 2, 0, '', '/admin/dict/data', 100, '1', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (60, 'Tools', '开发工具', 'dev-tools', '/dev-tools', '/0/60', 'M', '无', '', 0, 0, '', 'Layout', 40, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (61, 'Swagger', '系统接口', 'guide', '/dev-tools/swagger', '/0/60/61', 'C', '无', '', 60, 0, '', '/dev-tools/swagger/index', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (62, 'SysConfigManage', '参数管理', 'swagger', '/admin/sys-config', '/0/2/62', 'C', '无', 'admin:sysConfig:list', 2, 0, '', '/admin/sys-config/index', 70, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (211, 'Log', '日志管理', 'log', '/log', '/0/2/211', 'M', '', '', 2, 0, '', '/log/index', 80, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (212, 'SysLoginLogManage', '登录日志', 'logininfor', '/admin/sys-login-log', '/0/2/211/212', 'C', '', 'admin:sysLoginLog:list', 211, 0, '', '/admin/sys-login-log/index', 1, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (216, 'OperLog', '操作日志', 'skill', '/admin/sys-oper-log', '/0/2/211/216', 'C', '', 'admin:sysOperLog:list', 211, 0, '', '/admin/sys-oper-log/index', 1, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (220, '', '新增菜单', 'app-group-fill', '', '/0/2/51/220', 'F', '', 'admin:sysMenu:add', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (221, '', '修改菜单', 'app-group-fill', '', '/0/2/51/221', 'F', '', 'admin:sysMenu:edit', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (222, '', '查询菜单', 'app-group-fill', '', '/0/2/51/222', 'F', '', 'admin:sysMenu:query', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (223, '', '删除菜单', 'app-group-fill', '', '/0/2/51/223', 'F', '', 'admin:sysMenu:remove', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (224, '', '新增角色', 'app-group-fill', '', '/0/2/52/224', 'F', '', 'admin:sysRole:add', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (225, '', '查询角色', 'app-group-fill', '', '/0/2/52/225', 'F', '', 'admin:sysRole:query', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (226, '', '修改角色', 'app-group-fill', '', '/0/2/52/226', 'F', '', 'admin:sysRole:update', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (227, '', '删除角色', 'app-group-fill', '', '/0/2/52/227', 'F', '', 'admin:sysRole:remove', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (228, '', '查询部门', 'app-group-fill', '', '/0/2/56/228', 'F', '', 'admin:sysDept:query', 56, 0, '', '', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (229, '', '新增部门', 'app-group-fill', '', '/0/2/56/229', 'F', '', 'admin:sysDept:add', 56, 0, '', '', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (230, '', '修改部门', 'app-group-fill', '', '/0/2/56/230', 'F', '', 'admin:sysDept:edit', 56, 0, '', '', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (231, '', '删除部门', 'app-group-fill', '', '/0/2/56/231', 'F', '', 'admin:sysDept:remove', 56, 0, '', '', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (232, '', '查询岗位', 'app-group-fill', '', '/0/2/57/232', 'F', '', 'admin:sysPost:query', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (233, '', '新增岗位', 'app-group-fill', '', '/0/2/57/233', 'F', '', 'admin:sysPost:add', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (234, '', '修改岗位', 'app-group-fill', '', '/0/2/57/234', 'F', '', 'admin:sysPost:edit', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (235, '', '删除岗位', 'app-group-fill', '', '/0/2/57/235', 'F', '', 'admin:sysPost:remove', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (236, '', '查询字典', 'app-group-fill', '', '/0/2/58/236', 'F', '', 'admin:sysDictType:query', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (237, '', '新增类型', 'app-group-fill', '', '/0/2/58/237', 'F', '', 'admin:sysDictType:add', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (238, '', '修改类型', 'app-group-fill', '', '/0/2/58/238', 'F', '', 'admin:sysDictType:edit', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (239, '', '删除类型', 'app-group-fill', '', '/0/2/58/239', 'F', '', 'system:sysdicttype:remove', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (240, '', '查询数据', 'app-group-fill', '', '/0/2/59/240', 'F', '', 'admin:sysDictData:query', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (241, '', '新增数据', 'app-group-fill', '', '/0/2/59/241', 'F', '', 'admin:sysDictData:add', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (242, '', '修改数据', 'app-group-fill', '', '/0/2/59/242', 'F', '', 'admin:sysDictData:edit', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (243, '', '删除数据', 'app-group-fill', '', '/0/2/59/243', 'F', '', 'admin:sysDictData:remove', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (244, '', '查询参数', 'app-group-fill', '', '/0/2/62/244', 'F', '', 'admin:sysConfig:query', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (245, '', '新增参数', 'app-group-fill', '', '/0/2/62/245', 'F', '', 'admin:sysConfig:add', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (246, '', '修改参数', 'app-group-fill', '', '/0/2/62/246', 'F', '', 'admin:sysConfig:edit', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (247, '', '删除参数', 'app-group-fill', '', '/0/2/62/247', 'F', '', 'admin:sysConfig:remove', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (248, '', '查询登录日志', 'app-group-fill', '', '/0/2/211/212/248', 'F', '', 'admin:sysLoginLog:query', 212, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (249, '', '删除登录日志', 'app-group-fill', '', '/0/2/211/212/249', 'F', '', 'admin:sysLoginLog:remove', 212, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (250, '', '查询操作日志', 'app-group-fill', '', '/0/2/211/216/250', 'F', '', 'admin:sysOperLog:query', 216, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (251, '', '删除操作日志', 'app-group-fill', '', '/0/2/211/216/251', 'F', '', 'admin:sysOperLog:remove', 216, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (261, 'Gen', '代码生成', 'code', '/dev-tools/gen', '/0/60/261', 'C', '', '', 60, 0, '', '/dev-tools/gen/index', 2, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL); +INSERT INTO sys_menu VALUES (262, 'EditTable', '代码生成修改', 'build', '/dev-tools/editTable', '/0/60/262', 'C', '', '', 60, 0, '', '/dev-tools/gen/editTable', 100, '1', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL); +INSERT INTO sys_menu VALUES (264, 'Build', '表单构建', 'build', '/dev-tools/build', '/0/60/264', 'C', '', '', 60, 0, '', '/dev-tools/build/index', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL); +INSERT INTO sys_menu VALUES (269, 'ServerMonitor', '服务监控', 'druid', '/sys-tools/monitor', '/0/60/269', 'C', '', 'sysTools:serverMonitor:list', 537, 0, '', '/sys-tools/monitor', 0, '0', '1', 1, 1, '2020-04-14 00:28:19.000', '2021-06-16 21:26:12.446', NULL); +INSERT INTO sys_menu VALUES (459, 'Schedule', '定时任务', 'time-range', '/schedule', '/0/459', 'M', '无', '', 0, 0, '', 'Layout', 20, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (460, 'ScheduleManage', 'Schedule', 'job', '/schedule/manage', '/0/459/460', 'C', '无', 'job:sysJob:list', 459, 0, '', '/schedule/index', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (461, 'sys_job', '分页获取定时任务', 'app-group-fill', '', '/0/459/460/461', 'F', '无', 'job:sysJob:query', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (462, 'sys_job', '创建定时任务', 'app-group-fill', '', '/0/459/460/462', 'F', '无', 'job:sysJob:add', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (463, 'sys_job', '修改定时任务', 'app-group-fill', '', '/0/459/460/463', 'F', '无', 'job:sysJob:edit', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (464, 'sys_job', '删除定时任务', 'app-group-fill', '', '/0/459/460/464', 'F', '无', 'job:sysJob:remove', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (471, 'JobLog', '日志', 'bug', '/schedule/log', '/0/459/471', 'C', '', '', 459, 0, '', '/schedule/log', 0, '1', '1', 1, 1, '2020-08-05 21:24:46.000', '2021-06-05 22:15:03.465', NULL); +INSERT INTO sys_menu VALUES (528, 'SysApiManage', '接口管理', 'api-doc', '/admin/sys-api', '/0/527/528', 'C', '无', 'admin:sysApi:list', 2, 0, '', '/admin/sys-api/index', 0, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (529, '', '查询接口', 'app-group-fill', '', '/0/527/528/529', 'F', '无', 'admin:sysApi:query', 528, 0, '', '', 40, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (531, '', '修改接口', 'app-group-fill', '', '/0/527/528/531', 'F', '无', 'admin:sysApi:edit', 528, 0, '', '', 30, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (537, 'SysTools', '系统工具', 'system-tools', '/sys-tools', '', 'M', '', '', 0, 0, '', 'Layout', 30, '0', '1', 1, 1, '2021-05-21 11:13:32.166', '2021-06-16 21:26:12.446', NULL); +INSERT INTO sys_menu VALUES (540, 'SysConfigSet', '参数设置', 'system-tools', '/admin/sys-config/set', '', 'C', '', 'admin:sysConfigSet:list', 2, 0, '', '/admin/sys-config/set', 0, '0', '1', 1, 1, '2021-05-25 16:06:52.560', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu VALUES (542, '', '修改', 'upload', '', '', 'F', '', 'admin:sysConfigSet:update', 540, 0, '', '', 0, '0', '1', 1, 1, '2021-06-13 11:45:48.670', '2021-06-17 11:48:40.703', NULL); +INSERT INTO sys_menu_api_rule VALUES (216, 6); +INSERT INTO sys_menu_api_rule VALUES (250, 6); +INSERT INTO sys_menu_api_rule VALUES (58, 21); +INSERT INTO sys_menu_api_rule VALUES (236, 21); +INSERT INTO sys_menu_api_rule VALUES (238, 23); +INSERT INTO sys_menu_api_rule VALUES (59, 24); +INSERT INTO sys_menu_api_rule VALUES (240, 24); +INSERT INTO sys_menu_api_rule VALUES (242, 25); +INSERT INTO sys_menu_api_rule VALUES (58, 26); +INSERT INTO sys_menu_api_rule VALUES (236, 26); +INSERT INTO sys_menu_api_rule VALUES (56, 27); +INSERT INTO sys_menu_api_rule VALUES (228, 27); +INSERT INTO sys_menu_api_rule VALUES (230, 28); +INSERT INTO sys_menu_api_rule VALUES (226, 29); +INSERT INTO sys_menu_api_rule VALUES (51, 39); +INSERT INTO sys_menu_api_rule VALUES (51, 135); +INSERT INTO sys_menu_api_rule VALUES (222, 39); +INSERT INTO sys_menu_api_rule VALUES (221, 41); +INSERT INTO sys_menu_api_rule VALUES (52, 44); +INSERT INTO sys_menu_api_rule VALUES (225, 44); +INSERT INTO sys_menu_api_rule VALUES (226, 45); +INSERT INTO sys_menu_api_rule VALUES (226, 46); +INSERT INTO sys_menu_api_rule VALUES (226, 47); +INSERT INTO sys_menu_api_rule VALUES (62, 53); +INSERT INTO sys_menu_api_rule VALUES (244, 53); +INSERT INTO sys_menu_api_rule VALUES (246, 54); +INSERT INTO sys_menu_api_rule VALUES (57, 59); +INSERT INTO sys_menu_api_rule VALUES (232, 59); +INSERT INTO sys_menu_api_rule VALUES (234, 60); +INSERT INTO sys_menu_api_rule VALUES (241, 80); +INSERT INTO sys_menu_api_rule VALUES (237, 81); +INSERT INTO sys_menu_api_rule VALUES (229, 82); +INSERT INTO sys_menu_api_rule VALUES (245, 87); +INSERT INTO sys_menu_api_rule VALUES (220, 88); +INSERT INTO sys_menu_api_rule VALUES (233, 89); +INSERT INTO sys_menu_api_rule VALUES (224, 90); +INSERT INTO sys_menu_api_rule VALUES (531, 92); +INSERT INTO sys_menu_api_rule VALUES (242, 101); +INSERT INTO sys_menu_api_rule VALUES (238, 102); +INSERT INTO sys_menu_api_rule VALUES (230, 103); +INSERT INTO sys_menu_api_rule VALUES (226, 106); +INSERT INTO sys_menu_api_rule VALUES (226, 107); +INSERT INTO sys_menu_api_rule VALUES (246, 108); +INSERT INTO sys_menu_api_rule VALUES (221, 109); +INSERT INTO sys_menu_api_rule VALUES (234, 110); +INSERT INTO sys_menu_api_rule VALUES (249, 114); +INSERT INTO sys_menu_api_rule VALUES (251, 115); +INSERT INTO sys_menu_api_rule VALUES (243, 120); +INSERT INTO sys_menu_api_rule VALUES (239, 121); +INSERT INTO sys_menu_api_rule VALUES (231, 122); +INSERT INTO sys_menu_api_rule VALUES (247, 125); +INSERT INTO sys_menu_api_rule VALUES (223, 126); +INSERT INTO sys_menu_api_rule VALUES (235, 127); +INSERT INTO sys_menu_api_rule VALUES (227, 128); +INSERT INTO sys_menu_api_rule VALUES (528, 135); +INSERT INTO sys_menu_api_rule VALUES (529, 135); +INSERT INTO sys_menu_api_rule VALUES (531, 136); +INSERT INTO sys_menu_api_rule VALUES (212, 137); +INSERT INTO sys_menu_api_rule VALUES (248, 137); +INSERT INTO sys_menu_api_rule VALUES (542, 139); +INSERT INTO sys_menu_api_rule VALUES (540, 140); +INSERT INTO sys_menu_api_rule VALUES (3, 141); +INSERT INTO sys_menu_api_rule VALUES (44, 141); +INSERT INTO sys_menu_api_rule VALUES (45, 142); +INSERT INTO sys_menu_api_rule VALUES (43, 150); +INSERT INTO sys_menu_api_rule VALUES (45, 151); +INSERT INTO sys_menu_api_rule VALUES (46, 156); +INSERT INTO sys_post VALUES (1, '首席执行官', 'CEO', 0, '2','首席执行官', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); +INSERT INTO sys_post VALUES (2, '首席技术执行官', 'CTO', 2, '2','首席技术执行官', 1, 1,'2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); +INSERT INTO sys_post VALUES (3, '首席运营官', 'COO', 3, '2','测试工程师', 1, 1,'2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); +INSERT INTO sys_role VALUES (1, '系统管理员', '2', 'admin', 1, '', '', 1, '', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); +INSERT INTO sys_user VALUES (1, 'admin', '$2a$10$/Glr4g9Svr6O0kvjsRJCXu3f0W8/dsP3XZyVNi1019ratWpSPMyw.', 'zhangwj', '13818888888', 1, '', '', '1', '1@qq.com', 1, 1, '', '2', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:40.205', NULL); +-- 数据完成 ; \ No newline at end of file diff --git a/go-admin-db.db b/go-admin-db.db new file mode 100644 index 0000000000000000000000000000000000000000..b09e1fa7fc52aa399bcf18864121544710679fea GIT binary patch literal 319488 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%0A=dy|fhb%uaQzy+0qFVp$5B`HY-SxxVK( zkDT<2qn!sH+@{Vt8PiIklNoqi=kJSp7=J8FlU(mX$|2ToIY!?1I(`GM)h$n%zl8U- z?~-rx`XxLsfycH$K1Mb++fhnW;nF zqN$0P{kyMg$@SY8TBj|3TH5j^ob$AWmzETip}#ERy;0(n>)YpfKW^9BVH;yVPDDb? zkd3+j+qoa-69CC3Vp*R}oVY`-Z&gV*I;6d3fXfJgwCUCv0P)c(lb(oq#{X#t(;@%A DVu9aO literal 0 HcmV?d00001 From e9f36e74ca528816db0e573b6bf7378bf5e1537b Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 22 Jan 2022 19:44:36 +0800 Subject: [PATCH 13/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/global/adm.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/global/adm.go b/common/global/adm.go index 651c63cc..22da11c8 100644 --- a/common/global/adm.go +++ b/common/global/adm.go @@ -2,11 +2,11 @@ package global const ( // Version go-admin version info - Version = "2.0.6" + Version = "2.0.8" ) var ( Source string Driver string DBName string -) \ No newline at end of file +) From b76db481129d755f7b89c994c2b5781532844226 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 22 Jan 2022 21:49:11 +0800 Subject: [PATCH 14/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E9=92=88=E5=AF=B9sqlite3=E7=9A=84=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/service/sys_role.go | 100 ++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 42 deletions(-) diff --git a/app/admin/service/sys_role.go b/app/admin/service/sys_role.go index ab374822..d5879a3d 100644 --- a/app/admin/service/sys_role.go +++ b/app/admin/service/sys_role.go @@ -2,6 +2,7 @@ package service import ( "errors" + "github.com/go-admin-team/go-admin-core/sdk/config" "gorm.io/gorm/clause" "github.com/casbin/casbin/v2" @@ -71,14 +72,17 @@ func (e *SysRole) Insert(c *dto.SysRoleInsertReq, cb *casbin.SyncedEnforcer) err } c.SysMenu = dataMenu c.Generate(&data) - tx := e.Orm.Begin() - defer func() { - if err != nil { - tx.Rollback() - } else { - tx.Commit() - } - }() + tx := e.Orm + if config.DatabaseConfig.Driver != "sqlite3" { + tx := e.Orm.Begin() + defer func() { + if err != nil { + tx.Rollback() + } else { + tx.Commit() + } + }() + } err = tx.Create(&data).Error if err != nil { @@ -108,14 +112,17 @@ func (e *SysRole) Insert(c *dto.SysRoleInsertReq, cb *casbin.SyncedEnforcer) err // Update 修改SysRole对象 func (e *SysRole) Update(c *dto.SysRoleUpdateReq, cb *casbin.SyncedEnforcer) error { var err error - tx := e.Orm.Debug().Begin() - defer func() { - if err != nil { - tx.Rollback() - } else { - tx.Commit() - } - }() + tx := e.Orm + if config.DatabaseConfig.Driver != "sqlite3" { + tx := e.Orm.Begin() + defer func() { + if err != nil { + tx.Rollback() + } else { + tx.Commit() + } + }() + } var model = models.SysRole{} var mlist = make([]models.SysMenu, 0) tx.Preload("SysMenu").First(&model, c.GetId()) @@ -142,7 +149,7 @@ func (e *SysRole) Update(c *dto.SysRoleUpdateReq, cb *casbin.SyncedEnforcer) err e.Log.Errorf("delete policy error:%s", err) return err } - mp:=make(map [string] interface{} ,0) + mp := make(map[string]interface{}, 0) polices := make([][]string, 0) for _, menu := range mlist { for _, api := range menu.SysApi { @@ -164,14 +171,17 @@ func (e *SysRole) Update(c *dto.SysRoleUpdateReq, cb *casbin.SyncedEnforcer) err // Remove 删除SysRole func (e *SysRole) Remove(c *dto.SysRoleDeleteReq) error { var err error - tx := e.Orm.Begin() - defer func() { - if err != nil { - tx.Rollback() - } else { - tx.Commit() - } - }() + tx := e.Orm + if config.DatabaseConfig.Driver != "sqlite3" { + tx := e.Orm.Begin() + defer func() { + if err != nil { + tx.Rollback() + } else { + tx.Commit() + } + }() + } var model = models.SysRole{} tx.Preload("SysMenu").Preload("SysDept").First(&model, c.GetId()) db := tx.Select(clause.Associations).Delete(&model) @@ -203,14 +213,17 @@ func (e *SysRole) GetRoleMenuId(roleId int) ([]int, error) { func (e *SysRole) UpdateDataScope(c *dto.RoleDataScopeReq) *SysRole { var err error - tx := e.Orm.Begin() - defer func() { - if err != nil { - tx.Rollback() - } else { - tx.Commit() - } - }() + tx := e.Orm + if config.DatabaseConfig.Driver != "sqlite3" { + tx := e.Orm.Begin() + defer func() { + if err != nil { + tx.Rollback() + } else { + tx.Commit() + } + }() + } var dlist = make([]models.SysDept, 0) var model = models.SysRole{} tx.Preload("SysDept").First(&model, c.RoleId) @@ -239,14 +252,17 @@ func (e *SysRole) UpdateDataScope(c *dto.RoleDataScopeReq) *SysRole { // UpdateStatus 修改SysRole对象status func (e *SysRole) UpdateStatus(c *dto.UpdateStatusReq) error { var err error - tx := e.Orm.Debug().Begin() - defer func() { - if err != nil { - tx.Rollback() - } else { - tx.Commit() - } - }() + tx := e.Orm + if config.DatabaseConfig.Driver != "sqlite3" { + tx := e.Orm.Begin() + defer func() { + if err != nil { + tx.Rollback() + } else { + tx.Commit() + } + }() + } var model = models.SysRole{} tx.First(&model, c.GetId()) c.Generate(&model) @@ -299,4 +315,4 @@ func (e *SysRole) GetById(roleId int) ([]string, error) { permissions = append(permissions, l[i].Permission) } return permissions, nil -} \ No newline at end of file +} From 26ee7b7985ac96b102a485d1aeabba2d40c20e23 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 22 Jan 2022 21:49:42 +0800 Subject: [PATCH 15/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=E6=B8=85?= =?UTF-8?q?=E7=A9=BAsqlite=E6=95=B0=E6=8D=AE=E5=BA=93=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go-admin-db.db | Bin 319488 -> 335872 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/go-admin-db.db b/go-admin-db.db index b09e1fa7fc52aa399bcf18864121544710679fea..5152f46f01355ce66606ca35ebb7339afcce872c 100644 GIT binary patch literal 335872 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 delta 13612 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 From 24908a8732afe3ded0d6ad5d4251ab98682673e3 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 22 Jan 2022 23:03:01 +0800 Subject: [PATCH 16/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0error=E5=88=A4=E6=96=AD=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 ++ cmd/migrate/migration/models/initdb.go | 30 ++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 95290124..24509c97 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,8 @@ PROJECT:=go-admin .PHONY: build build: CGO_ENABLED=0 go build -o go-admin main.go +build-linux: + env GOOS=linux GOARCH=amd64 go build build-sqlite: go build -tags sqlite3 -o go-admin main.go #.PHONY: test diff --git a/cmd/migrate/migration/models/initdb.go b/cmd/migrate/migration/models/initdb.go index 5a37ec59..08fbfa57 100644 --- a/cmd/migrate/migration/models/initdb.go +++ b/cmd/migrate/migration/models/initdb.go @@ -1,6 +1,7 @@ package models import ( + "errors" "fmt" "go-admin/common/global" "gorm.io/gorm" @@ -12,19 +13,40 @@ import ( func InitDb(db *gorm.DB) (err error) { filePath := "config/db.sql" if global.Driver == "postgres" { + err = ExecSql(db, filePath) + if err != nil { + return err + } filePath = "config/pg.sql" err = ExecSql(db, filePath) + if err != nil { + return err + } } else if global.Driver == "mysql" { filePath = "config/db-begin-mysql.sql" err = ExecSql(db, filePath) + if err != nil { + return err + } filePath = "config/db.sql" err = ExecSql(db, filePath) + if err != nil { + return err + } filePath = "config/db-end-mysql.sql" err = ExecSql(db, filePath) - } else { + if err != nil { + return err + } + } else if global.Driver == "sqlite3" { err = ExecSql(db, filePath) + if err != nil { + return err + } + } else { + return errors.New("database type is not supported") } - return err + return nil } func ExecSql(db *gorm.DB, filePath string) error { @@ -39,7 +61,7 @@ func ExecSql(db *gorm.DB, filePath string) error { fmt.Println(sqlList[i]) continue } - sql := strings.Replace(sqlList[i]+";", "\n", "", 0) + sql := strings.Replace(sqlList[i]+";", "\n", "", -1) sql = strings.TrimSpace(sql) if err = db.Exec(sql).Error; err != nil { log.Printf("error sql: %s", sql) @@ -60,4 +82,4 @@ func Ioutil(filePath string) (string, error) { } else { return "", err } -} \ No newline at end of file +} From 02b62a288ddc2845a10c439164711e4521192850 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 22 Jan 2022 23:05:38 +0800 Subject: [PATCH 17/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=8E=86=E5=8F=B2=E7=9A=84sqlite=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sqlite3.db | Bin 155648 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 sqlite3.db diff --git a/sqlite3.db b/sqlite3.db deleted file mode 100644 index 65124d045c2aa8245f04f14b937e28500d351ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155648 zcmeHw3w&F}mAB-VB-^qA#&KN}V&fP`O&sa!{u+{7PKv}+3mJ#+S+V3 z+ZW;A74T2~w7^A`Ou)BYb8U6`MO*jJpRR`73ePXF%wo^4Jin;Fr0&VO_td`R_-WOb zDjoL6JioNM{eN)!!QJ(a=FU$0p_Y7XBq`>`bJ1jaR7$}g?X`Pg^WdtjgKb+^UAtkh zZCIN%+_rRBO6^ETrNnTXl*)^vVs`m(Atz>2u`zMDEidlRFCWh3WBEc(rld?Pk;uvv zVF+yFvAmQ{$*CjR^ggIWCezBznPe=FiX`XI+w&4(27iIoSZ4WfJS)cXVsvC&E?3AT z^a)vUESB9ZXOHDZ=V)HE$bNXeg7%o0Dj=NrU2jAglM!M3)+0<(v=HZ|d{V(%imOOwV)>nN)9_kB zl2nl&&nS1r;@Td_h}khIm(%n~CYBXbdA%H|bTl4|?}R#1g)uQJ#g`9{0Q8A?wlFp# zvyG?6GU*iDD<|aAS-4izWv`TzK>g(0x%*DaMR#Ns{c2l1xMtN&8@9Gx?!R2_`LZtg z?YmEg-s?T=t#veabl5+l8cRH#ER3ac*n{k{&e(}82m6s;>JcQmpig4OwB5^+07(!? z!I7nEJ8?7}EhBeGViJs#TH>x;Iu+HW0G1iW41kbQfWMXrq-DiD1t}{kwUA<9o{Aul zASNU&nUr!`a!*0bDz-=notQiGV@X{?LW<{g31upytscc!v`-aPNy-&KmstmCN)~eH z^Ni^l0F)}E6m6}NKwGPjta%EpcP=}2M`dsLSgjVEI{#WM9-nOJ;xY*euh$V|pY z#3WG}+NnyCwtg!sx>o6id3JQFa(lgpR=OO`?d|q^1{GIFFVIxzRjtudXa*VzxzZa2 zP13fIrj(lm0vXj6%Ot@^!N`s%-6hI%ew~iEYQc5hVZ$}|T9Hp+Lk{B!G zccztbE3;eCFWOa*02Zn7t5@idMKihqW5IyQhjxuy**cuU)`Wxlvf-t}nmL3w=WsNy1inpXd=)@cw$54EDmR#LRr9>Lnpv1C^Cp$4V^*fh4JJ(0 zJnzA^)x<+gZX>X(wX0V(Mi0S20}r8_Z(gt>Xy=QHhO5%5T2BRFroT6qjqi+QmkNPi zFHAg0hemgc;9yO2_QsM0Fe^DP5Du$%(J@=jii99X9z*0r!li6(nHctZ4_;kGrj?U7 zDo7^84AD*et~R2G$>?SATkmAerg)^3b{0tzv_7VMY=-%tI(5(NgsGqG31H4GC1pat zDo_=YO;t4TQ{Q>Py{rdMZoSuAY^roLFI#3Wg7ag`pm;1dBBi2P7!imqa0EC490861M}Q;15#R`L1ULd50gk{s9f7Xu z%C0Mgh(8bsh5EvN_ypj;ZUO%9YZH3#~+=u)BTPokQ!Rr4F&qqBu&yc6fV{iCQ z!|8^{8Zr&*8m?%lbbsIdmir0!xO=NR;J&E-Z2gz&AF5B*udDB@`&HfF)V)&oP~G0T zO?6A_Y_;F4{Y>qV+S_ZxwQkpp>n+z~uDz};uAu7@=Z~CUcK(s`pz{`Iz`4LN<2dO! z=14lOcXT*xHD9lJvF4tdoi%G~7FYkG`m5E?S0Ajtxq5kZMb+O`y;60gDq0n(T2T2< zASVBC1ULdJ0`J-4^fdS3lR5C<#+a1y#WIp_ui%5jK5*tO59iT+{ZeA};D*7igB_cp ztboUUtjcb>Y3q_3u~5@&g*I;4+O-MU&Q=w&T|2n7YvWu6H^5D+*&%$p*Yg0?JOkDO<%j5TKI^>dbFt$EKnC~4j;IWeD?Qln~P zI`ITQjaWPY<-Dex zp&T@z?OH5g+5jv7!gs7fR#sK8E?9icY_dOCHz zIL;c`-fu1wo{HQGXU0KnUmp}%XRIolPKv8pu^ee5tMiIpbKZCZ9xNy4%CVn%pxiQJ z#iQ`76+BA@td~Tfgo*LNx%4cw6`%fqQcJ^7Dr{67JXVg+u&Juk8N!lAj&ey>VO!8# zFnkC|O60IB15m=GE3pJaVTpi6j8bLNIgO)ST#(Y8g~eFY=tFB3YT1&QVTo zLl>5_Xaj1U+J=rRps0!U6ZuF{Y(ys%vT6htLMvOo1PTpUGy)5ajH4fro6>wWWui@33bo0D*+zj$HfmD?GBJuPGXY`S-PT2z;&;|V z5fe8~2hwbMheW!es}70ECR5j<#P()G!vkA=FOwir(gb^3cv*Xkb?-|(j(9_{nWA20}uW_1Ss0<9-FhN zQ{M;EM?N=o@5iQ}e{kxa1HZdYU>M-~zta5$o5$0ThA;l%2yg^A0vrL307rl$z!BgG za0EC49D)B*2oxig^)?6`xLkw5cF&mAN?U#`e6IX6ub!TI`tZ~fUpV{pE8SXB0Z2Xj%%iXm4(}a?H*H39QbOFi6OM-D@lSUGUeUd6>g4BUKKv3bsV4vU^^Z)w za;PjLDUI&T7Z+79!Pob+c+8(phZsf=d!BtR!KaVCFm>eQ^oggZj~?!xdHK2011C#I zK3RJH-qMSQr=Kc<>?`p6!3rrQ?sae2{4y{a=s4Pv!@@OIdOdY<0obg9-n&ZWa;$>N=NUTe*Uu>h<8h=8{p;HIr#1# zNfyLyGavgT;Mk@leE&dk`t+Mh(kL98NnzT{f2^cs3fW9j#Kcq2D2ecfXh=DGdQwRl z7n8~KK79Va((_ZB=hvQpgD?K!2yg^A0vrL307rl$z!BgGa0EC490861N8lZSKvkv7 zUWtDyDl1(szW#qlbSiHIM}Q;15#R`L1ULd50geDifFr;W;0SO8$`Ih||1v;0$r0cP za0EC490861M}Q;15#R`L1ULd5fp;JRRh2f}|F_}(zs-fu|JxS41Dna4#1Y^Ka0EC4 z90861M}Q;15#R`L1ULd50gixz0AK$rQ1AbVUlj%_@1%I^H z?t#sNtF{idZC!QkhQYRBZPswx(qSpJBOR3z!);P3FOG`Y<->)Xm`%mT#NoEQxIe#q zIG2y*3ptsRGOrA7vHXs7c1+Hpx926o4E_SE zvCQ(}cvg(%#puYmT&|Ew=o7NySS-6+&K}E+%9r%kL^PHkZo_-9ZfFv@zdSV|CdIs1 zmbz*4x}jB@x3#Sw+@?Xt>z%l&&e6PRk^S&`1?@30RX{lLyWWU0CL_Z5tw)%oXd%u^ z`J{rk6jzbV#PU1krs1`MB&i}lo>A_K#kD<<5wl}bE~n{}Oe`y=@_IQ^>1aF_-wAc3 z3S(kciZ34?0q7I)Y+-CfW*bkBWzs3QS5C;Kvv94b%U&rbf%?h0bN8K;i|)uO`qj32 zaLuZlHf(LX+<&>;^JQJ~+jpM~z1Mr#TkB}<=&*l8HI{ffSr|*@um{;?ov{;H4)!Cx z)FViAL7&8mX}gyt0g@n)f+I`ScH(F{T1M`W#3UFewZvVybSkP#0W33$82}-r0DmnL zNXv?Q3Q|^7Y9YnIJQYD8K}<+mGAZS>7vGO_sX*r;M1keQ5)h)JR{v{RKNZT(hObgj}2^X%wU<@S0Ht#mn>+uQB;3@WaU zUZAPat6HO_&R%W-NU$m>!NHp5?2RQ0U{-QoARJcjqGPt46$wF(Jch`L zgiG1nGBND+9=y7WOe-gERFF)F8KRr`U2Q}WlhMoKx8BK`P4P%6?JSZcXnjoi*bMVO zb?Tnk2~$7W6TqBXO3H+ORiG*)o2qEwr@r%odsz>j+?Q z3I@3}p@~~mSVaY$RF$x#b>gzt?cQK>R{fc+;iGlEwU5=Va6apZ)~v7kvx<=Y=7t&f zA=?u72KS+=zO9cT8h^nY;KGfW#F<9s6lN9Y; zidH8pC3u0QSV_4RGOJaWmvUvqW;HsiOP^=eg=Tua?n9MXT#p>QOF=9r=JQgDtlimV zixDrDgK){^^-iE1w+O%hBXwE}9Hz~4qqM?+SG%jp(cIc}K_h+&&_0z0>rPSW^ZV{%h*-=qh+W?`= z(qO&31C~kAOgbsWVH8j+OsC?7EUun4i5g9#Q4`3{j_alWy*ovQAK-t{CB*kks6J6y zlVL9?M6~U~l8KXM z1rsC|T3~{C3MO>guILDEG5Nv>qaHrBw3b89Y1n0)ly@70TU&_ zkQ4XIu0c1qmM6Dr9kRZtDd%g}dR3Tbb(TT&dL<8?^j@S`H~|D(gq@)f7aMy-$un2( za!|a*OB*P!eR^IP^i_BvaghZt%robOIeMia!fCZ)F8sZd7r9Bq`EE%O4+1k;n2Vus z?6Scq8p}b!@KP^^Zlgd6aA^k+U7|X<5h1XpXfTFZVXp-?F0`r0EtXGbbqgROg0|hH z8?*_eL?Npz45`q{42_WG8$=`#ma8#kCrGcJB;T+tL;`Ivt<#KrbM=C{1fUKG_MgO5 zTwXrWG@`r^qt!&_$pT^ChCqr4&iZXO`XQ-n4J8OqD(s^ zbpNn>hw7vdtwx1X@=&F8b2)w7f-a6|*UIZ3nwFF9q!C5BG|R|3Ny%Kgkc}HcBSa(g z)$AxFlTnj&O()7X(4dUTf($bb?yh(6jZfT~{e5hF;`#rVt0!%qpL))C{>t-bo>QJb z@jT%<>N)7idvihCsuThJ_7I_rJS;=>CrT>+U~wzwCa_{iypM_Xpf5_pp1jd$l{_Uh00gyT1NE z>wi-Jz52K7zf}Kf{io|6ufMszk3T(7vEb3NiZ;u?4Da&32QaIJK$a4mK%aM_(db$;LZ zw(~9L%g*D@W6nuu-kET2b*^@XoJ*XSIIA2#bDVL!?Rd-avg5epm}AnBcO)EJ9jhH7 z#}daSj;flU)tsq$yXLK$mursK9IKhE$=4)mw$`k!3DqpAxumA5`e)T=s^6}DtNP{Y zrji8D;@4vdD55gN$}EI>2ZLqXkCSFxt=PYDW7QUB&1X zjILyKH=`>Uy`0f@MlWNujnVI+wEZ`X_A>fE7`>Fyzh-n7qkqNdD;WLnjP7Lg|6}wL zM*ou09gO}rMqke8Uog6z(LZN&8>4^5=*5iwS4LmP=$|rr5u^Ww(U&s%CyZ`o^!FM4 zZbpBP(JhSrE~DSY=znB%Go$~3(F+;<9Y!}X`tKQi38VinqZ=9hcZ|N6(cfnDMU4Ji zMlWFWUo+an=)Yog1Ec?v(QZb+&FFeYe~Zy|jQ%F0YZ?6wM!OjObw)cG{eKwkVD#4* zUBl?FGP;`4Utx3=qrc4PN=CaGUBT!&M%x)J+lP(O%sxKENM;@%WF)hWyBNug;{%Lj zw()*OGSj$|k<2p28OaP|KP7Fr+Gm=@_I!68lmFhZ1{y8PrGV*>(u3_Xo zgsdN|aoJ(edOxLBQ|eAi4Nz*FQrA*yKc!YtY9FPpq10YVT}`P1rQS=aJf&7rDo3fS zD3ztum6X~;seVeqSyl*H*7s2=O{rc=r6|=ysWD1LD3zpCm{Pkb1w%Bpb{C~!fJRE9 z6b#Qu?W7b8&Pa_?3WjE+Vw8e`8L44P!LW=}lu|G#BXtL*U`R&lc1pp3jMQzEg5emc z?UaJS7^zz+1w%1X+b9JCF;efN6b!>i-ApMMgps<5QZNJ~wUtsZ03)@9QZW1?wV6^d z_#$;9rC{hqY7?bk;6-X9rC``a>IO=|po`QHrC`WKY6GQUz(s03rC_*4>Uv7SV2ji` zO2JTz)OD1CfflK?l!9RvsWp^>K^Cb&O2H6|)M`q>0E^TBrC@kP>RL*{;EL2Wl!BoZ zsjDdk11nPRr4$USNUfw445~<7MJX6kk-CynFrXsUPbnBqk?Nxq45mo+QVNDrq(YQ} zffT7ArC=CEY6YcW5Jjq+QZR%fwVYBgfFiYwQZRfXMMt=L7(9_;102pn7icD<{E{QU z5#R`L1ULd50geDifFr;W;0SO8I077jcN_w^|8MuKv%&xT!x7*Ja0EC490861M}Q;1 z5#R`L1ULd50gk|22oyv1CR=l{y0ydQc6%1NTpo|xGc-gGiY*DmmI(eO@%3xgY#q3B z?Z&;ab=O^Y{kFjRQ25ruzI^Z2)sgh3JGV)pTzKftZR@UG^}c}(8zQ&vOcyofEx`YMZ9-3fDAX?mR|o-rq%X3}-`nq>GoP;i zAG3KLo2!95pCiB#;0SO8I0762jsQo1Bft^h2yg^A0vv&PM?kcDY|A{&F1N?+cDW&t zF#Y+{)2E-DKJoPQ(Zi(&AN7-?{jk(GU;p>^8Q1?159sX=`d5Slfk=SG2XOsg+3>i{ zbHB#}U;M)n;0SO8I0762jsQo1Bft^h2yg^A0vv(gI|6$u>ut*#?Ve>G+(+dPJ~Z4)++B!`kigUY37XMZK*D zSoUaGPTg~0>hTw+KK%U5(;q>`TQ^qtsW4?Z7tTIo#}+$vEmj#1Zj|}TvRpVvT>me& zziRUw_S82#(cpK#?p|B}&HCZGAJy%ztAKavxm}ODmN{Q?_Q5;wHr9N*My&ox_4})9 zs_v~?Q29vZWfjj?Tm`rD&+i$5qJ8m2Hs`X7y4-Nu#O?7c0}GkC|77WbhtGccBQq}+ zr=Kbc0r^$5lfI+IW2M(0(J|&PJo1m|Gg&(m4 z&X%lZx62+s%P%a_vFgNl*kh+lZ#*RU%Nt44r#^PynKvH4P`3LnMYbLv1=)>kOUFMq z^YXK#fvI#}ii=VDa$CPZbEfb4!qkD{1v73nFrGScv~+vs3q-=qp2;<;@G&<1Gf()5o5K#+^C+DNyI$GS)P2j((o~6jYC& z<>%f-;MTUf^!h1K=AJU9G6BEnSX8V`N`>?5BcO!1fh;D=fi*GO{a@KAF> z%<}gwFfg9_%%@7PzDitU8Dp9=KaA5J!gv`Q3|eq7IP@o_2k#+$%X~7vbQ^{Onr^-~ z)8jwKmZlpF49_0;`1F&y(T6gm>6W8TXb$aV`TO0-utn8{h3ZCkbu4x!yBztQ6t zXjbXS;px+p7s`3O9yzyaIiEfK=*)@Z?Du2KSkt`uVV$odD0{VIeDU$=V=oXz#`Y>& zOp@nNrgMZkUu)n>b(JWSmg_mG@HukLxPWV;r=7JGCyk|}&)tCNj*IZqoN2jN8Nf%M zv+UU5xv5mfY2Y~Z=!@H|I6~fU&5=oza}Z>8s`T-rGmkt#`ZKpPy)U{`N`R4`C8;wH zJYKr*p$leOV_-V<=ohDtpCV34!<44Z57TTlVcMzD+^NSu4gP`X5c%N)_ze=jFm>Sh z(vd%ASyn!2uKr~C$tu#HGS9`RLC=1kKwHib(k~R&WTk=I^s$o!({gT*Zow_mXR;Tr zUHr@W`zr{Zf(Fl$>IqWt%jWp=sS^2ZV%bn=feYqrH*nUBY37`nyD;z1NZ;&hI0X}2 z|JT;}Y@P!iN5g#$3*Db^x7R;g-&OY+NaP=m07rl$z!BgGa0EC49088N|7-+4P+Mo~ z^ueRO0xW!J(1peWa6wxZme*#Njyy8+^b3~DgxQzxkv=&-;{xtoj5`hEO@Hom>4|%h zyJovZn>7dL*_VBhK9>Ihr>5QPBr@6PK+a_`H@X2sVVNK9cRGMO>;h|1SK6%$yfMs4 z=KS#9U!%eN%<0pmd!D9oCv3SU8m7&fAI{^|z}d@MO{-URO&cN7=FJc5LKU!XXRK*= zLu3X*Mc8P4q==@^!8R~!ut?Fe{goQ5X^cc|u_lP3&ALF&OtO6yz`0Xy@Ua)Bj+~@X z6Kt>=YJjMqk~2SyKWGQWg2&@Qhr%MNuOBEK`aCi&U--)*S5jbp_~ZJ&qTyd{p8fEL ze>egh0geDifFr;W;0SO8I0762jsQo1Bk;~apjZL>{GF}#&W;wB%jI;t@eIS=Z{Pt} z@;CuIa#Z2>h1=f4{u|sM8_Oic+{Tnxdf*@wwFu?)1ZF>LpyU^;Vava>)z#VKR)mu`)(-tl|AkHwF?k4Z;qp$I!`~A4C&%wfeRLYAY zzSiG2Hl7e;**o{`@=0T{QPG!;?emSra(OWe38Ox_k`2b_p-69^Fv}wsntWXU+ZNbto=fIMOkN2`fFr;W;0SO8I0762jsQo1Bft^h2yg`c z+aOSs>WlF9han3P%(7qjkvz&CmOve&Cq@?IejD&ha z0YT^v_Qb^Q(1@7m9trk^yM>-`Pb3(R_`|(nyq6u~7Xm#i{P3SZ4)Obb`}(x|`{eii z!omunFBIxAd9jCCzP$ebZ__zkP>ujcfFr;W;0SO8I0762jsQo1Bft^h2yg_>8-ZH9 z1NQ&5h9A0<_4n89t!;FE*ZG2@*(u2-_%}y@Bft^h z2yg`c#~^TUW2>XNqr*Na=3^u9yFc(_yzz7@FQ)RE%gY8f53bre*tT`mwHpT8hBZ0E zZA*ux#BiIG$}bfJ@ABbzEH6fNDXG|)INY{3mW9U(vr7ZvFqFc_01G*G8_@8w-|`|% zis81rxIe#qI4h3Dvb)O*<@w_+5_Xt}grJhZMx{5!a}c+L1=c6r$CL znUbdgO&k@o%ZKyh8H2u?0hyETgmQ}EWb{^(OBb?nLp_CTQq^s0O8CHT)Fj;m;6H#d z9BgVPN;xs6hd3c+6@=mX-4*~tmI2>nY(zAmU_g)g1==NaK~UuKvfj|9mTOuBY$}-^O>5N#)8^Tpw8D732k&ZfG`F_e z58bG=ZdZB)TLxe6GPVj*u|@EuZww~T2GKzP>CtSukdZqR6R5p`9Z>+{*>ox@?$2b! zTuw@-F&BwB%A~<_m9}qAI(d#iOw?oQ`(M&oi#bE?dD@>>2g=`i^L`|Z` z$x*hD4IY^de6l3Ua70;Xd>c)e=T2bw0sa?VLLA#fOu;`P#q$Iz>;;8rHui;*hdn|F zU86{fwof$WX`^Ilv`r*qvIPk8_@FIcHp;S5p*-~*Mr64GUN1lYkFyK@;RtX9I0762 zjsQo1Bft^h2yg^A0vrL3z&jfOJpbQr|DnzEyyx8wFE$Lg|JuE|{!8^M>rU1Qwa?U6 zx{kZT&gYyrIIA6BaNJn)^O~1xlGXoF{i*6}tG-i}t^9T6Cn~S3c)MbQ{fG9$cCYQL zwp|9i#?~&hxrL_KP4Ly(*xl)Au~k4Jrw2Yko2_)@sk4tApLzbHGar6wq%i7>WhCET z!Iw?LTNV4IgwOAb1bqR&;Oh;qT0OX7aO9; z&Q4FGj>VZbPfQ(q&76f=eQ4FDo3>iky?u*ZcayH}(veS;PM?~q?%=9T8@E_jp4f~K zAvSu!XYM~)df;JN`I$GLo+`dLJ3@g~YX_~l+;OAa17%zY_N60_%sl-P^64Wn;Ko*NmX8^v1_ZAHHw;*b7rfPM&%7(`QbdGBl=;gCDodWYgqjnzT>C z5nmwE(%yu_5h47QLu)R`o}R@T(895(ZdEm zYBF`-2`Mo*cU>=qk-t?7N3JI=H1JZ|W>9*j2^$o>$8HME#v{58cz|C6ZFAe5ZnsPC z*B*Ghbl*c7RT~pi1&y8ofp!cs%GYySAyGd zS7=55%p;{kuTFpNbm@tEX?Ntaq9}W23?BPnTR1i{j++cVjWQ7bV7F3+)oY+3ElutY zk6YIe%7|1;rA1iX(i7fv>+wK98Je&!~X&bbd@ik zPA79dIg5y3A;IleEwnXvE^cWCc7SRNZM@C46>Ff(N++K!9XbiW9i2(1V9$+Jj{Jsz z*@oD7x{$B5sJ?jVl?!c)Iv4u@+$#axb{X8&VCbvC&Z%Vq!r-69L;=pSzz(9~1$_N@ zxeh040bjUJk2YqZt6+F5Hzm%Y?+Ms}aIwCBp{=QNaT61-Ln|H?jcTY~G$Ku}Q5tkv zT4@OIH5Skq`raQZR`#JdO(;$f&{D+7q;vVwOOKp+<31`*CYH-#8pWkYF9~KaDM%S2 zMfJH!5$O*HiGx`uKdM{73c)r-HSafJ?gv=X2E2kLw&03_kk^OtfYH_ zzEEThUE-+XV0J%j2B-Im=ORQHyk&nVysKN50hClT1!i+oG84CwA-o2r3}pg{3CYrb z>{?EEEnDnq3~PB!J^Ad+i_e(17nJ~-8(IT{Tp6o91u;8r)l_Mj%&SSz@q&^2nI~rD z6b4a>Ftd4Asun#QbeoH zO~GMF6L?<*F|_6;90FYK7J0MJ(}~7(SZ8NEZ(y6+s5U}%|a7%RxZ%kgq7$#Zetx$ z`TfLg#`aTdC|91d2R=UY=H2p&nf9~68qCy{L{u!*N!$nQAQ)B7jv60jV^}vM8+8Fg ztU~BRtFvU2+Dq8cQ(94$5Yb;D~v_SazmX*aF zmD@Hr>G9$CN&72L>F^Uk|wBnS@0jE`s0HHpVQl=PlHO&Ae ziK$pI-JO;DP0v)@FoSw1{if=Oj3o)KSTW1&q0G9?eKTnpU6_=28m>Atah5&^A;U-@ zD4zOj7HYC9LpTch7^dQ>=i*4mFlZZPM;*5%uQcK1>-LyB?zwo$nnGDIH*UqNSdju| zH#H8Fn>AGyZSOHdpMyP%{wT^5fM_7BpwZ?nBS7P0Aj7)Go^o)h4AZYaJpEMh+_)RN z)=%AyRr|-11Zx9p+Hk5v=4y+Yq*Gghx1Y=@Y*y?>b^|-hNd;Y@X;l`NUn-RTpil7k z$lD!XwoujWy9f`9NrgENHmSh+!MDJEhgIdbNpj_8x;ba%VLGX>s(oxH)D9E8a%EJe zc4Xs&axn~PWIbC37V#pMjS)wIoym|!8E8XuWqq+Peq7RmS zh%VceO`|}+AQauV1M^jl>&lr^m83|@b1h0~gc$dP$hyX2ogvX1Oo)oM_#K;fnT!)@KELy<~&Vk^`>)udu&mt9+&MmWrQM z9QGXX^fXL0Jkqei{r}vba}U&iq5k^1|EN1wx1jdf+Us3EaNX_lI=|-J<7{%Ablh6= zo0?D63|7xn-&ZYEeXA;4)mQP~$rMmr$<>DQS1jVcvM2k3&qztasGGGx$vWTMi^!ft9zA^?R zB2FWW{T2w_Uc||xWe?B|Je5PQ83*hEtNMAshi(+m@Yf$W;B#9MXX%#aP~O=+W}OY@ zVAa=m6mceQVh(I3PK-j;rHEPe#2l;`Y%h|zH*qMqS*W-RY7R7jK^gRbIfOL~Fp9x~ z?R^%eu&qdD-K2Kh|50k!hVsM2;x?iZ!hBfnpSRtIGtrvx#3JtQ0G8#3yM0QUQ5JxD7Bj) zUS7M-e`4*3xK-V^6h)tQ!!ws`}PqLaCY{u2fABFRxnXGqGxd zxK-ubi*coLg1B6{_B0(uJm3oiv^I+KLxy#FG>RzKO}C56>(*K)shhxJRrxJNTn^F7O}ewZa;4cJ>%y|aiDdZ950;R4-3CAJ^* zvHQ-v@%Ypu&z9bNM6+l}XT&T#+K5_|vG@TXDbe5bg_m)i4lMxoSySoTSgBv>=o7ibA<^0SB&=#VUDv%o1Llr0u zt=VZ&b=mO(+}s~5;<3{fw;NWU$oQ0eTL@xmC9(zwjrdT6z! z7hfx#IyU|BN!mM70{VRV^rXh;p(m9Rxb=@q35>{xW)A@2`oGQo6!8c&{IoOdc)`(L^IXk!)h|^Cs~)d% zRNe^{eA~87x5WS81XyUR(CF=gLzZ~BlrHOoHgJvjz6*Maxpd;=Q;&S%%<0pmd!E)b z1Ij=V+KNyl4Ci9#p-cNWRBi6=ta>Y8>@Ap0olj>KFPebipmiltouH{O=K5(Rl3)~x%udfs zsKyC6In)J5u-d6Uca<3pb+cL@LJrkZ2czmUJB+2#Wt?r;zwBdfrfe=|uGk@b%1G#i z5%>cWFgA5{wl9K%VVd)}if1#C3f`aAosFeNMP!NIj|!)r&eEK9G-uz}<`?<{aQIj# zUVPAvhoPIjaGnY$^2=mYwusriVs`5B`@oq_f8xQZ`=3u_aWo)jpM7KLl$3`l5cm%W zl}7poSVBJ>FofI4l;CFk`O@}3TuxE&DO3?98k8PTl+AsizNr|G?4dV^2;UIa<2s$(e~azJK6B z`Ix101R|Zm^V8)!R)L7JMP&A9ThVo}W}$7d(7c#I5SEWY4}xFbiZ3ZVbNW-TeNMSk zPfr?*ew*aWfCLmkM#Yp*$)5d4w%i>-uz*PRU^UKon;Mxc-Lfoe#gtZxcsc>^d`iiT z1s!A34;sDKJ;|pi9Xta7=fFYf0^1K(5e>sVV~vI>dqyuFhStkqlarX4ee$FgCPIM- z*)u|=GsAb^K{)LR`Wy6>O;<|CUoK5NaOTx}&b3*_QND(NcX|CrUvmd+!a>%fY@Z`*>WHBL&XmQw~g*~GECH` zLMM>3^uUcu4m{~Pi$2Su;fe7hJbbU&jaDX&I1vwoXWx>(vv?OsAh?x|lD#^e`fIt$ z%785Ka0)!r0*_&-zBLR_o8Dx72uE>p%4T!#Xz>HUe5D&#AF^!`u(fM`$9|P7#SD;deUDALGz^4sH$w3twIJW(bIxE$A z5vhpBZYeX25-72H8daNxnKn8lGb8gCOJ2K+cnX*Dx?0PN25q$Q2u;JFfgx>B8SI;c za#*;~_O?aKb`|kVs0obh(7h(uQpQaiXI8k;rdct&y@)45X=G2g|4N%iH=_xg2)0KX zY-Uee(SCZbMPs%X@hGS!v??1PTdxq;q}HzuH?#V25VNX%?)_!3Ewy%Sz?sz!b7`x} zZ!6+qPb#{8>zHnklIJ3$L^j6hJi+IA5R&TPiOPvCdo$P#TgU-s%H^ts+72>wL zZSS&WY_RIjyZ_leT>lUC(Yn8`6Kmh9z1(%g`OmgYWwGKX6}Q{}(tbnrwa(iduR4U9 zLiN|H9;*DgZoPkwM6qQ8!q6SvO&#EB230$uvuF0cOsZE~#&cWf%Rl8s2Fr#9<07>O z9w6!IVe1T*g^N}Bk~ZA_x2o2`)SAqr{o(#VfVx3l5;SQQ;>`lhF6JnfcLnslObs3f?M z)PyQ^N^PR&o~#{%zYq_FK+(Dijh-`)PV^kD4mgDRKnMH!d||&F6p~e*JWk8hpAA^{ ze^sna@OKM+Z4jLch5Ciy3J65@_yf!Qz5RYV-J2!9`0fcZA`tloweqnM!CXE$3}PxD z4iWPtUCRVHu|%XBsDP*&?8Snyfs)hh8j~I@_h{xeU#8shS@rW#r(*jAdHjF~w^j?C zR;l3{9GRhm{mhw~0!YI*^V7e*6ELoIv@~@LUy4 z$Qe3aB;lQ(Vk|?>F5AGFMfZrg%#sf-o}5N&qTwHS7LP1`LH5$&L!}e1vCu!-4vg^l zivd(-HP(X<*wWy`ENtc!qiq5Xtu=La0fZ26ak+gmglphk?NblmedhERs3?haya3w* z@Y4bib->rFbdSYSF$hJWX-D8+&w%|WKFk=R>G}Z4g~;fhfRk^novj9_wvgAj=Vo4+ zoH})sikTAg`_kFnKKh1t>Ubh5X!w-og@e{S0ejSJ^0CTd@=-oK&ocRlSWiBPyE%`k zM{(f~SF%|~rjyL2uypNI z5*>;X8yw3 zjZ#B7FaZ{|1didh07QgC{h^35!bdPd3lZ6XA7+5CwGZ2Gu=!;ilz5mP-5k5JfBqz64;;{UJzY_z{WQK1{N{`9A@1F z0N8}%)9M{9osXa7IvYH{9qj>~*rj3dAi_}w8; zymW%ZWcdpIw~8<5SMa*{2focyU3${B8;gI)XBy;1rEblMv+DU-9D62kGv>DsLPDe_ z1pmmpCGEdd=1Lc`kXtZ8-;n|ba3P*(ftP*)DT4$E!mv$6qOYTzCz)C&aC0ZzcqNG~ zYGl#}6lq^t$fnG2seJT2)%-x#GC}r(jN)mRO0x;4Mi!}XbOUpKgtJe;_R*r2#zkZX zronDN7kmNK4Be=oeO-uBwNARA0|gd0(+I)VCYo?cS@*HHirRZZ#1{_851m$2&5O=o zG6`o+Ks`*bF&AZV zq(O0jYP~kfi1w+(7}3iLBx0uS1YC%DwoT%R7{M5WH<~94B!>k*h#Vv_;@KH0<0|dAWVBI(jPhd6L`D+4n;!`mP2%|*D&f^y3EAmRjj9K}==a#V95X<;{ARMPd8Q*?C+dM!G P!_j$w{95w)nMVD8B#A6f From 054199d1e4c2f8f69cf62e2469306158efc376e0 Mon Sep 17 00:00:00 2001 From: horizonzy Date: Sun, 30 Jan 2022 17:19:50 +0800 Subject: [PATCH 18/41] fix 404 link. --- README.Zh-cn.md | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.Zh-cn.md b/README.Zh-cn.md index 9447895f..7d38d5ec 100644 --- a/README.Zh-cn.md +++ b/README.Zh-cn.md @@ -74,9 +74,9 @@ ### 轻松实现go-admin写出第一个应用 - 文档教程 -[步骤一 - 基础内容介绍](http://doc.zhangwj.com/go-admin-site/guide/intro/tutorial01.html) +[步骤一 - 基础内容介绍](https://doc.zhangwj.com/guide/intro/tutorial01.html) -[步骤二 - 实际应用 - 编写增删改查](http://doc.zhangwj.com/go-admin-site/guide/intro/tutorial02.html) +[步骤二 - 实际应用 - 编写增删改查](https://doc.zhangwj.com/guide/intro/tutorial02.html) ### 手把手教你从入门到放弃 - 视频教程 diff --git a/README.md b/README.md index 4338902d..427fa134 100644 --- a/README.md +++ b/README.md @@ -68,9 +68,9 @@ At the same time, a series of tutorials including videos and documents are provi ### Easily implement go-admin to write the first application-documentation tutorial -[Step 1 - basic content introduction](http://doc.zhangwj.com/go-admin-site/guide/intro/tutorial01.html) +[Step 1 - basic content introduction](https://doc.zhangwj.com/guide/intro/tutorial01.html) -[Step 2 - Practical application - writing database operations](http://doc.zhangwj.com/go-admin-site/guide/intro/tutorial02.html) +[Step 2 - Practical application - writing database operations](https://doc.zhangwj.com/guide/intro/tutorial02.html) ### Teach you from getting started to giving up-video tutorial From 3cfa7a2767ceba1bd638f8ec1c0b329e67ab9bb0 Mon Sep 17 00:00:00 2001 From: horizonzy Date: Mon, 31 Jan 2022 12:00:26 +0800 Subject: [PATCH 19/41] fix code gen problem. --- template/v4/dto.go.template | 8 ++++---- template/v4/model.go.template | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/template/v4/dto.go.template b/template/v4/dto.go.template index 1aa5bfe4..a9304e0b 100644 --- a/template/v4/dto.go.template +++ b/template/v4/dto.go.template @@ -1,10 +1,6 @@ package dto import ( - "go-admin/app/{{.PackageName}}/models" - "go-admin/common/dto" - common "go-admin/common/models" - {{- $bb := false -}} {{- range .Columns -}} {{$z := .IsQuery}} @@ -18,6 +14,10 @@ import ( {{- if eq $bb true -}} "time" {{- end }} + + "go-admin/app/{{.PackageName}}/models" + "go-admin/common/dto" + common "go-admin/common/models" ) type {{.ClassName}}GetPageReq struct { diff --git a/template/v4/model.go.template b/template/v4/model.go.template index 1862b033..246c5c59 100644 --- a/template/v4/model.go.template +++ b/template/v4/model.go.template @@ -1,9 +1,22 @@ package models import ( - // "gorm.io/gorm" + {{- $bb := false -}} + {{- range .Columns -}} + {{$z := .IsQuery}} + {{- if ($z) }} + {{if eq .GoType "time.Time"}}{{- $bb = true -}}{{- end -}} + {{- end -}} + {{- end -}} + {{- range .Columns -}} + {{if eq .GoType "time.Time"}}{{- $bb = true -}}{{- end -}} + {{- end -}} + {{- if eq $bb true -}} + "time" + {{- end }} "go-admin/common/models" + ) type {{.ClassName}} struct { From b52da434bb397cd3e405aa40f0cff00e20edaec8 Mon Sep 17 00:00:00 2001 From: horizonzy Date: Mon, 31 Jan 2022 13:00:21 +0800 Subject: [PATCH 20/41] fix code gen problem. --- template/v4/dto.go.template | 1 + template/v4/model.go.template | 1 + 2 files changed, 2 insertions(+) diff --git a/template/v4/dto.go.template b/template/v4/dto.go.template index a9304e0b..69178021 100644 --- a/template/v4/dto.go.template +++ b/template/v4/dto.go.template @@ -1,6 +1,7 @@ package dto import ( + {{- $bb := false -}} {{- range .Columns -}} {{$z := .IsQuery}} diff --git a/template/v4/model.go.template b/template/v4/model.go.template index 246c5c59..1e34cd9b 100644 --- a/template/v4/model.go.template +++ b/template/v4/model.go.template @@ -1,6 +1,7 @@ package models import ( + {{- $bb := false -}} {{- range .Columns -}} {{$z := .IsQuery}} From d02b52f38368429cadf9c1ca323f24b056bf1546 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Tue, 8 Feb 2022 18:41:09 +0800 Subject: [PATCH 21/41] =?UTF-8?q?feat=E2=9C=A8:=20=E6=B7=BB=E5=8A=A0sqlser?= =?UTF-8?q?ver=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/migrate/migration/init.go | 4 +- cmd/migrate/migration/models/initdb.go | 26 +- cmd/migrate/migration/models/sys_user.go | 8 +- common/database/open.go | 7 +- common/database/open_sqlite3.go | 9 +- config/db-sqlserver.sql | 342 +++++++++++++++++++++++ config/settings.yml | 5 +- go.mod | 3 +- 8 files changed, 366 insertions(+), 38 deletions(-) create mode 100644 config/db-sqlserver.sql diff --git a/cmd/migrate/migration/init.go b/cmd/migrate/migration/init.go index 54261d1e..541f1d6b 100644 --- a/cmd/migrate/migration/init.go +++ b/cmd/migrate/migration/init.go @@ -46,7 +46,7 @@ func (e *Migration) Migrate() { var err error var count int64 for _, v := range versions { - err = e.db.Debug().Table("sys_migration").Where("version = ?", v).Count(&count).Error + err = e.db.Table("sys_migration").Where("version = ?", v).Count(&count).Error if err != nil { log.Fatalln(err) } @@ -55,7 +55,7 @@ func (e *Migration) Migrate() { count = 0 continue } - err = (e.version[v])(e.db.Debug(), strconv.Itoa(v)) + err = (e.version[v])(e.db, strconv.Itoa(v)) if err != nil { log.Fatalln(err) } diff --git a/cmd/migrate/migration/models/initdb.go b/cmd/migrate/migration/models/initdb.go index 08fbfa57..644ba499 100644 --- a/cmd/migrate/migration/models/initdb.go +++ b/cmd/migrate/migration/models/initdb.go @@ -1,7 +1,6 @@ package models import ( - "errors" "fmt" "go-admin/common/global" "gorm.io/gorm" @@ -13,40 +12,19 @@ import ( func InitDb(db *gorm.DB) (err error) { filePath := "config/db.sql" if global.Driver == "postgres" { - err = ExecSql(db, filePath) - if err != nil { - return err - } filePath = "config/pg.sql" err = ExecSql(db, filePath) - if err != nil { - return err - } } else if global.Driver == "mysql" { filePath = "config/db-begin-mysql.sql" err = ExecSql(db, filePath) - if err != nil { - return err - } filePath = "config/db.sql" err = ExecSql(db, filePath) - if err != nil { - return err - } filePath = "config/db-end-mysql.sql" err = ExecSql(db, filePath) - if err != nil { - return err - } - } else if global.Driver == "sqlite3" { - err = ExecSql(db, filePath) - if err != nil { - return err - } } else { - return errors.New("database type is not supported") + err = ExecSql(db, filePath) } - return nil + return err } func ExecSql(db *gorm.DB, filePath string) error { diff --git a/cmd/migrate/migration/models/sys_user.go b/cmd/migrate/migration/models/sys_user.go index ab22a6c4..1860b5bb 100644 --- a/cmd/migrate/migration/models/sys_user.go +++ b/cmd/migrate/migration/models/sys_user.go @@ -11,13 +11,13 @@ type SysUser struct { Password string `json:"-" gorm:"type:varchar(128);comment:密码"` NickName string `json:"nickName" gorm:"type:varchar(128);comment:昵称"` Phone string `json:"phone" gorm:"type:varchar(11);comment:手机号"` - RoleId int `json:"roleId" gorm:"type:bigint(20);comment:角色ID"` + RoleId int `json:"roleId" gorm:"type:bigint;comment:角色ID"` Salt string `json:"-" gorm:"type:varchar(255);comment:加盐"` Avatar string `json:"avatar" gorm:"type:varchar(255);comment:头像"` Sex string `json:"sex" gorm:"type:varchar(255);comment:性别"` Email string `json:"email" gorm:"type:varchar(128);comment:邮箱"` - DeptId int `json:"deptId" gorm:"type:bigint(20);comment:部门"` - PostId int `json:"postId" gorm:"type:bigint(20);comment:岗位"` + DeptId int `json:"deptId" gorm:"type:bigint;comment:部门"` + PostId int `json:"postId" gorm:"type:bigint;comment:岗位"` Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"` Status string `json:"status" gorm:"type:varchar(4);comment:状态"` ControlBy @@ -45,4 +45,4 @@ func (e *SysUser) Encrypt() (err error) { func (e *SysUser) BeforeCreate(_ *gorm.DB) error { return e.Encrypt() -} \ No newline at end of file +} diff --git a/common/database/open.go b/common/database/open.go index 50c10fea..550566b7 100644 --- a/common/database/open.go +++ b/common/database/open.go @@ -1,3 +1,4 @@ +//go:build !sqlite3 // +build !sqlite3 package database @@ -5,10 +6,12 @@ package database import ( "gorm.io/driver/mysql" "gorm.io/driver/postgres" + "gorm.io/driver/sqlserver" "gorm.io/gorm" ) var opens = map[string]func(string) gorm.Dialector{ - "mysql": mysql.Open, - "postgres": postgres.Open, + "mysql": mysql.Open, + "postgres": postgres.Open, + "sqlserver": sqlserver.Open, } diff --git a/common/database/open_sqlite3.go b/common/database/open_sqlite3.go index 51754190..aaebe94d 100644 --- a/common/database/open_sqlite3.go +++ b/common/database/open_sqlite3.go @@ -1,3 +1,4 @@ +//go:build sqlite3 // +build sqlite3 package database @@ -6,11 +7,13 @@ import ( "gorm.io/driver/mysql" "gorm.io/driver/postgres" "gorm.io/driver/sqlite" + "gorm.io/driver/sqlserver" "gorm.io/gorm" ) var opens = map[string]func(string) gorm.Dialector{ - "mysql": mysql.Open, - "postgres": postgres.Open, - "sqlite3": sqlite.Open, + "mysql": mysql.Open, + "postgres": postgres.Open, + "sqlite3": sqlite.Open, + "sqlserver": sqlserver.Open, } diff --git a/config/db-sqlserver.sql b/config/db-sqlserver.sql new file mode 100644 index 00000000..0ba4168c --- /dev/null +++ b/config/db-sqlserver.sql @@ -0,0 +1,342 @@ +-- 开始初始化数据 ; +SET IDENTITY_INSERT sys_api ON; +INSERT INTO sys_api (id, handle, title, path, type, "action", created_at, updated_at, deleted_at, create_by, update_by)VALUES +(5, 'go-admin/app/admin/apis.SysLoginLog.Get-fm', '登录日志通过id获取', '/api/v1/sys-login-log/:id', 'BUS', 'GET', '2021-05-13 19:59:00.728', '2021-06-17 11:37:12.331', NULL, 0, 0), +(6, 'go-admin/app/admin/apis.SysOperaLog.GetPage-fm', '操作日志列表', '/api/v1/sys-opera-log', 'BUS', 'GET', '2021-05-13 19:59:00.778', '2021-06-17 11:48:40.732', NULL, 0, 0), +(7, 'go-admin/app/admin/apis.SysOperaLog.Get-fm', '操作日志通过id获取', '/api/v1/sys-opera-log/:id', 'BUS', 'GET', '2021-05-13 19:59:00.821', '2021-06-16 21:49:48.598', NULL, 0, 0), +(8, 'go-admin/common/actions.IndexAction.func1', '分类列表', '/api/v1/syscategory', 'BUS', 'GET', '2021-05-13 19:59:00.870', '2021-06-13 20:53:47.883', NULL, 0, 0), +(9, 'go-admin/common/actions.ViewAction.func1', '分类通过id获取', '/api/v1/syscategory/:id', 'BUS', 'GET', '2021-05-13 19:59:00.945', '2021-06-13 20:53:47.926', NULL, 0, 0), +(10, 'go-admin/common/actions.IndexAction.func1', '内容列表', '/api/v1/syscontent', 'BUS', 'GET', '2021-05-13 19:59:01.005', '2021-06-13 20:53:47.966', NULL, 0, 0), +(11, 'go-admin/common/actions.ViewAction.func1', '内容通过id获取', '/api/v1/syscontent/:id', 'BUS', 'GET', '2021-05-13 19:59:01.056', '2021-06-13 20:53:48.005', NULL, 0, 0), +(15, 'go-admin/common/actions.IndexAction.func1', 'job列表', '/api/v1/sysjob', 'BUS', 'GET', '2021-05-13 19:59:01.248', '2021-06-13 20:53:48.169', NULL, 0, 0), +(16, 'go-admin/common/actions.ViewAction.func1', 'job通过id获取', '/api/v1/sysjob/:id', 'BUS', 'GET', '2021-05-13 19:59:01.298', '2021-06-13 20:53:48.214', NULL, 0, 0), +(21, 'go-admin/app/admin/apis.SysDictType.GetPage-fm', '字典类型列表', '/api/v1/dict/type', 'BUS', 'GET', '2021-05-13 19:59:01.525', '2021-06-17 11:48:40.732', NULL, 0, 0), +(22, 'go-admin/app/admin/apis.SysDictType.GetAll-fm', '字典类型查询【代码生成】', '/api/v1/dict/type-option-select', 'SYS', 'GET', '2021-05-13 19:59:01.582', '2021-06-13 20:53:48.388', NULL, 0, 0), +(23, 'go-admin/app/admin/apis.SysDictType.Get-fm', '字典类型通过id获取', '/api/v1/dict/type/:id', 'BUS', 'GET', '2021-05-13 19:59:01.632', '2021-06-17 11:48:40.732', NULL, 0, 0), +(24, 'go-admin/app/admin/apis.SysDictData.GetPage-fm', '字典数据列表', '/api/v1/dict/data', 'BUS', 'GET', '2021-05-13 19:59:01.684', '2021-06-17 11:48:40.732', NULL, 0, 0), +(25, 'go-admin/app/admin/apis.SysDictData.Get-fm', '字典数据通过code获取', '/api/v1/dict/data/:dictCode', 'BUS', 'GET', '2021-05-13 19:59:01.732', '2021-06-17 11:48:40.732', NULL, 0, 0), +(26, 'go-admin/app/admin/apis.SysDictData.GetSysDictDataAll-fm', '数据字典根据key获取', '/api/v1/dict-data/option-select', 'SYS', 'GET', '2021-05-13 19:59:01.832', '2021-06-17 11:48:40.732', NULL, 0, 0), +(27, 'go-admin/app/admin/apis.SysDept.GetPage-fm', '部门列表', '/api/v1/dept', 'BUS', 'GET', '2021-05-13 19:59:01.940', '2021-06-17 11:48:40.732', NULL, 0, 0), +(28, 'go-admin/app/admin/apis.SysDept.Get-fm', '部门通过id获取', '/api/v1/dept/:id', 'BUS', 'GET', '2021-05-13 19:59:02.009', '2021-06-17 11:48:40.732', NULL, 0, 0), +(29, 'go-admin/app/admin/apis.SysDept.Get2Tree-fm', '查询部门下拉树【角色权限-自定权限】', '/api/v1/deptTree', 'SYS', 'GET', '2021-05-13 19:59:02.050', '2021-06-17 11:48:40.732', NULL, 0, 0), +(30, 'go-admin/app/admin/apis/tools.(*Gen).GetDBTableList-fm', '数据库表列表', '/api/v1/db/tables/page', 'SYS', 'GET', '2021-05-13 19:59:02.098', '2021-06-13 20:53:48.730', NULL, 0, 0), +(31, 'go-admin/app/admin/apis/tools.(*Gen).GetDBColumnList-fm', '数据表列列表', '/api/v1/db/columns/page', 'SYS', 'GET', '2021-05-13 19:59:02.140', '2021-06-13 20:53:48.771', NULL, 0, 0), +(32, 'go-admin/app/admin/apis/tools.Gen.GenCode-fm', '数据库表生成到项目', '/api/v1/gen/toproject/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.183', '2021-06-13 20:53:48.812', NULL, 0, 0), +(33, 'go-admin/app/admin/apis/tools.Gen.GenMenuAndApi-fm', '数据库表生成到DB', '/api/v1/gen/todb/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.227', '2021-06-13 20:53:48.853', NULL, 0, 0), +(34, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTablesTree-fm', '关系表数据【代码生成】', '/api/v1/gen/tabletree', 'SYS', 'GET', '2021-05-13 19:59:02.271', '2021-06-13 20:53:48.893', NULL, 0, 0), +(35, 'go-admin/app/admin/apis/tools.Gen.Preview-fm', '生成预览通过id获取', '/api/v1/gen/preview/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.315', '2021-06-13 20:53:48.935', NULL, 0, 0), +(36, 'go-admin/app/admin/apis/tools.Gen.GenApiToFile-fm', '生成api带文件', '/api/v1/gen/apitofile/:tableId', 'SYS', 'GET', '2021-05-13 19:59:02.357', '2021-06-13 20:53:48.977', NULL, 0, 0), +(37, 'go-admin/app/admin/apis.System.GenerateCaptchaHandler-fm', '验证码获取', '/api/v1/getCaptcha', 'SYS', 'GET', '2021-05-13 19:59:02.405', '2021-06-13 20:53:49.020', NULL, 0, 0), +(38, 'go-admin/app/admin/apis.SysUser.GetInfo-fm', '用户信息获取', '/api/v1/getinfo', 'SYS', 'GET', '2021-05-13 19:59:02.447', '2021-06-13 20:53:49.065', NULL, 0, 0), +(39, 'go-admin/app/admin/apis.SysMenu.GetPage-fm', '菜单列表', '/api/v1/menu', 'BUS', 'GET', '2021-05-13 19:59:02.497', '2021-06-17 11:48:40.732', NULL, 0, 0), +(40, 'go-admin/app/admin/apis.SysMenu.GetMenuTreeSelect-fm', '查询菜单下拉树结构【废弃】', '/api/v1/menuTreeselect', 'SYS', 'GET', '2021-05-13 19:59:02.542', '2021-06-03 22:37:21.857', NULL, 0, 0), +(41, 'go-admin/app/admin/apis.SysMenu.Get-fm', '菜单通过id获取', '/api/v1/menu/:id', 'BUS', 'GET', '2021-05-13 19:59:02.584', '2021-06-17 11:48:40.732', NULL, 0, 0), +(42, 'go-admin/app/admin/apis.SysMenu.GetMenuRole-fm', '角色菜单【顶部左侧菜单】', '/api/v1/menurole', 'SYS', 'GET', '2021-05-13 19:59:02.630', '2021-06-13 20:53:49.574', NULL, 0, 0), +(43, 'go-admin/app/admin/apis.SysMenu.GetMenuIDS-fm', '获取角色对应的菜单id数组【废弃】', '/api/v1/menuids', 'SYS', 'GET', '2021-05-13 19:59:02.675', '2021-06-03 22:39:52.500', NULL, 0, 0), +(44, 'go-admin/app/admin/apis.SysRole.GetPage-fm', '角色列表', '/api/v1/role', 'BUS', 'GET', '2021-05-13 19:59:02.720', '2021-06-17 11:48:40.732', NULL, 0, 0), +(45, 'go-admin/app/admin/apis.SysMenu.GetMenuTreeSelect-fm', '菜单权限列表【角色配菜单使用】', '/api/v1/roleMenuTreeselect/:roleId', 'SYS', 'GET', '2021-05-13 19:59:02.762', '2021-06-17 11:48:40.732', NULL, 0, 0), +(46, 'go-admin/app/admin/apis.SysDept.GetDeptTreeRoleSelect-fm', '角色部门结构树【自定义数据权限】', '/api/v1/roleDeptTreeselect/:roleId', 'SYS', 'GET', '2021-05-13 19:59:02.809', '2021-06-17 11:48:40.732', NULL, 0, 0), +(47, 'go-admin/app/admin/apis.SysRole.Get-fm', '角色通过id获取', '/api/v1/role/:id', 'BUS', 'GET', '2021-05-13 19:59:02.850', '2021-06-17 11:48:40.732', NULL, 0, 0), +(48, 'github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth.(*GinJWTMiddleware).RefreshHandler-fm', '刷新token', '/api/v1/refresh_token', 'SYS', 'GET', '2021-05-13 19:59:02.892', '2021-06-13 20:53:49.278', NULL, 0, 0), +(53, 'go-admin/app/admin/apis.SysConfig.GetPage-fm', '参数列表', '/api/v1/config', 'BUS', 'GET', '2021-05-13 19:59:03.116', '2021-06-17 11:48:40.732', NULL, 0, 0), +(54, 'go-admin/app/admin/apis.SysConfig.Get-fm', '参数通过id获取', '/api/v1/config/:id', 'BUS', 'GET', '2021-05-13 19:59:03.157', '2021-06-17 11:48:40.732', NULL, 0, 0), +(55, 'go-admin/app/admin/apis.SysConfig.GetSysConfigByKEYForService-fm', '参数通过键名搜索【基础默认配置】', '/api/v1/configKey/:configKey', 'SYS', 'GET', '2021-05-13 19:59:03.198', '2021-06-13 20:53:49.745', NULL, 0, 0), +(57, 'go-admin/app/jobs/apis.SysJob.RemoveJobForService-fm', 'job移除', '/api/v1/job/remove/:id', 'BUS', 'GET', '2021-05-13 19:59:03.295', '2021-06-13 20:53:49.786', NULL, 0, 0), +(58, 'go-admin/app/jobs/apis.SysJob.StartJobForService-fm', 'job启动', '/api/v1/job/start/:id', 'BUS', 'GET', '2021-05-13 19:59:03.339', '2021-06-13 20:53:49.829', NULL, 0, 0), +(59, 'go-admin/app/admin/apis.SysPost.GetPage-fm', '岗位列表', '/api/v1/post', 'BUS', 'GET', '2021-05-13 19:59:03.381', '2021-06-17 11:48:40.732', NULL, 0, 0), +(60, 'go-admin/app/admin/apis.SysPost.Get-fm', '岗位通过id获取', '/api/v1/post/:id', 'BUS', 'GET', '2021-05-13 19:59:03.433', '2021-06-17 11:48:40.732', NULL, 0, 0), +(62, 'go-admin/app/admin/apis.SysConfig.GetSysConfigBySysApp-fm', '系统前端参数', '/api/v1/app-config', 'SYS', 'GET', '2021-05-13 19:59:03.526', '2021-06-13 20:53:49.994', NULL, 0, 0), +(63, 'go-admin/app/admin/apis.SysUser.GetProfile-fm', '*用户信息获取', '/api/v1/user/profile', 'SYS', 'GET', '2021-05-13 19:59:03.567', '2021-06-13 20:53:50.038', NULL, 0, 0), +(66, 'github.com/go-admin-team/go-admin-core/sdk/pkg/ws.(*Manager).WsClient-fm', '链接ws【定时任务log】', '/ws/:id/:channel', 'BUS', 'GET', '2021-05-13 19:59:03.705', '2021-06-13 20:53:50.167', NULL, 0, 0), +(67, 'github.com/go-admin-team/go-admin-core/sdk/pkg/ws.(*Manager).UnWsClient-fm', '退出ws【定时任务log】', '/wslogout/:id/:channel', 'BUS', 'GET', '2021-05-13 19:59:03.756', '2021-06-13 20:53:50.209', NULL, 0, 0), +(68, 'go-admin/common/middleware/handler.Ping', '*用户基本信息', '/info', 'SYS', 'GET', '2021-05-13 19:59:03.800', '2021-06-13 20:53:50.251', NULL, 0, 0), +(72, 'go-admin/common/actions.CreateAction.func1', '分类创建', '/api/v1/syscategory', 'BUS', 'POST', '2021-05-13 19:59:03.982', '2021-06-13 20:53:50.336', NULL, 0, 0), +(73, 'go-admin/common/actions.CreateAction.func1', '内容创建', '/api/v1/syscontent', 'BUS', 'POST', '2021-05-13 19:59:04.027', '2021-06-13 20:53:50.375', NULL, 0, 0), +(76, 'go-admin/common/actions.CreateAction.func1', 'job创建', '/api/v1/sysjob', 'BUS', 'POST', '2021-05-13 19:59:04.164', '2021-06-13 20:53:50.500', NULL, 0, 0), +(80, 'go-admin/app/admin/apis.SysDictData.Insert-fm', '字典数据创建', '/api/v1/dict/data', 'BUS', 'POST', '2021-05-13 19:59:04.347', '2021-06-17 11:48:40.732', NULL, 0, 0), +(81, 'go-admin/app/admin/apis.SysDictType.Insert-fm', '字典类型创建', '/api/v1/dict/type', 'BUS', 'POST', '2021-05-13 19:59:04.391', '2021-06-17 11:48:40.732', NULL, 0, 0), +(82, 'go-admin/app/admin/apis.SysDept.Insert-fm', '部门创建', '/api/v1/dept', 'BUS', 'POST', '2021-05-13 19:59:04.435', '2021-06-17 11:48:40.732', NULL, 0, 0), +(85, 'github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth.(*GinJWTMiddleware).LoginHandler-fm', '*登录', '/api/v1/login', 'SYS', 'POST', '2021-05-13 19:59:04.597', '2021-06-13 20:53:50.784', NULL, 0, 0), +(86, 'go-admin/common/middleware/handler.LogOut', '*退出', '/api/v1/logout', 'SYS', 'POST', '2021-05-13 19:59:04.642', '2021-06-13 20:53:50.824', NULL, 0, 0), +(87, 'go-admin/app/admin/apis.SysConfig.Insert-fm', '参数创建', '/api/v1/config', 'BUS', 'POST', '2021-05-13 19:59:04.685', '2021-06-17 11:48:40.732', NULL, 0, 0), +(88, 'go-admin/app/admin/apis.SysMenu.Insert-fm', '菜单创建', '/api/v1/menu', 'BUS', 'POST', '2021-05-13 19:59:04.777', '2021-06-17 11:48:40.732', NULL, 0, 0), +(89, 'go-admin/app/admin/apis.SysPost.Insert-fm', '岗位创建', '/api/v1/post', 'BUS', 'POST', '2021-05-13 19:59:04.886', '2021-06-17 11:48:40.732', NULL, 0, 0), +(90, 'go-admin/app/admin/apis.SysRole.Insert-fm', '角色创建', '/api/v1/role', 'BUS', 'POST', '2021-05-13 19:59:04.975', '2021-06-17 11:48:40.732', NULL, 0, 0), +(91, 'go-admin/app/admin/apis.SysUser.InsetAvatar-fm', '*用户头像编辑', '/api/v1/user/avatar', 'SYS', 'POST', '2021-05-13 19:59:05.058', '2021-06-13 20:53:51.079', NULL, 0, 0), +(92, 'go-admin/app/admin/apis.SysApi.Update-fm', '接口编辑', '/api/v1/sys-api/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.122', '2021-06-17 11:48:40.732', NULL, 0, 0), +(95, 'go-admin/common/actions.UpdateAction.func1', '分类编辑', '/api/v1/syscategory/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.255', '2021-06-13 20:53:51.247', NULL, 0, 0), +(96, 'go-admin/common/actions.UpdateAction.func1', '内容编辑', '/api/v1/syscontent/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.299', '2021-06-13 20:53:51.289', NULL, 0, 0), +(97, 'go-admin/common/actions.UpdateAction.func1', 'job编辑', '/api/v1/sysjob', 'BUS', 'PUT', '2021-05-13 19:59:05.343', '2021-06-13 20:53:51.331', NULL, 0, 0), +(101, 'go-admin/app/admin/apis.SysDictData.Update-fm', '字典数据编辑', '/api/v1/dict/data/:dictCode', 'BUS', 'PUT', '2021-05-13 19:59:05.519', '2021-06-17 11:48:40.732', NULL, 0, 0), +(102, 'go-admin/app/admin/apis.SysDictType.Update-fm', '字典类型编辑', '/api/v1/dict/type/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.569', '2021-06-17 11:48:40.732', NULL, 0, 0), +(103, 'go-admin/app/admin/apis.SysDept.Update-fm', '部门编辑', '/api/v1/dept/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.613', '2021-06-17 11:48:40.732', NULL, 0, 0), +(104, 'go-admin/app/other/apis.SysFileDir.Update-fm', '文件夹编辑', '/api/v1/file-dir/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.662', '2021-06-13 20:53:51.847', NULL, 0, 0), +(105, 'go-admin/app/other/apis.SysFileInfo.Update-fm', '文件编辑', '/api/v1/file-info/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.709', '2021-06-13 20:53:51.892', NULL, 0, 0), +(106, 'go-admin/app/admin/apis.SysRole.Update-fm', '角色编辑', '/api/v1/role/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.752', '2021-06-17 11:48:40.732', NULL, 0, 0), +(107, 'go-admin/app/admin/apis.SysRole.Update2DataScope-fm', '角色数据权限修改', '/api/v1/roledatascope', 'BUS', 'PUT', '2021-05-13 19:59:05.803', '2021-06-17 11:48:40.732', NULL, 0, 0), +(108, 'go-admin/app/admin/apis.SysConfig.Update-fm', '参数编辑', '/api/v1/config/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.848', '2021-06-17 11:48:40.732', NULL, 0, 0), +(109, 'go-admin/app/admin/apis.SysMenu.Update-fm', '编辑菜单', '/api/v1/menu/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.891', '2021-06-17 11:48:40.732', NULL, 0, 0), +(110, 'go-admin/app/admin/apis.SysPost.Update-fm', '岗位编辑', '/api/v1/post/:id', 'BUS', 'PUT', '2021-05-13 19:59:05.934', '2021-06-17 11:48:40.732', NULL, 0, 0), +(111, 'go-admin/app/admin/apis.SysUser.UpdatePwd-fm', '*用户修改密码', '/api/v1/user/pwd', 'SYS', 'PUT', '2021-05-13 19:59:05.987', '2021-06-13 20:53:51.724', NULL, 0, 0), +(112, 'go-admin/common/actions.DeleteAction.func1', '分类删除', '/api/v1/syscategory', 'BUS', 'DELETE', '2021-05-13 19:59:06.030', '2021-06-13 20:53:52.237', NULL, 0, 0), +(113, 'go-admin/common/actions.DeleteAction.func1', '内容删除', '/api/v1/syscontent', 'BUS', 'DELETE', '2021-05-13 19:59:06.076', '2021-06-13 20:53:52.278', NULL, 0, 0), +(114, 'go-admin/app/admin/apis.SysLoginLog.Delete-fm', '登录日志删除', '/api/v1/sys-login-log', 'BUS', 'DELETE', '2021-05-13 19:59:06.118', '2021-06-17 11:48:40.732', NULL, 0, 0), +(115, 'go-admin/app/admin/apis.SysOperaLog.Delete-fm', '操作日志删除', '/api/v1/sys-opera-log', 'BUS', 'DELETE', '2021-05-13 19:59:06.162', '2021-06-17 11:48:40.732', NULL, 0, 0), +(116, 'go-admin/common/actions.DeleteAction.func1', 'job删除', '/api/v1/sysjob', 'BUS', 'DELETE', '2021-05-13 19:59:06.206', '2021-06-13 20:53:52.323', NULL, 0, 0), +(117, 'go-admin/app/other/apis.SysChinaAreaData.Delete-fm', '行政区删除', '/api/v1/sys-area-data', 'BUS', 'DELETE', '2021-05-13 19:59:06.249', '2021-06-13 20:53:52.061', NULL, 0, 0), +(120, 'go-admin/app/admin/apis.SysDictData.Delete-fm', '字典数据删除', '/api/v1/dict/data', 'BUS', 'DELETE', '2021-05-13 19:59:06.387', '2021-06-17 11:48:40.732', NULL, 0, 0), +(121, 'go-admin/app/admin/apis.SysDictType.Delete-fm', '字典类型删除', '/api/v1/dict/type', 'BUS', 'DELETE', '2021-05-13 19:59:06.432', '2021-06-17 11:48:40.732', NULL, 0, 0), +(122, 'go-admin/app/admin/apis.SysDept.Delete-fm', '部门删除', '/api/v1/dept/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.475', '2021-06-17 11:48:40.732', NULL, 0, 0), +(123, 'go-admin/app/other/apis.SysFileDir.Delete-fm', '文件夹删除', '/api/v1/file-dir/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.520', '2021-06-13 20:53:52.539', NULL, 0, 0), +(124, 'go-admin/app/other/apis.SysFileInfo.Delete-fm', '文件删除', '/api/v1/file-info/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.566', '2021-06-13 20:53:52.580', NULL, 0, 0), +(125, 'go-admin/app/admin/apis.SysConfig.Delete-fm', '参数删除', '/api/v1/config', 'BUS', 'DELETE', '2021-05-13 19:59:06.612', '2021-06-17 11:48:40.732', NULL, 0, 0), +(126, 'go-admin/app/admin/apis.SysMenu.Delete-fm', '删除菜单', '/api/v1/menu', 'BUS', 'DELETE', '2021-05-13 19:59:06.654', '2021-06-17 11:48:40.732', NULL, 0, 0), +(127, 'go-admin/app/admin/apis.SysPost.Delete-fm', '岗位删除', '/api/v1/post/:id', 'BUS', 'DELETE', '2021-05-13 19:59:06.702', '2021-06-17 11:48:40.732', NULL, 0, 0), +(128, 'go-admin/app/admin/apis.SysRole.Delete-fm', '角色删除', '/api/v1/role', 'BUS', 'DELETE', '2021-05-13 19:59:06.746', '2021-06-17 11:48:40.732', NULL, 0, 0), +(131, 'github.com/go-admin-team/go-admin-core/tools/transfer.Handler.func1', '系统指标', '/api/v1/metrics', 'SYS', 'GET', '2021-05-17 22:13:55.933', '2021-06-13 20:53:49.614', NULL, 0, 0), +(132, 'go-admin/app/other/router.registerMonitorRouter.func1', '健康状态', '/api/v1/health', 'SYS', 'GET', '2021-05-17 22:13:56.285', '2021-06-13 20:53:49.951', NULL, 0, 0), +(133, 'go-admin/app/admin/apis.HelloWorld', '项目默认接口', '/', 'SYS', 'GET', '2021-05-24 10:30:44.553', '2021-06-13 20:53:47.406', NULL, 0, 0), +(134, 'go-admin/app/other/apis.ServerMonitor.ServerInfo-fm', '服务器基本状态', '/api/v1/server-monitor', 'SYS', 'GET', '2021-05-24 10:30:44.937', '2021-06-13 20:53:48.255', NULL, 0, 0), +(135, 'go-admin/app/admin/apis.SysApi.GetPage-fm', '接口列表', '/api/v1/sys-api', 'BUS', 'GET', '2021-05-24 11:37:53.303', '2021-06-17 11:48:40.732', NULL, 0, 0), +(136, 'go-admin/app/admin/apis.SysApi.Get-fm', '接口通过id获取', '/api/v1/sys-api/:id', 'BUS', 'GET', '2021-05-24 11:37:53.359', '2021-06-17 11:48:40.732', NULL, 0, 0), +(137, 'go-admin/app/admin/apis.SysLoginLog.GetPage-fm', '登录日志列表', '/api/v1/sys-login-log', 'BUS', 'GET', '2021-05-24 11:47:30.397', '2021-06-17 11:48:40.732', NULL, 0, 0), +(138, 'go-admin/app/other/apis.File.UploadFile-fm', '文件上传', '/api/v1/public/uploadFile', 'SYS', 'POST', '2021-05-25 19:16:18.493', '2021-06-13 20:53:50.866', NULL, 0, 0), +(139, 'go-admin/app/admin/apis.SysConfig.Update2Set-fm', '参数信息修改【参数配置】', '/api/v1/set-config', 'BUS', 'PUT', '2021-05-27 09:45:14.853', '2021-06-17 11:48:40.732', NULL, 0, 0), +(140, 'go-admin/app/admin/apis.SysConfig.Get2Set-fm', '参数获取全部【配置使用】', '/api/v1/set-config', 'BUS', 'GET', '2021-05-27 11:54:14.384', '2021-06-17 11:48:40.732', NULL, 0, 0), +(141, 'go-admin/app/admin/apis.SysUser.GetPage-fm', '管理员列表', '/api/v1/sys-user', 'BUS', 'GET', '2021-06-13 19:24:57.111', '2021-06-17 20:31:14.318', NULL, 0, 0), +(142, 'go-admin/app/admin/apis.SysUser.Get-fm', '管理员通过id获取', '/api/v1/sys-user/:id', 'BUS', 'GET', '2021-06-13 19:24:57.188', '2021-06-17 20:31:14.318', NULL, 0, 0), +(143, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTablesInfo-fm', '', '/api/v1/sys/tables/info', '', 'GET', '2021-06-13 19:24:57.437', '2021-06-13 20:53:48.047', NULL, 0, 0), +(144, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTables-fm', '', '/api/v1/sys/tables/info/:tableId', '', 'GET', '2021-06-13 19:24:57.510', '2021-06-13 20:53:48.088', NULL, 0, 0), +(145, 'go-admin/app/admin/apis/tools.(*SysTable).GetSysTableList-fm', '', '/api/v1/sys/tables/page', '', 'GET', '2021-06-13 19:24:57.582', '2021-06-13 20:53:48.128', NULL, 0, 0), +(146, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/static/*filepath', '', 'GET', '2021-06-13 19:24:59.641', '2021-06-13 20:53:50.081', NULL, 0, 0), +(147, 'github.com/swaggo/gin-swagger.CustomWrapHandler.func1', '', '/swagger/*any', '', 'GET', '2021-06-13 19:24:59.713', '2021-06-13 20:53:50.123', NULL, 0, 0), +(148, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/form-generator/*filepath', '', 'GET', '2021-06-13 19:24:59.914', '2021-06-13 20:53:50.295', NULL, 0, 0), +(149, 'go-admin/app/admin/apis/tools.(*SysTable).InsertSysTable-fm', '', '/api/v1/sys/tables/info', '', 'POST', '2021-06-13 19:25:00.163', '2021-06-13 20:53:50.539', NULL, 0, 0), +(150, 'go-admin/app/admin/apis.SysUser.Insert-fm', '管理员创建', '/api/v1/sys-user', 'BUS', 'POST', '2021-06-13 19:25:00.233', '2021-06-17 20:31:14.318', NULL, 0, 0), +(151, 'go-admin/app/admin/apis.SysUser.Update-fm', '管理员编辑', '/api/v1/sys-user', 'BUS', 'PUT', '2021-06-13 19:25:00.986', '2021-06-17 20:31:14.318', NULL, 0, 0), +(152, 'go-admin/app/admin/apis/tools.(*SysTable).UpdateSysTable-fm', '', '/api/v1/sys/tables/info', '', 'PUT', '2021-06-13 19:25:01.149', '2021-06-13 20:53:51.375', NULL, 0, 0), +(153, 'go-admin/app/admin/apis.SysRole.Update2Status-fm', '', '/api/v1/role-status', '', 'PUT', '2021-06-13 19:25:01.446', '2021-06-13 20:53:51.636', NULL, 0, 0), +(154, 'go-admin/app/admin/apis.SysUser.ResetPwd-fm', '', '/api/v1/user/pwd/reset', '', 'PUT', '2021-06-13 19:25:01.601', '2021-06-13 20:53:51.764', NULL, 0, 0), +(155, 'go-admin/app/admin/apis.SysUser.UpdateStatus-fm', '', '/api/v1/user/status', '', 'PUT', '2021-06-13 19:25:01.671', '2021-06-13 20:53:51.806', NULL, 0, 0), +(156, 'go-admin/app/admin/apis.SysUser.Delete-fm', '管理员删除', '/api/v1/sys-user', 'BUS', 'DELETE', '2021-06-13 19:25:02.043', '2021-06-17 20:31:14.318', NULL, 0, 0), +(157, 'go-admin/app/admin/apis/tools.(*SysTable).DeleteSysTables-fm', '', '/api/v1/sys/tables/info/:tableId', '', 'DELETE', '2021-06-13 19:25:02.283', '2021-06-13 20:53:52.367', NULL, 0, 0), +(158, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/static/*filepath', '', 'HEAD', '2021-06-13 19:25:02.734', '2021-06-13 20:53:52.791', NULL, 0, 0), +(159, 'github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1', '', '/form-generator/*filepath', '', 'HEAD', '2021-06-13 19:25:02.808', '2021-06-13 20:53:52.838', NULL, 0, 0); +SET IDENTITY_INSERT sys_api OFF; + +INSERT INTO sys_config VALUES +(1, '皮肤样式', 'sys_index_skinName', 'skin-green', 'Y', '0', '主框架页-默认皮肤样式名称:蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 13:50:13.123', NULL), +(2, '初始密码', 'sys_user_initPassword', '123456', 'Y', '0', '用户管理-账号初始密码:123456', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL), +(3, '侧栏主题', 'sys_index_sideTheme', 'theme-dark', 'Y', '0', '主框架页-侧边栏主题:深色主题theme-dark,浅色主题theme-light', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL), +(4, '系统名称', 'sys_app_name', 'go-admin管理系统', 'Y', '1', '', 1, 0, '2021-03-17 08:52:06.067', '2021-05-28 10:08:25.248', NULL), +(5, '系统logo', 'sys_app_logo', 'https://gitee.com/mydearzwj/image/raw/master/img/go-admin.png', 'Y', '1', '', 1, 0, '2021-03-17 08:53:19.462', '2021-03-17 08:53:19.462', NULL); + +SET IDENTITY_INSERT sys_dept ON; +INSERT INTO sys_dept (dept_id, parent_id, dept_path, dept_name, sort, leader, phone, email, status, create_by, update_by, created_at, updated_at, deleted_at)VALUES +(1, 0, '/0/1/', '爱拓科技', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:06:44.960', NULL), +(7, 1, '/0/1/7/', '研发部', 1, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-16 21:35:00.109', NULL), +(8, 1, '/0/1/8/', '运维部', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-16 21:41:39.747', NULL), +(9, 1, '/0/1/9/', '客服部', 0, 'aituo', '13782218188', 'atuo@aituo.com', '2', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:07:05.993', NULL), +(10, 1, '/0/1/10/', '人力资源', 3, 'aituo', '13782218188', 'atuo@aituo.com', '1', 1, 1, '2021-05-13 19:56:37.913', '2021-06-05 17:07:08.503', NULL); +SET IDENTITY_INSERT sys_dept OFF; + +INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, + status, "default", remark, create_by, update_by, created_at, updated_at, deleted_at)VALUES +(1, 0, '正常', '2', 'sys_normal_disable', '', '', '', '2', '', '系统正常', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:40.168', NULL); +INSERT INTO sys_dict_data VALUES (2, 0, '停用', '1', 'sys_normal_disable', '', '', '', '2', '', '系统停用', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (3, 0, '男', '0', 'sys_user_sex', '', '', '', '2', '', '性别男', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (4, 0, '女', '1', 'sys_user_sex', '', '', '', '2', '', '性别女', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (5, 0, '未知', '2', 'sys_user_sex', '', '', '', '2', '', '性别未知', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (6, 0, '显示', '0', 'sys_show_hide', '', '', '', '2', '', '显示菜单', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (7, 0, '隐藏', '1', 'sys_show_hide', '', '', '', '2', '', '隐藏菜单', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (8, 0, '是', 'Y', 'sys_yes_no', '', '', '', '2', '', '系统默认是', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (9, 0, '否', 'N', 'sys_yes_no', '', '', '', '2', '', '系统默认否', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (10, 0, '正常', '2', 'sys_job_status', '', '', '', '2', '', '正常状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (11, 0, '停用', '1', 'sys_job_status', '', '', '', '2', '', '停用状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (12, 0, '默认', 'DEFAULT', 'sys_job_group', '', '', '', '2', '', '默认分组', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (13, 0, '系统', 'SYSTEM', 'sys_job_group', '', '', '', '2', '', '系统分组', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (14, 0, '通知', '1', 'sys_notice_type', '', '', '', '2', '', '通知', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (15, 0, '公告', '2', 'sys_notice_type', '', '', '', '2', '', '公告', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (16, 0, '正常', '2', 'sys_common_status', '', '', '', '2', '', '正常状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (17, 0, '关闭', '1', 'sys_common_status', '', '', '', '2', '', '关闭状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (18, 0, '新增', '1', 'sys_oper_type', '', '', '', '2', '', '新增操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (19, 0, '修改', '2', 'sys_oper_type', '', '', '', '2', '', '修改操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (20, 0, '删除', '3', 'sys_oper_type', '', '', '', '2', '', '删除操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (21, 0, '授权', '4', 'sys_oper_type', '', '', '', '2', '', '授权操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (22, 0, '导出', '5', 'sys_oper_type', '', '', '', '2', '', '导出操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (23, 0, '导入', '6', 'sys_oper_type', '', '', '', '2', '', '导入操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (24, 0, '强退', '7', 'sys_oper_type', '', '', '', '2', '', '强退操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (25, 0, '生成代码', '8', 'sys_oper_type', '', '', '', '2', '', '生成操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (26, 0, '清空数据', '9', 'sys_oper_type', '', '', '', '2', '', '清空操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (27, 0, '成功', '0', 'sys_notice_status', '', '', '', '2', '', '成功状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (28, 0, '失败', '1', 'sys_notice_status', '', '', '', '2', '', '失败状态', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (29, 0, '登录', '10', 'sys_oper_type', '', '', '', '2', '', '登录操作', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (30, 0, '退出', '11', 'sys_oper_type', '', '', '', '2', '', '', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (31, 0, '获取验证码', '12', 'sys_oper_type', '', '', '', '2', '', '获取验证码', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_data VALUES (32, 0, '正常', '1', 'sys_content_status', '', '', '', '1', '', '', 1, 1, '2021-05-13 19:56:40.845', '2021-05-13 19:56:40.845', NULL); +INSERT INTO sys_dict_data VALUES (33, 1, '禁用', '2', 'sys_content_status', '', '', '', '1', '', '', 1, 1, '2021-05-13 19:56:40.845', '2021-05-13 19:56:40.845', NULL); + + +INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, remark, create_by, update_by, created_at, updated_at, + deleted_at)VALUES (1, '系统开关', 'sys_normal_disable', '2', '系统开关列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (2, '用户性别', 'sys_user_sex', '2', '用户性别列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (3, '菜单状态', 'sys_show_hide', '2', '菜单状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (4, '系统是否', 'sys_yes_no', '2', '系统是否列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (5, '任务状态', 'sys_job_status', '2', '任务状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (6, '任务分组', 'sys_job_group', '2', '任务分组列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (7, '通知类型', 'sys_notice_type', '2', '通知类型列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (8, '系统状态', 'sys_common_status', '2', '登录状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (9, '操作类型', 'sys_oper_type', '2', '操作类型列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (10, '通知状态', 'sys_notice_status', '2', '通知状态列表', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:37.914', NULL); +INSERT INTO sys_dict_type VALUES (11, '内容状态', 'sys_content_status', '2', '', 1, 1, '2021-05-13 19:56:40.813', '2021-05-13 19:56:40.813', NULL); + + +INSERT INTO sys_job (job_id, job_name, job_group, job_type, cron_expression, invoke_target, args, misfire_policy, concurrent, status, entry_id, created_at, updated_at, deleted_at, create_by, update_by)VALUES +(1, '接口测试', 'DEFAULT', 1, '0/5 * * * * ', 'http://localhost:8000', '', 1, 1, 1, 0, '2021-05-13 19:56:37.914', '2021-06-14 20:59:55.417', NULL, 1, 1), +(2, '函数测试', 'DEFAULT', 2, '0/5 * * * * ', 'ExamplesOne', '参数', 1, 1, 1, 0, '2021-05-13 19:56:37.914', '2021-05-31 23:55:37.221', NULL, 1, 1); + +SET IDENTITY_INSERT sys_menu ON; +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, "action", permission, parent_id, no_cache, breadcrumb, component, sort, visible, is_frame, create_by, update_by, created_at, updated_at, deleted_at)VALUES +(2, 'Admin', '系统管理', 'api-server', '/admin', '/0/2', 'M', '无', '', 0, 1, '', 'Layout', 10, '0', '1', 0, 1, '2021-05-20 21:58:45.679', '2021-06-17 11:48:40.703', NULL), +(3, 'SysUserManage', '用户管理', 'user', '/admin/sys-user', '/0/2/3', 'C', '无', 'admin:sysUser:list', 2, 0, '', '/admin/sys-user/index', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL), +(43, '', '新增管理员', 'app-group-fill', '', '/0/2/3/43', 'F', 'POST', 'admin:sysUser:add', 3, 0, '', '', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL), +(44, '', '查询管理员', 'app-group-fill', '', '/0/2/3/44', 'F', 'GET', 'admin:sysUser:query', 3, 0, '', '', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL), +(45, '', '修改管理员', 'app-group-fill', '', '/0/2/3/45', 'F', 'PUT', 'admin:sysUser:edit', 3, 0, '', '', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL), +(46, '', '删除管理员', 'app-group-fill', '', '/0/2/3/46', 'F', 'DELETE', 'admin:sysUser:remove', 3, 0, '', '', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 20:31:14.305', NULL), +(51, 'SysMenuManage', '菜单管理', 'tree-table', '/admin/sys-menu', '/0/2/51', 'C', '无', 'admin:sysMenu:list', 2, 1, '', '/admin/sys-menu/index', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(52, 'SysRoleManage', '角色管理', 'peoples', '/admin/sys-role', '/0/2/52', 'C', '无', 'admin:sysRole:list', 2, 1, '', '/admin/sys-role/index', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(56, 'SysDeptManage', '部门管理', 'tree', '/admin/sys-dept', '/0/2/56', 'C', '无', 'admin:sysDept:list', 2, 0, '', '/admin/sys-dept/index', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(57, 'SysPostManage', '岗位管理', 'pass', '/admin/sys-post', '/0/2/57', 'C', '无', 'admin:sysPost:list', 2, 0, '', '/admin/sys-post/index', 50, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(58, 'Dict', '字典管理', 'education', '/admin/dict', '/0/2/58', 'C', '无', 'admin:sysDictType:list', 2, 0, '', '/admin/dict/index', 60, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(59, 'SysDictDataManage', '字典数据', 'education', '/admin/dict/data/:dictId', '/0/2/59', 'C', '无', 'admin:sysDictData:list', 2, 0, '', '/admin/dict/data', 100, '1', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(60, 'Tools', '开发工具', 'dev-tools', '/dev-tools', '/0/60', 'M', '无', '', 0, 0, '', 'Layout', 40, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-05 22:15:03.465', NULL), +(61, 'Swagger', '系统接口', 'guide', '/dev-tools/swagger', '/0/60/61', 'C', '无', '', 60, 0, '', '/dev-tools/swagger/index', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-05 22:15:03.465', NULL), +(62, 'SysConfigManage', '参数管理', 'swagger', '/admin/sys-config', '/0/2/62', 'C', '无', 'admin:sysConfig:list', 2, 0, '', '/admin/sys-config/index', 70, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(211, 'Log', '日志管理', 'log', '/log', '/0/2/211', 'M', '', '', 2, 0, '', '/log/index', 80, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(212, 'SysLoginLogManage', '登录日志', 'logininfor', '/admin/sys-login-log', '/0/2/211/212', 'C', '', 'admin:sysLoginLog:list', 211, 0, '', '/admin/sys-login-log/index', 1, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(216, 'OperLog', '操作日志', 'skill', '/admin/sys-oper-log', '/0/2/211/216', 'C', '', 'admin:sysOperLog:list', 211, 0, '', '/admin/sys-oper-log/index', 1, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(220, '', '新增菜单', 'app-group-fill', '', '/0/2/51/220', 'F', '', 'admin:sysMenu:add', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(221, '', '修改菜单', 'app-group-fill', '', '/0/2/51/221', 'F', '', 'admin:sysMenu:edit', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(222, '', '查询菜单', 'app-group-fill', '', '/0/2/51/222', 'F', '', 'admin:sysMenu:query', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(223, '', '删除菜单', 'app-group-fill', '', '/0/2/51/223', 'F', '', 'admin:sysMenu:remove', 51, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(224, '', '新增角色', 'app-group-fill', '', '/0/2/52/224', 'F', '', 'admin:sysRole:add', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(225, '', '查询角色', 'app-group-fill', '', '/0/2/52/225', 'F', '', 'admin:sysRole:query', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(226, '', '修改角色', 'app-group-fill', '', '/0/2/52/226', 'F', '', 'admin:sysRole:update', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(227, '', '删除角色', 'app-group-fill', '', '/0/2/52/227', 'F', '', 'admin:sysRole:remove', 52, 0, '', '', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(228, '', '查询部门', 'app-group-fill', '', '/0/2/56/228', 'F', '', 'admin:sysDept:query', 56, 0, '', '', 40, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(229, '', '新增部门', 'app-group-fill', '', '/0/2/56/229', 'F', '', 'admin:sysDept:add', 56, 0, '', '', 10, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(230, '', '修改部门', 'app-group-fill', '', '/0/2/56/230', 'F', '', 'admin:sysDept:edit', 56, 0, '', '', 30, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(231, '', '删除部门', 'app-group-fill', '', '/0/2/56/231', 'F', '', 'admin:sysDept:remove', 56, 0, '', '', 20, '0', '1', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(232, '', '查询岗位', 'app-group-fill', '', '/0/2/57/232', 'F', '', 'admin:sysPost:query', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(233, '', '新增岗位', 'app-group-fill', '', '/0/2/57/233', 'F', '', 'admin:sysPost:add', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(234, '', '修改岗位', 'app-group-fill', '', '/0/2/57/234', 'F', '', 'admin:sysPost:edit', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(235, '', '删除岗位', 'app-group-fill', '', '/0/2/57/235', 'F', '', 'admin:sysPost:remove', 57, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(236, '', '查询字典', 'app-group-fill', '', '/0/2/58/236', 'F', '', 'admin:sysDictType:query', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(237, '', '新增类型', 'app-group-fill', '', '/0/2/58/237', 'F', '', 'admin:sysDictType:add', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(238, '', '修改类型', 'app-group-fill', '', '/0/2/58/238', 'F', '', 'admin:sysDictType:edit', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(239, '', '删除类型', 'app-group-fill', '', '/0/2/58/239', 'F', '', 'system:sysdicttype:remove', 58, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(240, '', '查询数据', 'app-group-fill', '', '/0/2/59/240', 'F', '', 'admin:sysDictData:query', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(241, '', '新增数据', 'app-group-fill', '', '/0/2/59/241', 'F', '', 'admin:sysDictData:add', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(242, '', '修改数据', 'app-group-fill', '', '/0/2/59/242', 'F', '', 'admin:sysDictData:edit', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(243, '', '删除数据', 'app-group-fill', '', '/0/2/59/243', 'F', '', 'admin:sysDictData:remove', 59, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(244, '', '查询参数', 'app-group-fill', '', '/0/2/62/244', 'F', '', 'admin:sysConfig:query', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(245, '', '新增参数', 'app-group-fill', '', '/0/2/62/245', 'F', '', 'admin:sysConfig:add', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(246, '', '修改参数', 'app-group-fill', '', '/0/2/62/246', 'F', '', 'admin:sysConfig:edit', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(247, '', '删除参数', 'app-group-fill', '', '/0/2/62/247', 'F', '', 'admin:sysConfig:remove', 62, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(248, '', '查询登录日志', 'app-group-fill', '', '/0/2/211/212/248', 'F', '', 'admin:sysLoginLog:query', 212, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(249, '', '删除登录日志', 'app-group-fill', '', '/0/2/211/212/249', 'F', '', 'admin:sysLoginLog:remove', 212, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(250, '', '查询操作日志', 'app-group-fill', '', '/0/2/211/216/250', 'F', '', 'admin:sysOperLog:query', 216, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(251, '', '删除操作日志', 'app-group-fill', '', '/0/2/211/216/251', 'F', '', 'admin:sysOperLog:remove', 216, 0, '', '', 0, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-17 11:48:40.703', NULL), +(261, 'Gen', '代码生成', 'code', '/dev-tools/gen', '/0/60/261', 'C', '', '', 60, 0, '', '/dev-tools/gen/index', 2, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL), +(262, 'EditTable', '代码生成修改', 'build', '/dev-tools/editTable', '/0/60/262', 'C', '', '', 60, 0, '', '/dev-tools/gen/editTable', 100, '1', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL), +(264, 'Build', '表单构建', 'build', '/dev-tools/build', '/0/60/264', 'C', '', '', 60, 0, '', '/dev-tools/build/index', 1, '0', '1', 1, 1, '2020-04-11 15:52:48.000', '2021-06-16 21:26:12.446', NULL), +(269, 'ServerMonitor', '服务监控', 'druid', '/sys-tools/monitor', '/0/60/269', 'C', '', 'sysTools:serverMonitor:list', 537, 0, '', '/sys-tools/monitor', 0, '0', '1', 1, 1, '2020-04-14 00:28:19.000', '2021-06-16 21:26:12.446', NULL), +(459, 'Schedule', '定时任务', 'time-range', '/schedule', '/0/459', 'M', '无', '', 0, 0, '', 'Layout', 20, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL), +(460, 'ScheduleManage', 'Schedule', 'job', '/schedule/manage', '/0/459/460', 'C', '无', 'job:sysJob:list', 459, 0, '', '/schedule/index', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL), +(461, 'sys_job', '分页获取定时任务', 'app-group-fill', '', '/0/459/460/461', 'F', '无', 'job:sysJob:query', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL), +(462, 'sys_job', '创建定时任务', 'app-group-fill', '', '/0/459/460/462', 'F', '无', 'job:sysJob:add', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL), +(463, 'sys_job', '修改定时任务', 'app-group-fill', '', '/0/459/460/463', 'F', '无', 'job:sysJob:edit', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL), +(464, 'sys_job', '删除定时任务', 'app-group-fill', '', '/0/459/460/464', 'F', '无', 'job:sysJob:remove', 460, 0, '', '', 0, '0', '1', 1, 1, '2020-08-03 09:17:37.000', '2021-06-05 22:15:03.465', NULL), +(471, 'JobLog', '日志', 'bug', '/schedule/log', '/0/459/471', 'C', '', '', 459, 0, '', '/schedule/log', 0, '1', '1', 1, 1, '2020-08-05 21:24:46.000', '2021-06-05 22:15:03.465', NULL), +(528, 'SysApiManage', '接口管理', 'api-doc', '/admin/sys-api', '/0/527/528', 'C', '无', 'admin:sysApi:list', 2, 0, '', '/admin/sys-api/index', 0, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(529, '', '查询接口', 'app-group-fill', '', '/0/527/528/529', 'F', '无', 'admin:sysApi:query', 528, 0, '', '', 40, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(531, '', '修改接口', 'app-group-fill', '', '/0/527/528/531', 'F', '无', 'admin:sysApi:edit', 528, 0, '', '', 30, '0', '0', 0, 1, '2021-05-20 22:08:44.526', '2021-06-17 11:48:40.703', NULL), +(537, 'SysTools', '系统工具', 'system-tools', '/sys-tools', '', 'M', '', '', 0, 0, '', 'Layout', 30, '0', '1', 1, 1, '2021-05-21 11:13:32.166', '2021-06-16 21:26:12.446', NULL), +(540, 'SysConfigSet', '参数设置', 'system-tools', '/admin/sys-config/set', '', 'C', '', 'admin:sysConfigSet:list', 2, 0, '', '/admin/sys-config/set', 0, '0', '1', 1, 1, '2021-05-25 16:06:52.560', '2021-06-17 11:48:40.703', NULL), +(542, '', '修改', 'upload', '', '', 'F', '', 'admin:sysConfigSet:update', 540, 0, '', '', 0, '0', '1', 1, 1, '2021-06-13 11:45:48.670', '2021-06-17 11:48:40.703', NULL); +SET IDENTITY_INSERT sys_menu OFF; +INSERT INTO sys_menu_api_rule (sys_menu_menu_id, sys_api_id)VALUES (216, 6); +(250, 6), +(58, 21), +(236, 21), +(238, 23), +(59, 24), +(240, 24), +(242, 25), +(58, 26), +(236, 26), +(56, 27), +(228, 27), +(230, 28), +(226, 29), +(51, 39), +(51, 135), +(222, 39), +(221, 41), +(52, 44), +(225, 44), +(226, 45), +(226, 46), +(226, 47), +(62, 53), +(244, 53), +(246, 54), +(57, 59), +(232, 59), +(234, 60), +(241, 80), +(237, 81), +(229, 82), +(245, 87), +(220, 88), +(233, 89), +(224, 90), +(531, 92), +(242, 101), +(238, 102), +(230, 103), +(226, 106), +(226, 107), +(246, 108), +(221, 109), +(234, 110), +(249, 114), +(251, 115), +(243, 120), +(239, 121), +(231, 122), +(247, 125), +(223, 126), +(235, 127), +(227, 128), +(528, 135), +(529, 135), +(531, 136), +(212, 137), +(248, 137), +(542, 139), +(540, 140), +(3, 141), +(44, 141), +(45, 142), +(43, 150), +(45, 151), +(46, 156); +INSERT INTO sys_post (post_id, post_name, post_code, sort, status, remark, create_by, update_by, created_at, updated_at, deleted_at)VALUES +(1, '首席执行官', 'CEO', 0, '2','首席执行官', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL), +(2, '首席技术执行官', 'CTO', 2, '2','首席技术执行官', 1, 1,'2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL), +(3, '首席运营官', 'COO', 3, '2','测试工程师', 1, 1,'2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); +INSERT INTO sys_role (role_id, role_name, status, role_key, role_sort, flag, remark, admin, data_scope, create_by, update_by, created_at, updated_at, deleted_at)VALUES +(1, '系统管理员', '2', 'admin', 1, '', '', 1, '', 1, 1, '2021-05-13 19:56:37.913', '2021-05-13 19:56:37.913', NULL); +INSERT INTO sys_user VALUES (1, 'admin', '$2a$10$/Glr4g9Svr6O0kvjsRJCXu3f0W8/dsP3XZyVNi1019ratWpSPMyw.', 'zhangwj', '13818888888', 1, '', '', '1', '1@qq.com', 1, 1, '', '2', 1, 1, '2021-05-13 19:56:37.914', '2021-05-13 19:56:40.205', NULL); +-- 数据完成 ; \ No newline at end of file diff --git a/config/settings.yml b/config/settings.yml index ca718615..8e7ed870 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -27,7 +27,8 @@ settings: # token 过期时间 单位:秒 timeout: 3600 database: - # 数据库类型 mysql,sqlite3, postgres + # 数据库类型 mysql, sqlite3, postgres, sqlserver + # sqlserver: sqlserver://用户名:密码@地址?database=数据库名 driver: mysql # 数据库连接字符串 mysql 缺省信息 charset=utf8&parseTime=True&loc=Local&timeout=1000ms source: user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8&parseTime=True&loc=Local&timeout=1000ms @@ -70,4 +71,4 @@ settings: # blockingTimeout: 5 # reclaimInterval: 1 locker: - redis: + redis: \ No newline at end of file diff --git a/go.mod b/go.mod index 32f540c7..c28d385e 100644 --- a/go.mod +++ b/go.mod @@ -29,5 +29,6 @@ require ( gorm.io/driver/mysql v1.0.4-0.20201206014609-ae5fd10184f6 gorm.io/driver/postgres v1.0.6-0.20201208020313-1ed927cfab53 gorm.io/driver/sqlite v1.1.5-0.20201206014648-c84401fbe3ba + gorm.io/driver/sqlserver v1.0.4 gorm.io/gorm v1.21.11 -) +) \ No newline at end of file From f114424079b7e55ad5ad61af150a95acaf459cb4 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sun, 13 Feb 2022 00:23:20 +0800 Subject: [PATCH 22/41] =?UTF-8?q?fix=F0=9F=90=9B:=20fix=20monitor=20macos?= =?UTF-8?q?=20env=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/other/apis/sys_server_monitor.go | 125 +++++++++++++++++++++------ go-admin-db.db | Bin 335872 -> 335872 bytes go.mod | 5 +- 3 files changed, 100 insertions(+), 30 deletions(-) diff --git a/app/other/apis/sys_server_monitor.go b/app/other/apis/sys_server_monitor.go index a8054052..a7a4172e 100644 --- a/app/other/apis/sys_server_monitor.go +++ b/app/other/apis/sys_server_monitor.go @@ -2,18 +2,21 @@ package apis import ( "fmt" - "github.com/shirou/gopsutil/host" + "github.com/shirou/gopsutil/v3/net" + "regexp" "runtime" "strconv" + "strings" "time" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" "github.com/go-admin-team/go-admin-core/sdk/pkg" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" - "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/disk" - "github.com/shirou/gopsutil/mem" + "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v3/disk" + "github.com/shirou/gopsutil/v3/host" + "github.com/shirou/gopsutil/v3/mem" ) const ( @@ -23,11 +26,28 @@ const ( GB = 1024 * MB ) +var ( + Version string + expectDiskFsTypes = []string{ + "apfs", "ext4", "ext3", "ext2", "f2fs", "reiserfs", "jfs", "btrfs", + "fuseblk", "zfs", "simfs", "ntfs", "fat32", "exfat", "xfs", "fuse.rclone", + } + excludeNetInterfaces = []string{ + "lo", "tun", "docker", "veth", "br-", "vmbr", "vnet", "kube", + } + getMacDiskNo = regexp.MustCompile(`\/dev\/disk(\d)s.*`) +) + +var ( + netInSpeed, netOutSpeed, netInTransfer, netOutTransfer, lastUpdateNetStats uint64 + cachedBootTime time.Time +) + type ServerMonitor struct { api.Api } -//获取相差时间 +// GetHourDiffer 获取相差时间 func GetHourDiffer(startTime, endTime string) int64 { var hour int64 t1, err := time.ParseInLocation("2006-01-02 15:04:05", startTime, time.Local) @@ -64,33 +84,28 @@ func (e ServerMonitor) ServerInfo(c *gin.Context) { osDic["hostName"] = sysInfo.Hostname osDic["time"] = time.Now().Format("2006-01-02 15:04:05") - dis, _ := disk.Usage("/") - diskTotalGB := int(dis.Total) / GB - diskFreeGB := int(dis.Free) / GB - diskDic := make(map[string]interface{}, 0) - diskDic["total"] = diskTotalGB - diskDic["free"] = diskFreeGB - mem, _ := mem.VirtualMemory() - memUsedMB := int(mem.Used) / GB - memTotalMB := int(mem.Total) / GB - memFreeMB := int(mem.Free) / GB - memUsedPercent := int(mem.UsedPercent) memDic := make(map[string]interface{}, 0) - memDic["total"] = memTotalMB - memDic["used"] = memUsedMB - memDic["free"] = memFreeMB - memDic["usage"] = memUsedPercent + memDic["used"] = mem.Used / MB + memDic["total"] = mem.Total / MB + + fmt.Println("mem", int(mem.Total/mem.Used*100)) + memDic["percent"] = pkg.Round(mem.UsedPercent, 2) + + swapDic := make(map[string]interface{}, 0) + swapDic["used"] = mem.SwapTotal - mem.SwapFree + swapDic["total"] = mem.SwapTotal cpuDic := make(map[string]interface{}, 0) cpuDic["cpuInfo"], _ = cpu.Info() percent, _ := cpu.Percent(0, false) - cpuDic["Percent"] = pkg.Round(percent[0], 2) + cpuDic["percent"] = pkg.Round(percent[0], 2) cpuDic["cpuNum"], _ = cpu.Counts(false) //服务器磁盘信息 disklist := make([]disk.UsageStat, 0) //所有分区 + var diskTotal, diskUsed, diskUsedPercent float64 diskInfo, err := disk.Partitions(true) if err == nil { for _, p := range diskInfo { @@ -101,16 +116,72 @@ func (e ServerMonitor) ServerInfo(c *gin.Context) { diskDetail.Used = diskDetail.Used / 1024 / 1024 diskDetail.Free = diskDetail.Free / 1024 / 1024 disklist = append(disklist, *diskDetail) + } } } + d, _ := disk.Usage("/") + + diskTotal = float64(d.Total / GB) + diskUsed = float64(d.Used / GB) + diskUsedPercent, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", d.UsedPercent), 64) + + diskDic := make(map[string]interface{}, 0) + diskDic["total"] = diskTotal + diskDic["used"] = diskUsed + diskDic["percent"] = diskUsedPercent + + bootTime, _ := host.BootTime() + cachedBootTime = time.Unix(int64(bootTime), 0) + + TrackNetworkSpeed() + netDic := make(map[string]interface{}, 0) + netDic["in"] = pkg.Round(float64(netInSpeed/KB), 2) + netDic["out"] = pkg.Round(float64(netOutSpeed/KB), 2) e.Custom(gin.H{ - "code": 200, - "os": osDic, - "mem": memDic, - "cpu": cpuDic, - "disk": diskDic, - "diskList": disklist, + "code": 200, + "os": osDic, + "mem": memDic, + "cpu": cpuDic, + "disk": diskDic, + "net": netDic, + "swap": swapDic, + "location": "Aliyun", + "bootTime": GetHourDiffer(cachedBootTime.Format("2006-01-02 15:04:05"), time.Now().Format("2006-01-02 15:04:05")), }) } + +func TrackNetworkSpeed() { + var innerNetInTransfer, innerNetOutTransfer uint64 + nc, err := net.IOCounters(true) + if err == nil { + for _, v := range nc { + if isListContainsStr(excludeNetInterfaces, v.Name) { + continue + } + innerNetInTransfer += v.BytesRecv + innerNetOutTransfer += v.BytesSent + } + now := uint64(time.Now().Unix()) + diff := now - lastUpdateNetStats + if diff > 0 { + netInSpeed = (innerNetInTransfer - netInTransfer) / diff + fmt.Println("netInSpeed", netInSpeed) + netOutSpeed = (innerNetOutTransfer - netOutTransfer) / diff + fmt.Println("netOutSpeed", netOutSpeed) + } + netInTransfer = innerNetInTransfer + netOutTransfer = innerNetOutTransfer + lastUpdateNetStats = now + } +} + +func isListContainsStr(list []string, str string) bool { + for i := 0; i < len(list); i++ { + if strings.Contains(str, list[i]) { + return true + } + } + return false +} diff --git a/go-admin-db.db b/go-admin-db.db index 5152f46f01355ce66606ca35ebb7339afcce872c..ca8e07201def51a5fcf3b6866d6711da66da7a2c 100644 GIT binary patch delta 2143 zcmah~eQZ?47N41WX7Aq5+1-Aw6j`KDw6yFlR<>1Wp+y^7p{@1BK7wArT4E ztKuW_hpi=!F9u)h13#eJ!dfOi;$?;#mnS_HDo$!K6|KVI$I`6~b)9L(Eh4c$s`Fck1J%6x%z6+Kgq|1ZtT??f6HQ z8b1weNP2WTyTpEA-?1TMP^5O_K6YL1!f+%UluIieCVfStbd{yjEzgWIZ?|>}wKvW; z1q~!}Sc5{nIF4TGQOVfTvfRsvU1p=Qt3!;B{)1SMf)*jJx067MepJuVI<;)H$QUv% zNc#9AzD|R`VI1L37r9nk=pfIyz`lZx@$IjWqoTnN2Z-o9Oy(;fH#>rK5rQYuT>dr9 z+r*k0>LVU4PQM~<+|y6el9o$oN;9PCk%T(0DiUQ&k7=SclIB}>bf1?r|QNAK3>Vo{I*Cly)v=(;J!zu-<)n_L5~2k85BF}w~bibG-~j1OWDdPLr?Tlm6s z%H3YaHc`#Zc|3Fwu9NxQ&-!UuBE6o_XPId2xcvAcKj5dulj5vvsHM2UQDqIYv-#RL zVGb{yPM7j`&O^F5GM%m@Vt)*hF@Z;UM+~xfdxtD=Q$H;Eb<5{a;VP8<&p_)D+iDNn ztE>;KrRLM7ZR|FXzC-&#TjT!JU844=A=f@SMz_HQs8UWUS>$<=g!iH!(Rx|S4I=j} z9KwWd;$uA%X?AqOxDwuQ4)%f**kJN2=b)X?_2avWj>2uC_YF8s!6AP&#jbyWiWPE~ z$t9XIuGM!03i*}{nl7F^4m%)UYW1Tg#Om$O>`M8`dCU#QTSi3Rq8-%I-FK;d>SEVs z8lxrfHiVUD$R)BAJMxdSNvg~jOQK+7k^WEMs_N+TW#jY4zYHmb^7Dsa4LHklOqe|w4um3Gy;{5h@C>cK=nk%_i<^Pe}%h$aQTU3(uJ8pTdB+(Alm?OiX?8K2{ pU4XHg7~>hlJs05y8)}sIlmhY`QE@doBa3enK1%%{z8QgJ;};8mc((um delta 4615 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 Date: Sun, 13 Feb 2022 00:31:46 +0800 Subject: [PATCH 23/41] =?UTF-8?q?docs=F0=9F=93=9D:=20=20update=20version?= =?UTF-8?q?=202.0.9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/global/adm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/global/adm.go b/common/global/adm.go index 22da11c8..9755dc67 100644 --- a/common/global/adm.go +++ b/common/global/adm.go @@ -2,7 +2,7 @@ package global const ( // Version go-admin version info - Version = "2.0.8" + Version = "2.0.9" ) var ( From cca84c3c2117947da9751942090e898105901d48 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Mon, 21 Feb 2022 17:56:12 +0800 Subject: [PATCH 24/41] =?UTF-8?q?docs=F0=9F=93=9D:=20=20update=20License?= =?UTF-8?q?=20Copyright?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE.md b/LICENSE.md index 2e5981c4..36b35f4c 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 wenjianzhang +Copyright (c) 2020 go-admin-team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 8754ff81471ccd9a32ac2b26e8c360598d953b35 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Mon, 21 Feb 2022 18:04:18 +0800 Subject: [PATCH 25/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=20upgrade=20oss?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/file_store/oss.go | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/common/file_store/oss.go b/common/file_store/oss.go index fb7a2a45..c35627b9 100644 --- a/common/file_store/oss.go +++ b/common/file_store/oss.go @@ -6,50 +6,43 @@ import ( ) type ALiYunOSS struct { - Client interface{} - Endpoint string - AccessKeyId string - AccessKeySecret string - BucketName string + Client interface{} + BucketName string } -func (e *ALiYunOSS) Setup() error { - // TODO: 如果需要使用阿里云OSS请在此处填写对应信息 - e.AccessKeyId = "" - e.AccessKeySecret = "" - e.Endpoint = "" - e.BucketName = "" - - client, err := oss.New(e.Endpoint, e.AccessKeyId, e.AccessKeySecret) +//Setup 装载 +//endpoint sss +func (e *ALiYunOSS) Setup(endpoint, accessKeyID, accessKeySecret, BucketName string, options ...ClientOption) error { + client, err := oss.New(endpoint, accessKeyID, accessKeySecret) if err != nil { log.Println("Error:", err) return err } e.Client = client + e.BucketName = BucketName + return nil } // UpLoad 文件上传 -func (e *ALiYunOSS) UpLoad(yourObjectName string, localFile string) error { - err := e.Setup() - if err != nil { - log.Println("Error:", err) - return err - } +func (e *ALiYunOSS) UpLoad(yourObjectName string, localFile interface{}) error { // 获取存储空间。 bucket, err := e.Client.(*oss.Client).Bucket(e.BucketName) if err != nil { log.Println("Error:", err) return err } - // 设置分片大小为100 KB,指定分片上传并发数为3,并开启断点续传上传。 // 其中与objectKey是同一概念,表示断点续传上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。 // "LocalFile"为filePath,100*1024为partSize。 - err = bucket.UploadFile(yourObjectName, localFile, 100*1024, oss.Routines(3), oss.Checkpoint(true, "")) + err = bucket.UploadFile(yourObjectName, localFile.(string), 100*1024, oss.Routines(3), oss.Checkpoint(true, "")) if err != nil { log.Println("Error:", err) return err } return nil } + +func (e *ALiYunOSS) GetTempToken() (string, error) { + return "", nil +} From dfaa2ff51e4aa566fc8054a8caee2265484d6b33 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Mon, 21 Feb 2022 18:04:46 +0800 Subject: [PATCH 26/41] =?UTF-8?q?test=E2=9C=85:=20=20added=20oss=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/file_store/oss_test.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 common/file_store/oss_test.go diff --git a/common/file_store/oss_test.go b/common/file_store/oss_test.go new file mode 100644 index 00000000..f04dd225 --- /dev/null +++ b/common/file_store/oss_test.go @@ -0,0 +1,16 @@ +package file_store + +import ( + "testing" +) + +func TestOSSUpload(t *testing.T) { + // 打括号内填写自己的测试信息即可 + e := OXS{} + var oxs = e.Setup(AliYunOSS) + err := oxs.UpLoad("test.png", "./test.png") + if err != nil { + t.Error(err) + } + t.Log("ok") +} From cdb5faf043c64cf71e45bada2494daab10f4830b Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Mon, 21 Feb 2022 18:06:11 +0800 Subject: [PATCH 27/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=20upgrade=20OXS?= =?UTF-8?q?=20interface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/file_store/interface.go | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/common/file_store/interface.go b/common/file_store/interface.go index 5ba5c427..acecbe90 100644 --- a/common/file_store/interface.go +++ b/common/file_store/interface.go @@ -1,6 +1,27 @@ package file_store +// DriverType 驱动类型 +type DriverType string + +const ( + // HuaweiOBS 华为云OBS + HuaweiOBS DriverType = "HuaweiOBS" + // AliYunOSS 阿里云OSS + AliYunOSS DriverType = "AliYunOSS" + // QiNiuKodo 七牛云kodo + QiNiuKodo DriverType = "QiNiuKodo" +) + +type ClientOption map[string]interface{} + +// TODO: FileStoreType名称待定 + +// FileStoreType OXS type FileStoreType interface { - Setup() error - UpLoad(yourObjectName string, localFile string) error + // Setup 装载 endpoint sss + Setup(endpoint, accessKeyID, accessKeySecret, BucketName string, options ...ClientOption) error + // UpLoad 上传 + UpLoad(yourObjectName string, localFile interface{}) error + // GetTempToken 获取临时Token + GetTempToken() (string, error) } From f998d20a862a0d1e188f2ac72026dd71b37ac12f Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Mon, 21 Feb 2022 18:07:37 +0800 Subject: [PATCH 28/41] =?UTF-8?q?feat=E2=9C=A8:=20=20added=20obs,kodo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/file_store/initialize.go | 48 +++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/common/file_store/initialize.go b/common/file_store/initialize.go index 2190b217..fabce9fb 100644 --- a/common/file_store/initialize.go +++ b/common/file_store/initialize.go @@ -1,13 +1,45 @@ package file_store -type FileStore struct { +import "fmt" + +type OXS struct { + // Endpoint 访问域名 + Endpoint string + // AccessKeyID AK + AccessKeyID string + // AccessKeySecret AKS + AccessKeySecret string + // BucketName 桶名称 + BucketName string } -// Setup 配置数据库 -func (e *FileStore) Setup(driver string) { - //fileStoreType := driver - //if fileStoreType == "ALiYunOSS" { - // var store = new(ALiYunOSS) - // store.Setup() - //} +// Setup 配置文件存储driver +func (e *OXS) Setup(driver DriverType, options ...ClientOption) FileStoreType { + fileStoreType := driver + var fileStore FileStoreType + switch fileStoreType { + case AliYunOSS: + fileStore = new(ALiYunOSS) + err := fileStore.Setup(e.Endpoint, e.AccessKeyID, e.AccessKeySecret, e.BucketName) + if err != nil { + fmt.Println(err) + } + return fileStore + case HuaweiOBS: + fileStore = new(HuaWeiOBS) + err := fileStore.Setup(e.Endpoint, e.AccessKeyID, e.AccessKeySecret, e.BucketName) + if err != nil { + fmt.Println(err) + } + return fileStore + case QiNiuKodo: + fileStore = new(QiNiuKODO) + err := fileStore.Setup(e.Endpoint, e.AccessKeyID, e.AccessKeySecret, e.BucketName) + if err != nil { + fmt.Println(err) + } + return fileStore + } + + return nil } From 4876fc0aa1a17bc272b7d4cb4cf05903151a709e Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 5 Mar 2022 11:00:52 +0800 Subject: [PATCH 29/41] =?UTF-8?q?fix=F0=9F=90=9B:=20Fix=20password=20reset?= =?UTF-8?q?=20caused=20by=20modifying=20user=20information?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/sys_user.go | 46 +++++++++++++++++++++++------------ app/admin/service/sys_user.go | 9 +++---- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/app/admin/apis/sys_user.go b/app/admin/apis/sys_user.go index 16fcff1a..5f669f75 100644 --- a/app/admin/apis/sys_user.go +++ b/app/admin/apis/sys_user.go @@ -2,6 +2,7 @@ package apis import ( "github.com/gin-gonic/gin/binding" + "github.com/go-admin-team/go-admin-core/sdk/config" "go-admin/app/admin/models" "net/http" @@ -30,7 +31,7 @@ type SysUser struct { // @Security Bearer func (e SysUser) GetPage(c *gin.Context) { s := service.SysUser{} - req :=dto.SysUserGetPageReq{} + req := dto.SysUserGetPageReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req). @@ -67,7 +68,7 @@ func (e SysUser) GetPage(c *gin.Context) { // @Security Bearer func (e SysUser) Get(c *gin.Context) { s := service.SysUser{} - req :=dto.SysUserById{} + req := dto.SysUserById{} err := e.MakeContext(c). MakeOrm(). Bind(&req, nil). @@ -101,7 +102,7 @@ func (e SysUser) Get(c *gin.Context) { // @Security Bearer func (e SysUser) Insert(c *gin.Context) { s := service.SysUser{} - req :=dto.SysUserInsertReq{} + req := dto.SysUserInsertReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON). @@ -136,7 +137,7 @@ func (e SysUser) Insert(c *gin.Context) { // @Security Bearer func (e SysUser) Update(c *gin.Context) { s := service.SysUser{} - req :=dto.SysUserUpdateReq{} + req := dto.SysUserUpdateReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req). @@ -171,7 +172,7 @@ func (e SysUser) Update(c *gin.Context) { // @Security Bearer func (e SysUser) Delete(c *gin.Context) { s := service.SysUser{} - req :=dto.SysUserById{} + req := dto.SysUserById{} err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON). @@ -208,7 +209,7 @@ func (e SysUser) Delete(c *gin.Context) { // @Security Bearer func (e SysUser) InsetAvatar(c *gin.Context) { s := service.SysUser{} - req :=dto.UpdateSysUserAvatarReq{} + req := dto.UpdateSysUserAvatarReq{} err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). @@ -257,7 +258,7 @@ func (e SysUser) InsetAvatar(c *gin.Context) { // @Security Bearer func (e SysUser) UpdateStatus(c *gin.Context) { s := service.SysUser{} - req :=dto.UpdateSysUserStatusReq{} + req := dto.UpdateSysUserStatusReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON, nil). @@ -294,7 +295,7 @@ func (e SysUser) UpdateStatus(c *gin.Context) { // @Security Bearer func (e SysUser) ResetPwd(c *gin.Context) { s := service.SysUser{} - req :=dto.ResetSysUserPwdReq{} + req := dto.ResetSysUserPwdReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON). @@ -311,16 +312,23 @@ func (e SysUser) ResetPwd(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) + if req.UserId == 1 && config.ApplicationConfig.Mode == "demo" { + req.Password = "123456" + } err = s.ResetPwd(&req, p) if err != nil { e.Logger.Error(err) return } - e.OK(req.GetId(), "更新成功") + if req.UserId == 1 && config.ApplicationConfig.Mode == "demo" { + e.OK(req.GetId(), "admin:现在使用的预览环境,休想改掉我!否则会影响其他朋友体验的哦!可以创建其他用户体验该功能!") + } else { + e.OK(req.GetId(), "更新成功") + } } // UpdatePwd -// @Summary 重置密码 +// @Summary 修改密码 // @Description 获取JSON // @Tags 用户 // @Accept application/json @@ -331,7 +339,7 @@ func (e SysUser) ResetPwd(c *gin.Context) { // @Security Bearer func (e SysUser) UpdatePwd(c *gin.Context) { s := service.SysUser{} - req :=dto.PassWord{} + req := dto.PassWord{} err := e.MakeContext(c). MakeOrm(). Bind(&req). @@ -345,14 +353,20 @@ func (e SysUser) UpdatePwd(c *gin.Context) { // 数据权限检查 p := actions.GetPermissionFromContext(c) - + if user.GetUserId(c) == 1 && config.ApplicationConfig.Mode == "demo" { + req.NewPassword = "123456" + } err = s.UpdatePwd(user.GetUserId(c), req.OldPassword, req.NewPassword, p) if err != nil { e.Logger.Error(err) e.Error(http.StatusForbidden, err, "密码修改失败") return } - e.OK(nil, "密码修改成功") + if user.GetUserId(c) == 1 && config.ApplicationConfig.Mode == "demo" { + e.OK(nil, "admin:现在使用的预览环境,休想改掉我!否则会影响其他朋友体验的哦!可以创建其他用户体验该功能!") + } else { + e.OK(nil, "密码修改成功") + } } // GetProfile @@ -364,7 +378,7 @@ func (e SysUser) UpdatePwd(c *gin.Context) { // @Security Bearer func (e SysUser) GetProfile(c *gin.Context) { s := service.SysUser{} - req :=dto.SysUserById{} + req := dto.SysUserById{} err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). @@ -401,7 +415,7 @@ func (e SysUser) GetProfile(c *gin.Context) { // @Router /api/v1/getinfo [get] // @Security Bearer func (e SysUser) GetInfo(c *gin.Context) { - req :=dto.SysUserById{} + req := dto.SysUserById{} s := service.SysUser{} r := service.SysRole{} err := e.MakeContext(c). @@ -450,4 +464,4 @@ func (e SysUser) GetInfo(c *gin.Context) { mp["name"] = sysUser.NickName mp["code"] = 200 e.OK(mp, "") -} \ No newline at end of file +} diff --git a/app/admin/service/sys_user.go b/app/admin/service/sys_user.go index 24a6e28b..e09f9d10 100644 --- a/app/admin/service/sys_user.go +++ b/app/admin/service/sys_user.go @@ -127,8 +127,7 @@ func (e *SysUser) UpdateAvatar(c *dto.UpdateSysUserAvatarReq, p *actions.DataPer return errors.New("无权更新该数据") } - c.Generate(&model) - err = e.Orm.Save(&model).Error + err = e.Orm.Table(model.TableName()).Where("user_id =? ", c.UserId).Updates(c).Error if err != nil { e.Log.Errorf("Service UpdateSysUser error: %s", err) return err @@ -151,8 +150,7 @@ func (e *SysUser) UpdateStatus(c *dto.UpdateSysUserStatusReq, p *actions.DataPer return errors.New("无权更新该数据") } - c.Generate(&model) - err = e.Orm.Save(&model).Error + err = e.Orm.Table(model.TableName()).Where("user_id =? ", c.UserId).Updates(c).Error if err != nil { e.Log.Errorf("Service UpdateSysUser error: %s", err) return err @@ -174,8 +172,7 @@ func (e *SysUser) ResetPwd(c *dto.ResetSysUserPwdReq, p *actions.DataPermission) if db.RowsAffected == 0 { return errors.New("无权更新该数据") } - c.Generate(&model) - err = e.Orm.Save(&model).Error + err = e.Orm.Table(model.TableName()).Where("user_id =? ", c.UserId).Updates(c).Error if err != nil { e.Log.Errorf("At Service ResetSysUserPwd error: %s", err) return err From 24adca55e44d42c39b6b81e7c2872b65c236b707 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 5 Mar 2022 11:44:23 +0800 Subject: [PATCH 30/41] =?UTF-8?q?feat=E2=9C=A8:=20added=20file=20update=20?= =?UTF-8?q?sdk=EF=BC=9Bkodo=E3=80=81obs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/file_store/kodo.go | 111 +++++++++++++++++++++++++++++++++ common/file_store/kodo_test.go | 23 +++++++ common/file_store/obs.go | 52 +++++++++++++++ common/file_store/obs_test.go | 15 +++++ go.mod | 4 +- 5 files changed, 204 insertions(+), 1 deletion(-) create mode 100644 common/file_store/kodo.go create mode 100644 common/file_store/kodo_test.go create mode 100644 common/file_store/obs.go create mode 100644 common/file_store/obs_test.go diff --git a/common/file_store/kodo.go b/common/file_store/kodo.go new file mode 100644 index 00000000..db896e27 --- /dev/null +++ b/common/file_store/kodo.go @@ -0,0 +1,111 @@ +package file_store + +import ( + "context" + "fmt" + "github.com/qiniu/go-sdk/v7/auth/qbox" + "github.com/qiniu/go-sdk/v7/storage" +) + +type Zone string + +const ( + // HuaDong 华东 + HuaDong Zone = "HuaDong" + // HuaBei 华北 + HuaBei Zone = "HuaBei" + // HuaNan 华南 + HuaNan Zone = "HuaNan" + // BeiMei 北美 + BeiMei Zone = "BeiMei" + // XinJiaPo 新加坡 + XinJiaPo Zone = "XinJiaPo" +) + +type QiNiuKODO struct { + Client interface{} + BucketName string + cfg storage.Config + options []ClientOption +} + +func (e *QiNiuKODO) getToken() string { + putPolicy := storage.PutPolicy{ + Scope: e.BucketName, + } + if len(e.options) > 0 && e.options[0]["Expires"] != nil { + putPolicy.Expires = e.options[0]["Expires"].(uint64) + } + upToken := putPolicy.UploadToken(e.Client.(*qbox.Mac)) + return upToken +} + +//Setup 装载 +//endpoint sss +func (e *QiNiuKODO) Setup(endpoint, accessKeyID, accessKeySecret, BucketName string, options ...ClientOption) error { + + mac := qbox.NewMac(accessKeyID, accessKeySecret) + // 获取存储空间。 + cfg := storage.Config{} + // 空间对应的机房 + e.setZoneORDefault(cfg, options...) + // 是否使用https域名 + cfg.UseHTTPS = true + // 上传是否使用CDN上传加速 + cfg.UseCdnDomains = false + + e.Client = mac + e.BucketName = BucketName + e.cfg = cfg + e.options = options + return nil +} + +// setZoneORDefault 设置Zone或者默认华东 +func (e *QiNiuKODO) setZoneORDefault(cfg storage.Config, options ...ClientOption) { + if len(options) > 0 && options[0]["Zone"] != nil { + if _, ok := options[0]["Zone"].(Zone); !ok { + cfg.Zone = &storage.ZoneHuadong + } + switch options[0]["Zone"].(Zone) { + case HuaDong: + cfg.Zone = &storage.ZoneHuadong + case HuaBei: + cfg.Zone = &storage.ZoneHuabei + case HuaNan: + cfg.Zone = &storage.ZoneHuanan + case BeiMei: + cfg.Zone = &storage.ZoneBeimei + case XinJiaPo: + cfg.Zone = &storage.ZoneXinjiapo + default: + cfg.Zone = &storage.ZoneHuadong + } + } +} + +// UpLoad 文件上传 +func (e *QiNiuKODO) UpLoad(yourObjectName string, localFile interface{}) error { + + // 构建表单上传的对象 + formUploader := storage.NewFormUploader(&e.cfg) + ret := storage.PutRet{} + // 可选配置 + putExtra := storage.PutExtra{ + Params: map[string]string{ + "x:name": "github logo", + }, + } + err := formUploader.PutFile(context.Background(), &ret, e.getToken(), yourObjectName, localFile.(string), &putExtra) + if err != nil { + fmt.Println(err) + return err + } + fmt.Println(ret.Key, ret.Hash) + return nil +} + +func (e *QiNiuKODO) GetTempToken() (string, error) { + token := e.getToken() + return token, nil +} diff --git a/common/file_store/kodo_test.go b/common/file_store/kodo_test.go new file mode 100644 index 00000000..a8767ae7 --- /dev/null +++ b/common/file_store/kodo_test.go @@ -0,0 +1,23 @@ +package file_store + +import ( + "testing" +) + +func TestKODOUpload(t *testing.T) { + e := OXS{"", "", "", ""} + var oxs = e.Setup(QiNiuKodo, map[string]interface{}{"Zone": "华东"}) + err := oxs.UpLoad("test.png", "./test.png") + if err != nil { + t.Error(err) + } + t.Log("ok") +} + +func TestKODOGetTempToken(t *testing.T) { + e := OXS{"", "", "", ""} + var oxs = e.Setup(QiNiuKodo, map[string]interface{}{"Zone": "华东"}) + token, _ := oxs.GetTempToken() + t.Log(token) + t.Log("ok") +} diff --git a/common/file_store/obs.go b/common/file_store/obs.go new file mode 100644 index 00000000..e9377291 --- /dev/null +++ b/common/file_store/obs.go @@ -0,0 +1,52 @@ +package file_store + +import ( + "fmt" + "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" + "log" +) + +type HuaWeiOBS struct { + Client interface{} + BucketName string +} + +func (e *HuaWeiOBS) Setup(endpoint, accessKeyID, accessKeySecret, BucketName string, options ...ClientOption) error { + // 创建ObsClient结构体 + client, err := obs.New(accessKeyID, accessKeySecret, endpoint) + if err != nil { + log.Println("Error:", err) + return err + } + e.Client = client + e.BucketName = BucketName + return nil +} + +// UpLoad 文件上传 +// yourObjectName 文件路径名称,与objectKey是同一概念,表示断点续传上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg +func (e *HuaWeiOBS) UpLoad(yourObjectName string, localFile interface{}) error { + // 获取存储空间。 + input := &obs.PutFileInput{} + input.Bucket = e.BucketName + input.Key = yourObjectName + input.SourceFile = localFile.(string) + output, err := e.Client.(*obs.ObsClient).PutFile(input) + + if err == nil { + fmt.Printf("RequestId:%s\n", output.RequestId) + fmt.Printf("ETag:%s, StorageClass:%s\n", output.ETag, output.StorageClass) + } else { + if obsError, ok := err.(obs.ObsError); ok { + fmt.Println(obsError.Code) + fmt.Println(obsError.Message) + } else { + fmt.Println(err) + } + } + return nil +} + +func (e *HuaWeiOBS) GetTempToken() (string, error) { + return "", nil +} diff --git a/common/file_store/obs_test.go b/common/file_store/obs_test.go new file mode 100644 index 00000000..09607508 --- /dev/null +++ b/common/file_store/obs_test.go @@ -0,0 +1,15 @@ +package file_store + +import ( + "testing" +) + +func TestOBSUpload(t *testing.T) { + e := OXS{"", "", "", ""} + var oxs = e.Setup(HuaweiOBS) + err := oxs.UpLoad("test.png", "./test.png") + if err != nil { + t.Error(err) + } + t.Log("ok") +} diff --git a/go.mod b/go.mod index a8a33c66..28fc0485 100644 --- a/go.mod +++ b/go.mod @@ -13,9 +13,11 @@ require ( github.com/go-admin-team/go-admin-core v1.3.8 github.com/go-admin-team/go-admin-core/sdk v1.3.9 github.com/google/uuid v1.2.0 + github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.12+incompatible github.com/mssola/user_agent v0.5.2 github.com/opentracing/opentracing-go v1.1.0 github.com/prometheus/client_golang v1.11.0 + github.com/qiniu/go-sdk/v7 v7.11.1 github.com/robfig/cron/v3 v3.0.1 github.com/shirou/gopsutil/v3 v3.22.1 github.com/spf13/cast v1.3.1 @@ -23,7 +25,7 @@ require ( github.com/swaggo/gin-swagger v1.2.0 github.com/swaggo/swag v1.6.7 github.com/unrolled/secure v1.0.8 - golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 + golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect gorm.io/driver/mysql v1.0.4-0.20201206014609-ae5fd10184f6 gorm.io/driver/postgres v1.0.6-0.20201208020313-1ed927cfab53 From 81bc15d77c38f50399c806fa414bcbb90b995050 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 5 Mar 2022 11:49:56 +0800 Subject: [PATCH 31/41] =?UTF-8?q?config=F0=9F=94=A7:=20=20go-admin=20versi?= =?UTF-8?q?on=20info?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/global/adm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/global/adm.go b/common/global/adm.go index 9755dc67..f593fa60 100644 --- a/common/global/adm.go +++ b/common/global/adm.go @@ -2,7 +2,7 @@ package global const ( // Version go-admin version info - Version = "2.0.9" + Version = "2.0.10" ) var ( From b030be8f80a470fa4b2f65b94ed62f44dfbcd140 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 12 Mar 2022 13:00:19 +0800 Subject: [PATCH 32/41] =?UTF-8?q?fix=F0=9F=90=9B:=20Fix=20password=20reset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/service/sys_user.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/admin/service/sys_user.go b/app/admin/service/sys_user.go index e09f9d10..cdfe30d9 100644 --- a/app/admin/service/sys_user.go +++ b/app/admin/service/sys_user.go @@ -172,7 +172,8 @@ func (e *SysUser) ResetPwd(c *dto.ResetSysUserPwdReq, p *actions.DataPermission) if db.RowsAffected == 0 { return errors.New("无权更新该数据") } - err = e.Orm.Table(model.TableName()).Where("user_id =? ", c.UserId).Updates(c).Error + c.Generate(&model) + err = e.Orm.Omit("username", "nick_name", "phone", "role_id", "avatar", "sex").Save(&model).Error if err != nil { e.Log.Errorf("At Service ResetSysUserPwd error: %s", err) return err From 638bab3c9d6732e937e86bc19f01a4bb6f4b7365 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Thu, 31 Mar 2022 14:01:15 +0800 Subject: [PATCH 33/41] =?UTF-8?q?docs=F0=9F=93=9D:=20=20update=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 427fa134..c151f080 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # go-admin - + [![Build Status](https://github.com/wenjianzhang/go-admin/workflows/build/badge.svg)](https://github.com/go-admin-team/go-admin) From c41672c21ac98c58230e0d4d3bbc02d4608af40c Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Thu, 31 Mar 2022 15:08:49 +0800 Subject: [PATCH 34/41] =?UTF-8?q?=20docs=F0=9F=93=9D:=20update=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.Zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.Zh-cn.md b/README.Zh-cn.md index 7d38d5ec..1d3a4774 100644 --- a/README.Zh-cn.md +++ b/README.Zh-cn.md @@ -1,6 +1,6 @@ # go-admin - + [![Build Status](https://github.com/wenjianzhang/go-admin/workflows/build/badge.svg)](https://github.com/go-admin-team/go-admin) From eb33515e29158820c072dd523019250713775d66 Mon Sep 17 00:00:00 2001 From: kaiyuan Date: Fri, 8 Apr 2022 10:32:07 +0800 Subject: [PATCH 35/41] throw error if migrate failed --- cmd/migrate/migration/models/initdb.go | 11 ++++++++--- cmd/migrate/migration/version/1599190683659_tables.go | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/cmd/migrate/migration/models/initdb.go b/cmd/migrate/migration/models/initdb.go index 644ba499..a9345031 100644 --- a/cmd/migrate/migration/models/initdb.go +++ b/cmd/migrate/migration/models/initdb.go @@ -3,10 +3,11 @@ package models import ( "fmt" "go-admin/common/global" - "gorm.io/gorm" "io/ioutil" "log" "strings" + + "gorm.io/gorm" ) func InitDb(db *gorm.DB) (err error) { @@ -16,9 +17,13 @@ func InitDb(db *gorm.DB) (err error) { err = ExecSql(db, filePath) } else if global.Driver == "mysql" { filePath = "config/db-begin-mysql.sql" - err = ExecSql(db, filePath) + if err = ExecSql(db, filePath); err != nil { + return err + } filePath = "config/db.sql" - err = ExecSql(db, filePath) + if err = ExecSql(db, filePath); err != nil { + return err + } filePath = "config/db-end-mysql.sql" err = ExecSql(db, filePath) } else { diff --git a/cmd/migrate/migration/version/1599190683659_tables.go b/cmd/migrate/migration/version/1599190683659_tables.go index 09a8e0e0..64780788 100644 --- a/cmd/migrate/migration/version/1599190683659_tables.go +++ b/cmd/migrate/migration/version/1599190683659_tables.go @@ -3,11 +3,11 @@ package version import ( "runtime" - "gorm.io/gorm" - "go-admin/cmd/migrate/migration" "go-admin/cmd/migrate/migration/models" common "go-admin/common/models" + + "gorm.io/gorm" ) func init() { @@ -41,7 +41,7 @@ func _1599190683659Tables(db *gorm.DB, version string) error { return err } if err := models.InitDb(tx); err != nil { - + return err } return tx.Create(&common.Migration{ Version: version, From 6ed2fcbf6c5ff0d8aeccb275f937ec7bbdd53170 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Fri, 27 May 2022 22:47:57 +0800 Subject: [PATCH 36/41] =?UTF-8?q?fix=F0=9F=90=9B:=20=E6=B7=BB=E5=8A=A0role?= =?UTF-8?q?Key=E9=AA=8C=E8=AF=81(#649)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/sys_role.go | 2 +- app/admin/service/sys_role.go | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/admin/apis/sys_role.go b/app/admin/apis/sys_role.go index f83e3657..507132e9 100644 --- a/app/admin/apis/sys_role.go +++ b/app/admin/apis/sys_role.go @@ -125,7 +125,7 @@ func (e SysRole) Insert(c *gin.Context) { err = s.Insert(&req, cb) if err != nil { e.Logger.Error(err) - e.Error(500, err, "创建失败") + e.Error(500, err, "创建失败,"+err.Error()) return } _, err = global.LoadPolicy(c) diff --git a/app/admin/service/sys_role.go b/app/admin/service/sys_role.go index c1f1853c..6c514045 100644 --- a/app/admin/service/sys_role.go +++ b/app/admin/service/sys_role.go @@ -83,6 +83,18 @@ func (e *SysRole) Insert(c *dto.SysRoleInsertReq, cb *casbin.SyncedEnforcer) err } }() } + var count int64 + err = tx.Model(&data).Where("role_key = ?", c.RoleKey).Count(&count).Error + if err != nil { + e.Log.Errorf("db error:%s", err) + return err + } + + if count > 0 { + err = errors.New("roleKey已存在,需更换在提交!") + e.Log.Errorf("db error:%s", err) + return err + } err = tx.Create(&data).Error if err != nil { From cd0792e3d23ba7e4ae5e4a9daf61d8bd16a34ef8 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 28 May 2022 00:14:12 +0800 Subject: [PATCH 37/41] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=20=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0readme(#623)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.Zh-cn.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.Zh-cn.md b/README.Zh-cn.md index 1d3a4774..1e1f3e6f 100644 --- a/README.Zh-cn.md +++ b/README.Zh-cn.md @@ -182,6 +182,13 @@ $ ./go-admin server -c config/settings.yml $ go-admin.exe server -c config/settings.yml ``` +#### sys_api 表的数据如何添加 + +在项目启动时,使用`-a true` 系统会自动添加缺少的接口数据 +```bash +./go-admin server -c config/settings.yml -a true +``` + #### 使用docker 编译启动 ```shell From 88030e301a8ba736cd63e5c4f3b6786091b7f0fb Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 28 May 2022 00:17:35 +0800 Subject: [PATCH 38/41] =?UTF-8?q?patch=F0=9F=9A=91:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/global/adm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/global/adm.go b/common/global/adm.go index f593fa60..1204cfc6 100644 --- a/common/global/adm.go +++ b/common/global/adm.go @@ -2,7 +2,7 @@ package global const ( // Version go-admin version info - Version = "2.0.10" + Version = "2.0.11" ) var ( From 717903a2b67a172610bcc6d40246a77898d08df4 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 28 May 2022 00:34:08 +0800 Subject: [PATCH 39/41] =?UTF-8?q?fix=F0=9F=90=9B:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E4=B8=AD=E7=9A=84job=E8=83=BD=E5=A4=9F?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E9=97=AE=E9=A2=98(#638)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/apis/sys_job.go | 2 +- app/jobs/service/sys_job.go | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/jobs/apis/sys_job.go b/app/jobs/apis/sys_job.go index 58174002..296138dd 100644 --- a/app/jobs/apis/sys_job.go +++ b/app/jobs/apis/sys_job.go @@ -62,7 +62,7 @@ func (e SysJob) StartJobForService(c *gin.Context) { err = s.StartJob(&v) if err != nil { log.Errorf("GetCrontabKey error, %s", err.Error()) - e.Error(500, err, "") + e.Error(500, err, err.Error()) return } e.OK(nil, s.Msg) diff --git a/app/jobs/service/sys_job.go b/app/jobs/service/sys_job.go index 4e566d00..9d7268ea 100644 --- a/app/jobs/service/sys_job.go +++ b/app/jobs/service/sys_job.go @@ -1,6 +1,7 @@ package service import ( + "github.com/pkg/errors" "time" "github.com/go-admin-team/go-admin-core/sdk/service" @@ -52,6 +53,12 @@ func (e *SysJob) StartJob(c *dto.GeneralGetDto) error { e.Log.Errorf("db error: %s", err) return err } + + if data.Status == 1 { + err = errors.New("当前Job是关闭状态不能被启动,请先启用。") + return err + } + if data.JobType == 1 { var j = &jobs.HttpJob{} j.InvokeTarget = data.InvokeTarget From 937b62e64132e24be24822a6cf0c4989d6f09635 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sun, 29 May 2022 12:58:53 +0800 Subject: [PATCH 40/41] =?UTF-8?q?=E6=B7=BB=E5=8A=A0errors=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 1 + 1 file changed, 1 insertion(+) diff --git a/go.mod b/go.mod index 28fc0485..0632556b 100644 --- a/go.mod +++ b/go.mod @@ -16,6 +16,7 @@ require ( github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.12+incompatible github.com/mssola/user_agent v0.5.2 github.com/opentracing/opentracing-go v1.1.0 + github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.11.0 github.com/qiniu/go-sdk/v7 v7.11.1 github.com/robfig/cron/v3 v3.0.1 From 8f70a1dca47592b2ae3299ee3ba487900b97d3f9 Mon Sep 17 00:00:00 2001 From: Han Zhang Date: Fri, 3 Jun 2022 20:38:54 +0800 Subject: [PATCH 41/41] =?UTF-8?q?fix=F0=9F=90=9B:=20Fix=20Dockerfile=20to?= =?UTF-8?q?=20load=20config=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix🐛: Fix Dockerfile to load config file --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 430e91ef..c5e33a5c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,8 @@ FROM alpine COPY --from=builder /go/release/go-admin / +COPY --from=builder /go/release/config/settings.yml /config/settings.yml + COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /etc/localtime EXPOSE 8000