Forráskód Böngészése

add system api implemtion

zhangjq 6 éve
szülő
commit
8dcaa41e2f

BIN
.DS_Store


+ 387 - 0
controllers/SystemController.go

@@ -0,0 +1,387 @@
+
+package controllers
+
+import (
+	"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
+)
+
+
+// _Login
+// @Title _Login
+// @Description 用户登录         
+// @Param	name    string  false  "用户名"  
+// @Param	password    string  false  "密码"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_Login( name string,  password string,  c *SystemController) {
+	c.Ctx.String(200, `{
+      "id": null,
+      "userId": 1,
+      "token": "77ae89be36504adfb5c09ef71409ea0e",
+      "expireTime": "2018-09-01T16:24:50.473+0000",
+      "createBy": null,
+      "createTime": null,
+      "lastUpdateBy": null,
+      "lastUpdateTime": "2018-09-01T04:24:50.473+0000"
+    }
+`)
+}
+
+// _Logout
+// @Title _Logout
+// @Description 用户退出         
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_Logout( c *SystemController) {
+	
+}
+
+// _GetMenuTree
+// @Title _GetMenuTree
+// @Description 获取系统菜单         
+// @Param	user    string  false  "用户id"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_GetMenuTree(user string,  c *SystemController) {
+	menu,_:=c.Db.SQL(models.Selectall_sys_menu).Query().Json()
+	//c.Ctx.String(200, menu)
+menu=menu
+	c.Ctx.String(200, `{
+    "code": 200,
+    "msg": null,
+    "data": [{
+      "id": 1,
+      "createBy": null,
+      "createTime": null,
+      "lastUpdateBy": null,
+      "lastUpdateTime": null,
+      "parentId": 0,
+      "name": "系统管理",
+      "url": null,
+      "perms": null,
+      "type": 0,
+      "icon": "el-icon-setting",
+      "orderNum": 0,
+      "delFlag": 0,
+      "parentName": null,
+      "level": 0,
+      "children": [{
+        "id": 2,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": null,
+        "lastUpdateTime": null,
+        "parentId": 1,
+        "name": "用户管理",
+        "url": "/sys/user",
+        "perms": null,
+        "type": 1,
+        "icon": "el-icon-service",
+        "orderNum": 1,
+        "delFlag": 0,
+        "parentName": "系统管理",
+        "level": 1,
+        "children": []
+      }, {
+        "id": 3,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": null,
+        "lastUpdateTime": null,
+        "parentId": 1,
+        "name": "机构管理",
+        "url": "/sys/dept",
+        "perms": null,
+        "type": 1,
+        "icon": "el-icon-news",
+        "orderNum": 2,
+        "delFlag": 0,
+        "parentName": "系统管理",
+        "level": 1,
+        "children": []
+      }, {
+        "id": 4,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": null,
+        "lastUpdateTime": null,
+        "parentId": 1,
+        "name": "角色管理",
+        "url": "/sys/role",
+        "perms": null,
+        "type": 1,
+        "icon": "el-icon-view",
+        "orderNum": 4,
+        "delFlag": 0,
+        "parentName": "系统管理",
+        "level": 1,
+        "children": []
+      }, {
+        "id": 5,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": null,
+        "lastUpdateTime": null,
+        "parentId": 1,
+        "name": "菜单管理",
+        "url": "/sys/menu",
+        "perms": null,
+        "type": 1,
+        "icon": "el-icon-menu",
+        "orderNum": 5,
+        "delFlag": 0,
+        "parentName": "系统管理",
+        "level": 1,
+        "children": []
+      }, {
+        "id": 7,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": null,
+        "lastUpdateTime": null,
+        "parentId": 1,
+        "name": "字典管理",
+        "url": "/sys/dict",
+        "perms": null,
+        "type": 1,
+        "icon": "el-icon-edit-outline",
+        "orderNum": 7,
+        "delFlag": 0,
+        "parentName": "系统管理",
+        "level": 1,
+        "children": []
+      }, {
+        "id": 8,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": "admin",
+        "lastUpdateTime": "2018-09-23T11:32:28.000+0000",
+        "parentId": 1,
+        "name": "系统日志",
+        "url": "/sys/log",
+        "perms": "sys:log:view",
+        "type": 1,
+        "icon": "el-icon-info",
+        "orderNum": 8,
+        "delFlag": 0,
+        "parentName": "系统管理",
+        "level": 1,
+        "children": []
+      }]
+    }, {
+      "id": 43,
+      "createBy": "admin",
+      "createTime": "2018-12-27T02:57:29.000+0000",
+      "lastUpdateBy": "admin",
+      "lastUpdateTime": "2018-12-27T03:02:26.000+0000",
+      "parentId": 0,
+      "name": "系统监控",
+      "url": "",
+      "perms": "",
+      "type": 0,
+      "icon": "el-icon-info",
+      "orderNum": 1,
+      "delFlag": 0,
+      "parentName": null,
+      "level": 0,
+      "children": [{
+        "id": 6,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": "admin",
+        "lastUpdateTime": "2018-12-27T03:03:45.000+0000",
+        "parentId": 43,
+        "name": "数据监控",
+        "url": "http://139.196.87.48:8001/druid/login.html",
+        "perms": null,
+        "type": 1,
+        "icon": "el-icon-warning",
+        "orderNum": 0,
+        "delFlag": 0,
+        "parentName": "系统监控",
+        "level": 1,
+        "children": []
+      }, {
+        "id": 38,
+        "createBy": "admin",
+        "createTime": "2018-11-02T12:02:15.000+0000",
+        "lastUpdateBy": "admin",
+        "lastUpdateTime": "2018-12-27T03:03:53.000+0000",
+        "parentId": 43,
+        "name": "服务监控",
+        "url": "http://139.196.87.48:8000/",
+        "perms": "",
+        "type": 1,
+        "icon": "el-icon-view",
+        "orderNum": 1,
+        "delFlag": 0,
+        "parentName": "系统监控",
+        "level": 1,
+        "children": []
+      }]
+    }, {
+      "id": 44,
+      "createBy": "admin",
+      "createTime": "2018-12-27T03:05:48.000+0000",
+      "lastUpdateBy": "admin",
+      "lastUpdateTime": "2018-12-27T03:06:39.000+0000",
+      "parentId": 0,
+      "name": "服务治理",
+      "url": "",
+      "perms": "",
+      "type": 0,
+      "icon": "el-icon-service",
+      "orderNum": 2,
+      "delFlag": 0,
+      "parentName": null,
+      "level": 0,
+      "children": [{
+        "id": 41,
+        "createBy": "admin",
+        "createTime": "2018-11-03T03:06:48.000+0000",
+        "lastUpdateBy": "admin",
+        "lastUpdateTime": "2018-12-27T03:08:11.000+0000",
+        "parentId": 44,
+        "name": "注册中心",
+        "url": "http://139.196.87.48:8500",
+        "perms": "",
+        "type": 1,
+        "icon": " el-icon-view",
+        "orderNum": 0,
+        "delFlag": 0,
+        "parentName": "服务治理",
+        "level": 1,
+        "children": []
+      }]
+    }, {
+      "id": 35,
+      "createBy": null,
+      "createTime": null,
+      "lastUpdateBy": "admin",
+      "lastUpdateTime": "2018-12-27T03:04:18.000+0000",
+      "parentId": 0,
+      "name": "接口文档",
+      "url": "http://139.196.87.48:8001/swagger-ui.html",
+      "perms": null,
+      "type": 1,
+      "icon": "el-icon-document",
+      "orderNum": 3,
+      "delFlag": 0,
+      "parentName": null,
+      "level": 0,
+      "children": []
+    }, {
+      "id": 42,
+      "createBy": "admin",
+      "createTime": "2018-11-15T06:39:30.000+0000",
+      "lastUpdateBy": "admin",
+      "lastUpdateTime": "2018-11-15T06:56:18.000+0000",
+      "parentId": 0,
+      "name": "代码生成",
+      "url": "/generator/generator",
+      "perms": "",
+      "type": 1,
+      "icon": "el-icon-star-on",
+      "orderNum": 5,
+      "delFlag": 0,
+      "parentName": null,
+      "level": 0,
+      "children": []
+    }, {
+      "id": 28,
+      "createBy": null,
+      "createTime": null,
+      "lastUpdateBy": "admin",
+      "lastUpdateTime": "2018-11-15T06:39:43.000+0000",
+      "parentId": 0,
+      "name": "使用案例",
+      "url": null,
+      "perms": null,
+      "type": 0,
+      "icon": "el-icon-picture-outline",
+      "orderNum": 6,
+      "delFlag": 0,
+      "parentName": null,
+      "level": 0,
+      "children": [{
+        "id": 29,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": null,
+        "lastUpdateTime": null,
+        "parentId": 28,
+        "name": "国际化",
+        "url": "/demo/i18n",
+        "perms": null,
+        "type": 1,
+        "icon": "el-icon-edit",
+        "orderNum": 1,
+        "delFlag": 0,
+        "parentName": "使用案例",
+        "level": 1,
+        "children": []
+      }, {
+        "id": 30,
+        "createBy": null,
+        "createTime": null,
+        "lastUpdateBy": null,
+        "lastUpdateTime": null,
+        "parentId": 28,
+        "name": "换皮肤",
+        "url": "/demo/theme",
+        "perms": null,
+        "type": 1,
+        "icon": "el-icon-picture",
+        "orderNum": 2,
+        "delFlag": 0,
+        "parentName": "使用案例",
+        "level": 1,
+        "children": []
+      }]
+    }]
+  }`)
+}
+
+// _FindPermissions
+// @Title _FindPermissions
+// @Description 查找用户的菜单权限标识集合         
+// @Param	user    string  false  "用户id"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_FindPermissions( user string,  c *SystemController) {
+	c.Ctx.String(200,`{code:200, data:"[
+      null,
+      "sys:user:view",
+      "sys:menu:delete",
+      "sys:dept:edit",
+      "sys:dict:edit",
+      "sys:dict:delete",
+      "sys:menu:add",
+      "sys:user:add",
+      "sys:log:view",
+      "sys:dept:delete",
+      "sys:role:edit",
+      "sys:role:view",
+      "sys:dict:view",
+      "sys:user:edit",
+      "sys:user:delete",
+      "sys:dept:view",
+      "sys:dept:add",
+      "sys:role:delete",
+      "sys:menu:view",
+      "sys:menu:edit",
+      "sys:dict:add",
+      "sys:role:add"
+    ]}"`)
+}
+
+
+// _AddPermission
+// @Title _AddPermission
+// @Description 查找用户的菜单权限标识集合
+// @Param	user    string  false  "用户id"
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_AddPermission( user string,  c *SystemController) {
+
+}

+ 58 - 0
controllers/SystemController.go_new

@@ -0,0 +1,58 @@
+
+package controllers
+
+import (
+)
+
+
+// _Login
+// @Title _Login
+// @Description 用户登录         
+// @Param	name    string  false  "用户名"  
+// @Param	password    string  false  "密码"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_Login( name string,  password string,  c *SystemController) {
+	
+}
+
+// _Logout
+// @Title _Logout
+// @Description 用户退出         
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_Logout( c *SystemController) {
+	
+}
+
+// _GetMenuTree
+// @Title _GetMenuTree
+// @Description 获取系统菜单         
+// @Param	user    string  false  "用户id"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_GetMenuTree( user string,  c *SystemController) {
+	
+}
+
+// _FindPermissions
+// @Title _FindPermissions
+// @Description 查找用户的菜单权限标识集合         
+// @Param	user    string  false  "用户id"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_FindPermissions( user string,  c *SystemController) {
+	
+}
+
+// _AddPermission
+// @Title _AddPermission
+// @Description 查找用户的菜单权限标识集合         
+// @Param	user    string  false  "用户id"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+func System_AddPermission( user string,  c *SystemController) {
+	
+}
+
+

+ 98 - 0
controllers/SystemController_gen.go

@@ -0,0 +1,98 @@
+
+package controllers
+
+import (
+	"github.com/gin-gonic/gin"
+	"github.com/xormplus/xorm"
+	"git.qianqiusoft.com/qianqiusoft/light-apiengine/engine"
+)
+
+// SystemController operations for System
+type SystemController struct {
+	Ctx *gin.Context
+	Db *xorm.Engine
+	engine *engine.ApiEngine
+}
+
+func NewSystemController(c *gin.Context, e *engine.ApiEngine) *SystemController {
+	controller := &SystemController{c,e.OrmEngine,e}
+	return controller
+}
+
+
+
+// Login
+// @Title Login
+// @Description 用户登录         
+// @Param	name    string  false  "用户名"  
+// @Param	password    string  false  "密码"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+// @router /login  [post,get,put]
+func (c *SystemController) Login() {
+		name := c.Ctx.Param(":name")
+	password := c.Ctx.Param(":password")
+
+	
+	//
+	System_Login( name,  password,  c)
+}
+
+// Logout
+// @Title Logout
+// @Description 用户退出         
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+// @router /logout  [post,get]
+func (c *SystemController) Logout() {
+	
+	
+	//
+	System_Logout( c)
+}
+
+// GetMenuTree
+// @Title GetMenuTree
+// @Description 获取系统菜单         
+// @Param	user    string  false  "用户id"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+// @router /get_menu_tree  [post,get]
+func (c *SystemController) GetMenuTree() {
+		user := c.Ctx.Param(":user")
+
+	
+	//
+	System_GetMenuTree( user,  c)
+}
+
+// FindPermissions
+// @Title FindPermissions
+// @Description 查找用户的菜单权限标识集合         
+// @Param	user    string  false  "用户id"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+// @router /find_permissions  [post,get,put]
+func (c *SystemController) FindPermissions() {
+		user := c.Ctx.Param(":user")
+
+	
+	//
+	System_FindPermissions( user,  c)
+}
+
+// AddPermission
+// @Title AddPermission
+// @Description 查找用户的菜单权限标识集合         
+// @Param	user    string  false  "用户id"  
+// @Success 200 {object} models.Account
+// @Failure 403 :id is empty
+// @router /add_permission  [post,get,put]
+func (c *SystemController) AddPermission() {
+		user := c.Ctx.Param(":user")
+
+	
+	//
+	System_AddPermission( user,  c)
+}
+

+ 11 - 0
engine/apiengine.go

@@ -5,6 +5,7 @@ import (
 
 	"github.com/gin-gonic/gin"
 	"github.com/xormplus/xorm"
+	"github.com/gin-contrib/cors"
 )
 
 type ApiEngine struct {
@@ -23,7 +24,17 @@ func NewApiEngine(driverName, dataSourceName string, addr string) *ApiEngine {
 	}
 	initOrmEngine(engine.OrmEngine, driverName)
 	engine.GinEngine = gin.Default()
+
+	InitSystemDb(engine)
+
+	//cross domain
+	config := cors.DefaultConfig()
+	config.AllowOrigins = []string{"http://localhost:8090"}
+	config.AllowCredentials = true
+	config.AllowHeaders = []string{"Content-Type,AccessToken,X-CSRF-Token, Authorization, Token"}
+	engine.GinEngine.Use(cors.New(config))
 	engine.listen_addr = addr
+
 	return engine
 }
 

+ 77 - 0
engine/system_init.go

@@ -0,0 +1,77 @@
+package engine
+
+import (
+	"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
+	"regexp"
+	"fmt"
+	"github.com/xormplus/xorm"
+)
+
+
+func InitSystemDb(engine *ApiEngine)  {
+	menus:= []models.SysMenu{
+		{
+			Id:"387c50a4-caad-4557-80c8-aca81af9f370",
+			Name:"系统管理",
+		},
+		{
+			Id:"387c50a4-caad-4557-80c8-aca81af9f371",
+			Name:"用户管理",
+			Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
+		},
+		{
+			Id:"387c50a4-caad-4557-80c8-aca81af9f372",
+			Name:"组织架构",
+			Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
+		},
+		{
+			Id:"387c50a4-caad-4557-80c8-aca81af9f373",
+			Name:"角色管理",
+			Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
+		},
+		{
+			Id:"387c50a4-caad-4557-80c8-aca81af9f374",
+			Name:"菜单管理",
+			Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
+		},
+		{
+			Id:"387c50a4-caad-4557-80c8-aca81af9f375",
+			Name:"字典管理",
+			Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
+		},
+		{
+			Id:"387c50a4-caad-4557-80c8-aca81af9f376",
+			Name:"日志管理",
+			Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
+		},
+	}
+	if engine.OrmEngine.DriverName() == "mysql"{
+		dbname :=engine.OrmEngine.DataSourceName()
+		reg:= regexp.MustCompile("(.*)/(.*)(\\?.*)")
+		//strings := reg.FindAllStringSubmatch(s, -1)
+		strings := reg.FindStringSubmatch(dbname)
+		fmt.Println(strings)
+		if len(strings) >3{
+			dbname= strings[2]
+			db,_:= xorm.NewEngine(engine.OrmEngine.DriverName(), strings[1]+"/")
+			db.ShowSQL(true)
+			_,err:=db.Sql("CREATE DATABASE IF NOT EXISTS `"+dbname+"` default charset utf8 COLLATE utf8_general_ci").Execute()
+			if err!=nil{
+				fmt.Println("create database error",err)
+			}else {
+				fmt.Println("create database success:",dbname)
+			}
+		}
+	}
+
+	err:=engine.OrmEngine.Sync2(
+		new(models.SysMenu),
+		new(models.SysOrg),
+		new(models.SysUser),
+		new(models.SysUserRole),
+		new(models.SysRoleMenu),
+		)
+	printError(err)
+	_,err = engine.OrmEngine.Insert(menus)
+	printError(err)
+}

+ 86 - 0
env/env.go

@@ -0,0 +1,86 @@
+// Copyright 2014 beego Author. All Rights Reserved.
+// Copyright 2017 Faissal Elamraoui. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package env is used to parse environment.
+package env
+
+import (
+	"fmt"
+	"os"
+	"strings"
+	"git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
+)
+
+var env *utils.BeeMap
+
+func init() {
+	env = utils.NewBeeMap()
+	for _, e := range os.Environ() {
+		splits := strings.Split(e, "=")
+		env.Set(splits[0], os.Getenv(splits[0]))
+	}
+}
+
+// Get returns a value by key.
+// If the key does not exist, the default value will be returned.
+func Get(key string, defVal string) string {
+	if val := env.Get(key); val != nil {
+		return val.(string)
+	}
+	return defVal
+}
+
+// MustGet returns a value by key.
+// If the key does not exist, it will return an error.
+func MustGet(key string) (string, error) {
+	if val := env.Get(key); val != nil {
+		return val.(string), nil
+	}
+	return "", fmt.Errorf("no env variable with %s", key)
+}
+
+// Set sets a value in the ENV copy.
+// This does not affect the child process environment.
+func Set(key string, value string) {
+	env.Set(key, value)
+}
+
+// MustSet sets a value in the ENV copy and the child process environment.
+// It returns an error in case the set operation failed.
+func MustSet(key string, value string) error {
+	err := os.Setenv(key, value)
+	if err != nil {
+		return err
+	}
+	env.Set(key, value)
+	return nil
+}
+
+// GetAll returns all keys/values in the current child process environment.
+func GetAll() map[string]string {
+	items := env.Items()
+	envs := make(map[string]string, env.Count())
+
+	for key, val := range items {
+		switch key := key.(type) {
+		case string:
+			switch val := val.(type) {
+			case string:
+				envs[key] = val
+			}
+		}
+	}
+	return envs
+}

+ 45 - 0
models/Sql_SysMenu_gen.go

@@ -0,0 +1,45 @@
+
+package models
+    var Insert_sys_menu = ` 
+        insert into sys_menu
+		(id,name,code,parent,url,perms,type,icon,order_num,domain,create_by,create_time,last_update_by,last_update_date,del_flag)
+		values
+		(?id,?name,?code,?parent,?url,?perms,?type,?icon,?order_num,?domain,?create_by,?create_time,?last_update_by,?last_update_date,?del_flag)
+`
+
+    var Update_sys_menu = ` 
+        update sys_menu set
+		name = ?name,
+		code = ?code,
+		parent = ?parent,
+		url = ?url,
+		perms = ?perms,
+		type = ?type,
+		icon = ?icon,
+		order_num = ?order_num,
+		domain = ?domain,
+		create_by = ?create_by,
+		create_time = ?create_time,
+		last_update_by = ?last_update_by,
+		last_update_date = ?last_update_date,
+		del_flag = ?del_flag
+		where id = ?id
+ `
+
+    var Deleteone_sys_menu = ` 
+        delete from sys_menu
+		where id =?id
+`
+
+    var Selectone_sys_menu = ` 
+        select 
+			id,name,code,parent,url,perms,type,icon,order_num,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_menu
+		where id = ?id
+`
+
+    var Selectall_sys_menu = ` 
+        select 
+			id,name,code,parent,url,perms,type,icon,order_num,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_menu
+`

+ 44 - 0
models/Sql_SysOrg_gen.go

@@ -0,0 +1,44 @@
+
+package models
+    var Insert_sys_org = ` 
+        insert into sys_org
+		(id,parent,name,full_name,leader,type,order,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag)
+		values
+		(?id,?parent,?name,?full_name,?leader,?type,?order,?status,?domain,?create_by,?create_time,?last_update_by,?last_update_date,?del_flag)
+`
+
+    var Update_sys_org = ` 
+        update sys_org set
+		parent = ?parent,
+		name = ?name,
+		full_name = ?full_name,
+		leader = ?leader,
+		type = ?type,
+		order = ?order,
+		status = ?status,
+		domain = ?domain,
+		create_by = ?create_by,
+		create_time = ?create_time,
+		last_update_by = ?last_update_by,
+		last_update_date = ?last_update_date,
+		del_flag = ?del_flag
+		where id = ?id
+ `
+
+    var Deleteone_sys_org = ` 
+        delete from sys_org
+		where id =?id
+`
+
+    var Selectone_sys_org = ` 
+        select 
+			id,parent,name,full_name,leader,type,order,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_org
+		where id = ?id
+`
+
+    var Selectall_sys_org = ` 
+        select 
+			id,parent,name,full_name,leader,type,order,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_org
+`

+ 39 - 0
models/Sql_SysRoleMenu_gen.go

@@ -0,0 +1,39 @@
+
+package models
+    var Insert_sys_role_menu = ` 
+        insert into sys_role_menu
+		(id,role_id,menu_id,domain,create_by,create_time,last_update_by,last_update_date,del_flag)
+		values
+		(?id,?role_id,?menu_id,?domain,?create_by,?create_time,?last_update_by,?last_update_date,?del_flag)
+`
+
+    var Update_sys_role_menu = ` 
+        update sys_role_menu set
+		role_id = ?role_id,
+		menu_id = ?menu_id,
+		domain = ?domain,
+		create_by = ?create_by,
+		create_time = ?create_time,
+		last_update_by = ?last_update_by,
+		last_update_date = ?last_update_date,
+		del_flag = ?del_flag
+		where id = ?id
+ `
+
+    var Deleteone_sys_role_menu = ` 
+        delete from sys_role_menu
+		where id =?id
+`
+
+    var Selectone_sys_role_menu = ` 
+        select 
+			id,role_id,menu_id,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_role_menu
+		where id = ?id
+`
+
+    var Selectall_sys_role_menu = ` 
+        select 
+			id,role_id,menu_id,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_role_menu
+`

+ 41 - 0
models/Sql_SysRole_gen.go

@@ -0,0 +1,41 @@
+
+package models
+    var Insert_sys_role = ` 
+        insert into sys_role
+		(id,name,code,remark,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag)
+		values
+		(?id,?name,?code,?remark,?status,?domain,?create_by,?create_time,?last_update_by,?last_update_date,?del_flag)
+`
+
+    var Update_sys_role = ` 
+        update sys_role set
+		name = ?name,
+		code = ?code,
+		remark = ?remark,
+		status = ?status,
+		domain = ?domain,
+		create_by = ?create_by,
+		create_time = ?create_time,
+		last_update_by = ?last_update_by,
+		last_update_date = ?last_update_date,
+		del_flag = ?del_flag
+		where id = ?id
+ `
+
+    var Deleteone_sys_role = ` 
+        delete from sys_role
+		where id =?id
+`
+
+    var Selectone_sys_role = ` 
+        select 
+			id,name,code,remark,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_role
+		where id = ?id
+`
+
+    var Selectall_sys_role = ` 
+        select 
+			id,name,code,remark,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_role
+`

+ 39 - 0
models/Sql_SysUserRole_gen.go

@@ -0,0 +1,39 @@
+
+package models
+    var Insert_sys_user_role = ` 
+        insert into sys_user_role
+		(id,user_id,role_id,domain,create_by,create_time,last_update_by,last_update_date,del_flag)
+		values
+		(?id,?user_id,?role_id,?domain,?create_by,?create_time,?last_update_by,?last_update_date,?del_flag)
+`
+
+    var Update_sys_user_role = ` 
+        update sys_user_role set
+		user_id = ?user_id,
+		role_id = ?role_id,
+		domain = ?domain,
+		create_by = ?create_by,
+		create_time = ?create_time,
+		last_update_by = ?last_update_by,
+		last_update_date = ?last_update_date,
+		del_flag = ?del_flag
+		where id = ?id
+ `
+
+    var Deleteone_sys_user_role = ` 
+        delete from sys_user_role
+		where id =?id
+`
+
+    var Selectone_sys_user_role = ` 
+        select 
+			id,user_id,role_id,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_user_role
+		where id = ?id
+`
+
+    var Selectall_sys_user_role = ` 
+        select 
+			id,user_id,role_id,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_user_role
+`

+ 45 - 0
models/Sql_SysUser_gen.go

@@ -0,0 +1,45 @@
+
+package models
+    var Insert_sys_user = ` 
+        insert into sys_user
+		(id,login_id,password,name,full_name,email,org_id,type,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag)
+		values
+		(?id,?login_id,?password,?name,?full_name,?email,?org_id,?type,?status,?domain,?create_by,?create_time,?last_update_by,?last_update_date,?del_flag)
+`
+
+    var Update_sys_user = ` 
+        update sys_user set
+		login_id = ?login_id,
+		password = ?password,
+		name = ?name,
+		full_name = ?full_name,
+		email = ?email,
+		org_id = ?org_id,
+		type = ?type,
+		status = ?status,
+		domain = ?domain,
+		create_by = ?create_by,
+		create_time = ?create_time,
+		last_update_by = ?last_update_by,
+		last_update_date = ?last_update_date,
+		del_flag = ?del_flag
+		where id = ?id
+ `
+
+    var Deleteone_sys_user = ` 
+        delete from sys_user
+		where id =?id
+`
+
+    var Selectone_sys_user = ` 
+        select 
+			id,login_id,password,name,full_name,email,org_id,type,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_user
+		where id = ?id
+`
+
+    var Selectall_sys_user = ` 
+        select 
+			id,login_id,password,name,full_name,email,org_id,type,status,domain,create_by,create_time,last_update_by,last_update_date,del_flag
+        from sys_user
+`

+ 14 - 0
models/SysMenuTree_gen.go

@@ -0,0 +1,14 @@
+
+package models
+import (
+"time"
+)
+
+type SysMenuTree struct {
+	SysMenu
+	//子列表
+	Children   []SysMenu `json:"children"`
+	//创建时间
+	CreateTime   time.Time `json:"create_time"`
+
+}

+ 43 - 0
models/SysMenu_gen.go

@@ -0,0 +1,43 @@
+
+package models
+import (
+"time"
+)
+
+type SysMenu struct {
+	//主键
+	Id   string    `xorm:"'id' varchar(36) pk notnull "json:"id"`
+	//菜单名称
+	Name   string    `xorm:"'name' varchar(36) notnull "json:"name"`
+	//编码
+	Code   string    `xorm:"'code' varchar(36) notnull "json:"code"`
+	//父菜单ID,一级菜单为null
+	Parent   string    `xorm:"'parent' varchar(36) null "json:"parent"`
+	//菜单URL,类型:1.普通页面(如用户管理, /sys/user) 2.嵌套完整外部页面,以http(s)开头的链接 3.嵌套服务器页面,使用iframe:前缀+目标URL(如SQL监控, iframe:/druid/login.html, iframe:前缀会替换成服务器地址)
+	Url   string    `xorm:"'url' varchar(200) notnull "json:"url"`
+	//授权(多个用逗号分隔,如:sys:user:add,sys:user:edit)
+	Perms   string    `xorm:"'perms' varchar(500) null "json:"perms"`
+	//类型 0:目录   1:菜单   2:按钮
+	Type   int32    `xorm:"'type' notnull "json:"type"`
+	//菜单图标
+	Icon   string    `xorm:"'icon' varchar(50) notnull "json:"icon"`
+	//排序
+	OrderNum   int32    `xorm:"'order_num' notnull "json:"order_num"`
+	//域
+	Domain   string    `xorm:"'domain' varchar(50) notnull "json:"domain"`
+	//创建人
+	CreateBy   string    `xorm:"'create_by' varchar(36) notnull "json:"create_by"`
+	//创建时间
+	CreateTime   time.Time    `xorm:"'create_time' notnull "json:"create_time"`
+	//最后更新人
+	LastUpdateBy   string    `xorm:"'last_update_by' varchar(36) notnull "json:"last_update_by"`
+	//最后更新时间
+	LastUpdateDate   time.Time    `xorm:"'last_update_date' notnull "json:"last_update_date"`
+	//是否删除 0:删除   1:正常
+	DelFlag   int32    `xorm:"'del_flag' notnull "json:"del_flag"`
+
+}
+
+func (t *SysMenu) TableName() string {
+	return "sys_menu"
+}

+ 41 - 0
models/SysOrg_gen.go

@@ -0,0 +1,41 @@
+
+package models
+import (
+"time"
+)
+
+type SysOrg struct {
+	//主键
+	Id   string    `xorm:"'id' varchar(36) pk notnull "json:"id"`
+	//上级组织
+	Parent   string    `xorm:"'parent' varchar(36) null "json:"parent"`
+	//名称
+	Name   string    `xorm:"'name' varchar(36) notnull "json:"name"`
+	//全名
+	FullName   string    `xorm:"'full_name' varchar(36) notnull "json:"full_name"`
+	//领导人
+	Leader   string    `xorm:"'leader' varchar(36) notnull "json:"leader"`
+	//组织类型
+	Type   int32    `xorm:"'type' notnull "json:"type"`
+	//排序
+	Order   int32    `xorm:"'order' notnull "json:"order"`
+	//状态 0:禁用   1:正常
+	Status   int32    `xorm:"'status' notnull "json:"status"`
+	//域
+	Domain   string    `xorm:"'domain' varchar(36) notnull "json:"domain"`
+	//创建人
+	CreateBy   string    `xorm:"'create_by' varchar(36) notnull "json:"create_by"`
+	//创建时间
+	CreateTime   time.Time    `xorm:"'create_time' notnull "json:"create_time"`
+	//最后更新人
+	LastUpdateBy   string    `xorm:"'last_update_by' varchar(36) notnull "json:"last_update_by"`
+	//最后更新时间
+	LastUpdateDate   time.Time    `xorm:"'last_update_date' notnull "json:"last_update_date"`
+	//是否删除 0:删除   1:正常
+	DelFlag   int32    `xorm:"'del_flag' notnull "json:"del_flag"`
+
+}
+
+func (t *SysOrg) TableName() string {
+	return "sys_org"
+}

+ 14 - 0
models/SysReturn_gen.go

@@ -0,0 +1,14 @@
+
+package models
+import (
+
+)
+
+type SysReturn struct {
+	
+	//代码
+	Code   int32 `json:"code"`
+	//描述
+	Msg   string `json:"msg"`
+
+}

+ 31 - 0
models/SysRoleMenu_gen.go

@@ -0,0 +1,31 @@
+
+package models
+import (
+"time"
+)
+
+type SysRoleMenu struct {
+	//主键
+	Id   string    `xorm:"'id' varchar(36) pk notnull "json:"id"`
+	//用户ID
+	RoleId   string    `xorm:"'role_id' varchar(36) notnull "json:"role_id"`
+	//角色ID
+	MenuId   string    `xorm:"'menu_id' varchar(36) notnull "json:"menu_id"`
+	//域
+	Domain   string    `xorm:"'domain' notnull "json:"domain"`
+	//创建人
+	CreateBy   string    `xorm:"'create_by' varchar(36) notnull "json:"create_by"`
+	//创建时间
+	CreateTime   time.Time    `xorm:"'create_time' notnull "json:"create_time"`
+	//最后更新人
+	LastUpdateBy   string    `xorm:"'last_update_by' varchar(36) notnull "json:"last_update_by"`
+	//最后更新时间
+	LastUpdateDate   time.Time    `xorm:"'last_update_date' notnull "json:"last_update_date"`
+	//是否删除 0:删除   1:正常
+	DelFlag   int32    `xorm:"'del_flag' notnull "json:"del_flag"`
+
+}
+
+func (t *SysRoleMenu) TableName() string {
+	return "sys_role_menu"
+}

+ 35 - 0
models/SysRole_gen.go

@@ -0,0 +1,35 @@
+
+package models
+import (
+"time"
+)
+
+type SysRole struct {
+	//主键
+	Id   string    `xorm:"'id' varchar(36) pk notnull "json:"id"`
+	//名称
+	Name   string    `xorm:"'name' varchar(36) notnull "json:"name"`
+	//编码
+	Code   string    `xorm:"'code' varchar(36) notnull "json:"code"`
+	//备注
+	Remark   string    `xorm:"'remark' varchar(100) notnull "json:"remark"`
+	//状态 0:禁用   1:正常
+	Status   int32    `xorm:"'status' notnull "json:"status"`
+	//域
+	Domain   string    `xorm:"'domain' varchar(50) notnull "json:"domain"`
+	//创建人
+	CreateBy   string    `xorm:"'create_by' varchar(36) notnull "json:"create_by"`
+	//创建时间
+	CreateTime   time.Time    `xorm:"'create_time' notnull "json:"create_time"`
+	//最后更新人
+	LastUpdateBy   string    `xorm:"'last_update_by' varchar(36) notnull "json:"last_update_by"`
+	//最后更新时间
+	LastUpdateDate   time.Time    `xorm:"'last_update_date' notnull "json:"last_update_date"`
+	//是否删除 0:删除   1:正常
+	DelFlag   int32    `xorm:"'del_flag' notnull "json:"del_flag"`
+
+}
+
+func (t *SysRole) TableName() string {
+	return "sys_role"
+}

+ 31 - 0
models/SysUserRole_gen.go

@@ -0,0 +1,31 @@
+
+package models
+import (
+"time"
+)
+
+type SysUserRole struct {
+	//主键
+	Id   string    `xorm:"'id' varchar(36) pk notnull "json:"id"`
+	//用户ID
+	UserId   string    `xorm:"'user_id' varchar(36) notnull "json:"user_id"`
+	//角色ID
+	RoleId   string    `xorm:"'role_id' varchar(36) notnull "json:"role_id"`
+	//域
+	Domain   string    `xorm:"'domain' varchar(50) notnull "json:"domain"`
+	//创建人
+	CreateBy   string    `xorm:"'create_by' varchar(36) notnull "json:"create_by"`
+	//创建时间
+	CreateTime   time.Time    `xorm:"'create_time' notnull "json:"create_time"`
+	//最后更新人
+	LastUpdateBy   string    `xorm:"'last_update_by' varchar(36) notnull "json:"last_update_by"`
+	//最后更新时间
+	LastUpdateDate   time.Time    `xorm:"'last_update_date' notnull "json:"last_update_date"`
+	//是否删除 0:删除   1:正常
+	DelFlag   int32    `xorm:"'del_flag' notnull "json:"del_flag"`
+
+}
+
+func (t *SysUserRole) TableName() string {
+	return "sys_user_role"
+}

+ 43 - 0
models/SysUser_gen.go

@@ -0,0 +1,43 @@
+
+package models
+import (
+"time"
+)
+
+type SysUser struct {
+	//主键
+	Id   string    `xorm:"'id' varchar(36) pk notnull "json:"id"`
+	//登录ID
+	LoginId   string    `xorm:"'login_id' varchar(36) notnull "json:"login_id"`
+	//密码
+	Password   string    `xorm:"'password' varchar(36) notnull "json:"password"`
+	//名字
+	Name   string    `xorm:"'name' varchar(36) notnull "json:"name"`
+	//全名
+	FullName   string    `xorm:"'full_name' varchar(36) notnull "json:"full_name"`
+	//邮箱
+	Email   string    `xorm:"'email' varchar(50) notnull "json:"email"`
+	//组织ID
+	OrgId   string    `xorm:"'org_id' varchar(36) notnull "json:"org_id"`
+	//用户类型
+	Type   int32    `xorm:"'type' notnull "json:"type"`
+	//状态 0:禁用   1:正常
+	Status   int32    `xorm:"'status' notnull "json:"status"`
+	//域
+	Domain   string    `xorm:"'domain' varchar(50) notnull "json:"domain"`
+	//创建人
+	CreateBy   string    `xorm:"'create_by' varchar(36) notnull "json:"create_by"`
+	//创建时间
+	CreateTime   time.Time    `xorm:"'create_time' notnull "json:"create_time"`
+	//最后更新人
+	LastUpdateBy   string    `xorm:"'last_update_by' varchar(36) notnull "json:"last_update_by"`
+	//最后更新时间
+	LastUpdateDate   time.Time    `xorm:"'last_update_date' notnull "json:"last_update_date"`
+	//是否删除 0:删除   1:正常
+	DelFlag   int32    `xorm:"'del_flag' notnull "json:"del_flag"`
+
+}
+
+func (t *SysUser) TableName() string {
+	return "sys_user"
+}

+ 66 - 0
routers/router_gen.go

@@ -0,0 +1,66 @@
+
+package routers
+
+import (
+	"github.com/gin-gonic/gin"
+	"git.qianqiusoft.com/qianqiusoft/light-apiengine/controllers"
+    "git.qianqiusoft.com/qianqiusoft/light-apiengine/engine"
+)
+
+var g_engine *engine.ApiEngine
+
+
+
+
+func systemController_login(c* gin.Context)  {
+	controllers.NewSystemController(c,g_engine).Login()
+}
+
+func systemController_logout(c* gin.Context)  {
+	controllers.NewSystemController(c,g_engine).Logout()
+}
+
+func systemController_get_menu_tree(c* gin.Context)  {
+	controllers.NewSystemController(c,g_engine).GetMenuTree()
+}
+
+func systemController_find_permissions(c* gin.Context)  {
+	controllers.NewSystemController(c,g_engine).FindPermissions()
+}
+
+func systemController_add_permission(c* gin.Context)  {
+	controllers.NewSystemController(c,g_engine).AddPermission()
+}
+
+
+
+func InitRouter(e *engine.ApiEngine)  {
+	g_engine = e
+	api:=e.GinEngine.Group("/api")
+	v1:=api.Group("/v1")
+
+
+
+	v1.GET("/system/login",systemController_login)
+	v1.POST("/system/login",systemController_login)
+    v1.PUT("/system/login",systemController_login)
+
+	v1.GET("/system/logout",systemController_logout)
+	v1.POST("/system/logout",systemController_logout)
+    //v1.PUT("/system/logout",systemController_logout)
+
+	v1.GET("/system/get_menu_tree",systemController_get_menu_tree)
+	v1.POST("/system/get_menu_tree",systemController_get_menu_tree)
+    //v1.PUT("/system/get_menu_tree",systemController_get_menu_tree)
+
+	v1.GET("/system/find_permissions",systemController_find_permissions)
+	v1.POST("/system/find_permissions",systemController_find_permissions)
+    v1.PUT("/system/find_permissions",systemController_find_permissions)
+
+	v1.GET("/system/add_permission",systemController_add_permission)
+	v1.POST("/system/add_permission",systemController_add_permission)
+    v1.PUT("/system/add_permission",systemController_add_permission)
+
+
+}
+

+ 91 - 0
utils/safemap.go

@@ -0,0 +1,91 @@
+// Copyright 2014 beego Author. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package utils
+
+import (
+	"sync"
+)
+
+// BeeMap is a map with lock
+type BeeMap struct {
+	lock *sync.RWMutex
+	bm   map[interface{}]interface{}
+}
+
+// NewBeeMap return new safemap
+func NewBeeMap() *BeeMap {
+	return &BeeMap{
+		lock: new(sync.RWMutex),
+		bm:   make(map[interface{}]interface{}),
+	}
+}
+
+// Get from maps return the k's value
+func (m *BeeMap) Get(k interface{}) interface{} {
+	m.lock.RLock()
+	defer m.lock.RUnlock()
+	if val, ok := m.bm[k]; ok {
+		return val
+	}
+	return nil
+}
+
+// Set Maps the given key and value. Returns false
+// if the key is already in the map and changes nothing.
+func (m *BeeMap) Set(k interface{}, v interface{}) bool {
+	m.lock.Lock()
+	defer m.lock.Unlock()
+	if val, ok := m.bm[k]; !ok {
+		m.bm[k] = v
+	} else if val != v {
+		m.bm[k] = v
+	} else {
+		return false
+	}
+	return true
+}
+
+// Check Returns true if k is exist in the map.
+func (m *BeeMap) Check(k interface{}) bool {
+	m.lock.RLock()
+	defer m.lock.RUnlock()
+	_, ok := m.bm[k]
+	return ok
+}
+
+// Delete the given key and value.
+func (m *BeeMap) Delete(k interface{}) {
+	m.lock.Lock()
+	defer m.lock.Unlock()
+	delete(m.bm, k)
+}
+
+// Items returns all items in safemap.
+func (m *BeeMap) Items() map[interface{}]interface{} {
+	m.lock.RLock()
+	defer m.lock.RUnlock()
+	r := make(map[interface{}]interface{})
+	for k, v := range m.bm {
+		r[k] = v
+	}
+	return r
+}
+
+// Count returns the number of items within the map.
+func (m *BeeMap) Count() int {
+	m.lock.RLock()
+	defer m.lock.RUnlock()
+	return len(m.bm)
+}

+ 8 - 0
utils/uuid.go

@@ -0,0 +1,8 @@
+package utils
+
+import "git.qianqiusoft.com/qianqiusoft/go-uuid/uuid"
+
+func NewUUID() string {
+	//return uuid.NewV4().String()
+	return uuid.New()
+}