syntax = "proto3"; package gorpc; option go_package = "code.clickto.dev/nomo-server/go-service-pb/client"; import "pb/common.proto"; // ServiceTypes message ServiceTypesVo { int64 id = 1; // ID string productCode = 2; // 产品标识 string code = 3; // 权益标识 string name = 4; // 权益名称 int64 sort = 5; // 排序 Status status = 6; // 状态 1启用 2禁用 string remark = 7; // 备注 int64 createTime = 8; // 创建时间 int64 createAt = 9; // 创建者ID int64 updateTime = 10; // 更新时间 int64 updateAt = 11; // 更新者ID } message ServiceTypesWithValueVo { ServiceTypesVo vo = 1; int64 value = 2; } message ServiceTypesGetReq { ServiceTypesVo vo = 1; } message ServiceTypesGetResp { ServiceTypesVo vo = 1; } message ServiceTypesGetWithValueReq { int64 planId = 1; string productCode = 2; string servicePlanCode = 3; int64 serviceTypeId = 4; string serviceTypeCode = 5; } message ServiceTypesGetWithValueResp { ServiceTypesVo vo = 1; int64 value = 2; } message ServiceTypesAddReq { ServiceTypesVo vo = 1; } message ServiceTypesAddResp { ServiceTypesVo vo = 1; } message ServiceTypesUpdateReq { ServiceTypesVo vo = 1; } message ServiceTypesUpdateResp { ServiceTypesVo vo = 1; } message ServiceTypesDelReq { repeated int64 ids = 1; } message ServiceTypesListReq { Page page = 1; ServiceTypesVo vo = 2; repeated string productCodes = 3; repeated int64 excludeIds = 4; } message ServiceTypesListResp { int64 total = 1; repeated ServiceTypesVo list = 2; } message ServiceTypesListWithValueReq { Page page = 1; ServiceTypesVo vo = 2; repeated int64 planIds = 3; repeated string productCodes = 4; repeated string servicePlanCodes = 5; repeated int64 excludeIds = 6; } message ServiceTypesListWithValueResp { int64 total = 1; repeated ServiceTypesWithValueVo list = 2; } // end ServiceTypes // ServicePlan message ServicePlanVo { int64 id = 1; // ID string productCode = 2; // 产品标识 string code = 3; // 套餐标识 string name = 4; // 套餐名称 int64 sort = 5; // 排序 Status status = 6; // 状态 1启用 2禁用 string remark = 7; // 备注 int64 createTime = 8; // 创建时间 int64 createAt = 9; // 创建者ID int64 updateTime = 10; // 更新时间 int64 updateAt = 11; // 更新者ID } message ServicePlanWithDetailsVo { ServicePlanVo servicePlan = 1; repeated ServiceTypesWithValueVo serviceTypes = 2; } message ServicePlanWithDurationVo { ServicePlanVo servicePlan = 1; int64 licenseDurationDay = 2; int64 licenseDurationMinutes = 3; } message ServicePlanWithDurationAndDetailsVo { ServicePlanWithDurationVo servicePlan = 1; repeated ServiceTypesWithValueVo serviceTypes = 2; } message ServicePlanGetReq { ServicePlanVo vo = 1; } message ServicePlanGetResp { ServicePlanVo vo = 1; } message ServicePlanGetWithDetailsReq { ServicePlanVo vo = 1; } message ServicePlanGetWithDetailsResp { ServicePlanVo servicePlan = 1; repeated ServiceTypesWithValueVo serviceTypes = 2; } message ServicePlanAddReq { ServicePlanVo vo = 1; } message ServicePlanAddResp { ServicePlanVo vo = 1; } message ServicePlanAddWithDetailsReq { ServicePlanVo servicePlan = 1; repeated ServiceTypesWithValueVo serviceTypes = 2; } message ServicePlanAddWithDetailsResp { ServicePlanVo servicePlan = 1; repeated ServiceTypesWithValueVo serviceTypes = 2; } message ServicePlanUpdateReq { ServicePlanVo vo = 1; } message ServicePlanUpdateResp { ServicePlanVo vo = 1; } message ServicePlanUpdateWithDetailsReq { ServicePlanVo servicePlan = 1; repeated ServiceTypesWithValueVo serviceTypes = 2; } message ServicePlanUpdateWithDetailsResp { ServicePlanVo servicePlan = 1; repeated ServiceTypesWithValueVo serviceTypes = 2; } message ServicePlanDelReq { repeated int64 ids = 1; } message ServicePlanListReq { Page page = 1; ServicePlanVo vo = 2; repeated string productCodes = 3; repeated int64 excludeIds = 4; } message ServicePlanListResp { int64 total = 1; repeated ServicePlanVo list = 2; } message ServicePlanListWithDetailsReq { Page page = 1; ServicePlanVo vo = 2; repeated string productCodes = 3; repeated int64 excludeIds = 4; } message ServicePlanListWithDetailsResp { int64 total = 1; repeated ServicePlanWithDetailsVo list = 2; } // end ServicePlan // ServicePlanTypes message ServicePlanTypesVo { int64 id = 1; // ID int64 servicePlanId = 2; // 套餐ID int64 serviceTypeId = 3; // 权益ID int64 serviceValue = 4; // 权益值 根据不同的 serviceTypeId,这里的值的含义不同 int64 createTime = 5; // 创建时间 int64 createAt = 6; // 创建者ID int64 updateTime = 7; // 更新时间 int64 updateAt = 8; // 更新者ID } message ServicePlanTypesGetReq { ServicePlanTypesVo vo = 1; } message ServicePlanTypesGetResp { ServicePlanTypesVo vo = 1; } message ServicePlanTypesAddReq { ServicePlanTypesVo vo = 1; } message ServicePlanTypesAddResp { ServicePlanTypesVo vo = 1; } message ServicePlanTypesUpdateReq { ServicePlanTypesVo vo = 1; } message ServicePlanTypesUpdateResp { ServicePlanTypesVo vo = 1; } message ServicePlanTypesDelReq { repeated int64 ids = 1; } message ServicePlanTypesListReq { Page page = 1; ServicePlanTypesVo vo = 2; repeated int64 servicePlanIds = 3; repeated int64 serviceTypeIds = 4; repeated int64 excludeIds = 5; } message ServicePlanTypesListResp { int64 total = 1; repeated ServicePlanTypesVo list = 2; } // end ServicePlanTypes // SubscribePeriodType 订阅周期类型 enum SubscribePeriodType { SubscribePeriodTypeUnknown = 0; SubscribePeriodTypeDay = 1; SubscribePeriodTypeWeek = 2; SubscribePeriodTypeMonth = 3; SubscribePeriodTypeYear = 4; } // ServiceGoods message ServiceGoodsVo { int64 id = 1; // ID string productCode = 2; // 产品标识 string code = 3; // 商品code string name = 4; // 商品名称 string title = 5; // 标题(默认值,对外显示) string subTitle = 6; // 副标题(默认值,对外显示) string introduce = 7; // 简介(默认值,对外显示) string tag = 8; // 标签内容(默认值,对外显示) float orgPrice = 9; // 原价(默认值) float price = 10; // 现价(默认值) int64 currency = 11; // 价格货币类型(默认值) BoolInt recommend = 12; // 是否推荐商品(默认值) 1推荐 2不推荐 BoolInt isDefault = 13; // 是否默认商品(默认值) 1默认 2不默认 BoolInt subscribeType = 14; // 订阅类型 1订阅类型 2非订阅类型 SubscribePeriodType subscribePeriodType = 15; // 订阅周期类型 1Day 2Week 3Month 4Year(仅当订阅类型为1时有效) int64 subscribePeriodValue = 16; // 订阅周期值(仅当订阅类型为1时有效) int64 priority = 17; // 商品消费优先级 int64 mergeRule = 18; // 商品合并规则(规则一样的商品包含的权益可以合并到一起) int64 sort = 19; // 排序 Status status = 20; // 状态 1启用 2禁用 string remark = 21; // 备注 int64 createTime = 22; // 创建时间 int64 createAt = 23; // 创建者ID int64 updateTime = 24; // 更新时间 int64 updateAt = 25; // 更新者ID } message ServiceGoodsWithPlansVo { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationVo servicePlans = 2; } message ServiceGoodsWithPlansAndDetailsVo { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationAndDetailsVo servicePlans = 2; } message ServiceGoodsGetReq { ServiceGoodsVo vo = 1; } message ServiceGoodsGetResp { ServiceGoodsVo vo = 1; } message ServiceGoodsGetWithPlansReq { ServiceGoodsVo vo = 1; } message ServiceGoodsGetWithPlansResp { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationVo servicePlans = 2; } message ServiceGoodsGetWithPlansAndDetailsReq { ServiceGoodsVo vo = 1; } message ServiceGoodsGetWithPlansAndDetailsResp { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationAndDetailsVo servicePlans = 2; } message ServiceGoodsAddReq { ServiceGoodsVo vo = 1; } message ServiceGoodsAddResp { ServiceGoodsVo vo = 1; } message ServiceGoodsAddWithPlansReq { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationVo servicePlans = 2; } message ServiceGoodsAddWithPlansResp { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationVo servicePlans = 2; } message ServiceGoodsAddWithPlansAndDetailsReq { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationAndDetailsVo servicePlans = 2; } message ServiceGoodsAddWithPlansAndDetailsResp { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationAndDetailsVo servicePlans = 2; } message ServiceGoodsUpdateReq { ServiceGoodsVo vo = 1; } message ServiceGoodsUpdateResp { ServiceGoodsVo vo = 1; } message ServiceGoodsUpdateWithPlansReq { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationVo servicePlans = 2; } message ServiceGoodsUpdateWithPlansResp { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationVo servicePlans = 2; } message ServiceGoodsUpdateWithPlansAndDetailsReq { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationAndDetailsVo servicePlans = 2; } message ServiceGoodsUpdateWithPlansAndDetailsResp { ServiceGoodsVo serviceGoods = 1; repeated ServicePlanWithDurationAndDetailsVo servicePlans = 2; } message ServiceGoodsDelReq { repeated int64 ids = 1; } message ServiceGoodsListReq { Page page = 1; ServiceGoodsVo vo = 2; repeated string productCodes = 3; repeated int64 excludeIds = 4; } message ServiceGoodsListResp { int64 total = 1; repeated ServiceGoodsVo list = 2; } message ServiceGoodsListWithPlansReq { Page page = 1; ServiceGoodsVo vo = 2; repeated string productCodes = 3; repeated int64 excludeIds = 4; } message ServiceGoodsListWithPlansResp { int64 total = 1; repeated ServiceGoodsWithPlansVo list = 2; } message ServiceGoodsListWithPlansAndDetailsReq { Page page = 1; ServiceGoodsVo vo = 2; repeated string productCodes = 3; repeated int64 excludeIds = 4; } message ServiceGoodsListWithPlansAndDetailsResp { int64 total = 1; repeated ServiceGoodsWithPlansAndDetailsVo list = 2; } // end ServiceGoods // ServiceGoodsPlans message ServiceGoodsPlansVo { int64 id = 1; // ID int64 serviceGoodsId = 2; // 商品ID int64 servicePlanId = 3; // 套餐ID int64 licenseDurationDay = 4; // 套餐持续天数 int64 licenseDurationMinutes = 5; // 套餐额外持续分钟数 int64 createTime = 6; // 创建时间 int64 createAt = 7; // 创建者ID int64 updateTime = 8; // 更新时间 int64 updateAt = 9; // 更新者ID } message ServiceGoodsPlansGetReq { ServiceGoodsPlansVo vo = 1; } message ServiceGoodsPlansGetResp { ServiceGoodsPlansVo vo = 1; } message ServiceGoodsPlansAddReq { ServiceGoodsPlansVo vo = 1; } message ServiceGoodsPlansAddResp { ServiceGoodsPlansVo vo = 1; } message ServiceGoodsPlansUpdateReq { ServiceGoodsPlansVo vo = 1; } message ServiceGoodsPlansUpdateResp { ServiceGoodsPlansVo vo = 1; } message ServiceGoodsPlansDelReq { repeated int64 ids = 1; } message ServiceGoodsPlansListReq { Page page = 1; ServiceGoodsPlansVo vo = 2; repeated int64 serviceGoodsIds = 3; repeated int64 servicePlanIds = 4; repeated int64 excludeIds = 5; } message ServiceGoodsPlansListResp { int64 total = 1; repeated ServiceGoodsPlansVo list = 2; } // end ServiceGoodsPlans // ServiceGoodsChannel message ServiceGoodsChannelVo { int64 id = 1; // ID string productCode = 2; // 产品标识 string channel = 3; // 渠道标识 string channelItemId = 4; // 商品唯一ID或商店SKUID int64 serviceGoodsId = 5; // 商品ID string title = 6; // 自定义标题(对外显示) string subTitle = 7; // 自定义副标题(对外显示) string introduce = 8; // 自定义简介(对外显示) string tag = 9; // 自定义标签内容(对外显示) float orgPrice = 10; // 在该渠道下的原价 float price = 11; // 在该渠道下的现价 int64 currency = 12; // 价格货币类型 BoolInt recommend = 13; // 是否推荐商品(默认值) 1推荐 2不推荐 BoolInt isDefault = 14; // 是否默认商品(默认值) 1默认 2不默认 string displayPolicyConfig = 15; // 显示策略 int64 sort = 16; // 排序 Status status = 17; // 状态 1启用 2禁用 string remark = 18; // 备注 int64 createTime = 19; // 创建时间 int64 createAt = 20; // 创建者ID int64 updateTime = 21; // 更新时间 int64 updateAt = 22; // 更新者ID } message ServiceGoodsChannelWithGoodsVo { ServiceGoodsChannelVo serviceGoodsChannel = 1; ServiceGoodsVo serviceGoods = 2; } message ServiceGoodsChannelWithGoodsAndPlansVo { ServiceGoodsChannelVo serviceGoodsChannel = 1; ServiceGoodsVo serviceGoods = 2; repeated ServicePlanWithDurationVo servicePlans = 3; } message ServiceGoodsChannelWithGoodsAndPlansAndDetailsVo { ServiceGoodsChannelVo serviceGoodsChannel = 1; ServiceGoodsVo serviceGoods = 2; repeated ServicePlanWithDurationAndDetailsVo servicePlans = 3; } message ServiceGoodsChannelGetReq { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelGetResp { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelGetWithGoodsReq { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelGetWithGoodsResp { ServiceGoodsChannelVo serviceGoodsChannel = 1; ServiceGoodsVo serviceGoods = 2; } message ServiceGoodsChannelGetWithGoodsAndPlansReq { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelGetWithGoodsAndPlansResp { ServiceGoodsChannelVo serviceGoodsChannel = 1; ServiceGoodsVo serviceGoods = 2; repeated ServicePlanWithDurationVo servicePlans = 3; } message ServiceGoodsChannelGetWithGoodsAndPlansAndDetailsReq { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelGetWithGoodsAndPlansAndDetailsResp { ServiceGoodsChannelVo serviceGoodsChannel = 1; ServiceGoodsVo serviceGoods = 2; repeated ServicePlanWithDurationAndDetailsVo servicePlans = 3; } message ServiceGoodsChannelAddReq { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelAddResp { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelUpdateReq { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelUpdateResp { ServiceGoodsChannelVo vo = 1; } message ServiceGoodsChannelDelReq { repeated int64 ids = 1; } message ServiceGoodsChannelListReq { Page page = 1; ServiceGoodsChannelVo vo = 2; repeated string productCodes = 3; repeated string channels = 4; repeated int64 serviceGoodsIds = 5; repeated int64 excludeIds = 6; } message ServiceGoodsChannelListResp { int64 total = 1; repeated ServiceGoodsChannelVo list = 2; } message ServiceGoodsChannelListWithGoodsReq { Page page = 1; ServiceGoodsChannelVo vo = 2; repeated string productCodes = 3; repeated string channels = 4; repeated int64 serviceGoodsIds = 5; repeated int64 excludeIds = 6; } message ServiceGoodsChannelListWithGoodsResp { int64 total = 1; repeated ServiceGoodsChannelWithGoodsVo list = 2; } message ServiceGoodsChannelListWithGoodsAndPlansReq { Page page = 1; ServiceGoodsChannelVo vo = 2; repeated string productCodes = 3; repeated string channels = 4; repeated int64 serviceGoodsIds = 5; repeated int64 excludeIds = 6; } message ServiceGoodsChannelListWithGoodsAndPlansResp { int64 total = 1; repeated ServiceGoodsChannelWithGoodsAndPlansVo list = 2; } message ServiceGoodsChannelListWithGoodsAndPlansAndDetailsReq { Page page = 1; ServiceGoodsChannelVo vo = 2; repeated string productCodes = 3; repeated string channels = 4; repeated int64 serviceGoodsIds = 5; repeated int64 excludeIds = 6; } message ServiceGoodsChannelListWithGoodsAndPlansAndDetailsResp { int64 total = 1; repeated ServiceGoodsChannelWithGoodsAndPlansAndDetailsVo list = 2; } // end ServiceGoodsChannel service GoGoodsClient { /** ServiceTypes Model */ // ServiceTypesAdd rpc ServiceTypesAdd(ServiceTypesAddReq) returns (ServiceTypesAddResp); rpc ServiceTypesUpdate(ServiceTypesUpdateReq) returns (ServiceTypesUpdateResp); rpc ServiceTypesDel(ServiceTypesDelReq) returns (Empty); rpc ServiceTypesGet(ServiceTypesGetReq) returns (ServiceTypesGetResp); rpc ServiceTypesGetWithValue(ServiceTypesGetWithValueReq) returns (ServiceTypesGetWithValueResp); rpc ServiceTypesList(ServiceTypesListReq) returns (ServiceTypesListResp); rpc ServiceTypesListWithValue(ServiceTypesListWithValueReq) returns (ServiceTypesListWithValueResp); /** ServicePlan Model */ // ServicePlanAdd rpc ServicePlanAdd(ServicePlanAddReq) returns (ServicePlanAddResp); rpc ServicePlanAddWithDetails(ServicePlanAddWithDetailsReq) returns (ServicePlanAddWithDetailsResp); rpc ServicePlanUpdate(ServicePlanUpdateReq) returns (ServicePlanUpdateResp); rpc ServicePlanUpdateWithDetails(ServicePlanUpdateWithDetailsReq) returns (ServicePlanUpdateWithDetailsResp); rpc ServicePlanDel(ServicePlanDelReq) returns (Empty); rpc ServicePlanGet(ServicePlanGetReq) returns (ServicePlanGetResp); rpc ServicePlanGetWithDetails(ServicePlanGetWithDetailsReq) returns (ServicePlanGetWithDetailsResp); rpc ServicePlanList(ServicePlanListReq) returns (ServicePlanListResp); rpc ServicePlanListWithDetails(ServicePlanListWithDetailsReq) returns (ServicePlanListWithDetailsResp); /** ServicePlanTypes Model */ // ServicePlanTypesAdd rpc ServicePlanTypesAdd(ServicePlanTypesAddReq) returns (ServicePlanTypesAddResp); rpc ServicePlanTypesUpdate(ServicePlanTypesUpdateReq) returns (ServicePlanTypesUpdateResp); rpc ServicePlanTypesDel(ServicePlanTypesDelReq) returns (Empty); rpc ServicePlanTypesGet(ServicePlanTypesGetReq) returns (ServicePlanTypesGetResp); rpc ServicePlanTypesList(ServicePlanTypesListReq) returns (ServicePlanTypesListResp); /** ServiceGoods Model */ // ServiceGoodsAdd rpc ServiceGoodsAdd(ServiceGoodsAddReq) returns (ServiceGoodsAddResp); rpc ServiceGoodsAddWithPlans(ServiceGoodsAddWithPlansReq) returns (ServiceGoodsAddWithPlansResp); rpc ServiceGoodsAddWithPlansAndDetails(ServiceGoodsAddWithPlansAndDetailsReq) returns (ServiceGoodsAddWithPlansAndDetailsResp); rpc ServiceGoodsUpdate(ServiceGoodsUpdateReq) returns (ServiceGoodsUpdateResp); rpc ServiceGoodsUpdateWithPlans(ServiceGoodsUpdateWithPlansReq) returns (ServiceGoodsUpdateWithPlansResp); rpc ServiceGoodsUpdateWithPlansAndDetails(ServiceGoodsUpdateWithPlansAndDetailsReq) returns (ServiceGoodsUpdateWithPlansAndDetailsResp); rpc ServiceGoodsDel(ServiceGoodsDelReq) returns (Empty); rpc ServiceGoodsGet(ServiceGoodsGetReq) returns (ServiceGoodsGetResp); rpc ServiceGoodsGetWithPlans(ServiceGoodsGetWithPlansReq) returns (ServiceGoodsGetWithPlansResp); rpc ServiceGoodsGetWithPlansAndDetails(ServiceGoodsGetWithPlansAndDetailsReq) returns (ServiceGoodsGetWithPlansAndDetailsResp); rpc ServiceGoodsList(ServiceGoodsListReq) returns (ServiceGoodsListResp); rpc ServiceGoodsListWithPlans(ServiceGoodsListWithPlansReq) returns (ServiceGoodsListWithPlansResp); rpc ServiceGoodsListWithPlansAndDetails(ServiceGoodsListWithPlansAndDetailsReq) returns (ServiceGoodsListWithPlansAndDetailsResp); /** ServiceGoodsPlans Model */ // ServiceGoodsPlansAdd rpc ServiceGoodsPlansAdd(ServiceGoodsPlansAddReq) returns (ServiceGoodsPlansAddResp); rpc ServiceGoodsPlansUpdate(ServiceGoodsPlansUpdateReq) returns (ServiceGoodsPlansUpdateResp); rpc ServiceGoodsPlansDel(ServiceGoodsPlansDelReq) returns (Empty); rpc ServiceGoodsPlansGet(ServiceGoodsPlansGetReq) returns (ServiceGoodsPlansGetResp); rpc ServiceGoodsPlansList(ServiceGoodsPlansListReq) returns (ServiceGoodsPlansListResp); /** ServiceGoodsChannel Model */ // ServiceGoodsChannelAdd rpc ServiceGoodsChannelAdd(ServiceGoodsChannelAddReq) returns (ServiceGoodsChannelAddResp); rpc ServiceGoodsChannelUpdate(ServiceGoodsChannelUpdateReq) returns (ServiceGoodsChannelUpdateResp); rpc ServiceGoodsChannelDel(ServiceGoodsChannelDelReq) returns (Empty); rpc ServiceGoodsChannelGet(ServiceGoodsChannelGetReq) returns (ServiceGoodsChannelGetResp); rpc ServiceGoodsChannelGetWithGoods(ServiceGoodsChannelGetWithGoodsReq) returns (ServiceGoodsChannelGetWithGoodsResp); rpc ServiceGoodsChannelGetWithGoodsAndPlans(ServiceGoodsChannelGetWithGoodsAndPlansReq) returns (ServiceGoodsChannelGetWithGoodsAndPlansResp); rpc ServiceGoodsChannelGetWithGoodsAndPlansAndDetails(ServiceGoodsChannelGetWithGoodsAndPlansAndDetailsReq) returns (ServiceGoodsChannelGetWithGoodsAndPlansAndDetailsResp); rpc ServiceGoodsChannelList(ServiceGoodsChannelListReq) returns (ServiceGoodsChannelListResp); rpc ServiceGoodsChannelListWithGoods(ServiceGoodsChannelListWithGoodsReq) returns (ServiceGoodsChannelListWithGoodsResp); rpc ServiceGoodsChannelListWithGoodsAndPlans(ServiceGoodsChannelListWithGoodsAndPlansReq) returns (ServiceGoodsChannelListWithGoodsAndPlansResp); rpc ServiceGoodsChannelListWithGoodsAndPlansAndDetails(ServiceGoodsChannelListWithGoodsAndPlansAndDetailsReq) returns (ServiceGoodsChannelListWithGoodsAndPlansAndDetailsResp); }