|
|
@ -20,6 +20,7 @@ type createPromotionParam struct {
|
|
|
|
StartDate string `json:"startDate" validate:"required" time_format:"2006-01-02"`
|
|
|
|
StartDate string `json:"startDate" validate:"required" time_format:"2006-01-02"`
|
|
|
|
EndDate string `json:"endDate" validate:"required" time_format:"2006-01-02"`
|
|
|
|
EndDate string `json:"endDate" validate:"required" time_format:"2006-01-02"`
|
|
|
|
TimeItems []timeItem `json:"timeItems" validate:"required"`
|
|
|
|
TimeItems []timeItem `json:"timeItems" validate:"required"`
|
|
|
|
|
|
|
|
IsSale bool `json:"is_sale"`
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type timeItem struct {
|
|
|
|
type timeItem struct {
|
|
|
@ -62,8 +63,6 @@ func CreatePromotion(c *gin.Context) {
|
|
|
|
back.Fail(c, "日期无法解析")
|
|
|
|
back.Fail(c, "日期无法解析")
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
startTime := time.Date(startDate.Year(), startDate.Month(), startDate.Day(), 0, 0, 0, 0, time.Local)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
endDate, err := time.Parse("2006-01-02", p.EndDate)
|
|
|
|
endDate, err := time.Parse("2006-01-02", p.EndDate)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
back.Fail(c, "日期无法解析")
|
|
|
|
back.Fail(c, "日期无法解析")
|
|
|
@ -84,29 +83,29 @@ func CreatePromotion(c *gin.Context) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
endTime := time.Date(endDate.Year(), endDate.Month(), endDate.Day(), 23, 59, 59, 0, time.Local)
|
|
|
|
endTime := time.Date(endDate.Year(), endDate.Month(), endDate.Day(), 23, 59, 59, 0, time.Local)
|
|
|
|
// 先检测
|
|
|
|
// // 先检测
|
|
|
|
{
|
|
|
|
// {
|
|
|
|
var promotionGoodsList []promotion.Goods
|
|
|
|
// var promotionGoodsList []promotion.Goods
|
|
|
|
dbc.DB.Select("id, goods_id").Find(&promotionGoodsList, "start_time < ? AND end_time > ?", endTime, startTime)
|
|
|
|
// dbc.DB.Select("id, goods_id").Find(&promotionGoodsList, "start_time < ? AND end_time > ?", endTime, startTime)
|
|
|
|
|
|
|
|
|
|
|
|
ids := map[uint]uint{}
|
|
|
|
// ids := map[uint]uint{}
|
|
|
|
for _, v := range promotionGoodsList {
|
|
|
|
// for _, v := range promotionGoodsList {
|
|
|
|
ids[v.GoodsID] = 1
|
|
|
|
// ids[v.GoodsID] = 1
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
for _, v := range p.TimeItems {
|
|
|
|
// for _, v := range p.TimeItems {
|
|
|
|
for _, v2 := range v.GoodsList {
|
|
|
|
// for _, v2 := range v.GoodsList {
|
|
|
|
if _, ok := ids[v2.GoodsID]; ok {
|
|
|
|
// if _, ok := ids[v2.GoodsID]; ok {
|
|
|
|
back.Fail(c, "商品活动冲突")
|
|
|
|
// back.Fail(c, "商品活动冲突")
|
|
|
|
return
|
|
|
|
// return
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
if len(v.ActivitiesList) < 1 {
|
|
|
|
// if len(v.ActivitiesList) < 1 {
|
|
|
|
continue
|
|
|
|
// continue
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
//for _, v := range p.TimeItems {
|
|
|
|
//for _, v := range p.TimeItems {
|
|
|
|
// for _, g := range v.GoodsList {
|
|
|
|
// for _, g := range v.GoodsList {
|
|
|
@ -136,6 +135,7 @@ func CreatePromotion(c *gin.Context) {
|
|
|
|
Name: p.Name,
|
|
|
|
Name: p.Name,
|
|
|
|
StartDate: formatime.NewDateFrom(startDate),
|
|
|
|
StartDate: formatime.NewDateFrom(startDate),
|
|
|
|
EndDate: formatime.NewDateFrom(endDate),
|
|
|
|
EndDate: formatime.NewDateFrom(endDate),
|
|
|
|
|
|
|
|
IsSale: p.IsSale,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if err := tx.Create(&info).Error; err != nil {
|
|
|
|
if err := tx.Create(&info).Error; err != nil {
|
|
|
|
back.Err(c, err.Error())
|
|
|
|
back.Err(c, err.Error())
|
|
|
|