syntax = "v1" info ( title: // TODO: add title desc: // TODO: add description author: "" email: "" ) import "basic.api" service product { //获取分类产品列表 @handler GetTagProductListHandler get /api/product/tag_product_list(GetTagProductListReq) returns (response); //获取产品模型信息 @handler GetModelByPidHandler get /api/product/get_model_by_pid(GetModelByPidReq) returns (response); //获取产品阶梯价格信息 @handler GetProductStepPriceHandler get /api/product/get_product_step_price(GetProductStepPriceReq) returns (response); //根据产品+配件搭配计算价格 @handler CalculateProductPriceHandler post /api/product/calculate_product_price(CalculateProductPriceReq) returns (response); //获取产品尺寸列表 @handler GetSizeByPidHandler get /api/product/get_size_by_pid(GetSizeByPidReq) returns (response); //获取产品模板 @handler GetTemplateByPidHandler get /api/product/get_template_by_pid(GetTemplateByPidReq) returns (response); //获取产品配件数据 @handler GetFittingByPidHandler get /api/product/get_fitting_by_pid(GetFittingByPidReq) returns (response); //获取产品灯光数据 @handler GetLightByPidHandler get /api/product/get_light_by_pid(GetLightByPidReq) returns (response); //获取产品渲染设置 @handler GetRenderSettingByPidHandler get /api/product/get_render_setting_by_pid(GetRenderSettingByPidReq) returns (response); //获取详情页推荐产品列表 @handler GetRecommendProductListHandler get /api/product/recommend(GetRecommendProductListReq) returns (response); //获取列表页推荐产品列表 @handler HomePageRecommendProductListHandler get /api/product/home_page_recommend(HomePageRecommendProductListReq) returns (response); //获取产品详情(重构版) @handler GetProductDetailHandler get /api/product/get_product_detail(GetProductDetailReq) returns (response); } //获取详情页推荐产品列表 type GetRecommendProductListReq { Num int64 `form:"num,optional"` ProductId int64 `form:"product_id"` } type GetRecommandProductListRsp { Id int64 `json:"id"` Sn string `json:"sn"` Title string `json:"title"` TitleCn string `json:"title_cn"` Cover string `json:"cover"` CoverMetadata interface{} `json:"cover_metadata"` CoverImg string `json:"cover_img"` CoverImgMetadata interface{} `json:"cover_img_metadata"` CoverDefault []CoverDefaultItem `json:"cover_default"` Intro string `json:"intro"` Recommend bool `json:"recommend"` MinPrice int64 `json:"min_price"` IsCustomization int64 `json:"is_customization"` SizeCount int64 `json:"size_count"` HaveOptionalFitting bool `json:"have_optional_fitting"` } //获取分类产品列表 type GetTagProductListReq { Cid int64 `form:"cid,optional"` //分类id Size uint32 `form:"size,optional"` //尺寸 TemplateTag string `form:"template_tag,optional"` //模板标签 WithProduct bool `form:"with_product,optional"` //是否携带分类下的产品 } type GetTagProductListRsp { TotalCategoryProduct int `json:"total_category_product"` TagList []TagItem `json:"tag_list"` } type TagItem { TypeName string `json:"type_name"` TypeId int64 `json:"type_id"` Icon string `json:"icon"` Sort int64 `json:"sort"` LevelPrefix string `json:"level_prefix"` TagProductList []interface{} `json:"tag_product_list"` //分类下的产品 ChildTagList []*TagItem `json:"child_tag_list"` } type TagProduct { ProductId int64 `json:"product_id"` Sn string `json:"sn"` Title string `json:"title"` Cover string `json:"cover"` CoverMetadata interface{} `json:"cover_metadata"` SizeNum uint32 `json:"size_num"` MinPrice int64 `json:"min_price"` //彩膜列表 CoverDefault []CoverDefaultItem `json:"cover_default"` HaveOptionalFitting bool `json:"have_optional_fitting"` Recommended bool `json:"recommended"` IsCustomization int64 `json:"is_customization"` } type CoverDefaultItem { TemplateTag string `json:"template_tag"` Cover string `json:"cover"` CoverMetadata interface{} `json:"cover_metadata"` } //获取产品模型信息 type GetModelByPidReq { Pid string `form:"pid"` //实际上是产品sn } //获取产品阶梯价格信息 type GetProductStepPriceReq { ProductId int64 `form:"product_id"` } //根据产品+配件搭配计算价格 type CalculateProductPriceReq { ProductId int64 `json:"product_id"` SizeId int64 `json:"size_id"` FittingId int64 `json:"fitting_id,optional"` PurchaseQuantity int64 `json:"purchase_quantity"` } type CalculateProductPriceRsp { ItemPrice string `json:"item_price"` TotalPrice string `json:"total_price"` StepRange interface{} `json:"step_range"` } //获取产品尺寸列表 type GetSizeByPidReq { Pid string `form:"pid"` TemplateTag string `form:"template_tag"` } type GetSizeByPidRsp { Id int64 `json:"id"` //尺寸id Title interface{} `json:"title"` Capacity string `json:"capacity"` //容量、尺寸、尺码描述 Cover string `json:"cover"` //缩略图 PartsCanDeleted bool `json:"parts_can_deleted"` //用户可否删除配件 ModelId int64 `json:"model_id"` //产品主模型id IsPopular bool `json:"is_popular"` //是否受欢迎 MinPrice string `json:"min_price"` //最小价格 IsDefault bool `json:"is_default"` //是否默认(这里的默认是跟列表页一致) } //获取产品模板 type GetTemplateByPidReq { Pid string `form:"pid"` ProductSizeId int64 `form:"product_size_id,optional"` TemplateTag string `form:"template_tag"` } //获取产品配件数据 type GetFittingByPidReq { Pid string `form:"pid"` } type GetFittingByPidRsp { Id int64 `json:"id"` MaterialImg string `json:"material_img"` Title string `json:"title"` Price string `json:"price"` IsPopular bool `json:"is_popular"` ModelInfo interface{} `json:"model_info"` } //获取产品灯光数据 type GetLightByPidReq { Pid string `form:"pid"` } //获取产品渲染设置 type GetRenderSettingByPidReq { Pid string `form:"pid"` ClientNo string `form:"client_no,optional"` } type GetRenderSettingByPidRsp { Id int64 `json:"id"` //产品id Type int64 `json:"type"` //产品typeid Title string `json:"title"` //产品名称 IsEnv int64 `json:"isEnv"` //产品标签之一 IsMicro int64 `json:"isMicro"` //产品标签之一 TypeName string `json:"typeName"` //产品类型名称 IsLowRendering bool `json:"is_low_rendering"` //低质量画质渲染开关 IsCustomization int64 `json:"is_customization"` //产品是否可定制 IsRemoveBg bool `json:"is_remove_bg"` //logo上传是否去背景 RenderDesign bool `json:"render_design"` //是否拥有云渲染设计方案 LastDesign bool `json:"last_design"` //是否拥有千人千面设计方案 Colors interface{} `json:"colors"` } //获取列表页推荐产品(返回是这个维度数组) type HomePageRecommendProductListReq { Size uint32 `form:"size"` MerchantType int64 `form:"merchant_type"` } type HomePageRecommendProductListRsp { Id int64 `json:"id"` Sn string `json:"sn"` Title string `json:"title"` Cover string `json:"cover"` CoverMetadata interface{} `json:"cover_metadata"` SizeNum uint32 `json:"size_num"` MinPrice int64 `json:"min_price"` CoverDefault []CoverDefaultItem `json:"cover_default"` HaveOptionalFitting bool `json:"have_optional_fitting"` IsCustomization int64 `json:"is_customization"` } //获取产品详情(重构版) type GetProductDetailReq { ProductId int64 `form:"product_id"` //产品id TemplateTag string `form:"template_tag"` //模板标签 SelectedColorIndex int `form:"selected_color_index"` //模板标签颜色索引 Logo string `form:"logo"` //logo地址 } type GetProductDetailRsp { TemplateTagColorInfo TemplateTagColorInfo `json:"template_tag_color_info"` //标签颜色信息 ProductInfo ProductInfo `json:"product_info"` //产品基本信息 BaseColors interface{} `json:"base_colors"` //一些返回写死的颜色 SizeList []SizeInfo `json:"size_list"` //尺寸相关信息 } type SizeInfo { Id int64 `json:"id"` //尺寸id IsDefault int64 `json:"is_default"` //是否默认显示 Title interface{} `json:"title"` //尺寸标题信息 Capacity string `json:"capacity"` //尺寸名称 PartsCanDeleted int64 `json:"parts_can_deleted"` //配件是否可删除 IsHot int64 `json:"is_hot"` //是否热门 MinPrice string `json:"min_price"` //最低价 TemplateInfo interface{} `json:"template_info"` //模板相关信息 ModelInfo ModelInfo `json:"model_info"` //模型相关信息 FittingList []FittingInfo `json:"fitting_list"` //配件相关信息 } type FittingInfo { Id int64 `json:"id"` //配件id IsHot int64 `json:"is_hot"` //是否热门 MaterialImage string `json:"material_image"` //配件材质图 DesignInfo interface{} `json:"design_info"` //配件设计信息 Price string `json:"price"` //配件价格 Name string `json:"name"` //配件名 IsDefault int64 `json:"is_default"` //是否默认的配件 } type ModelInfo { Id int64 `json:"id"` //模型id ModelDesignInfo interface{} `json:"design_info"` //模型设计信息 LightInfo LightInfo `json:"light_info"` //灯光信息 } type LightInfo { Id int64 `json:"id"` //灯光id LightName string `json:"light_name"` //灯光组名称 LightDesignInfo interface{} `json:"light_design_info"` //灯光设计信息 } type ProductInfo { Id int64 `json:"id"` //产品id ProductType int64 `json:"product_type"` //产品类型id ProductTypeName string `json:"product_type_name"` //产品类型名称 Title string `json:"title"` //产品标题 IsEnv int64 `json:"is_env"` //是否环保 IsMicro int64 `json:"is_micro"` //是否可微波炉 IsCustomization int64 `json:"is_customization"` //是否可定制产品 } type TemplateTagColorInfo { Colors [][]string `json:"colors"` //传入logo对应的算法颜色组 SelectedColorIndex int `json:"selected_color_index"` //选择的模板标签的颜色索引值 TemplateTagGroups interface{} `json:"template_tag_groups"` //模板标签分组信息 }