64 lines
1.9 KiB
Go
64 lines
1.9 KiB
Go
package gmodel
|
|
|
|
import "context"
|
|
|
|
// TODO: 使用model的属性做你想做的
|
|
func (m *LdapMenusModel) Create(ctx context.Context, data *LdapMenus) error {
|
|
return m.db.WithContext(ctx).Model(&LdapMenus{}).Create(&data).Error
|
|
}
|
|
func (m *LdapMenusModel) FindOne(ctx context.Context, id int64) (resp *LdapMenus, err error) {
|
|
err = m.db.WithContext(ctx).Model(&LdapMenus{}).Where("id= ? and status = ?", id, 1).Take(&resp).Error
|
|
return resp, err
|
|
}
|
|
|
|
func (m *LdapMenusModel) FindByPath(ctx context.Context, path string) (resp *LdapMenus, err error) {
|
|
err = m.db.WithContext(ctx).Model(&LdapMenus{}).Where("path= ? and status = ?", path, 1).Take(&resp).Error
|
|
return resp, err
|
|
}
|
|
func (m *LdapMenusModel) Update(ctx context.Context, id int64, data *LdapMenus) error {
|
|
return m.db.WithContext(ctx).Model(&LdapMenus{}).Where("id = ?", id).Updates(&data).Error
|
|
}
|
|
|
|
type GetMenuListByParamReq struct {
|
|
Ids []int64
|
|
Name string
|
|
Title string
|
|
Path string
|
|
Status *int64
|
|
ParentId *int64
|
|
Sort string
|
|
Page int
|
|
Limit int
|
|
}
|
|
|
|
func (m *LdapMenusModel) GetMenuListByParam(ctx context.Context, req GetMenuListByParamReq) (resp []LdapMenus, total int64, err error) {
|
|
db := m.db.WithContext(ctx).Model(&LdapMenus{})
|
|
if len(req.Ids) > 0 {
|
|
db = db.Where("id in(?)", req.Ids)
|
|
}
|
|
if req.Name != "" {
|
|
db = db.Where("name like ?", "%"+req.Name+"%")
|
|
}
|
|
if req.Title != "" {
|
|
db = db.Where("title like ?", "%"+req.Title+"%")
|
|
}
|
|
if req.Name != "" {
|
|
db = db.Where("path like ?", "%"+req.Path+"%")
|
|
}
|
|
if req.Status != nil {
|
|
db = db.Where("status = ?", req.Status)
|
|
}
|
|
if req.ParentId != nil {
|
|
db = db.Where("parent_id = ?", req.ParentId)
|
|
}
|
|
if req.Sort != "" {
|
|
db = db.Order(req.Sort)
|
|
}
|
|
if err = db.Count(&total).Error; err != nil {
|
|
return nil, 0, err
|
|
}
|
|
offset := (req.Page - 1) * req.Limit
|
|
err = db.Offset(offset).Limit(req.Limit).Find(&resp).Error
|
|
return resp, total, err
|
|
}
|