syntax = "v1" info ( title: // TODO: add title desc: // TODO: add description author: "" email: "" ) import "basic.api" service product { //获取产品列表 @handler GetProductListHandler get /api/product/list(GetProductListReq) returns (response); //获取支付成功后推荐产品 @handler GetSuccessRecommandHandler get /api/product/success-recommand(GetSuccessRecommandReq) returns (response); //获取分类下的产品以及尺寸 @handler GetSizeByProductHandler get /api/product/get-size-by-product(request) returns (response); //获取保存的设计信息 @handler GetProductDesignHandler get /api/product/design(GetProductDesignReq) returns (response); //产品设计数据采集 @handler DesignGatherHandler post /api/product/design-gather(DesignGatherReq) returns (response); //获取产品信息 @handler GetProductInfoHandler get /api/product/info(GetProductInfoReq) returns (response); //保存设计信息 @handler SaveDesignHandler post /api/product/save-design(SaveDesignReq) returns (response); //其他产品推荐列表 @handler OtherProductListHandler get /api/product/other-list(OtherProductListReq) returns (response); //获取分类产品列表 @handler GetTagProductListHandler get /api/product/tag_product_list(GetTagProductListReq) returns (response); //*********************产品详情分解接口开始*********************** //获取云渲染设计方案信息 @handler GetRenderDesignHandler get /api/product/render_design(GetRenderDesignReq) returns (response); //获取产品模型信息 @handler GetModelByPidHandler get /api/product/get_model_by_pid(GetModelByPidReq) returns (response); //获取产品阶梯价格列表 @handler GetPriceByPidHandler get /api/product/get_price_by_pid(GetPriceByPidReq) 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 GetLastProductDesignHandler get /api/product/get_last_product_design(request) returns (response); //获取详情页推荐产品列表 @handler GetRecommandProductListHandler get /api/product/recommand(GetRecommandProductListReq) returns (response); //获取列表页推荐产品列表 @handler HomePageRecommendProductListHandler get /api/product/home_page_recommend(HomePageRecommendProductListReq) returns (response); //*********************产品详情分解接口结束*********************** //*********************推荐产品接口开始×××××××××××××××××××××××××× //*********************推荐产品接口结束×××××××××××××××××××××××××× } //获取产品列表 type GetProductListReq { Cid int64 `form:"cid"` Size uint32 `form:"size"` Page uint32 `form:"page,optional"` IsDemo uint32 `form:"is_demo,optional"` } type GetProductListRsp { Ob Ob `json:"ob"` TypeName string `json:"typeName"` Description string `json:"description"` } type Ob { Items []Items `json:"items"` Meta Meta `json:"_meta"` } type Items { Id int64 `json:"id"` Sn string `json:"sn"` Title string `json:"title"` Cover string `json:"cover"` Intro string `json:"intro"` CoverImg string `json:"cover_img"` IsEnv int64 `json:"isEnv"` IsMicro int64 `json:"isMicro"` SizeNum uint32 `json:"sizeNum"` MinPrice int64 `json:"minPrice"` CoverDefault string `json:"coverDefault"` } //获取支付成功后推荐产品 type GetSuccessRecommandReq { Num uint32 `form:"num"` Size uint32 `form:"size"` Sn string `form:"sn"` } type GetSuccessRecommandRsp { Title string `json:"title"` Cover string `json:"cover"` CoverImg string `json:"coverImg"` Sn string `json:"sn"` Id int64 `json:"id"` SkuId int64 `json:"skuId"` CoverDefault string `json:"coverDefault"` } //获取分类下的产品以及尺寸 type GetSizeByProductRsp { Id int64 `json:"id"` Name string `json:"name"` Children []Children `json:"children"` } type Children { Id int64 `json:"id"` Name string `json:"name"` Cycle int `json:"cycle"` ChildrenList []ChildrenObj `json:"children"` } type ChildrenObj { Id int64 `json:"id"` Name string `json:"name"` PriceList []PriceObj `json:"price_list"` } type PriceObj { Num int `json:"num"` Price float64 `json:"price"` } //获取保存的设计信息 type GetProductDesignReq { Sn string `form:"sn"` } type GetProductDesignRsp { ProductId int64 `json:"product_id"` TemplateId int64 `json:"template_id"` //MaterialId int64 `json:"material_id"` SizeId int64 `json:"size_id"` OptionalId int64 `json:"optional_id"` Cover string `json:"cover"` Info string `json:"info"` } //产品设计数据采集 type DesignGatherReq { Data string `json:"data"` } type DesignGatherRsp { Sn string `json:"sn"` } //获取产品信息 type GetProductInfoReq { Pid string `form:"pid"` Size uint32 `form:"size"` ClientNo string `form:"client_no"` HaveCloudRendering bool `form:"haveCloudRendering,optional"` } type GetProductInfoRsp { Id int64 `json:"id"` Type int64 `json:"type"` Title string `json:"title"` IsEnv int64 `json:"isEnv"` IsMicro int64 `json:"isMicro"` TypeName string `json:"typeName"` IsLowRendering bool `json:"is_low_rendering"` IsRemoveBg bool `json:"is_remove_bg"` Materials []MaterialItem `json:"materials"` Sizes []SizeItem `json:"sizes"` Templates interface{} `json:"templates"` Prices interface{} `json:"prices"` LastDesign interface{} `json:"last_design"` RenderDesign interface{} `json:"render_design"` Colors interface{} `json:"colors"` } type SizeItem { Id int64 `json:"id"` Title SizeTitle `json:"title"` Capacity string `json:"capacity"` Cover string `json:"cover"` Sort int64 `json:"sort"` PartsCanDeleted bool `json:"parts_can_deleted"` } type SizeTitle { Cm string `json:"cm"` Inch string `json:"inch"` } type MaterialItem { Id int64 `json:"id"` Title string `json:"title"` } //保存设计信息 type SaveDesignReq { Data string `json:"data"` //加密信息 } type SaveDesignRsp { Sn string `json:"sn"` } //保存设计信息(解密结构体) type SaveDesignReqRealStruct { ProductId int64 `json:"product_id"` SizeId int64 `json:"size_id"` OptionalId int64 `json:"optional_id"` TemplateId int64 `json:"template_id"` Sn string `json:"sn"` Data DesignData `json:"data"` Cover string `json:"cover"` PageGuid string `json:"pageGuid"` } type DesignData { MainColor ColorFill `json:"MainColor"` SecondaryColor ColorFill `json:"SecondaryColor"` Logo DesignLogo `json:"Logo"` Slogan DesignSlogan `json:"Slogan"` QRcode DesignQRcode `json:"QRcode"` Website DesignWebsite `json:"Website"` Phone DesignPhone `json:"Phone"` Address DesignAddress `json:"Address"` } type DesignAddress { Text string `json:"text"` IfShow bool `json:"ifShow"` } type DesignPhone { Text string `json:"text"` IfShow bool `json:"ifShow"` } type DesignWebsite { Text string `json:"text"` IfShow bool `json:"ifShow"` } type DesignQRcode { Text string `json:"text"` SvgPath string `json:"svgPath"` IfShow bool `json:"ifShow"` } type DesignSlogan { Text string `json:"text"` IfShow bool `json:"ifShow"` } type DesignLogo { Material string `json:"material"` MaterialName string `json:"materialName"` MaterialTime string `json:"materialTime"` Fill string `json:"fill"` FillName string `json:"fill_name"` Colors []string `json:"colors"` } type ColorFill { Fill string `json:"fill"` } //其他产品推荐列表 type OtherProductListReq { Cid int64 `form:"cid"` Num int64 `form:"num"` Size uint32 `form:"size"` } type OtherProductListRsp { Title string `json:"title"` Cover string `json:"cover"` CoverImg string `json:"cover_img"` CoverDefault string `json:"cover_default"` Sn string `json:"sn"` Id int64 `json:"id"` SkuId int64 `json:"sku_id"` } //获取详情页推荐产品列表 type GetRecommandProductListReq { Size int32 `form:"size,optional"` Num int64 `form:"num,optional"` Sn string `form:"sn"` } type GetRecommandProductListRsp { Id int64 `json:"id"` Sn string `json:"sn"` Title string `json:"title"` TitleCn string `json:"title_cn"` Cover string `json:"cover"` CoverImg string `json:"cover_img"` CoverDefault []CoverDefaultItem `json:"cover_default"` Intro string `json:"intro"` IsRecommend int64 `json:"is_recommend"` MinPrice int64 `json:"min_price"` } //获取分类产品列表 type GetTagProductListReq { Cid int64 `form:"cid,optional"` //分类id Size uint32 `form:"size,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"` 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"` } type CoverDefaultItem { Tag string `json:"tag"` Cover string `json:"cover"` } //获取云渲染设计方案信息 type GetRenderDesignReq { Sn string `form:"sn"` } type GetRenderDesignRsp { Id int64 `json:"id"` Info interface{} `json:"info"` OptionalId int64 `json:"optional_id"` SizeId int64 `json:"size_id"` TemplateId int64 `json:"template_id"` LogoColor []string `json:"logo_color"` } //获取产品模型信息 type GetModelByPidReq { Pid string `form:"pid"` //实际上是产品sn } //获取产品阶梯价格 type GetPriceByPidReq { Pid string `form:"pid"` } type GetPriceByPidRsp { Items []PriceItem `json:"items"` MinPrice float64 `json:"min_price"` MaxPrice float64 `json:"max_price"` StepRange []StepRange `json:"step_range"` } type StepRange { Begin int64 `json:"begin"` End int64 `json:"end"` Price float64 `json:"price"` } type PriceItem { Num int64 `json:"num"` TotalNum int64 `json:"total_num"` Price int64 `json:"price"` } //获取产品尺寸列表 type GetSizeByPidReq { Pid string `form:"pid"` } 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 float64 `json:"min_price"` //最小价格 } //获取产品模板 type GetTemplateByPidReq { Pid string `form:"pid"` ProductSizeId int64 `form:"product_size_id,optional"` ProductTemplateTagId int64 `form:"product_template_tag_id"` } //获取产品配件数据 type GetFittingByPidReq { Pid string `form:"pid"` } type GetFittingByPidRsp { Id int64 `json:"id"` MaterialImg string `json:"material_img"` Title string `json:"title"` Price int64 `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"` //低质量画质渲染开关 IsRemoveBg bool `json:"is_remove_bg"` //logo上传是否去背景 RenderDesign bool `json:"render_design"` //是否拥有云渲染设计方案 LastDesign bool `json:"last_design"` //是否拥有千人千面设计方案 Colors interface{} `json:"colors"` } //获取产品千人千面设计方案 type GetLastProductDesignRsp { Id int64 `json:"id"` OptionalId int64 `json:"optional_id"` SizeId int64 `json:"size_id"` LogoColor interface{} `json:"logo_color"` Info interface{} `json:"info"` } //获取列表页推荐产品(返回是这个维度数组) 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"` SizeNum uint32 `json:"size_num"` MinPrice int64 `json:"min_price"` CoverDefault []CoverDefaultItem `json:"cover_default"` HaveOptionalFitting bool `json:"have_optional_fitting"` }