54 lines
1.2 KiB
Go
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
|
|
}
|