fix
This commit is contained in:
parent
cdbc82f689
commit
c51a034a9f
|
@ -7,6 +7,7 @@ import (
|
|||
"fusenapi/model/gmodel"
|
||||
"fusenapi/utils/auth"
|
||||
"fusenapi/utils/basic"
|
||||
"fusenapi/utils/format"
|
||||
"fusenapi/utils/s3url_to_s3id"
|
||||
"gorm.io/gorm"
|
||||
"sort"
|
||||
|
@ -86,7 +87,33 @@ func (l *GetTagProductListLogic) GetTagProductList(req *types.GetTagProductListR
|
|||
mapProductSizeCount = make(map[int64]int64) //产品尺寸数量map
|
||||
mapProductTemplate = make(map[int64]int64) //产品模板map
|
||||
mapResourceMetadata = make(map[string]map[string]interface{}) //资源元数据
|
||||
merchantInfo *gmodel.FsMerchantCategory
|
||||
)
|
||||
//选了商家类型
|
||||
if req.MerchantType > 0 {
|
||||
merchantInfo, err = l.svcCtx.AllModels.FsMerchantCategory.FindOne(l.ctx, req.MerchantType)
|
||||
} else {
|
||||
//获取默认的那个
|
||||
merchantInfo, err = l.svcCtx.AllModels.FsMerchantCategory.FindDefualtOne(l.ctx)
|
||||
}
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return resp.SetStatusWithMessage(basic.CodeOK, "the merchant category is not exists", []interface{}{})
|
||||
}
|
||||
logx.Error(err)
|
||||
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get merchant category")
|
||||
}
|
||||
mapRecommendProduct := make(map[int64]struct{})
|
||||
if *merchantInfo.RecommendProduct != "" {
|
||||
ids, err := format.StrSlicToInt64Slice(strings.Split(*merchantInfo.RecommendProduct, ","))
|
||||
if err != nil {
|
||||
logx.Error(err)
|
||||
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to parse merchant recommend product")
|
||||
}
|
||||
for _, v := range ids {
|
||||
mapRecommendProduct[v] = struct{}{}
|
||||
}
|
||||
}
|
||||
//携带产品
|
||||
if req.WithProduct {
|
||||
productList, err = l.getProductRelationInfo(getProductRelationInfoReq{
|
||||
|
@ -115,6 +142,7 @@ func (l *GetTagProductListLogic) GetTagProductList(req *types.GetTagProductListR
|
|||
WithProduct: req.WithProduct,
|
||||
ProductList: productList,
|
||||
MapTagProduct: mapTagProduct,
|
||||
MapRecommendProduct: mapRecommendProduct,
|
||||
MapTagProp: mapTagProp,
|
||||
MapProductMinPrice: mapProductMinPrice,
|
||||
MapProductTemplate: mapProductTemplate,
|
||||
|
@ -265,6 +293,7 @@ type dealWithTagMenuDataReq struct {
|
|||
WithProduct bool
|
||||
ProductList []gmodel.FsProduct
|
||||
MapTagProduct map[int64]types.TagProduct
|
||||
MapRecommendProduct map[int64]struct{}
|
||||
MapTagProp map[int64][]types.CoverDefaultItem
|
||||
ProductTagPropList []gmodel.FsProductTagProp
|
||||
MapProductMinPrice map[int64]int64
|
||||
|
@ -300,6 +329,7 @@ func (l *GetTagProductListLogic) dealWithTagMenuData(req dealWithTagMenuDataReq)
|
|||
TagId: tagInfo.Id,
|
||||
ProductList: req.ProductList,
|
||||
MapTagProp: req.MapTagProp,
|
||||
MapRecommendProduct: req.MapRecommendProduct,
|
||||
MapProductMinPrice: req.MapProductMinPrice,
|
||||
MapProductTemplate: req.MapProductTemplate,
|
||||
MapProductSizeCount: req.MapProductSizeCount,
|
||||
|
@ -386,6 +416,7 @@ type getTagProductsReq struct {
|
|||
TagId int64
|
||||
ProductList []gmodel.FsProduct
|
||||
MapTagProp map[int64][]types.CoverDefaultItem
|
||||
MapRecommendProduct map[int64]struct{}
|
||||
MapProductMinPrice map[int64]int64
|
||||
MapProductTemplate map[int64]int64
|
||||
MapProductSizeCount map[int64]int64
|
||||
|
@ -419,6 +450,10 @@ func (l *GetTagProductListLogic) getTagProducts(req getTagProductsReq) (productL
|
|||
if _, ok = req.MapProductHaveOptionFitting[productInfo.Id]; ok {
|
||||
haveOptionalFitting = true
|
||||
}
|
||||
isRecommend := false
|
||||
if _, ok = req.MapRecommendProduct[productInfo.Id]; ok {
|
||||
isRecommend = true
|
||||
}
|
||||
item := types.TagProduct{
|
||||
Id: productInfo.Id,
|
||||
Sn: *productInfo.Sn,
|
||||
|
@ -427,7 +462,7 @@ func (l *GetTagProductListLogic) getTagProducts(req getTagProductsReq) (productL
|
|||
CoverDefault: []types.CoverDefaultItem{},
|
||||
MinPrice: minPrice,
|
||||
HaveOptionalFitting: haveOptionalFitting,
|
||||
Recommended: *productInfo.IsRecommend > 0,
|
||||
Recommended: isRecommend,
|
||||
Cover: *productInfo.Cover,
|
||||
CoverMetadata: req.MapResourceMetadata[*productInfo.Cover],
|
||||
IsCustomization: *productInfo.IsCustomization,
|
||||
|
|
|
@ -29,9 +29,10 @@ type GetRecommandProductListRsp struct {
|
|||
}
|
||||
|
||||
type GetTagProductListReq struct {
|
||||
Cid int64 `form:"cid,optional"` //分类id
|
||||
TemplateTag string `form:"template_tag,optional"` //模板标签
|
||||
WithProduct bool `form:"with_product,optional"` //是否携带分类下的产品
|
||||
Cid int64 `form:"cid,optional"` //分类id
|
||||
MerchantType int64 `form:"merchant_type,optional"` //商户类型
|
||||
TemplateTag string `form:"template_tag,optional"` //模板标签
|
||||
WithProduct bool `form:"with_product,optional"` //是否携带分类下的产品
|
||||
}
|
||||
|
||||
type GetTagProductListRsp struct {
|
||||
|
|
|
@ -72,9 +72,10 @@ type GetRecommandProductListRsp {
|
|||
}
|
||||
//获取分类产品列表
|
||||
type GetTagProductListReq {
|
||||
Cid int64 `form:"cid,optional"` //分类id
|
||||
TemplateTag string `form:"template_tag,optional"` //模板标签
|
||||
WithProduct bool `form:"with_product,optional"` //是否携带分类下的产品
|
||||
Cid int64 `form:"cid,optional"` //分类id
|
||||
MerchantType int64 `form:"merchant_type,optional"` //商户类型
|
||||
TemplateTag string `form:"template_tag,optional"` //模板标签
|
||||
WithProduct bool `form:"with_product,optional"` //是否携带分类下的产品
|
||||
}
|
||||
type GetTagProductListRsp {
|
||||
TotalCategoryProduct int `json:"total_category_product"`
|
||||
|
|
Loading…
Reference in New Issue
Block a user