123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package system
- import (
- "context"
- "hongze/hrms_api/global"
- "hongze/hrms_api/models/base"
- )
- // 菜单表
- type SysMenu struct {
- MenuId int64 `gorm:"primaryKey;column:menu_id;" json:"menu_id"`
- ParentId int64 `gorm:"column:parent_id" json:"parent_id"` //父级菜单ID
- RootId int64 `gorm:"column:root_id" json:"root_id"` //顶层菜单ID
- Name string `gorm:"column:name" json:"name"` //菜单名称或者按钮名称
- Sort int8 `gorm:"column:sort" json:"sort"` //排序序号
- Path string `gorm:"column:path" json:"path"` //路由地址
- PathName string `gorm:"column:path_name" json:"path_name"` //路由名称
- IconPath string `gorm:"column:icon_path" json:"icon_path"` //菜单图标地址
- Component string `gorm:"column:component" json:"component"` //组件路径
- Hidden int8 `gorm:"column:hidden" json:"hidden"` //是否隐藏:1-隐藏 0-显示
- HiddenLayout int8 `gorm:"column:hidden_layout" json:"hidden_layout"` //是否隐藏layout:1-隐藏 0-显示
- Level int8 `gorm:"column:level" json:"level"`
- MenuType int8 `gorm:"column:menu_type" json:"menu_type"` //菜单类型: 0-菜单, 1-按钮
- ButtonCode string `gorm:"column:button_code" json:"button_code"` //按钮唯一标识
- base.TimeBase
- }
- // TableName get sql table name.获取数据库表名
- func (m *SysMenu) TableName() string {
- return "sys_menu"
- }
- type SysMenuAddReq struct {
- ParentId int64 `json:"parent_id"` //父级菜单ID
- Name string `json:"name" binding:"required"` //菜单名称或者按钮名称
- Sort int8 `json:"sort"` //排序序号
- Path string `json:"path"` //路由地址
- PathName string `json:"path_name"` //路由名称
- IconPath string `json:"icon_path"` //菜单图标地址
- Component string `json:"component"` //组件路径
- Hidden int8 `json:"hidden" binding:"oneof=0 1"` //是否隐藏:1-隐藏 0-显示
- HiddenLayout int8 `json:"hidden_layout" binding:"oneof=0 1"` //是否隐藏layout:1-隐藏 0-显示
- MenuType int8 `json:"menu_type" binding:"oneof=0 1"` //菜单类型: 0-菜单, 1-按钮
- ButtonCode string `json:"button_code" binding:"required_if=menu_type 1"` //按钮唯一标识
- }
- type SysMenuEditReq struct {
- MenuId int64 `json:"menu_id" binding:"required,gte=1"`
- SysMenuAddReq
- }
- // 新增
- func (m *SysMenu) Add() (err error) {
- err = global.DEFAULT_MYSQL.Create(m).Error
- return
- }
- // 修改
- func (m *SysMenu) Update(updateCols []string) (err error) {
- err = global.DEFAULT_MYSQL.Model(m).Select(updateCols).Updates(m).Error
- return
- }
- func (m *SysMenu) SelectPage(page base.IPage, condition string, pars []interface{}) (count int64,results []*SysMenu, err error) {
- results = make([]*SysMenu, 0)
- query := global.DEFAULT_MYSQL.WithContext(context.TODO()).Model(m).
- Where(condition, pars...)
- query.Count(&count)
- if len(page.GetOrderItemsString()) > 0 {
- query = query.Order(page.GetOrderItemsString())
- }
- err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&results).Error
- return
- }
- type SysMenuButtonResp struct {
- MenuId int64 `json:"menu_id"` //菜单ID
- ParentId int64 `json:"parent_id"` //父级菜单ID
- Name string `json:"name" binding:"required"` //菜单名称或者按钮名称
- MenuType int8 `json:"menu_type" binding:"oneof=0 1"` //菜单类型: 0-菜单, 1-按钮
- ButtonCode string `json:"button_code" binding:"required_if=menu_type 1"` //按钮唯一标识
- }
- func (m *SysMenu) GetMenuListByCondition(condition string, pars []interface{}, orderStr string) (results []*SysMenu, err error) {
- results = make([]*SysMenu, 0)
- if orderStr == "" {
- orderStr = "sort asc, create_time desc"
- }
- err = global.DEFAULT_MYSQL.WithContext(context.TODO()).Model(m).
- Where(condition, pars...).Order(orderStr).Find(&results).Error
- return
- }
- type MenuShortListItem struct {
- MenuId int64 `json:"menu_id" form:"menu_id"` //菜单ID
- }
- type MenuListReq struct {
- base.PageReq
- Name string `json:"name" form:"name"` //菜单名称或者按钮名称
- HideLevel3 int8 `json:"hide_level3" form:"hide_level3"` //返回值是否需要隐藏三级的菜单和三级按钮(1-隐藏,0-不隐藏)
- HideButton int8 `json:"hide_button" form:"hide_button"` //返回值是否需要隐藏按钮(1-隐藏,0-不隐藏)
- }
- type MenuListItemResp struct {
- MenuId int64 `json:"menu_id"` //菜单ID
- ParentId int64 `json:"parent_id"` //父级菜单ID
- Name string `json:"name"` //菜单名称或者按钮名称
- Sort int8 `json:"sort"` //排序序号
- Path string `json:"path"` //页面地址或者Api请求地址
- PathName string `json:"path_name"` //路由名称
- IconPath string `json:"icon_path"` //菜单图标地址
- Component string `json:"component"` //组件路径
- Hidden int8 `json:"hidden"` //是否隐藏:1-隐藏 0-显示
- HiddenLayout int8 `json:"hidden_layout"` //是否隐藏layout:1-隐藏 0-显示
- Level int8 `json:"level"`
- MenuType int8 `json:"menu_type"` //菜单类型: 0-菜单, 1-按钮
- ButtonCode string `json:"button_code"` //按钮唯一标识
- HasBind bool `json:"has_bind"` //是否已绑定,true 已绑定,false 未绑定
- CreateTime string `json:"create_time"` //创建时间
- ModifyTime string `json:"modify_time"` //最后更新时间
- Children []*MenuListItemResp `json:"children"`
- }
- func (m *SysMenu) GetMenuByName(name string) (list []*SysMenu, err error) {
- err = global.DEFAULT_MYSQL.Model(m).Where("name like ?", name).Find(&list).Error
- return
- }
- func (m *SysMenu) GetMenuByMenuId(menuId int64) (item *SysMenu, err error) {
- err = global.DEFAULT_MYSQL.Model(m).Where("menu_id = ?", menuId).First(&item).Error
- return
- }
- // 删除
- func (m *SysMenu) DeleteByCondition(condition string, pars []interface{}) (err error) {
- err = global.DEFAULT_MYSQL.Where(condition, pars...).Delete(m).Error
- return
- }
|