Lee-WineList/repository/wine.go
2023-04-27 18:02:38 +08:00

55 lines
1.1 KiB
Go

package repository
import (
"Lee-WineList/client"
"Lee-WineList/model/entity"
"Lee-WineList/model/param"
"git.echol.cn/loser/logger/log"
)
type wine struct {
}
// Wine ...
func Wine() *wine {
return &wine{}
}
// GetWineList 获取酒单列表
func (w *wine) GetWineList(p param.GetWineList) (wines []entity.Wine, err error) {
db := client.MySQL.Model(&wines).Preload("Materials").Scopes(page(p.Current, p.Size))
if p.UserId != 0 {
db = db.Where("user_id = ?", p.UserId)
}
if p.Category != "" {
db = db.Where("category = ?", p.Category)
}
err = db.Find(&wines).Error
if err != nil {
log.Errorf("获取酒单列表失败:%s", err.Error())
return
}
return
}
func (w *wine) Add(p entity.Wine) (err error) {
err = client.MySQL.Create(&p).Error
return
}
func (w *wine) Update(p entity.Wine) (err error) {
err = client.MySQL.Save(&p).Error
return
}
func (w *wine) Delete(p *entity.Wine, ue *entity.User) (err error) {
err = client.MySQL.Table(p.TableName()).Where("wine_id = ? and user_id = ?", p.WineId, ue.Id).Delete(&p).Error
if err != nil {
log.Errorf("删除酒单失败:%s", err.Error())
return
}
return
}