57 lines
3.6 KiB
Go
57 lines
3.6 KiB
Go
package service
|
|
|
|
import "kra/internal/biz"
|
|
|
|
func departmentDTO(v *biz.Department) map[string]any {
|
|
children := make([]map[string]any, 0, len(v.Children))
|
|
for _, c := range v.Children {
|
|
children = append(children, departmentDTO(c))
|
|
}
|
|
return map[string]any{"ID": v.ID, "CreatedAt": v.CreatedAt, "UpdatedAt": v.UpdatedAt, "DeletedAt": nil, "name": v.Name, "parentId": v.ParentID, "ancestors": v.Ancestors, "sort": v.Sort, "leaderId": v.LeaderID, "leader": nil, "status": v.Status, "children": children, "namePath": v.NamePath}
|
|
}
|
|
func positionDTO(v *biz.Position) map[string]any {
|
|
return map[string]any{"ID": v.ID, "CreatedAt": v.CreatedAt, "UpdatedAt": v.UpdatedAt, "DeletedAt": nil, "name": v.Name, "code": v.Code, "sort": v.Sort, "status": v.Status, "remark": v.Remark}
|
|
}
|
|
|
|
func convertAuthority(value biz.Authority) map[string]any {
|
|
return map[string]any{"authorityId": value.AuthorityID, "authorityName": value.AuthorityName, "parentId": value.ParentID, "children": []map[string]any{}, "menus": []any{}, "dataScope": value.DataScope, "defaultRouter": value.DefaultRouter}
|
|
}
|
|
func convertUser(user *biz.User) map[string]any {
|
|
authorities := make([]map[string]any, 0, len(user.Authorities))
|
|
for _, value := range user.Authorities {
|
|
authorities = append(authorities, convertAuthority(value))
|
|
}
|
|
departments := make([]map[string]any, 0, len(user.Departments))
|
|
for i := range user.Departments {
|
|
departments = append(departments, departmentDTO(&user.Departments[i]))
|
|
}
|
|
positions := make([]map[string]any, 0, len(user.Positions))
|
|
for i := range user.Positions {
|
|
positions = append(positions, positionDTO(&user.Positions[i]))
|
|
}
|
|
department := map[string]any{}
|
|
if user.Department != nil {
|
|
department = departmentDTO(user.Department)
|
|
}
|
|
return map[string]any{"ID": user.ID, "CreatedAt": user.CreatedAt, "UpdatedAt": user.UpdatedAt, "DeletedAt": nil, "uuid": user.UUID, "userName": user.Username, "nickName": user.NickName, "headerImg": user.HeaderImg, "authorityId": user.AuthorityID, "authority": convertAuthority(user.Authority), "authorities": authorities, "deptId": user.DeptID, "dept": department, "departments": departments, "positions": positions, "phone": user.Phone, "email": user.Email, "enable": user.Enable, "originSetting": user.OriginSetting}
|
|
}
|
|
func convertMenu(menu *biz.Menu) map[string]any {
|
|
children := make([]map[string]any, 0, len(menu.Children))
|
|
for _, child := range menu.Children {
|
|
children = append(children, convertMenu(child))
|
|
}
|
|
buttons := make([]map[string]any, 0, len(menu.Buttons))
|
|
buttonAuthorities := make(map[string]uint, len(menu.Buttons))
|
|
for _, button := range menu.Buttons {
|
|
buttons = append(buttons, map[string]any{"ID": button.ID, "name": button.Name, "desc": button.Description, "sysBaseMenuID": button.MenuID})
|
|
if button.AuthorityID != 0 {
|
|
buttonAuthorities[button.Name] = button.AuthorityID
|
|
}
|
|
}
|
|
parameters := make([]map[string]any, 0, len(menu.Parameters))
|
|
for _, parameter := range menu.Parameters {
|
|
parameters = append(parameters, map[string]any{"ID": parameter.ID, "SysBaseMenuID": parameter.MenuID, "type": parameter.Type, "key": parameter.Key, "value": parameter.Value})
|
|
}
|
|
return map[string]any{"ID": menu.ID, "parentId": menu.ParentID, "path": menu.Path, "name": menu.Name, "hidden": menu.Hidden, "component": menu.Component, "sort": menu.Sort, "meta": map[string]any{"activeName": menu.ActiveName, "keepAlive": menu.KeepAlive, "defaultMenu": menu.DefaultMenu, "title": menu.Title, "icon": menu.Icon, "closeTab": menu.CloseTab, "transitionType": menu.TransitionType}, "children": children, "parameters": parameters, "menuBtn": buttons, "btns": buttonAuthorities}
|
|
}
|