2025-07-02 14:51:23 +08:00

257 lines
6.0 KiB
Go

package system
import (
v1 "management/internal/erpserver/service/v1"
"management/internal/pkg/gin/gu"
"github.com/gin-gonic/gin"
)
const style = "layui-btn-primary layui-btn-sm"
type MenuApp struct {
menuService v1.MenuService
}
func NewMenuApp(menuService v1.MenuService) *MenuApp {
return &MenuApp{
menuService: menuService,
}
}
type Menu struct {
ID int `json:"id"`
Name string `json:"name"`
Url string `json:"url"`
Icon string `json:"icon"`
Child []Menu `json:"child"`
}
func (a *MenuApp) Menus(c *gin.Context) {
res := []Menu{
{
ID: 1,
Name: "系统管理",
Icon: "setting",
Url: "",
Child: []Menu{
{
ID: 11,
Name: "菜单管理",
Icon: "baseball",
Url: "/system/menu",
},
{
ID: 12,
Name: "角色管理",
Icon: "baseball",
Url: "/system/role",
},
{
ID: 12,
Name: "部门管理",
Icon: "baseball",
Url: "/system/department",
},
{
ID: 13,
Name: "用户管理",
Icon: "baseball",
Url: "/system/user",
},
{
ID: 14,
Name: "登录日志",
Icon: "baseball",
Url: "/system/login_log",
},
{
ID: 15,
Name: "操作日志",
Icon: "baseball",
Url: "/system/audit_log",
},
},
},
}
gu.Ok(c, res)
}
//
//func (a *MenuApp) list(w http.ResponseWriter, r *http.Request) {
// switch r.Method {
// case http.MethodGet:
// ctx := r.Context()
// a.render.Render(ctx, w, menu.List(ctx))
// case http.MethodPost:
// res, err := a.menuService.ListMenuTree(r.Context())
// if err != nil {
// a.render.JSONErr(w, err.Error())
// return
// }
// a.render.JSON(w, render.NewResponseList(0, res))
// default:
// a.render.JSONErr(w, "method not allowed")
// }
//}
//
//func (a *MenuApp) add(w http.ResponseWriter, r *http.Request) {
// ctx := r.Context()
// a.render.Render(ctx, w, menu.Edit(ctx, &systemmodel.Menu{Style: style, Visible: true, Sort: 6666}))
//}
//
//func (a *MenuApp) addChildren(w http.ResponseWriter, r *http.Request) {
// ctx := r.Context()
// vars := r.URL.Query()
// parentID := convertor.QueryInt[int32](vars, "parentID", 0)
// vm := &systemmodel.Menu{ParentID: parentID, Style: style, Visible: true, Sort: 6666}
// parent, err := a.menuService.Get(ctx, parentID)
// if err == nil {
// if parent.Type == "node" {
// vm.Type = "menu"
// } else if parent.Type == "menu" {
// vm.Type = "btn"
// }
// }
// a.render.Render(ctx, w, menu.Edit(ctx, vm))
//}
//
//func (a *MenuApp) edit(w http.ResponseWriter, r *http.Request) {
// ctx := r.Context()
// vars := r.URL.Query()
// id := convertor.QueryInt[int32](vars, "id", 0)
// vm := &systemmodel.Menu{Style: style, Sort: 6666}
// if id > 0 {
// vm, _ = a.menuService.Get(r.Context(), id)
// }
// a.render.Render(ctx, w, menu.Edit(ctx, vm))
//}
//
//func (a *MenuApp) save(w http.ResponseWriter, r *http.Request) {
// id := convertor.Int[int32](r.PostFormValue("ID"), 0)
// name := r.PostFormValue("Name")
// displayName := r.PostFormValue("DisplayName")
// t := r.PostFormValue("Type")
// url := r.PostFormValue("Url")
// if len(url) == 0 {
// url = uuid.Must(uuid.NewRandom()).String()
// }
// avatar := r.PostFormValue("Avatar")
// style := r.PostFormValue("Style")
// parentID := convertor.Int[int32](r.PostFormValue("ParentID"), 0)
// visible := convertor.Bool(r.PostFormValue("Visible"), false)
// isList := convertor.Bool(r.PostFormValue("IsList"), false)
// sort := convertor.Int[int32](r.PostFormValue("Sort"), 6666)
// status := convertor.Int[int32](r.PostFormValue("Status"), 0)
//
// ctx := r.Context()
// if len(avatar) > 0 && !strings.Contains(avatar, "layui-icon ") {
// avatar = "layui-icon " + avatar
// }
//
// parentPath := ""
// if parentID > 0 {
// parent, err := a.menuService.Get(ctx, parentID)
// if err != nil {
// a.render.JSONErr(w, err.Error())
// return
// }
// parentPath = parent.ParentPath + "," + strconv.Itoa(int(parentID)) + ","
// parentPath = strings.ReplaceAll(parentPath, ",,", ",")
// }
//
// if id == 0 {
// arg := &systemmodel.Menu{
// Name: name,
// DisplayName: displayName,
// Url: url,
// Type: t,
// ParentID: parentID,
// ParentPath: parentPath,
// Avatar: avatar,
// Style: style,
// Visible: visible,
// IsList: isList,
// Status: status,
// Sort: sort,
// CreatedAt: time.Now(),
// UpdatedAt: time.Now(),
// }
// err := a.menuService.Create(ctx, arg)
// if err != nil {
// if database.IsUniqueViolation(err) {
// a.render.JSONErr(w, "菜单已存在")
// return
// }
// a.render.JSONErr(w, err.Error())
// return
// }
//
// a.render.JSONOk(w, "添加成功")
// } else {
// res, err := a.menuService.Get(ctx, id)
// if err != nil {
// a.render.JSONErr(w, err.Error())
// return
// }
//
// res.Name = name
// res.DisplayName = displayName
// res.Url = url
// res.Type = t
// res.ParentID = parentID
// res.ParentPath = parentPath
// res.Avatar = avatar
// res.Style = style
// res.Visible = visible
// res.IsList = isList
// res.Status = status
// res.Sort = sort
// res.UpdatedAt = time.Now()
// err = a.menuService.Update(ctx, res)
// if err != nil {
// a.render.JSONErr(w, err.Error())
// return
// }
//
// a.render.JSONOk(w, "更新成功")
// }
//}
//
//func (a *MenuApp) data(w http.ResponseWriter, r *http.Request) {
// ctx := r.Context()
// vars := r.URL.Query()
// t := vars.Get("type")
// if t == "tree" {
// res, err := a.menuService.Tree(ctx, 0)
// if err != nil {
// a.render.JSONErr(w, err.Error())
// return
// }
//
// a.render.JSON(w, res)
// return
// } else if t == "xm_select_tree" {
// res, err := a.menuService.XmSelectTree(ctx, 0)
// if err != nil {
// a.render.JSONErr(w, err.Error())
// return
// }
//
// a.render.JSON(w, res)
// return
// }
// a.render.JSON(w, nil)
//}
//
//func (a *MenuApp) refreshCache(w http.ResponseWriter, r *http.Request) {
// err := a.menuService.RefreshCache(r.Context())
// if err != nil {
// a.render.JSONErr(w, err.Error())
// return
// }
//
// a.render.JSONOk(w, "缓存刷新成功")
//}