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 GetProductStepPriceHandler get /api/product/get_product_step_price(GetProductStepPriceReq) returns (response); //根据产品+配件搭配计算价格 @handler CalculateProductPriceHandler post /api/product/calculate_product_price(CalculateProductPriceReq) 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 { BasicTagId int64 `form:"basic_tag_id,optional"` //传入则以该分类为最高层分类查询 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"` TagMap interface{} `json:"tag_map"` } 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 { Id int64 `json:"id"` Sn string `json:"sn"` Title string `json:"title"` Cover string `json:"cover"` CoverMetadata interface{} `json:"cover_metadata"` SizeCount uint32 `json:"size_count"` 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 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 HomePageRecommendProductListReq { 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"` SizeCount uint32 `json:"size_count"` 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,optional"` //logo地址 } type GetProductDetailRsp { Logo string `json:"logo"` //logo 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 Description string `json:"description"` //产品描述 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"` //是否可定制产品 WebsiteUnit interface{} `json:"website_unit"` //产品前台网站单位 } type TemplateTagColorInfo { Colors [][]string `json:"colors"` //传入logo对应的算法颜色组 SelectedColorIndex int `json:"selected_color_index"` //选择的模板标签的颜色索引值 TemplateTagGroups interface{} `json:"template_tag_groups"` //模板标签分组信息 }