Merge branch 'develop' of gitee.com:fusenpack/fusenapi into develop

This commit is contained in:
momo 2023-10-30 15:11:46 +08:00
commit 619f0fde1a
3 changed files with 44 additions and 7 deletions

View File

@ -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,

View File

@ -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 {

View File

@ -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"`