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