From 63645d248c765244488cd34dbc1bb6528ca6b7c7 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 05 九月 2023 09:58:13 +0800 Subject: [PATCH] 修复编译 --- system-service/service/sysMenuService.go | 304 +++++++++++++++++++++++++------------------------- 1 files changed, 152 insertions(+), 152 deletions(-) diff --git a/system-service/service/sysMenuService.go b/system-service/service/sysMenuService.go index 5c9b3d6..fbf3167 100644 --- a/system-service/service/sysMenuService.go +++ b/system-service/service/sysMenuService.go @@ -1,152 +1,152 @@ -package service - -import ( - "basic.com/valib/logger.git" - "errors" - "sort" - "strings" - "vamicro/extend/util" - "vamicro/system-service/models" - "vamicro/system-service/vo" -) - -type SysMenuService struct { - -} - -func (sms *SysMenuService) Save(menu models.SysMenu) (bool,models.SysMenu){ - if menu.ParentId == "" || menu.ParentId == "0" { - menu.ParentId = "0" - menu.ParentIds= "0" - } else { - var pMenu models.SysMenu - - rows,_ := pMenu.SelectById(menu.ParentId) - if rows > 0 { - menu.ParentIds = pMenu.ParentIds+","+pMenu.Id - } else { - menu.ParentId = "0" - menu.ParentIds= "0" - } - } - if menu.Id == "" { - menu.Id = util.PseudoUuid() - if menu.Insert() { - return true,menu - } else { - return false,menu - } - } else { - if menu.Update() { - return true,menu - } else { - return false,menu - } - } -} - -/* - 榛樿搴旂敤鍙互鍏蜂綋鍒板唴閮ㄧ殑鎸夐挳鏉冮檺 - 鍙�夊簲鐢ㄥ彧鎺у埗鍒拌彍鍗曠殑鏄剧ず -*/ -func (sms *SysMenuService) GetMenuTree(userId string, myMenuIds map[string]string) ([]vo.SysMenuTree,error) { - var user models.SysUser - rows, _ := user.SelectById(userId) - if rows >0 { - var menuE models.SysMenu - allMenus := menuE.FindAll() - - var menuM = make(map[string]models.SysMenu, 0) - if allMenus !=nil { - for _,mu :=range allMenus { - menuM[mu.Id] = mu - } - } - - var role models.SysRole - roles := role.FindByUserId(user.Id) - logger.Debug("len(roles):", len(roles)) - if roles !=nil && len(roles) >0 { - var userMenus []models.SysMenu - if roles[0].Name == "瓒呯骇绠$悊鍛�" { - userMenus = allMenus - } else if roles[0].Name == "绠$悊鍛�" || roles[0].Name == "鏅�氱敤鎴�" { - //鏌ユ湰浜哄彲浠ョ湅鍒扮殑鑿滃崟 - userMenus = menuE.FindByUserId(user.Id) - if len(userMenus) == 0 { - userMenus = menuE.FindByRoleId(roles[0].Id) - } - //userMenus = allMenus - } - logger.Debug("len(userMenus):", len(userMenus)) - var uM = make(map[string]models.SysMenu,0) - if len(userMenus) >0 { - for _,srmE := range userMenus{ - if _,ok :=uM[srmE.Id];!ok{ - menuModel := menuM[srmE.Id] - uM[menuModel.Id] = menuModel - - pidArr := strings.Split(menuModel.ParentIds, ",") - for _,pid :=range pidArr { - if pid !="" && pid !="0" { - if _,k :=uM[pid];!k{ - uM[pid] = menuM[pid] - } - } - } - } - } - - var allUserMenus []models.SysMenu - for _,v :=range uM { - allUserMenus = append(allUserMenus, v) - } - uS := menuFormat(&allUserMenus,"0", myMenuIds) - var sUs uMenuT - sUs = uS - sort.Sort(sUs) - return sUs,nil - } else { - return []vo.SysMenuTree{},nil - } - } else { - return nil,errors.New("user role wrong") - } - } else { - return nil,errors.New("user not found") - } -} - -func menuFormat(dbArr *[]models.SysMenu, parentId string, myMenuIds map [string]string) []vo.SysMenuTree { - var arr []vo.SysMenuTree - for _, m := range *dbArr { - if parentId == m.ParentId { - tmp := vo.SysMenuTree{} - tmp.Id = m.Id - tmp.Name = m.Name - tmp.Sort = m.Sort - _,ok := myMenuIds[m.Id] - tmp.Selected = ok - - children := menuFormat(dbArr, m.Id, myMenuIds) - tmp.Children = children - arr = append(arr, tmp) - } - } - var sUs uMenuT - sUs = arr - sort.Sort(sUs) - return sUs -} - -type uMenuT []vo.SysMenuTree - -func (ul uMenuT) Len()int { - return len(ul) -} -func (ul uMenuT) Swap(i,j int) { - ul[i],ul[j] = ul[j],ul[i] -} -func (ul uMenuT) Less(i,j int) bool { - return ul[i].Sort < ul[j].Sort -} +package service + +import ( + "basic.com/valib/logger.git" + "errors" + "sort" + "strings" + "vamicro/extend/util" + "vamicro/system-service/models" + "vamicro/system-service/vo" +) + +type SysMenuService struct { + +} + +func (sms *SysMenuService) Save(menu models.SysMenu) (bool,models.SysMenu){ + if menu.ParentId == "" || menu.ParentId == "0" { + menu.ParentId = "0" + menu.ParentIds= "0" + } else { + var pMenu models.SysMenu + + rows,_ := pMenu.SelectById(menu.ParentId) + if rows > 0 { + menu.ParentIds = pMenu.ParentIds+","+pMenu.Id + } else { + menu.ParentId = "0" + menu.ParentIds= "0" + } + } + if menu.Id == "" { + menu.Id = util.PseudoUuid() + if menu.Insert() { + return true,menu + } else { + return false,menu + } + } else { + if menu.Update() { + return true,menu + } else { + return false,menu + } + } +} + +/* + 榛樿搴旂敤鍙互鍏蜂綋鍒板唴閮ㄧ殑鎸夐挳鏉冮檺 + 鍙�夊簲鐢ㄥ彧鎺у埗鍒拌彍鍗曠殑鏄剧ず +*/ +func (sms *SysMenuService) GetMenuTree(userId string, myMenuIds map[string]string) ([]vo.SysMenuTree,error) { + var user models.SysUser + rows, _ := user.SelectById(userId) + if rows >0 { + var menuE models.SysMenu + allMenus := menuE.FindAll() + + var menuM = make(map[string]models.SysMenu, 0) + if allMenus !=nil { + for _,mu :=range allMenus { + menuM[mu.Id] = mu + } + } + + var role models.SysRole + roles := role.FindByUserId(user.Id) + logger.Debug("len(roles):", len(roles)) + if roles !=nil && len(roles) >0 { + var userMenus []models.SysMenu + if roles[0].Name == "瓒呯骇绠$悊鍛�" { + userMenus = allMenus + } else if roles[0].Name == "绠$悊鍛�" || roles[0].Name == "鏅�氱敤鎴�" { + //鏌ユ湰浜哄彲浠ョ湅鍒扮殑鑿滃崟 + userMenus = menuE.FindByUserId(user.Id) + if len(userMenus) == 0 { + userMenus = menuE.FindByRoleId(roles[0].Id) + } + //userMenus = allMenus + } + logger.Debug("len(userMenus):", len(userMenus)) + var uM = make(map[string]models.SysMenu,0) + if len(userMenus) >0 { + for _,srmE := range userMenus{ + if _,ok :=uM[srmE.Id];!ok{ + menuModel := menuM[srmE.Id] + uM[menuModel.Id] = menuModel + + pidArr := strings.Split(menuModel.ParentIds, ",") + for _,pid :=range pidArr { + if pid !="" && pid !="0" { + if _,k :=uM[pid];!k{ + uM[pid] = menuM[pid] + } + } + } + } + } + + var allUserMenus []models.SysMenu + for _,v :=range uM { + allUserMenus = append(allUserMenus, v) + } + uS := menuFormat(&allUserMenus,"0", myMenuIds) + var sUs uMenuT + sUs = uS + sort.Sort(sUs) + return sUs,nil + } else { + return []vo.SysMenuTree{},nil + } + } else { + return nil,errors.New("user role wrong") + } + } else { + return nil,errors.New("user not found") + } +} + +func menuFormat(dbArr *[]models.SysMenu, parentId string, myMenuIds map [string]string) []vo.SysMenuTree { + var arr []vo.SysMenuTree + for _, m := range *dbArr { + if parentId == m.ParentId { + tmp := vo.SysMenuTree{} + tmp.Id = m.Id + tmp.Name = m.Name + tmp.Sort = m.Sort + _,ok := myMenuIds[m.Id] + tmp.Selected = ok + + children := menuFormat(dbArr, m.Id, myMenuIds) + tmp.Children = children + arr = append(arr, tmp) + } + } + var sUs uMenuT + sUs = arr + sort.Sort(sUs) + return sUs +} + +type uMenuT []vo.SysMenuTree + +func (ul uMenuT) Len()int { + return len(ul) +} +func (ul uMenuT) Swap(i,j int) { + ul[i],ul[j] = ul[j],ul[i] +} +func (ul uMenuT) Less(i,j int) bool { + return ul[i].Sort < ul[j].Sort +} -- Gitblit v1.8.0