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
|
||
|
}
|