From 568062b479d99e4855aa25a896e95deb6655e26e Mon Sep 17 00:00:00 2001 From: gsl Date: Sun, 30 Jun 2024 16:44:10 +0800 Subject: [PATCH] add sql --- deploy/sql/init/user.sql | 184 +++++++++++++++++++++++++++++++++++++++ init/inii_test.go | 36 +++++--- init/init.go | 1 + 3 files changed, 209 insertions(+), 12 deletions(-) diff --git a/deploy/sql/init/user.sql b/deploy/sql/init/user.sql index e69de29..15258b2 100644 --- a/deploy/sql/init/user.sql +++ b/deploy/sql/init/user.sql @@ -0,0 +1,184 @@ +-- 用户表 +CREATE TABLE IF NOT EXISTS `user`( + `id` int UNSIGNED AUTO_INCREMENT COMMENT '用户id' , + `account` varchar(64) NOT NULL COMMENT '用户账号', + `name` varchar(255) DEFAULT '' COMMENT '姓名', + `mobile` varchar(255) DEFAULT NULL COMMENT '手机', + `email` varchar(255) DEFAULT NULL COMMENT '邮箱', + `pwd` varchar(255) DEFAULT NULL COMMENT '密码', + `sex` TINYINT DEFAULT 0 COMMENT '性别:0-女,1-男', + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_account`(`account`), + UNIQUE KEY `uk_mobile`(`mobile`), + UNIQUE KEY `uk_email`(`email`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='用户表'; + + +-- 组织表 +CREATE TABLE IF NOT EXISTS `organization`( + `id` int UNSIGNED AUTO_INCREMENT COMMENT 'id', + `name` VARCHAR(256) NOT NULL COMMENT '组织名', + `parent_id` int UNSIGNED DEFAULT 0 COMMENT '上级组织id', + `sort` SMALLINT UNSIGNED DEFAULT 0 COMMENT '层级序号', + `status` TINYINT DEFAULT 1 COMMENT '状态:0-无效,1-有效', + `path` text COMMENT '全路径', + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), + KEY `idx_path`(`path`) +) ENGINE=InnoDB DEFAULT AUTO_INCREMENT=1 CHARSET=utf8mb3 COMMENT='组织表'; + +-- 用户组织表 +CREATE TABLE IF NOT EXISTS `user_organization`( + `id` int UNSIGNED AUTO_INCREMENT NOT NULL COMMENT 'id', + `user_id` int UNSIGNED NOT NULL COMMENT '用户id', + `org_id` int UNSIGNED NOT NULL COMMENT '组织id', + `leader` bool DEFAULT flase COMMENT '是否是组织领导:一个组织只能有一个领导人', + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), + KEY `idx_user_id`(`user_id`), + KEY `idx_org_id`(`org_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='用户组织表'; + + +-- 角色表 +CREATE TABLE IF NOT EXISTS `role`( + `id` int UNSIGNED AUTO_INCREMENT COMMENT 'id' , + `name` VARCHAR(255) NOT NULL COMMENT '名称', + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='表'; + + +-- 组织角色表 +CREATE TABLE IF NOT EXISTS `organization_role`( + `id` int UNSIGNED NOT NULL COMMENT 'id', + `org_id` int UNSIGNED NOT NULL COMMENT '组织id', + `role_id` int UNSIGNED NOT NULL COMMENT '角色id', + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), + KEY `idx_org_id`(`org_id`), + KEY `idx_role_id`(`role_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='组织角色表'; + + +-- 组织角色授权表 +CREATE TABLE IF NOT EXISTS `organization_role_author`( + `id` char(36) NOT NULL COMMENT 'id', + `org_id` int UNSIGNED NOT NULL COMMENT '组织id', + `role_id` int UNSIGNED NOT NULL COMMENT '角色id', + `option` TINYINT NOT NULL DEFAULT 0 COMMENT '选择:0-选择组织,1-选择组织含下级', + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), + KEY `idx_org_id`(`org_id`), + KEY `idx_role_id`(`role_id`) +)ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='组织角色授权表'; + +-- 应用表 +CREATE TABLE IF NOT EXISTS `application`( + `id` int UNSIGNED AUTO_INCREMENT COMMENT 'id' , + `code` VARCHAR(64) NOT NULL COMMENT 'code' , + `secret` VARCHAR(64) NOT NULL COMMENT 'secret' , + `name` VARCHAR(64) NOT NULL COMMENT 'name' , + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='应用表'; + + +-- 创建菜单表 +CREATE TABLE IF NOT EXISTS `menu` ( + `id` char(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '主键', + `code` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '编码', + `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '名称', + `parent_code` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '父级菜单编码', + `menu_type` int(5) NOT NULL DEFAULT 0 COMMENT '类型(1:一级导航;2:二级导航;3:三级导航)', + `order_num` int(5) NOT NULL DEFAULT 0 COMMENT '排序', + `icon` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '图标', + `path` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '访问路径', + `child_path` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '子级路径(前端用)', + `go_first_child` tinyint(1) NOT NULL DEFAULT 0 COMMENT '前端用', + `is_show` int(5) NOT NULL DEFAULT 0 COMMENT '是否显示(0:否;1:是)', + `created_on` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', + `modified_on` datetime(0) DEFAULT CURRENT_TIMESTAMP COMMENT '记录修改时间', + `created_by` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '记录创建者Id', + `modified_by` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '记录修改者Id', + PRIMARY KEY (`id`), + UNIQUE INDEX `ux_code`(`code`) USING BTREE +) COMMENT = '菜单表'; +-- 菜单表 +CREATE TABLE IF NOT EXISTS `menu`( + `id` int UNSIGNED AUTO_INCREMENT COMMENT 'id' , + `app_code` VARCHAR(64) NOT NULL COMMENT '应用code', + `code` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '编码', + `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '名称', + `parent_code` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '父级菜单编码', + `menu_type` int(5) NOT NULL DEFAULT 0 COMMENT '类型(1:一级导航;2:二级导航;3:三级导航)', + `order_num` int(5) NOT NULL DEFAULT 0 COMMENT '排序', + `icon` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '图标', + `path` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '访问路径', + `child_path` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '子级路径(前端用)', + `go_first_child` tinyint(1) NOT NULL DEFAULT 0 COMMENT '前端用', + `is_show` int(5) NOT NULL DEFAULT 0 COMMENT '是否显示(0:否;1:是)', + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='用户表'; + +-- 角色菜单权限表 +CREATE TABLE IF NOT EXISTS `role_menu_permission`( + `id` int UNSIGNED AUTO_INCREMENT COMMENT 'id' , + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='角色菜单权限表'; + + + + + +-- 职位表 +CREATE TABLE IF NOT EXISTS `post`( + `id` int UNSIGNED AUTO_INCREMENT COMMENT 'id' , + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='职位表'; + +-- 用户信息 +CREATE TABLE IF NOT EXISTS `user_info`( + `id` int UNSIGNED AUTO_INCREMENT COMMENT 'id' , + `user_id` int UNSIGNED COMMENT '用户id' , + `avator` VARCHAR(512) COMMENT '头像', + `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', + `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', + `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', + `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', + PRIMARY KEY (`id`), +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='用户信息表'; diff --git a/init/inii_test.go b/init/inii_test.go index 1da8142..39079ab 100644 --- a/init/inii_test.go +++ b/init/inii_test.go @@ -7,35 +7,47 @@ import ( ) type ServiceInterface interface { - QueryData(name string) []string + QueryData(name string) string } type AService struct { } -func (s *AService) QueryData(name string) []string { - return []string{"aString"} +func (s *AService) QueryData(name string) string { + return "aString" } -func NewAService(i *do.Injector) ServiceInterface { - return &AService{} +func NewAService(i *do.Injector) (ServiceInterface, error) { + return &AService{}, nil } type BService struct { } -func (s *BService) QueryData(name string) []string { - return []string{"bString"} +func (s *BService) QueryData(name string) string { + return "bString" } -func NewBService(i *do.Injector) ServiceInterface { - return &BService{} +func NewBService(i *do.Injector) (ServiceInterface, error) { + return &BService{}, nil } func TestDo(t *testing.T) { container := do.New() - do.Provide(container, NewAService) + // do.Provide(container, NewAService) - aService := do.MustInvoke[AServiceInterface](injector) - aService.QueryData + // aService := do.MustInvoke[ServiceInterface](container) + aService, err := do.Invoke[ServiceInterface](container) + if err != nil { + return + } + + sReturn := aService.QueryData("name") + if sReturn == "aString" { + t.Logf("注入a服务") + } + + if sReturn == "bString" { + t.Logf("注入b服务") + } } diff --git a/init/init.go b/init/init.go index fa331b4..c0ec4ff 100644 --- a/init/init.go +++ b/init/init.go @@ -36,6 +36,7 @@ func Start() { do.ProvideValue(container, conf) do.ProvideValue(container, logger) do.ProvideValue(container, db) + } // todo 配置中心拉去配置