| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441 |
- package partial
- import (
- "fmt"
- "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
- "strings"
- "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, "", paramObj0.Id})
- } 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)
- user_id := c.Ctx.GetString("user_id")
- 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_id
- 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
- ids := make([]string, 0)
- 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)
- ids = append(ids, roleAppFun.Id)
- }
- _, err = session.InsertMulti(&roleAppFuns)
- if err != nil {
- session.Rollback()
- c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
- return
- }
- session.Commit()
- c.Ctx.JSON(200, sysmodel.SysReturn{200, "", strings.Join(ids, ",")})
- }
- // _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", "")
- role_id := c.Ctx.DefaultQuery("role_id", "")
- paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id, "code": code, "role_id": role_id}
- 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})
- }
- }
- // _GetDomainAppFunTree
- // @Title _GetDomainAppFunTree
- // @Description 域添加APP功能
- // @Param domain_id string false "域id"
- // @Success 200 {object} Account
- // @Failure 403 :id is empty
- func SysApp_GetDomainAppFunTree(c *entitys.CtrlContext) {
- domain_id := c.Ctx.Query("domain_id")
- var domain sysmodel.SysDomain
- param := map[string]interface{}{"id": domain_id}
- _, err := c.Db.SqlMapClient("selectone_sys_domain", ¶m).Get(&domain)
- if err != nil {
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
- return
- }
- paramMap := map[string]interface{}{}
- domainAppFuns, err := c.App.GetBusinessDb(domain.Domain).SqlTemplateClient("sys_app_get_app_fun_tree.tpl", ¶mMap).Query().List()
- if err != nil {
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "get domain_menu tree: " + err.Error(), nil})
- return
- }
- domainTree, err := sysutils.BuildTree("", domainAppFuns)
- sysAppFuns, err := c.Db.SqlTemplateClient("sys_app_get_app_fun_tree.tpl", ¶mMap).Query().List()
- if err != nil {
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "get sys_menu tree: " + err.Error(), nil})
- return
- }
- sysTree, err := sysutils.BuildTree("", sysAppFuns)
- if err == nil {
- c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "domain_tree": domainTree}})
- } else {
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
- }
- }
- // _AddDomainAppFuns
- // @Title _AddDomainAppFuns
- // @Description 域添加菜单
- // @Param false "添加域app_fun"
- // @Success 200 {object} Account
- // @Failure 403 :id is empty
- func SysApp_AddDomainAppFuns(c *entitys.CtrlContext) {
- var paramObj0 struct {
- //域名ID
- DomainId string `json:"domain_id"`
- //菜单
- AppFuns []sysmodel.SysAppFun `json:"app_funs"`
- }
- err := c.Ctx.BindJSON(¶mObj0)
- if err != nil {
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "BindJSON error: " + err.Error(), nil})
- return
- }
- var domain sysmodel.SysDomain
- param := map[string]interface{}{"id": paramObj0.DomainId}
- _, err = c.Db.SqlMapClient("selectone_sys_domain", ¶m).Get(&domain)
- if err != nil {
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
- return
- }
- var appFunIds = make([]string, len(paramObj0.AppFuns))
- for i := range paramObj0.AppFuns {
- appFunIds[i] = paramObj0.AppFuns[i].Id
- }
- var appFuns []sysmodel.SysAppFun
- err = c.Db.In("id", appFunIds).Find(&appFuns)
- if err != nil {
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "find menu error: " + err.Error(), nil})
- return
- }
- for i := range appFuns {
- for j := range paramObj0.AppFuns {
- if appFuns[i].Id == paramObj0.AppFuns[j].Id {
- appFuns[i].Name = paramObj0.AppFuns[j].Name
- break
- }
- }
- }
- session := c.App.GetBusinessDb(domain.Domain).NewSession()
- defer session.Close()
- session.Begin()
- _, err = c.App.GetBusinessDb(domain.Domain).SQL("delete from sys_app_fun where del_flag = ?", "").Execute()
- if err != nil {
- session.Rollback()
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
- return
- }
- if len(paramObj0.AppFuns) <= 0 {
- session.Commit()
- c.Ctx.JSON(200, sysmodel.SysReturn{200, "the menus is empty", nil})
- return
- }
- _, err = c.App.GetBusinessDb(domain.Domain).Insert(¶mObj0.AppFuns)
- if err != nil {
- session.Rollback()
- c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
- return
- }
- session.Commit()
- c.Ctx.JSON(200, sysmodel.SysReturn{200, "", strings.Join(appFunIds, ",")})
- }
- func __none_func_sys_app__(params ...interface{}) bool {
- return true
- }
|