You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.4 KiB

package jyy
import (
"recook/internal/libs/bean"
"recook/internal/v2/model/jyy"
"recook/internal/v2/model/recook/goods"
"git.oa00.com/go/mysql"
)
type logic struct {
}
var Logic = logic{}
type ArgsBannerList struct {
bean.Page
}
func (o logic) List(args ArgsBannerList) (res []jyy.Banner, total int64, err error) {
query := mysql.Db.Model(&jyy.Banner{}).Order("order_sort asc").Order("id desc")
query.Count(&total)
query.Limit(args.GetLimit()).Offset(args.GetStart()).Find(&res)
return
}
type ArgsBannerInfo struct {
jyy.Banner
}
func (o logic) Create(args ArgsBannerInfo) error {
args.ID = 0
var gs goods.RecookGoodsInfoModel
if err := mysql.Db.First(&gs, "id = ? and sale_publish = 1", args.GoodsID).Error; err != nil {
return err
}
if err := mysql.Db.Create(&args).Error; err != nil {
return err
}
return nil
}
type ArgsBannerUpdate struct {
jyy.Banner
ID uint `json:"id" validate:"required"`
}
func (o logic) Update(args ArgsBannerUpdate) error {
var gs goods.RecookGoodsInfoModel
if err := mysql.Db.First(&gs, "id = ? and sale_publish = 1", args.GoodsID).Error; err != nil {
return err
}
if err := mysql.Db.Model(&args).Updates(args).Error; err != nil {
return err
}
return nil
}
type ArgsBannerDelete struct {
ID uint `json:"id" validate:"required"`
}
func (o logic) Delete(args ArgsBannerDelete) error {
if err := mysql.Db.Delete(&jyy.Banner{}, "id = ?", args.ID).Error; err != nil {
return err
}
return nil
}