This commit is contained in:
laodaming
2023-11-27 11:18:47 +08:00
parent 9f4745b740
commit 1bb2e190a2
4 changed files with 43 additions and 4 deletions

View File

@@ -57,12 +57,33 @@ func (l *GetProductModelsLogic) GetProductModels(req *types.GetProductModelsReq,
if len(productList) != len(productIds) {
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "some one product is invalid")
}
//获取产品所有的模型以及配件
modelList, err := l.svcCtx.AllModels.FsProductModel3d.GetAllByProductIdsTags(l.ctx, productIds, []int{constants.TAG_MODEL, constants.TAG_PARTS})
//根据模板标签获取开启了云渲染的模板列表
templateList, err := l.svcCtx.AllModels.FsProductTemplateV2.FindAllCloudRenderTemplateByProductIdsTemplateTag(l.ctx, productIds, req.TemplateTag, "", "id,product_id,model_id")
if err != nil {
logx.Error(err)
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get product template list")
}
modelIds := make([]int64, 0, len(templateList))
for _, v := range templateList {
modelIds = append(modelIds, *v.ModelId)
}
//获取模型列表
modelList, err := l.svcCtx.AllModels.FsProductModel3d.GetAllByIds(l.ctx, modelIds, "")
if err != nil {
logx.Error(err)
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get model list")
}
partIds := make([]int64, 0, len(modelList))
for _, v := range modelList {
if *v.PartId == 0 {
continue
}
partIds = append(partIds, *v.PartId)
}
//获取配件列表
partList, err := l.svcCtx.AllModels.FsProductModel3d.GetAllByIds(l.ctx, partIds, "")
//合并模型和配件
modelList = append(modelList, partList...)
mapProductModels := make(map[int64][]types.ModelItem)
lightIds := make([]int64, 0, len(modelList))
for _, v := range modelList {