Просмотр исходного кода

Merge branch 'v2' of https://git.qianqiusoft.com/qianqiusoft/light-apiengine into v2

yejw 6 лет назад
Родитель
Сommit
42fe00a3ca

+ 183 - 8
controllers/partial/SystemController.go

@@ -170,12 +170,20 @@ func System_FindUserPage(c *entitys.CtrlContext) {
 func System_GetOrgTree(c *entitys.CtrlContext) {
 	var roleRule interface{} = ""
 	rule_code := "org_tree"
+	var user sysmodel.SysUser
 	// 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5,如果是管理员,可以看所有,否则只看到本部门
 	user_id := c.Ctx.GetString("user_id")
 	exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
 	//如果是管理员
 	if exist {
 		user_id = ""
+		paramMap_i_t := map[string]interface{}{"sort": "name", "role_rule": roleRule}
+		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 {
+			c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		}
 	} else if rule_code != "" {
 		var roleRules []models.SysDataPermissionDetail
 		// 根据rule_code获取角色对应的接口规则
@@ -185,16 +193,36 @@ func System_GetOrgTree(c *entitys.CtrlContext) {
 		} else {
 			roleRule = sysutils.ParseRule(roleRules)
 		}
-	}
-	paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id, "role_rule": roleRule}
-	result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
+		// 查找用户组织ID
+		_, err = c.Db.ID(user_id).Get(&user)
+		if err != nil {
+			c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+			return
+		}
 
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
-	}
+		stplkey := fmt.Sprintf("%s_%s.tpl", "system", "get_org_tree")
+		paramMap_i_t := map[string]interface{}{"sort": "name", "org_id": user.OrgId, "role_rule": roleRule}
+		result, err := c.Db.SqlTemplateClient(stplkey, &paramMap_i_t).Query().List()
+		if err != nil {
+			c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+			return
+		}
+
+		var org_id = ""
+		if roleRule.(template.HTML) == "" {
+			org_id = ""
+		} else {
+			org_id = user.OrgId
+		}
 
+		tree, err := sysutils.BuildTree(org_id, result)
+
+		if err == nil {
+			c.Ctx.JSON(200, sysmodel.SysReturn{200, "", tree})
+		} else {
+			c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		}
+	}
 }
 
 // _FindOrgPage
@@ -2426,6 +2454,95 @@ func System_GetOptionsetByCode(c *entitys.CtrlContext) {
 	}
 }
 
+// _AddTableColUser
+// @Title _AddTableColUser
+// @Description 添加用户可见列
+// @Param	      false  "用户可见列"
+// @Success 200 {object} Account
+// @Failure 403 :id is empty
+func System_AddTableColUser(c *entitys.CtrlContext) {
+	var paramObj0 models.SysTableColUser
+	c.Ctx.BindJSON(&paramObj0)
+
+	user_id := c.Ctx.GetString("user_id")
+
+	// 查询用户是否有此可见列数据
+	var tabelColUser sysmodel.SysTableColUser
+	exit, err := c.Db.Where("user_id = ? and code = ?", user_id, paramObj0.Code).Get(&tabelColUser)
+	if err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+
+	// 如果存在,更新,不存在插入
+	if exit {
+		tabelColUser.Value = paramObj0.Value
+		_, err = c.Db.Update(&tabelColUser)
+		if err == nil {
+			c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
+		} else {
+			c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		}
+		return
+	}
+
+	paramObj0.Id = sysutils.NewUUID()
+	paramObj0.UserId = user_id
+	paramObj0.DelFlag = 0
+	paramObj0.CreateTime = sysmodel.NowLocal()
+	paramObj0.LastUpdateTime = time.Now().UnixNano()
+	paramObj0.CreateBy = user_id
+	paramObj0.LastUpdateBy = user_id
+
+	_, err = c.Db.Insert(&paramObj0)
+
+	if err == nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
+	} else {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+	}
+}
+
+// _UpdateTableColUser
+// @Title _UpdateTableColUser
+// @Description 修改用户可见列
+// @Param	      false  "用户可见列"
+// @Success 200 {object} Account
+// @Failure 403 :id is empty
+func System_UpdateTableColUser(c *entitys.CtrlContext) {
+	var paramObj0 models.SysTableColUser
+	c.Ctx.BindJSON(&paramObj0)
+	ret := __none_func_system__(paramObj0)
+	if ret {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
+	} else {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+	}
+}
+
+// _FindTableColUserpage
+// @Title _FindTableColUserpage
+// @Description 分页获取用户可见列
+// @Success 200 {object} Account
+// @Failure 403 :id is empty
+func System_FindTableColUserpage(c *entitys.CtrlContext) {
+
+	page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
+	rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
+
+	code := c.Ctx.DefaultQuery("code", "")
+	user_id := c.Ctx.DefaultQuery("user_id", "")
+
+	paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "code": code, "user_id": user_id}
+	result, err := sysutils.PageSearch(c.Db, "system", "find_table_col_userpage", "sys_table_col_user", paramMap_i_t)
+	if err == nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
+	} else {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+	}
+
+}
+
 // _AddDataPermission
 // @Title _AddDataPermission
 // @Description 添加数据权限
@@ -2497,6 +2614,64 @@ func System_FindDataPermissionPage(c *entitys.CtrlContext) {
 
 }
 
+// _ModifyPassword
+// @Title _ModifyPassword
+// @Description 修改密码
+// @Param	body    models.ModifyPassword  true  ""
+// @Success 200 {object} Account
+// @Failure 403 :id is empty
+func System_ModifyPassword(c *entitys.CtrlContext) {
+	var err error
+	var param models.ModifyPassword
+	if err = c.Ctx.BindJSON(&param); err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+	var errmsg string
+	switch {
+	case param.Origin == "":
+		errmsg = "原密码不能为空"
+	case param.New == "":
+		errmsg = "新密码不能为空"
+	case param.Confirm == "":
+		errmsg = "确认密码不能为空"
+	case param.Confirm != param.New:
+		errmsg = "两次密码不一致"
+	}
+	if errmsg != "" {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, errmsg, nil})
+		return
+	}
+	engine := c.PlatformDbEngine
+	var userId = c.Ctx.GetString("user_id")
+	if param.UserId == "" {
+		param.UserId = userId
+	}
+	var user sysmodel.SysUser
+	_, err = engine.ID(param.UserId).Get(&user)
+	if err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+	password := sysutils.HashPassword(param.Origin, "")
+	if !strings.EqualFold(password, user.Password) {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, "原密码错误", nil})
+		return
+	}
+	_, err = engine.Table(user).ID(user.Id).
+		Update(map[string]interface{}{
+			"password":         sysutils.HashPassword(param.New, ""),
+			"last_update_by":   userId,
+			"last_update_time": time.Now().UnixNano(),
+		})
+
+	if err == nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "modify successfully", nil})
+	} else {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+	}
+}
+
 func __none_func_system__(params ...interface{}) bool {
 	return true
 }

+ 48 - 3
light-apiengine.xml

@@ -532,6 +532,23 @@
                     <failure ref="$sys_return"></failure>
                 </return>
             </api>
+            <api name="add_table_col_user" desc="添加用户可见列" method="post,get,put">
+                <param name=""  ref="$sys_table_col_user" desc="用户可见列"/>
+                <return>
+                    <success ref="$sys_return"></success>
+                    <success ref="$sys_return"></success>
+                    <failure ref="$sys_return"></failure>
+                </return>
+            </api>
+            <api name="update_table_col_user" desc="修改用户可见列" method="post,get,put">
+                <param name=""  ref="$sys_table_col_user" desc="用户可见列"/>
+                <return>
+                    <success ref="$sys_return"></success>
+                    <failure ref="$sys_return"></failure>
+                </return>
+            </api>
+            <api name="find_table_col_userpage" desc="分页获取用户可见列" function="page" table="sys_table_col_user" method="get,post" >
+            </api>
             <api name="add_data_permission" desc="添加数据权限" method="post,get,put">
                 <param name="" ref="$sys_data_permission" type="string" desc="数据权限"/>
                 <return>
@@ -555,6 +572,13 @@
             </api>
             <api name="find_data_permission_page" desc="分页获取数据权限" function="page" table="data_permission" method="get,post" >
             </api>
+            <api name="modify_password"  desc="修改密码" method="post">
+                <param name="body" ref="$modify_password" type="models.ModifyPassword" must="true"/>
+                <return>
+                    <success ref="$sys_return" desc=""/>
+                    <failure ref="$sys_return" desc=""/>
+                </return>
+            </api>
         </controller>
         <controller name="api" desc="api接口">
             <api name="api_doc" method="get" desc="api文档">
@@ -719,9 +743,9 @@
             <prop name="content" caption="内容" type="interface{}" />
         </bean>
         <bean name="tree_node" desc="树结点">
-            <prop name="id" caption="ID" type="string" />
-            <prop name="text" caption="标题" type="string" />
-            <prop name="parent" caption="父结点" type="string" />
+            <prop name="id" caption="ID" type="interface{}" />
+            <prop name="text" caption="标题" type="interface{}" />
+            <prop name="parent" caption="父结点" type="interface{}" />
             <prop name="nodes" caption="子结点" type="*TreeNode array" />
             <prop name="tag" caption="tag" type="interface{}" />
         </bean>
@@ -733,6 +757,12 @@
             <prop name="domain_id" caption="域名ID" type="string" />
             <prop name="app_funs" caption="功能" type="string array" />
         </bean>
+        <bean name="modify_password" desc="修改密码">
+            <prop name="user_id" type="string" caption="用户id(默认为当前用户id)"/>
+            <prop name="origin" type="string" caption="原密码"/>
+            <prop name="new" type="string" caption="新密码"/>
+            <prop name="confirm" type="string" caption="确认密码"/>
+        </bean>
     </beans>
     <tables>
         <table name="sys_user" desc="用户表">
@@ -1047,6 +1077,21 @@
             <column isNull="false" name="last_update_time" caption="最后更新时间" type="int64" />
             <column isNull="false" name="del_flag" caption="是否删除 1:删除   0:正常" type="int32"/>
         </table>
+        <table name="sys_table_col_user" desc="列表用户可见列">
+            <column isNull="false" isPK="true" name="id" caption="主键" dbtype="varchar(36)"
+                    type="string" size="36">
+                <auto value="$uuid" update="false">
+                </auto>
+            </column>
+            <column isNull="false" name="code" caption="编码" type="string" size="200" dbtype="varchar(200)"/>
+            <column isNull="false" name="value" caption="值" type="string" dbtype="text"/>
+            <column isNull="false" name="user_id" caption="用户id" type="string" size="36" dbtype="varchar(36)"/>
+            <column isNull="false" name="create_by" caption="创建人" type="string" size="36" dbtype="varchar(36)"/>
+            <column isNull="false" name="create_time" caption="创建时间" type="local_time" />
+            <column isNull="false" name="last_update_by" caption="最后更新人" type="string" size="36" dbtype="varchar(36)"/>
+            <column isNull="false" name="last_update_time" caption="最后更新时间" type="int64" />
+            <column isNull="false" name="del_flag" caption="是否删除 1:删除   0:正常" type="int32"/>
+        </table>
         <table name="sys_app_fun" desc="APP功能表">
             <column isNull="false" isPK="true" name="id" caption="主键" dbtype="varchar(36)"
                     type="string" size="36">

+ 24 - 0
models/ModifyPassword_gen.go

@@ -0,0 +1,24 @@
+
+package models
+import (
+//__import_packages__
+)
+
+
+
+type ModifyPassword struct {
+	
+	//用户id(默认为当前用户id)
+	UserId   string `json:"user_id"`
+	//原密码
+	Origin   string `json:"origin"`
+	//新密码
+	New   string `json:"new"`
+	//确认密码
+	Confirm   string `json:"confirm"`
+
+}
+
+func init() {
+    AddTableName("modify_password")
+}

+ 36 - 0
models/SysTableColUser_gen.go

@@ -0,0 +1,36 @@
+
+package models
+import (
+	//__import_packages__
+)
+
+type SysTableColUser struct {
+	//主键
+	Id   string     `xorm:"'id' varchar(36) pk   notnull "json:"id"` 
+	//编码
+	Code   string     `xorm:"'code' varchar(200)   notnull "json:"code"` 
+	//值
+	Value   string     `xorm:"'value' text   notnull "json:"value"` 
+	//用户id
+	UserId   string     `xorm:"'user_id' varchar(36)   notnull "json:"user_id"` 
+	//创建人
+	CreateBy   string     `xorm:"'create_by' varchar(36)   notnull "json:"create_by"` 
+	//创建时间
+	CreateTime   LocalTime     `xorm:"'create_time'   notnull "json:"create_time"` 
+	//最后更新人
+	LastUpdateBy   string     `xorm:"'last_update_by' varchar(36)   notnull "json:"last_update_by"` 
+	//最后更新时间
+	LastUpdateTime   int64     `xorm:"'last_update_time'   notnull "json:"last_update_time"` 
+	//是否删除 1:删除   0:正常
+	DelFlag   int32     `xorm:"'del_flag'   notnull "json:"del_flag"` 
+
+}
+
+func (t *SysTableColUser) TableName() string {
+	return "sys_table_col_user"
+}
+
+func init() {
+    AddTableName("sys_table_col_user")
+	RegisterModel(new(SysTableColUser))
+}

+ 8 - 11
models/TreeNode_gen.go

@@ -1,26 +1,23 @@
-
 package models
+
 import (
 //__import_packages__
 )
 
-
-
 type TreeNode struct {
-	
+
 	//ID
-	Id   string `json:"id"`
+	Id interface{} `json:"id"`
 	//标题
-	Text   string `json:"text"`
+	Text interface{} `json:"text"`
 	//父结点
-	Parent   string `json:"parent"`
+	Parent interface{} `json:"parent"`
 	//子结点
-	Nodes   []*TreeNode `json:"nodes"`
+	Nodes []*TreeNode `json:"nodes"`
 	//tag
-	Tag   interface{} `json:"tag"`
-
+	Tag interface{} `json:"tag"`
 }
 
 func init() {
-    AddTableName("tree_node")
+	AddTableName("tree_node")
 }

+ 13 - 0
sqlconfig/system_controller/system_find_table_col_userpage_count.tpl

@@ -0,0 +1,13 @@
+
+select
+    count(*) records
+from
+    sys_table_col_user
+where
+	del_flag = 0
+	{{if ne .code ""}}
+        and code like '%{{.code}}%'
+    {{end}}
+    {{if ne .user_id ""}}
+        and user_id like '%{{.user_id}}%'
+    {{end}}

+ 14 - 0
sqlconfig/system_controller/system_find_table_col_userpage_select.tpl

@@ -0,0 +1,14 @@
+
+select
+    sys_table_col_user.*
+from
+    sys_table_col_user
+where
+    del_flag = 0
+    {{if ne .code ""}}
+        and code like '%{{.code}}%'
+    {{end}}
+    {{if ne .user_id ""}}
+        and user_id like '%{{.user_id}}%'
+    {{end}}
+LIMIT {{.rows}} OFFSET {{.offset}}

+ 0 - 6
sqlconfig/system_controller/system_get_org_tree.tpl

@@ -1,14 +1,8 @@
 
 select
-    distinct sys_org.id,
     sys_org.*
 from
     sys_org
-{{if ne .role_rule ""}}
-left join
-    sys_user
-on sys_user.org_id = sys_org.id
-{{end}}
 where
     sys_org.del_flag = 0
 {{if ne .role_rule ""}}

+ 15 - 6
utils/tree_util.go

@@ -81,14 +81,23 @@ func BuildTree(root string, treeSrcs []map[string]interface{}) ([]*models.TreeNo
 	return rootArr, nil
 }
 
-func toString(v interface{}, defaultValue string) string {
+func toString(v interface{}, defaultValue string) interface{} {
 	if v == nil {
 		return defaultValue
 	}
-	strv, flag := v.(string)
-	if !flag {
-		return defaultValue
-	} else {
-		return strv
+	switch t := v.(type) {
+	case int:
+		return t
+	case string:
+		return t
+	default:
+		return t
 	}
+
+	//strv, flag := v.(string)
+	//if !flag {
+	//	return defaultValue
+	//} else {
+	//	return result
+	//}
 }