website-nav/service/navigation_type.go
2024-10-24 16:55:31 +08:00

54 lines
1.2 KiB
Go

package service
import (
"gorm.io/gorm"
"website-nav/global/client"
"website-nav/http/param"
"website-nav/http/vo"
"website-nav/model"
)
type navigationType struct {
*gorm.DB
}
func NavigationType() navigationType { return navigationType{DB: client.DB} }
// List
// @description: 分页列表
// @receiver s
// @return list
// @return err
func (s navigationType) List(p param.Page) (list []vo.NavigationTypeItem, total int64, err error) {
err = s.Model(&model.NavigationType{}).Scopes(Paginate(p.Current, p.Size)).Find(&list).Offset(-1).Limit(-1).Count(&total).Error
return
}
// CreateType
// @description: 新增/编辑分类
// @receiver s
// @param p
// @return error
func (s navigationType) CreateType(p param.SaveNavigationType) error {
if p.Id != "" {
return s.Model(&model.NavigationType{}).Where("id = ?", p.Id).Updates(map[string]any{
"name": p.Name,
"icon": p.Icon,
}).Error
}
return s.Create(&model.NavigationType{
Name: p.Name,
Icon: p.Icon,
}).Error
}
// Delete
// @description: 删除分类
// @receiver s
// @param id
// @return error
func (s navigationType) Delete(id string) error {
return s.Model(&model.NavigationType{}).Where("id = ?", id).Delete(&model.NavigationType{}).Error
}