|
|
@@ -0,0 +1,330 @@
|
|
|
+package partial
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
|
|
|
+ "time"
|
|
|
+
|
|
|
+ //sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
+ sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
+ sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
|
|
|
+ "strconv"
|
|
|
+ //__import_packages__
|
|
|
+)
|
|
|
+
|
|
|
+// _AddAppFun
|
|
|
+// @Title _AddAppFun
|
|
|
+// @Description 添加APP功能
|
|
|
+// @Param string false "功能"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_AddAppFun(c *entitys.CtrlContext) {
|
|
|
+ var paramObj0 models.SysAppFun
|
|
|
+ c.Ctx.BindJSON(¶mObj0)
|
|
|
+
|
|
|
+ user_id := c.Ctx.GetString("user_id")
|
|
|
+
|
|
|
+ paramObj0.Id = sysutils.NewUUID()
|
|
|
+ paramObj0.CreateBy = user_id
|
|
|
+ paramObj0.LastUpdateBy = user_id
|
|
|
+ paramObj0.CreateTime = models.NowLocal()
|
|
|
+ paramObj0.LastUpdateTime = time.Now().UnixNano()
|
|
|
+ paramObj0.DelFlag = 0
|
|
|
+
|
|
|
+ if paramObj0.Parent != "" {
|
|
|
+ parentNodes := []sysmodel.SysAppFun{}
|
|
|
+ err := c.Db.SqlMapClient("select_parent_app_fun", paramObj0.Parent).Find(&parentNodes)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
|
|
|
+ } else {
|
|
|
+ paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
|
|
|
+ }
|
|
|
+
|
|
|
+ paramMap, err := sysutils.BeanToMap(¶mObj0)
|
|
|
+ _, err = c.Db.SqlMapClient("insert_sys_app_fun", paramMap).Execute()
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _DelAppFun
|
|
|
+// @Title _DelAppFun
|
|
|
+// @Description 删除app功能
|
|
|
+// @Param id string false "APP功能ID"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_DelAppFun(c *entitys.CtrlContext) {
|
|
|
+ type Param struct {
|
|
|
+ Id string `json:"id"`
|
|
|
+ }
|
|
|
+ var params []Param
|
|
|
+ c.Ctx.BindJSON(¶ms)
|
|
|
+ ids := []string{}
|
|
|
+ for _, param := range params {
|
|
|
+ ids = append(ids, param.Id)
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err := c.Db.Table(new(models.SysAppFun)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _UpdateAppFun
|
|
|
+// @Title _UpdateAppFun
|
|
|
+// @Description 更新APP功能
|
|
|
+// @Param string false "功能"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_UpdateAppFun(c *entitys.CtrlContext) {
|
|
|
+ var paramObj0 models.SysAppFun
|
|
|
+ c.Ctx.BindJSON(¶mObj0)
|
|
|
+
|
|
|
+ tk, _ := c.Ctx.Get("token")
|
|
|
+ user := tk.(*entitys.Token)
|
|
|
+
|
|
|
+ if paramObj0.Parent != "" {
|
|
|
+ parentNodes := []sysmodel.SysAppFun{}
|
|
|
+ err := c.Db.SqlMapClient("select_parent_app_fun", paramObj0.Parent).Find(&parentNodes)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
|
|
|
+ } else {
|
|
|
+ paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
|
|
|
+ }
|
|
|
+
|
|
|
+ paramObj0.LastUpdateBy = user.UserId
|
|
|
+ paramObj0.LastUpdateTime = time.Now().UnixNano()
|
|
|
+
|
|
|
+ paramMap, err := sysutils.BeanToMap(¶mObj0)
|
|
|
+ _, err = c.Db.SqlMapClient("update_sys_app_fun", paramMap).Execute()
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _FindAppFunPage
|
|
|
+// @Title _FindAppFunPage
|
|
|
+// @Description 分页获取APP功能
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_FindAppFunPage(c *entitys.CtrlContext) {
|
|
|
+
|
|
|
+ page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
|
|
|
+ rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
|
|
|
+
|
|
|
+ name := c.Ctx.DefaultQuery("name", "")
|
|
|
+ code := c.Ctx.DefaultQuery("code", "")
|
|
|
+ cn_id := c.Ctx.DefaultQuery("cn_id", "")
|
|
|
+ hidden := c.Ctx.DefaultQuery("hidden", "")
|
|
|
+
|
|
|
+ paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code, "cn_id": cn_id, "hidden": hidden}
|
|
|
+ result, err := sysutils.PageSearch(c.Db, "sys_app", "find_app_fun_page", "sys_app_fun", 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})
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// _GetAppFunTree
|
|
|
+// @Title _GetAppFunTree
|
|
|
+// @Description 获取APP功能树
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_GetAppFunTree(c *entitys.CtrlContext) {
|
|
|
+
|
|
|
+ code := c.Ctx.DefaultQuery("code", "")
|
|
|
+
|
|
|
+ paramMap_i_t := map[string]interface{}{"sort": "name", "code": code}
|
|
|
+ result, err := sysutils.TreeSearch(c.Db, "sys_app", "get_app_fun_tree", "sys_app_fun", 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})
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// _AddRoleAppFun
|
|
|
+// @Title _AddRoleAppFun
|
|
|
+// @Description 添加角色APP功能
|
|
|
+// @Param string false "功能"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_AddRoleAppFun(c *entitys.CtrlContext) {
|
|
|
+ user_id := c.Ctx.GetString("user_id")
|
|
|
+
|
|
|
+ var paramObj0 struct {
|
|
|
+ AppFunIds []string `json:"app_fun_ids"`
|
|
|
+ RoleId string `json:"role_id"`
|
|
|
+ }
|
|
|
+
|
|
|
+ c.Ctx.BindJSON(¶mObj0)
|
|
|
+
|
|
|
+ session := c.Db.NewSession()
|
|
|
+ defer session.Close()
|
|
|
+ session.Begin()
|
|
|
+ _, err := session.SqlMapClient("del_role_app_fun", paramObj0.RoleId).Execute()
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var roleAppFuns []*sysmodel.SysRoleAppFun
|
|
|
+ for _, menu := range paramObj0.AppFunIds {
|
|
|
+ roleAppFun := &sysmodel.SysRoleAppFun{}
|
|
|
+ roleAppFun.Id = sysutils.NewUUID()
|
|
|
+ roleAppFun.AppFunId = menu
|
|
|
+ roleAppFun.RoleId = paramObj0.RoleId
|
|
|
+ roleAppFun.CreateBy = user_id
|
|
|
+ roleAppFun.CreateTime = sysmodel.NowLocal()
|
|
|
+
|
|
|
+ roleAppFuns = append(roleAppFuns, roleAppFun)
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err = session.InsertMulti(&roleAppFuns)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ session.Commit()
|
|
|
+ ret := __none_func_system__(paramObj0)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _DelRoleAppFun
|
|
|
+// @Title _DelRoleAppFun
|
|
|
+// @Description 删除角色APP功能
|
|
|
+// @Param id string false "APP功能ID"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_DelRoleAppFun(c *entitys.CtrlContext) {
|
|
|
+ id := c.Ctx.Query("id")
|
|
|
+
|
|
|
+ ret := __none_func_sys_app__(id)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _UpdateRoleAppFun
|
|
|
+// @Title _UpdateRoleAppFun
|
|
|
+// @Description 更新角色APP功能
|
|
|
+// @Param string false "功能"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_UpdateRoleAppFun(c *entitys.CtrlContext) {
|
|
|
+ var paramObj0 models.SysRoleAppFun
|
|
|
+ c.Ctx.BindJSON(¶mObj0)
|
|
|
+ ret := __none_func_sys_app__(paramObj0)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _GetRoleAppFunTree
|
|
|
+// @Title _GetRoleAppFunTree
|
|
|
+// @Description 获取角色APP功能
|
|
|
+// @Param role_id string false "角色id"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_GetRoleAppFun(c *entitys.CtrlContext) {
|
|
|
+ role_id := c.Ctx.Query("role_id")
|
|
|
+
|
|
|
+ paramMap := map[string]interface{}{"user_id": "", "sort": "name", "hidden": 0}
|
|
|
+ sysTree, err := sysutils.TreeSearch(c.Db, "sys_app", "get_app_fun_tree", "sys_app_fun", paramMap)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ paramMap2 := map[string]interface{}{"role_id": role_id}
|
|
|
+ roleAppFun, err := c.Db.SqlMapClient("get_role_app_fun_tree", ¶mMap2).Query().List()
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ roleTree, err := sysutils.BuildTree("", roleAppFun)
|
|
|
+
|
|
|
+ ret := __none_func_system__(role_id)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "role_tree": roleTree}})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _FindRoleAppFunPage
|
|
|
+// @Title _FindRoleAppFunPage
|
|
|
+// @Description 分页获取角色APP功能
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_FindRoleAppFunPage(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}
|
|
|
+ result, err := sysutils.PageSearch(c.Db, "sys_app", "find_role_app_fun_page", "sys_role_app_fun", 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})
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// _GetRoleAppFunTree
|
|
|
+// @Title _GetRoleAppFunTree
|
|
|
+// @Description 获取角色APP功能树
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysApp_GetRoleAppFunTree(c *entitys.CtrlContext) {
|
|
|
+
|
|
|
+ user_id := c.Ctx.GetString("user_id")
|
|
|
+ code := c.Ctx.DefaultQuery("code", "")
|
|
|
+
|
|
|
+ paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id, "code": code}
|
|
|
+ result, err := sysutils.TreeSearch(c.Db, "sys_app", "get_role_app_fun_tree", "sys_role_app_fun", 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})
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func __none_func_sys_app__(params ...interface{}) bool {
|
|
|
+ return true
|
|
|
+}
|