parent
424c63b4d7
commit
4f4b17cb23
@ -0,0 +1,99 @@
|
||||
package goods
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/shopspring/decimal"
|
||||
"recook/internal/back"
|
||||
"recook/internal/dbc"
|
||||
"recook/internal/model/promotion"
|
||||
"recook/internal/model/shopping_trolley"
|
||||
"recook/internal/v2/model/recook/goods"
|
||||
"recook/tools"
|
||||
)
|
||||
|
||||
type ShoppingCart struct {
|
||||
BrandID uint `json:"brandID"` //品牌id
|
||||
BrandLogo string `json:"brandLogo"` //品牌logo
|
||||
BrandName string `json:"brandName"` //品牌名称
|
||||
ShoppingTrolleyID uint `json:"shoppingTrolleyId"` //购物车id
|
||||
GoodsID uint `json:"goodsId"` //商品id
|
||||
GoodsName string `json:"goodsName"` //商品名称
|
||||
Description string `json:"description"` //商品描述
|
||||
SkuName string `json:"skuName"` //商品sku名称
|
||||
Quantity uint `json:"quantity"` //购物车商品数量
|
||||
Inventory uint `json:"inventory"` // 总库存
|
||||
SalesVolume uint `json:"salesVolume"` // 总销量
|
||||
MainPhotoURL string `json:"mainPhotoUrl"` // 主图链接
|
||||
PromotionName string `json:"promotionName"` //促销名称
|
||||
OriginalPrice decimal.Decimal `json:"originalPrice"` //原价
|
||||
Price decimal.Decimal `json:"price"` //售价
|
||||
Commission decimal.Decimal `json:"commission"` //提成
|
||||
Valid bool `json:"valid"` //超出库存
|
||||
Promotion *promotion.Goods `gorm:"column:promotion" json:"promotion"` //促销
|
||||
IsImport int `json:"isImport"` //是否进口商品
|
||||
Storehouse int `json:"storehouse"` //进口商品仓库
|
||||
IsFerme int `json:"isFerme"` //是否包税
|
||||
Ferme decimal.Decimal `json:"ferme"`
|
||||
HasCoin bool `json:"hasCoin"` //是否支持瑞币抵扣
|
||||
HasBalance bool `json:"hasBalance"` //是否支持余额支付
|
||||
PublishStatus uint `json:"publish_status"` //是否上下架
|
||||
CountryIcon string `json:"country_icon"`
|
||||
GysId uint `json:"gys_id"` //供应商id
|
||||
SecKill SecKillDetail `json:"sec_kill"` //秒杀
|
||||
}
|
||||
|
||||
// QueryCartGoodsList @Title 购物车列表
|
||||
func QueryCartGoodsList(c *gin.Context) {
|
||||
var p queryShoppingTrolleyListParam
|
||||
if err := tools.ParseParams(&p, c); err != nil {
|
||||
back.Fail(c, err.Error())
|
||||
return
|
||||
}
|
||||
p.UserID = 1
|
||||
if p.UserID == 0 {
|
||||
back.Suc(c, "", make([]ShoppingCart, 0, 0))
|
||||
return
|
||||
}
|
||||
//var u user.Information
|
||||
//dbc.DB.First(&u, "id = ?", p.UserID)
|
||||
var trolleyList []shopping_trolley.Information
|
||||
subShoppingCartList := make([]ShoppingCart, 0, 0)
|
||||
dbc.DB.Preload("Brand").Preload("Goods").Preload("Sku").Order("created_at desc").Find(&trolleyList, "user_id = ?", p.UserID)
|
||||
recookGoodsInfoModel := &goods.RecookGoodsInfoModel{}
|
||||
valid := true
|
||||
for _, t := range trolleyList {
|
||||
if t.Quantity > t.Sku.Inventory {
|
||||
valid = false
|
||||
}
|
||||
subShoppingCartList = append(subShoppingCartList, ShoppingCart{
|
||||
BrandID: t.BrandID,
|
||||
BrandLogo: t.Brand.LogoURL,
|
||||
BrandName: t.Brand.Name,
|
||||
ShoppingTrolleyID: t.ID,
|
||||
GoodsID: t.GoodsID,
|
||||
GoodsName: t.Goods.GoodsName,
|
||||
Description: t.Goods.Description,
|
||||
SkuName: t.Sku.Name,
|
||||
Quantity: t.Quantity,
|
||||
Inventory: t.Sku.Inventory,
|
||||
SalesVolume: t.Sku.SalesVolume,
|
||||
MainPhotoURL: t.Sku.PicURL,
|
||||
PromotionName: "",
|
||||
OriginalPrice: t.Sku.OriginalPrice,
|
||||
Price: t.Sku.DiscountPrice,
|
||||
Commission: t.Sku.Commission,
|
||||
Valid: valid,
|
||||
Promotion: nil,
|
||||
IsImport: t.Goods.IsImport,
|
||||
Storehouse: t.Goods.Storehouse,
|
||||
IsFerme: t.Goods.IsFerme,
|
||||
Ferme: t.Sku.PurchasePrice.Mul(decimal.NewFromFloat(1.2)).Mul(decimal.NewFromFloat(0.091)).Truncate(2),
|
||||
HasCoin: recookGoodsInfoModel.HasCoin(t.Goods.Storehouse),
|
||||
HasBalance: recookGoodsInfoModel.HasBalance(t.Goods.Storehouse),
|
||||
PublishStatus: t.Goods.PublishStatus,
|
||||
CountryIcon: "",
|
||||
GysId: t.Goods.VendorID,
|
||||
})
|
||||
}
|
||||
back.Suc(c, "操作成功", subShoppingCartList)
|
||||
}
|
Loading…
Reference in new issue