Przeglądaj źródła

添加数据权限接口

huangyh 6 lat temu
rodzic
commit
676b6497a4

+ 128 - 28
controllers/partial/SystemController.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"fmt"
 	"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
+	"git.qianqiusoft.com/qianqiusoft/light-apiengine/logs"
 	"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
 	sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
 	sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
@@ -2550,14 +2551,46 @@ func System_FindTableColUserpage(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_AddDataPermission(c *entitys.CtrlContext) {
-	var paramObj0 models.SysDataPermission
-	c.Ctx.BindJSON(&paramObj0)
-	ret := __none_func_system__(paramObj0)
-	if ret {
+	var paramObj0 struct {
+		Permission models.SysDataPermission         `json:"permission"`
+		Details    []models.SysDataPermissionDetail `json:"details"`
+	}
+	if err := c.Ctx.BindJSON(&paramObj0); err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+	user_id := c.Ctx.GetString("user_id")
+
+	paramObj0.Permission.Id = sysutils.NewUUID()
+	paramObj0.Permission.CreateBy = user_id
+	paramObj0.Permission.LastUpdateBy = user_id
+	paramObj0.Permission.CreateTime = sysmodel.NowLocal()
+	paramObj0.Permission.LastUpdateTime = time.Now().UnixNano()
+	paramObj0.Permission.DelFlag = 0
+
+	if _, err := c.Db.Insert(&paramObj0.Permission); err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+
+	for i, _ := range paramObj0.Details {
+		paramObj0.Details[i].Id = sysutils.NewUUID()
+		paramObj0.Details[i].DataPermissionId = paramObj0.Permission.Id
+		paramObj0.Details[i].CreateBy = user_id
+		paramObj0.Details[i].LastUpdateBy = user_id
+		paramObj0.Details[i].CreateTime = sysmodel.NowLocal()
+		paramObj0.Details[i].LastUpdateTime = time.Now().UnixNano()
+		paramObj0.Details[i].DelFlag = 0
+	}
+
+	_, err := c.Db.Insert(&paramObj0.Details)
+
+	if err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
 	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
 	}
+
 }
 
 // _DelDataPermission
@@ -2567,10 +2600,19 @@ func System_AddDataPermission(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_DelDataPermission(c *entitys.CtrlContext) {
-	id := c.Ctx.Query("id")
+	type Param struct {
+		Id string `json:"id"`
+	}
+	var params []Param
+	c.Ctx.BindJSON(&params)
+	ids := []string{}
+	for _, param := range params {
+		ids = append(ids, param.Id)
+	}
 
-	ret := __none_func_system__(id)
-	if ret {
+	_, err := c.Db.Table(new(models.SysDataPermission)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
+
+	if err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
 	} else {
 		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
@@ -2584,14 +2626,45 @@ func System_DelDataPermission(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_UpdateDataPermission(c *entitys.CtrlContext) {
-	var paramObj0 models.SysDataPermission
-	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})
+	var paramObj0 struct {
+		Permission models.SysDataPermission         `json:"permission"`
+		Details    []models.SysDataPermissionDetail `json:"details"`
+	}
+	if err := c.Ctx.BindJSON(&paramObj0); err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		return
 	}
+	user_id := c.Ctx.GetString("user_id")
+	paramObj0.Permission.LastUpdateBy = user_id
+	paramObj0.Permission.LastUpdateTime = time.Now().UnixNano()
+
+	if _, err := c.Db.ID(paramObj0.Permission.Id).Update(&paramObj0.Permission); err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+
+	for _, detail := range paramObj0.Details {
+		if detail.Id != "" {
+			detail.LastUpdateBy = user_id
+			detail.LastUpdateTime = time.Now().UnixNano()
+			if _, err := c.Db.Update(&detail); err != nil {
+				logs.Error(err.Error())
+			}
+		} else {
+			detail.Id = sysutils.NewUUID()
+			detail.DataPermissionId = paramObj0.Permission.Id
+			detail.CreateBy = user_id
+			detail.LastUpdateBy = user_id
+			detail.CreateTime = sysmodel.NowLocal()
+			detail.LastUpdateTime = time.Now().UnixNano()
+			detail.DelFlag = 0
+			if _, err := c.Db.Insert(&detail); err != nil {
+				logs.Error(err.Error())
+			}
+		}
+	}
+
+	c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
 }
 
 // _FindDataPermissionPage
@@ -2623,11 +2696,19 @@ func System_FindDataPermissionPage(c *entitys.CtrlContext) {
 func System_AddDataPermissionDetail(c *entitys.CtrlContext) {
 	var paramObj0 models.SysDataPermission
 	c.Ctx.BindJSON(&paramObj0)
-	ret := __none_func_system__(paramObj0)
-	if ret {
+
+	user_id := c.Ctx.GetString("user_id")
+	paramObj0.CreateBy = user_id
+	paramObj0.CreateTime = models.NowLocal()
+	paramObj0.LastUpdateTime = time.Now().UnixNano()
+	paramObj0.LastUpdateBy = user_id
+	paramObj0.DelFlag = 0
+
+	_, err := c.Db.Insert(&paramObj0)
+	if err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
 	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
 	}
 }
 
@@ -2638,10 +2719,19 @@ func System_AddDataPermissionDetail(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_DelDataPermissionDetail(c *entitys.CtrlContext) {
-	id := c.Ctx.Query("id")
+	type Param struct {
+		Id string `json:"id"`
+	}
+	var params []Param
+	c.Ctx.BindJSON(&params)
+	ids := []string{}
+	for _, param := range params {
+		ids = append(ids, param.Id)
+	}
 
-	ret := __none_func_system__(id)
-	if ret {
+	_, err := c.Db.Table(new(models.SysDataPermissionDetail)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
+
+	if err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
 	} else {
 		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
@@ -2655,14 +2745,22 @@ func System_DelDataPermissionDetail(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_UpdateDataPermissionDetail(c *entitys.CtrlContext) {
-	var paramObj0 models.SysDataPermission
-	c.Ctx.BindJSON(&paramObj0)
-	ret := __none_func_system__(paramObj0)
-	if ret {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
+	var paramObj0 models.SysDataPermissionDetail
+	if err := c.Ctx.BindJSON(&paramObj0); err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+	user_id := c.Ctx.GetString("user_id")
+	paramObj0.LastUpdateBy = user_id
+	paramObj0.LastUpdateTime = time.Now().UnixNano()
+
+	_, err := c.Db.ID(paramObj0.Id).Update(&paramObj0)
+	if err != nil {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
 	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
 	}
+
 }
 
 // _FindDataPermissionDetailPage
@@ -2675,7 +2773,9 @@ func System_FindDataPermissionDetailPage(c *entitys.CtrlContext) {
 	page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
 	rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
 
-	paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
+	data_permission_id := c.Ctx.DefaultQuery("data_permission_id", "")
+
+	paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "data_permission_id": data_permission_id}
 	result, err := sysutils.PageSearch(c.Db, "system", "find_data_permission_detail_page", "sys_data_permission_detail", paramMap_i_t)
 	if err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})

+ 27 - 4
light-apiengine.xml

@@ -570,10 +570,33 @@
                     <failure ref="$sys_return"></failure>
                 </return>
             </api>
-            <api name="find_data_permission_page" desc="分页获取数据权限" function="page" table="data_permission" method="get,post" >
+            <api name="find_data_permission_page" desc="分页获取数据权限" function="page" table="sys_data_permission" method="get,post" >
+            </api>
+            <api name="add_data_permission_detail" desc="添加数据权限规则" method="post,get,put">
+                <param name="" ref="$sys_data_permission" type="string" desc="数据权限"/>
+                <return>
+                    <success ref="$sys_return"></success>
+                    <failure ref="$sys_return"></failure>
+                </return>
+            </api>
+            <api name="del_data_permission_detail" desc="删除数据权限规则" method="post,get,put">
+                <param name="id"  type="string" desc="数据权限ID"/>
+                <return>
+                    <success ref="$sys_return"></success>
+                    <failure ref="$sys_return"></failure>
+                </return>
+            </api>
+            <api name="update_data_permission_detail" desc="更新数据权限规则" method="post,get,put">
+                <param name="" ref="$sys_data_permission" type="string" desc="数据权限"/>
+                <return>
+                    <success ref="$sys_return"></success>
+                    <failure ref="$sys_return"></failure>
+                </return>
+            </api>
+            <api name="find_data_permission_detail_page" desc="分页获取数据权限规则" function="page" table="sys_data_permission_detail" method="get,post" >
             </api>
             <api name="modify_password"  desc="修改密码" method="post">
-                <param name="body" ref="$modify_password" type="models.ModifyPassword" must="true"/>
+                <param name="body" ref="$modify_password" type="models.ModifyPassword"/>
                 <return>
                     <success ref="$sys_return"/>
                     <failure ref="$sys_return"/>
@@ -1076,7 +1099,7 @@
             <column isNull="false" name="name" caption="数据权限名称" type="string" size="36" dbtype="varchar(36)"/>
             <column isNull="false" name="code" caption="编码" 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="datetime" />
+            <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"/>
@@ -1091,7 +1114,7 @@
             <column isNull="false" name="role_id" caption="角色ID" type="string" size="36" dbtype="varchar(36)"/>
             <column isNull="false" name="rule" caption="权限规则" type="string" size="1000" dbtype="varchar(1000)"/>
             <column isNull="false" name="create_by" caption="创建人" type="string" size="36" dbtype="varchar(36)"/>
-            <column isNull="false" name="create_time" caption="创建时间" type="datetime" />
+            <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"/>

+ 4 - 1
sqlconfig/system_controller/system_find_data_permission_detail_page_select.tpl

@@ -4,5 +4,8 @@ select
 from
     sys_data_permission_detail
 where
-    del_flag = 0
+    sys_data_permission_detail.del_flag = 0
+    {{if ne .data_permission_id ""}}
+        and sys_data_permission_detail.data_permission_id = '{{.data_permission_id}}'
+    {{end}}
 LIMIT {{.rows}} OFFSET {{.offset}}