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, "缓存刷新成功") //}