Jelajahi Sumber

调通获取树接口

zhangjq 6 tahun lalu
induk
melakukan
255bb276e4

+ 5 - 5
controllers/gen/SystemController_gen.go

@@ -20,17 +20,17 @@ func NewSystemController(e *engine.ApiEngine) *SystemController {
 
 
 
-// GetNavTree
-// @Title GetNavTree
+// Sidebar
+// @Title Sidebar
 // @Description 获取导航菜单         
 // @Param	user    string  false  "用户id"  
 // @Success 200 {object} sysReturn
 // @Failure 403 :id is empty
-// @router /get_nav_tree  [post,get]
-func (c *SystemController) GetNavTree(ctx *gin.Context) {
+// @router /sidebar  [post,get]
+func (c *SystemController) Sidebar(ctx *gin.Context) {
 	//
 	db:=c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.System_GetNavTree(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
+	partial.System_Sidebar(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
 }
 
 // GetMenuTree

+ 52 - 10
controllers/partial/SsoController.go

@@ -2,10 +2,14 @@
 package partial
 
 import (
+	"time"
+	"strings"
+	"strconv"
+	"fmt"
 	"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
 	sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
-    //sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
+    sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
+	//"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
 )
 
 
@@ -18,13 +22,48 @@ import (
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func Sso_Login(c *entitys.CtrlContext) {
-	var paramObj0 models.LoginInfo 
-	c.Ctx.BindJSON(&paramObj0)
-	ret := __none_func_sso__(paramObj0)
-	if ret {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
-	}else{
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+	var logininfo sysmodel.LoginInfo
+	c.Ctx.BindJSON(&logininfo)
+	//fmt.Println(logininfo)
+	var user sysmodel.SysUser
+	ret, err := c.PlatformDbEngine.SQL(sysmodel.SqlUserLogin, logininfo.Account).Get(&user)
+	if ret && err == nil {
+		//TODO check password
+		timestamp := uint64(time.Now().UnixNano())
+		md5Pwd := sysutils.HashPassword(logininfo.Password, "")
+		//密码错误
+		if !strings.EqualFold(user.Password, md5Pwd) {
+			c.Ctx.JSON(200, sysmodel.SysReturn{400, "passowrd incorrect!", nil})
+			return
+		}
+		token := &entitys.Token{}
+		timestamp_str := strconv.FormatUint(timestamp, 10)
+		sec_tooken := sysutils.GenerateToken(logininfo.Account + timestamp_str)
+		if v := sysutils.GetGlobalTokenStore().Get(sec_tooken); v == nil {
+			token.AccessToken = sec_tooken
+			token.RefreshToken = sec_tooken
+			token.LoginID = logininfo.Account
+			token.UserId = user.Id
+			token.Result = 200
+			//token.Password = pwd
+			token.ServerIp = ""
+			token.Domain = user.Domain
+			sysutils.GetGlobalTokenStore().Set(sec_tooken, token)
+		} else {
+			token = v
+		}
+		data := sysmodel.LoginReturnInfo{}
+		data.Id = user.Id
+		data.LoginId = user.LoginId
+		data.Name = user.Name
+		data.Email = user.Email
+		data.Token = token.AccessToken
+		data.Type = user.Type
+		data.Domain = user.Domain
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", data})
+	} else {
+		//fmt.Println(err.Error())
+		c.Ctx.JSON(200, sysmodel.SysReturn{400, "username or passowrd incorrect!", nil})
 	}
 }
 
@@ -34,7 +73,10 @@ func Sso_Login(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func Sso_Logout(c *entitys.CtrlContext) {
-	
+
+	token := c.Ctx.GetHeader("token")
+	fmt.Println("delete token: ", token)
+	sysutils.GetGlobalTokenStore().Remove(token)
 	ret := __none_func_sso__()
 	if ret {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})

+ 76 - 70
controllers/partial/SystemController.go

@@ -4,34 +4,40 @@ package partial
 import (
 	"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
 	sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
-    sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
+	sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
 	"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
+	"fmt"
 )
 
 
 
 
-// _GetNavTree
-// @Title _GetNavTree
-// @Description 获取导航菜单         
-// @Param	user    string  false  "用户id"  
+// _Sidebar
+// @Title _Sidebar
+// @Description 获取导航菜单
+// @Param	user    string  false  "用户id"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
-func System_GetNavTree(c *entitys.CtrlContext) {
-	user := c.Ctx.Query("user")
+func System_Sidebar(c *entitys.CtrlContext) {
 
-	ret := __none_func_system__(user)
-	if ret {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
+
+	fmt.Println(c.Db.DataSourceName())
+
+	paramMap_i_t := map[string]interface{}{"sort": "name"}
+	result, err := sysutils.TreeSearch(c.Db, "system","sidebar", "sys_menu", paramMap_i_t)
+
+	if err == nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
 	}else{
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
 	}
+
 }
 
 // _GetMenuTree
 // @Title _GetMenuTree
-// @Description 获取系统菜单         
-// @Param	user    string  false  "用户id"  
+// @Description 获取系统菜单
+// @Param	user    string  false  "用户id"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_GetMenuTree(c *entitys.CtrlContext) {
@@ -47,14 +53,14 @@ func System_GetMenuTree(c *entitys.CtrlContext) {
 
 // _FindUserPage
 // @Title _FindUserPage
-// @Description 获取用户分页数         
+// @Description 获取用户分页数
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_FindUserPage(c *entitys.CtrlContext) {
-	
+
 	var page int64  = c.Ctx.GetInt64("page")
 	var rows int64 = c.Ctx.GetInt64("rows")
-	
+
 	paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
 	result, err := sysutils.PageSearch(c.Db,"system","find_user_page", "sys_user", paramMap_i_t)
 	if err == nil {
@@ -67,15 +73,15 @@ func System_FindUserPage(c *entitys.CtrlContext) {
 
 // _GetOrgTree
 // @Title _GetOrgTree
-// @Description 获取组织架构树         
+// @Description 获取组织架构树
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_GetOrgTree(c *entitys.CtrlContext) {
-	
-	
+
+
 	paramMap_i_t := map[string]interface{}{"sort": "name"}
 	result, err := sysutils.TreeSearch(c.Db, "system","get_org_tree", "sys_org", paramMap_i_t)
-	
+
 	if err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
 	}else{
@@ -86,18 +92,18 @@ func System_GetOrgTree(c *entitys.CtrlContext) {
 
 // _AddUser
 // @Title _AddUser
-// @Description 添加用户         
-// @Param	login_id    string  false  "登录ID"  
-// @Param	password    string  false  "密码"  
-// @Param	org_id    string  false  "组织ID"  
-// @Param	email    string  false  "邮箱"  
+// @Description 添加用户
+// @Param	login_id    string  false  "登录ID"
+// @Param	password    string  false  "密码"
+// @Param	org_id    string  false  "组织ID"
+// @Param	email    string  false  "邮箱"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_AddUser(c *entitys.CtrlContext) {
 	login_id := c.Ctx.Query("login_id")
-password := c.Ctx.Query("password")
-org_id := c.Ctx.Query("org_id")
-email := c.Ctx.Query("email")
+	password := c.Ctx.Query("password")
+	org_id := c.Ctx.Query("org_id")
+	email := c.Ctx.Query("email")
 
 	ret := __none_func_system__(login_id,password,org_id,email)
 	if ret {
@@ -109,8 +115,8 @@ email := c.Ctx.Query("email")
 
 // _DelUser
 // @Title _DelUser
-// @Description 删除用户         
-// @Param	id    string  false  "用户ID"  
+// @Description 删除用户
+// @Param	id    string  false  "用户ID"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_DelUser(c *entitys.CtrlContext) {
@@ -126,18 +132,18 @@ func System_DelUser(c *entitys.CtrlContext) {
 
 // _UpdateUser
 // @Title _UpdateUser
-// @Description 修改用户         
-// @Param	login_id    string  false  "登录ID"  
-// @Param	password    string  false  "密码"  
-// @Param	org_id    string  false  "组织ID"  
-// @Param	email    string  false  "邮箱"  
+// @Description 修改用户
+// @Param	login_id    string  false  "登录ID"
+// @Param	password    string  false  "密码"
+// @Param	org_id    string  false  "组织ID"
+// @Param	email    string  false  "邮箱"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_UpdateUser(c *entitys.CtrlContext) {
 	login_id := c.Ctx.Query("login_id")
-password := c.Ctx.Query("password")
-org_id := c.Ctx.Query("org_id")
-email := c.Ctx.Query("email")
+	password := c.Ctx.Query("password")
+	org_id := c.Ctx.Query("org_id")
+	email := c.Ctx.Query("email")
 
 	ret := __none_func_system__(login_id,password,org_id,email)
 	if ret {
@@ -149,14 +155,14 @@ email := c.Ctx.Query("email")
 
 // _AddRole
 // @Title _AddRole
-// @Description 添加角色         
-// @Param	name    string  false  "角色名称"  
-// @Param	remark    string  false  "备注"  
+// @Description 添加角色
+// @Param	name    string  false  "角色名称"
+// @Param	remark    string  false  "备注"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_AddRole(c *entitys.CtrlContext) {
 	name := c.Ctx.Query("name")
-remark := c.Ctx.Query("remark")
+	remark := c.Ctx.Query("remark")
 
 	ret := __none_func_system__(name,remark)
 	if ret {
@@ -168,8 +174,8 @@ remark := c.Ctx.Query("remark")
 
 // _DelRole
 // @Title _DelRole
-// @Description 添加角色         
-// @Param	id    string  false  "角色ID"  
+// @Description 添加角色
+// @Param	id    string  false  "角色ID"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_DelRole(c *entitys.CtrlContext) {
@@ -185,16 +191,16 @@ func System_DelRole(c *entitys.CtrlContext) {
 
 // _UpdateRole
 // @Title _UpdateRole
-// @Description 修改角色         
-// @Param	id    string  false  "角色ID"  
-// @Param	name    string  false  "角色名称"  
-// @Param	remark    string  false  "备注"  
+// @Description 修改角色
+// @Param	id    string  false  "角色ID"
+// @Param	name    string  false  "角色名称"
+// @Param	remark    string  false  "备注"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_UpdateRole(c *entitys.CtrlContext) {
 	id := c.Ctx.Query("id")
-name := c.Ctx.Query("name")
-remark := c.Ctx.Query("remark")
+	name := c.Ctx.Query("name")
+	remark := c.Ctx.Query("remark")
 
 	ret := __none_func_system__(id,name,remark)
 	if ret {
@@ -206,12 +212,12 @@ remark := c.Ctx.Query("remark")
 
 // _FindRolePage
 // @Title _FindRolePage
-// @Description 角色分页         
-// @Param	page      false  "分页参数"  
+// @Description 角色分页
+// @Param	page      false  "分页参数"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_FindRolePage(c *entitys.CtrlContext) {
-	var paramObj0 models.GetPageInfo 
+	var paramObj0 models.GetPageInfo
 	c.Ctx.BindJSON(&paramObj0)
 	ret := __none_func_system__(paramObj0)
 	if ret {
@@ -223,8 +229,8 @@ func System_FindRolePage(c *entitys.CtrlContext) {
 
 // _FindRoleMenu
 // @Title _FindRoleMenu
-// @Description 查找角色权限         
-// @Param	role_id    string  false  "角色id"  
+// @Description 查找角色权限
+// @Param	role_id    string  false  "角色id"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_FindRoleMenu(c *entitys.CtrlContext) {
@@ -240,12 +246,12 @@ func System_FindRoleMenu(c *entitys.CtrlContext) {
 
 // _SaveRoleMenu
 // @Title _SaveRoleMenu
-// @Description 保存角色权限         
-// @Param	role_menu    string  false  "角色权限"  
+// @Description 保存角色权限
+// @Param	role_menu    string  false  "角色权限"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_SaveRoleMenu(c *entitys.CtrlContext) {
-	var paramObj0 []models.SaveRoleMenu 
+	var paramObj0 []models.SaveRoleMenu
 	c.Ctx.BindJSON(&paramObj0)
 	ret := __none_func_system__(paramObj0)
 	if ret {
@@ -257,11 +263,11 @@ func System_SaveRoleMenu(c *entitys.CtrlContext) {
 
 // _RoleAll
 // @Title _RoleAll
-// @Description 查找所有角色         
+// @Description 查找所有角色
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_RoleAll(c *entitys.CtrlContext) {
-	
+
 	ret := __none_func_system__()
 	if ret {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
@@ -272,11 +278,11 @@ func System_RoleAll(c *entitys.CtrlContext) {
 
 // _FindPermissions
 // @Title _FindPermissions
-// @Description 查找用户权限         
+// @Description 查找用户权限
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_FindPermissions(c *entitys.CtrlContext) {
-	
+
 	ret := __none_func_system__()
 	if ret {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
@@ -287,12 +293,12 @@ func System_FindPermissions(c *entitys.CtrlContext) {
 
 // _AddMenu
 // @Title _AddMenu
-// @Description 添加菜单         
-// @Param	    string  false  "菜单"  
+// @Description 添加菜单
+// @Param	    string  false  "菜单"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_AddMenu(c *entitys.CtrlContext) {
-	var paramObj0 models.SysMenu 
+	var paramObj0 models.SysMenu
 	c.Ctx.BindJSON(&paramObj0)
 	ret := __none_func_system__(paramObj0)
 	if ret {
@@ -304,8 +310,8 @@ func System_AddMenu(c *entitys.CtrlContext) {
 
 // _DelMenu
 // @Title _DelMenu
-// @Description 删除菜单         
-// @Param	id    string  false  "菜单ID"  
+// @Description 删除菜单
+// @Param	id    string  false  "菜单ID"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_DelMenu(c *entitys.CtrlContext) {
@@ -321,12 +327,12 @@ func System_DelMenu(c *entitys.CtrlContext) {
 
 // _UpdateMenu
 // @Title _UpdateMenu
-// @Description 更新菜单         
-// @Param	    string  false  "菜单"  
+// @Description 更新菜单
+// @Param	    string  false  "菜单"
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_UpdateMenu(c *entitys.CtrlContext) {
-	var paramObj0 models.SysMenu 
+	var paramObj0 models.SysMenu
 	c.Ctx.BindJSON(&paramObj0)
 	ret := __none_func_system__(paramObj0)
 	if ret {

+ 2 - 0
engine/apiengine.go

@@ -74,6 +74,8 @@ func (g *ApiEngine)LoadBusinessOrm()  {
 			g.BusinessOrmEngine[v.Domain] = db
 		}
 	}
+	//将platformOrm添加到businessOrm中,这样平台账号登录上去也相当于使用相同的数据库配置
+	g.BusinessOrmEngine["qianqiusoft.com"] = g.PlatformOrmEngine
 }
 
 

+ 7 - 6
engine/system_init.go

@@ -37,9 +37,9 @@ func initPlatformDbData(db *xorm.Engine) {
 	domains := []models.SysDomain{
 		{
 			Id:   "287c50a4-caad-4557-80c8-aca81af9f370",
-			Name: "千秋软件",
-			Domain: "qianqiusoft.com",
-			DataSource: "root:qian@123@tcp(localhost:3306)/ssm-qianqiusoft?charset=utf8&loc=Local",
+			Name: "智慧蜂云",
+			Domain: "ccbeetech.com",
+			DataSource: "root:qian@123@tcp(localhost:3306)/ssm-ccbeetech?charset=utf8&loc=Local",
 			CreateTime:time.Now(),
 			LastUpdateDate: time.Now(),
 		},
@@ -58,6 +58,7 @@ func initPlatformDbData(db *xorm.Engine) {
 			Id:       "187c50a4-caad-4557-80c8-aca81af9f370",
 			Name:     "管理员",
 			LoginId:  "admin",
+			Domain: "qianqiusoft.com",
 			OrgId:    "287c50a4-caad-4557-80c8-aca81af9f370",
 			Password: utils.HashPassword("123456", ""),
 			CreateTime:time.Now(),
@@ -165,13 +166,13 @@ func initOrmEngine(orm *xorm.Engine, driverName string) {
 	err := orm.RegisterSqlMap(xorm.Xml(sqldir, ".xml"))
 	printError(err)
 	//注册SqlTemplate配置,使用Pongo2模板引擎
-	err = orm.RegisterSqlTemplate(xorm.Pongo2(sqldir, "_"+driverName+".stpl"))
+	err = orm.RegisterSqlTemplate(xorm.Pongo2(sqldir, ".stpl"))
 	printError(err)
 	//注册SqlTemplate配置,使用Jet模板引擎
-	err = orm.RegisterSqlTemplate(xorm.Jet(sqldir, "_"+driverName+".jet"))
+	err = orm.RegisterSqlTemplate(xorm.Jet(sqldir, ".jet"))
 	printError(err)
 	//注册SqlTemplate配置,使用html/template模板引擎
-	err = orm.RegisterSqlTemplate(xorm.Default(sqldir, "_"+driverName+".tpl"))
+	err = orm.RegisterSqlTemplate(xorm.Default(sqldir, ".tpl"))
 	printError(err)
 
 	//设置时区

+ 2 - 0
models/TreeNode_gen.go

@@ -17,5 +17,7 @@ type TreeNode struct {
 	Parent   string `json:"parent"`
 	//子结点
 	Nodes   []*TreeNode `json:"nodes"`
+	//tag
+	Tag   interface{} `json:"tag"`
 
 }

+ 2 - 2
routers/system.go

@@ -20,8 +20,8 @@ func registerSystemRouter(e *engine.ApiEngine){
 
 
 
-	v1.GET("/get_nav_tree",ctrler.GetNavTree)
-	v1.POST("/get_nav_tree",ctrler.GetNavTree)
+	v1.GET("/sidebar",ctrler.Sidebar)
+	v1.POST("/sidebar",ctrler.Sidebar)
 
 	v1.GET("/get_menu_tree",ctrler.GetMenuTree)
 	v1.POST("/get_menu_tree",ctrler.GetMenuTree)

+ 1 - 3
sqlconfig/system_controller/system_find_user_page_count_gen.tpl

@@ -2,6 +2,4 @@
 select
     count(*) records
 from
-    sys_user
-where
-	del_flag = 0
+    

+ 1 - 3
sqlconfig/system_controller/system_find_user_page_select_gen.tpl

@@ -2,6 +2,4 @@
 select
     *
 from
-    sys_user
-where
-    del_flag = 0
+    

+ 7 - 0
sqlconfig/system_controller/system_sidebar_gen.tpl

@@ -0,0 +1,7 @@
+
+select
+    *
+from
+    sys_menu
+where
+    del_flag = 0

+ 1 - 1
utils/page_util.go

@@ -11,7 +11,7 @@ func PageSearch(engine *xorm.Engine, controllername string, apiname string, tabl
 	page := paramMap["page"].(int)
 	rows := paramMap["rows"].(int)
 
-	stplkey := fmt.Sprintf("%s_%s_%s_select_gen.stpl",controllername, apiname, tableName)
+	stplkey := fmt.Sprintf("%s_%s_select_gen.stpl",controllername, apiname)
 	result, err := engine.SqlTemplateClient(stplkey, &paramMap).Query().List()
 	if err != nil{
 		fmt.Println(err)

+ 4 - 1
utils/tree_util.go

@@ -9,7 +9,7 @@ import (
 
 // 树形结构
 func TreeSearch(engine *xorm.Engine, controllername string, apiname string, tableName string, paramMap map[string]interface{})([]*models.TreeNode, error){
-	stplkey := fmt.Sprintf("%s_%s_%s_gen.stpl",controllername, apiname, tableName)
+	stplkey := fmt.Sprintf("%s_%s_gen.tpl",controllername, apiname)
 	result, err := engine.SqlTemplateClient(stplkey, &paramMap).Query().List()
 	if err != nil{
 		fmt.Println(err)
@@ -36,6 +36,7 @@ func buildTree(root string, treeSrcs []map[string]interface{}) ([]*models.TreeNo
 		value := toString(params[valueFiled], "")
 		parent := toString(params[parentField], "")
 		text := toString(params[textFiled], "")
+		//json,_ := xorm.JSONString(params, true)
 		// 如果根节点root为空,则从parent为空中获取root节点数组
 		// 如果root不为空,则获取id等于的节点为root节点数组
 		if (parentValue == "" && parent == "") || value == parentValue {
@@ -43,6 +44,7 @@ func buildTree(root string, treeSrcs []map[string]interface{}) ([]*models.TreeNo
 				Id:     value,
 				Text:   text,
 				Parent: parent,
+				Tag: params,
 			}
 			treeNodeList.PushBack(node)
 			rootArr = append(rootArr, node)
@@ -51,6 +53,7 @@ func buildTree(root string, treeSrcs []map[string]interface{}) ([]*models.TreeNo
 				Id:     value,
 				Text:   text,
 				Parent: parent,
+				Tag: params,
 			})
 		}
 	}