|
|
|
@ -613,8 +613,8 @@ func QueryGoodsDetailNew(c *gin.Context) {
|
|
|
|
|
dbc.DB.Table((&goods.MainPhoto{}).TableName()).Order("order_no asc, is_master desc").Find(&(summary.MainPhotos), "goods_id = ? and is_master = 0", p.GoodsID)
|
|
|
|
|
dbc.DB.Table((&goods.Sku{}).TableName()).Find(&(summary.Sku), "goods_id = ?", p.GoodsID)
|
|
|
|
|
|
|
|
|
|
for _, v := range summary.Sku {
|
|
|
|
|
v.Commission = v.DiscountPrice.Sub(v.PurchasePrice).Mul(rate)
|
|
|
|
|
for index, v := range summary.Sku {
|
|
|
|
|
summary.Sku[index].Commission = v.DiscountPrice.Sub(v.PurchasePrice).Mul(rate)
|
|
|
|
|
}
|
|
|
|
|
now := time.Now()
|
|
|
|
|
var promotionGoods promotion.Goods
|
|
|
|
@ -683,77 +683,77 @@ func QueryGoodsDetailNew(c *gin.Context) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//新增秒杀模块拦截判断
|
|
|
|
|
var seckill flashsale.RecookSecKillModel
|
|
|
|
|
mysql2.Db.Table(seckill.TableName()).Where("activity_start_time<?", now).Where("activity_end_time>?", now).Where("status=2").First(&seckill)
|
|
|
|
|
//var seckill flashsale.RecookSecKillModel
|
|
|
|
|
//mysql2.Db.Table(seckill.TableName()).Where("activity_start_time<?", now).Where("activity_end_time>?", now).Where("status=2").First(&seckill)
|
|
|
|
|
//获取当前时间段的商品
|
|
|
|
|
now2 := time.Date(0, 1, 1, now.Hour(), now.Minute(), now.Second(), 0, time.Local)
|
|
|
|
|
var secgoods []flashsale.RecookSecKillSortModel
|
|
|
|
|
mysql2.Db.Table((&flashsale.RecookSecKillSortModel{}).TableName()).Where("show_time_start<?", now2).Where("show_time_end>?", now2).Where("sec_kill_activity_id=?", seckill.Id).Where("goods_id=?", summary.ID).Find(&secgoods)
|
|
|
|
|
//now2 := time.Date(0, 1, 1, now.Hour(), now.Minute(), now.Second(), 0, time.Local)
|
|
|
|
|
//var secgoods []flashsale.RecookSecKillSortModel
|
|
|
|
|
//mysql2.Db.Table((&flashsale.RecookSecKillSortModel{}).TableName()).Where("show_time_start<?", now2).Where("show_time_end>?", now2).Where("sec_kill_activity_id=?", seckill.Id).Where("goods_id=?", summary.ID).Find(&secgoods)
|
|
|
|
|
//若该商品在秒杀中,则,重新赋值
|
|
|
|
|
if len(secgoods) > 0 {
|
|
|
|
|
//秒杀价格
|
|
|
|
|
var mp = make(map[uint]flashsale.RecookSecKillGoodsModel)
|
|
|
|
|
var sl []flashsale.RecookSecKillGoodsModel
|
|
|
|
|
mysql2.Db.Table((&flashsale.RecookSecKillGoodsModel{}).TableName()).Where("sec_kill_activity_id=?", seckill.Id).Where("goods_id=?", summary.ID).Find(&sl)
|
|
|
|
|
for _, v := range sl {
|
|
|
|
|
mp[v.GoodsSkuId] = v
|
|
|
|
|
}
|
|
|
|
|
for i, sku := range summary.Sku {
|
|
|
|
|
if _, ok := mp[sku.ID]; ok {
|
|
|
|
|
summary.Sku[i].DiscountPrice = mp[sku.ID].SecKillDiscountPrice
|
|
|
|
|
summary.Sku[i].Commission = mp[sku.ID].SecKillDiscountPrice.Mul(mp[sku.ID].SecKillCommissionRate).Truncate(2)
|
|
|
|
|
} else {
|
|
|
|
|
summary.Sku[i] = goods.Sku{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
summary.SecKill.SecKill = 1
|
|
|
|
|
summary.SecKill.SecKillEndTime = secgoods[0].ShowTimeEnd.Format("15:04:05")
|
|
|
|
|
var newsku []goods.Sku
|
|
|
|
|
minPrice := summary.Sku[0].DiscountPrice
|
|
|
|
|
maxCom := summary.Sku[0].Commission
|
|
|
|
|
for _, v := range summary.Sku {
|
|
|
|
|
if v.ID > 0 {
|
|
|
|
|
newsku = append(newsku, v)
|
|
|
|
|
if v.DiscountPrice.LessThan(minPrice) {
|
|
|
|
|
minPrice = v.DiscountPrice
|
|
|
|
|
}
|
|
|
|
|
if v.Commission.GreaterThan(maxCom) {
|
|
|
|
|
maxCom = v.Commission
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
summary.SecKill.SecKillCommission = maxCom
|
|
|
|
|
summary.SecKill.SecKillMinPrice = minPrice
|
|
|
|
|
summary.Sku = newsku
|
|
|
|
|
for i, v := range summary.Attributes {
|
|
|
|
|
for i2, j := range v.Children {
|
|
|
|
|
if _, ok := mp[j.ID]; ok {
|
|
|
|
|
} else {
|
|
|
|
|
summary.Attributes[i].Children[i2] = goods.Attribute{}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var newat []attributeSub
|
|
|
|
|
for _, v := range summary.Attributes {
|
|
|
|
|
var newattri []goods.Attribute
|
|
|
|
|
for _, j := range v.Children {
|
|
|
|
|
if j.ID > 0 {
|
|
|
|
|
newattri = append(newattri, j)
|
|
|
|
|
} else {
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
newat = append(newat, attributeSub{
|
|
|
|
|
Name: v.Name,
|
|
|
|
|
Children: newattri,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
summary.Attributes = newat
|
|
|
|
|
//判断结束
|
|
|
|
|
}
|
|
|
|
|
//if len(secgoods) > 0 {
|
|
|
|
|
// //秒杀价格
|
|
|
|
|
// var mp = make(map[uint]flashsale.RecookSecKillGoodsModel)
|
|
|
|
|
// var sl []flashsale.RecookSecKillGoodsModel
|
|
|
|
|
// mysql2.Db.Table((&flashsale.RecookSecKillGoodsModel{}).TableName()).Where("sec_kill_activity_id=?", seckill.Id).Where("goods_id=?", summary.ID).Find(&sl)
|
|
|
|
|
// for _, v := range sl {
|
|
|
|
|
// mp[v.GoodsSkuId] = v
|
|
|
|
|
// }
|
|
|
|
|
// for i, sku := range summary.Sku {
|
|
|
|
|
// if _, ok := mp[sku.ID]; ok {
|
|
|
|
|
// summary.Sku[i].DiscountPrice = mp[sku.ID].SecKillDiscountPrice
|
|
|
|
|
// summary.Sku[i].Commission = mp[sku.ID].SecKillDiscountPrice.Mul(mp[sku.ID].SecKillCommissionRate).Truncate(2)
|
|
|
|
|
// } else {
|
|
|
|
|
// summary.Sku[i] = goods.Sku{}
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// summary.SecKill.SecKill = 1
|
|
|
|
|
// summary.SecKill.SecKillEndTime = secgoods[0].ShowTimeEnd.Format("15:04:05")
|
|
|
|
|
// var newsku []goods.Sku
|
|
|
|
|
// minPrice := summary.Sku[0].DiscountPrice
|
|
|
|
|
// maxCom := summary.Sku[0].Commission
|
|
|
|
|
// for _, v := range summary.Sku {
|
|
|
|
|
// if v.ID > 0 {
|
|
|
|
|
// newsku = append(newsku, v)
|
|
|
|
|
// if v.DiscountPrice.LessThan(minPrice) {
|
|
|
|
|
// minPrice = v.DiscountPrice
|
|
|
|
|
// }
|
|
|
|
|
// if v.Commission.GreaterThan(maxCom) {
|
|
|
|
|
// maxCom = v.Commission
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// continue
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// summary.SecKill.SecKillCommission = maxCom
|
|
|
|
|
// summary.SecKill.SecKillMinPrice = minPrice
|
|
|
|
|
// summary.Sku = newsku
|
|
|
|
|
// for i, v := range summary.Attributes {
|
|
|
|
|
// for i2, j := range v.Children {
|
|
|
|
|
// if _, ok := mp[j.ID]; ok {
|
|
|
|
|
// } else {
|
|
|
|
|
// summary.Attributes[i].Children[i2] = goods.Attribute{}
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// var newat []attributeSub
|
|
|
|
|
// for _, v := range summary.Attributes {
|
|
|
|
|
// var newattri []goods.Attribute
|
|
|
|
|
// for _, j := range v.Children {
|
|
|
|
|
// if j.ID > 0 {
|
|
|
|
|
// newattri = append(newattri, j)
|
|
|
|
|
// } else {
|
|
|
|
|
// continue
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// newat = append(newat, attributeSub{
|
|
|
|
|
// Name: v.Name,
|
|
|
|
|
// Children: newattri,
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
// summary.Attributes = newat
|
|
|
|
|
// //判断结束
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
back.Suc(c, "操作成功", &summary)
|
|
|
|
|
rankings := goods.HotSellRankings{
|
|
|
|
|