55 lines
1.1 KiB
Go
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
|
|
}
|