|
|
@@ -209,3 +209,56 @@ func GetSkuByKey(key string, pageNum, pageSize int) (vo.BaseListVo, string, erro
|
|
|
vo.PageSize = pageSize
|
|
|
return vo, "", nil
|
|
|
}
|
|
|
+
|
|
|
+func SelectSkuInfoBySkuId(skuId int64) (any, error) {
|
|
|
+ //根据skuid 获取GoodsId
|
|
|
+ var sku domain.GoodsSku
|
|
|
+ _, err := configs.Engine.Table("goods_sku").Where("id = ?", skuId).Get(&sku)
|
|
|
+ if err != nil || sku.GoodsId == 0 {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ var goods domain.Goods
|
|
|
+ _, err = configs.Engine.Table("goods_sku").Where("id = ?", sku.GoodsId).Get(&goods)
|
|
|
+ //查询属性
|
|
|
+ var areas = make([]domain.GoodsCommodityArea, 0)
|
|
|
+ err = configs.Engine.Table("goods_commodity_area").
|
|
|
+ Where("goods_id = ?", goods.Id).
|
|
|
+ Find(&areas)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ //查询文章下的所有
|
|
|
+ intrIds := make([]int64, 0)
|
|
|
+ intrIds = append(intrIds, goods.IntroductionId)
|
|
|
+ for i := range areas {
|
|
|
+ if areas[i].DetailIntroductionId != 0 {
|
|
|
+ intrIds = append(intrIds, areas[i].DetailIntroductionId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var iis = ""
|
|
|
+ for i := range intrIds {
|
|
|
+ iis += fmt.Sprint(",", intrIds[i])
|
|
|
+ }
|
|
|
+ iis = iis[1:]
|
|
|
+
|
|
|
+ var intrs = make([]domain.GoodsIntroduction, 0)
|
|
|
+ err = configs.Engine.Table("goods_introduction").
|
|
|
+ Where("FIND_IN_SET(id,?)", iis).
|
|
|
+ Find(&intrs)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ var skus = make([]domain.GoodsSku, 0)
|
|
|
+ err = configs.Engine.Table("goods_sku").Where("goods_id = ?", goods.Id).Find(&skus)
|
|
|
+ return DetailInfo{
|
|
|
+ sku, goods, intrs, skus, skus,
|
|
|
+ }, nil
|
|
|
+}
|
|
|
+
|
|
|
+type DetailInfo struct {
|
|
|
+ Sku domain.GoodsSku `json:"sku"`
|
|
|
+ Goods domain.Goods `json:"goods"`
|
|
|
+ Introduction []domain.GoodsIntroduction `json:"introduction"`
|
|
|
+ Skus []domain.GoodsSku `json:"skus"`
|
|
|
+ RecommendedGoods []domain.GoodsSku `json:"recommendedGoods"` //推荐商品
|
|
|
+}
|