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.

68 lines
1.2 KiB

package newertehui
import (
"github.com/gin-gonic/gin"
"recook/internal/back"
"recook/internal/dbc"
"recook/internal/model/newertehui"
"recook/tools"
)
type tehuiParams struct {
CouponID uint `json:"couponId" validate:"required"`
GoodsList []uint `json:"goodsList" validate:"required"`
}
func CreateTehui(c *gin.Context) {
var p tehuiParams
if err := tools.Params(&p, c); err != nil {
back.Fail(c, err.Error())
return
}
var info newertehui.Info
dbc.DB.First(&info)
var goodsList []newertehui.Goods
dbc.DB.Find(&goodsList)
tx := dbc.DB.Begin()
{
if err := tx.Delete(newertehui.Info{}).Error; err != nil {
back.Err(c, err.Error())
tx.Rollback()
return
}
if err := tx.Delete(newertehui.Goods{}).Error; err != nil {
back.Err(c, err.Error())
tx.Rollback()
return
}
info := newertehui.Info{
CouponID: p.CouponID,
}
if err := tx.Create(&info).Error; err != nil {
back.Err(c, err.Error())
tx.Rollback()
return
}
for _, v := range p.GoodsList {
g := newertehui.Goods{
TehuiID: info.ID,
GoodsId: v,
}
if err := tx.Create(&g).Error; err != nil {
back.Err(c, err.Error())
tx.Rollback()
return
}
}
}
tx.Commit()
back.Suc(c, "", nil)
}