ManageDishTeminal 接口参考与占位清单

日期:2026-06-22 | 类型:开发前接口整理 | 项目:智能排菜系统安卓 Pad 客户端

参考项目:OrderingMachine、ZhctWeightingTableYoukate。本文只整理本项目可参考的接口路径、参数、字段和缺口占位,最终以后端接口文档为准。

1. 通用响应结构

两个参考项目均使用 code + message + data 的外层响应结构。

字段 类型 说明
codeint0 表示成功。
messagestring错误或提示信息。
dataobject / array业务数据。

来源:OrderingMachine network/bean/BaseBean.java;ZhctWeightingTableYoukate network/NetworkResult.java

2. 已有项目可参考接口

2.1 配对信息

来源项目OrderingMachine、ZhctWeightingTableYoukate
接口POST /p/api/matecode
Content-Typeapplication/x-www-form-urlencoded
请求参数matecode:配对码。
客户端封装OrderingMachine RetrofitRequest.getPairInfo(...);ZhctWeightingTableYoukate NetworkService.getPairInfo(...)
返回字段 说明
matecode配对码。
code终端/设备编号,客户端保存为 DEVICE_CODE
communicationkey通信密钥。
ali_mqttMQTT 配置,首期 ManageDishTeminal 可保存但不启用实时状态。
business_name商户名称。
restaurant_id餐厅 ID。
restaurant_name餐厅名称。
api_auth_account后续业务接口鉴权账号。
api_auth_pwd后续业务接口鉴权密码。
api_auth_key后续业务接口鉴权 key。

本项目系统设置中如保留“配置链接/配对码”,可复用该接口和保存逻辑。首期本地登录不依赖此接口。

2.2 启动初始化

来源项目OrderingMachine、ZhctWeightingTableYoukate
接口POST /p/api/equipmentStart
请求参数code:配对码或设备编号,参考项目命名存在差异,需后端最终确认。
用途设备启动时初始化。

2.3 心跳

来源项目OrderingMachine、ZhctWeightingTableYoukate
接口POST /p/api/heartbeat
请求参数code:设备编号。
用途现有项目用于设备心跳;ManageDishTeminal 首期不做实时状态,可暂不接。

2.4 档口列表 + 当前餐次信息

来源项目OrderingMachine
接口POST /api/orderMachine/restaurantList
Content-Typeapplication/x-www-form-urlencoded
请求参数equipment_code:设备编号。
客户端调用ChooseShopActivity.getRestaurantListData() 调用 RetrofitRequest.getRestaurantList(...)
返回字段 说明
area_idarea_name区域信息。
equipment.code设备编号。
equipment.restaurant_id设备关联餐厅 ID。
list[].shop_id食堂/分组 ID。
list[].shop_name食堂/分组名称。
list[].stall_list[].restaurant_id档口/餐厅 ID。
list[].stall_list[].restaurant_name档口/餐厅名称。
list[].stall_list[].file_path档口图片。
list[].stall_list[].intro档口简介。
list[].stall_list[].meal_date当前可用餐次日期。
list[].stall_list[].meal_times当前餐次编号。
list[].stall_list[].meal_name当前餐次名称。
list[].stall_list[].is_order是否允许订餐:参考项目 1 允许,2 不允许。
list[].stall_list[].dishes_num有效菜品数量。

ManageDishTeminal 可复用该接口作为“档口列表 + 默认餐段”的首期依据:进入排菜页先拉档口列表,默认第一个档口,并使用返回的 meal_date / meal_times / meal_name 展示当前餐段。

2.5 餐段时间

来源项目ZhctWeightingTableYoukate
接口POST /p/api/getRestaurantsInfo
Content-Typeapplication/x-www-form-urlencoded
请求参数id:餐厅/档口 ID。
客户端封装NetworkService.getCurrentMealTime(restaurantId)
返回字段 说明
morning_startmorning_end早餐开始/结束时间。
noon_startnoon_end午餐开始/结束时间。
night_startnight_end晚餐开始/结束时间。

如果本项目最终要求“根据当前时间判断餐段”,优先使用该接口字段;如果后端直接在档口列表返回当前餐段,也可减少一次请求。

2.6 当前餐次菜谱 / 菜品列表

来源项目OrderingMachine、ZhctWeightingTableYoukate
接口POST /p/api/getMeal
Content-Typeapplication/x-www-form-urlencoded 或 JSON body,OrderingMachine 使用 form。
OrderingMachine 请求参数categorykeywordcoderestaurant_idmeal_datemeal_times
客户端调用FoodListActivity.getDishListData() 调用 RetrofitRequest.getDishMenu(...)
返回字段 说明
data.1分类 1 菜品列表,OrderingMachine 映射为主食。
data.2分类 2 菜品列表,OrderingMachine 映射为素菜。
data.3分类 3 菜品列表,OrderingMachine 映射为肉类。
data.4分类 4 菜品列表,OrderingMachine 映射为奶/坚果类。
data.5分类 5 菜品列表,OrderingMachine 映射为水果。
data.6分类 6 菜品列表,OrderingMachine 映射为汤饮。
菜品字段 说明
id菜品 ID。
uuid菜品 UUID,后续保存/添加时优先使用。
name菜品名称。
price价格。
unit单位。
file_path / file_url菜品图片。
weight重量。
limit_numbookable_num限量和可订数量,ManageDishTeminal 首期可忽略。
energy_100gcarbohydrate_100gprotein_100gfat_100gdietary_fiber_100g营养字段,ManageDishTeminal 首期可忽略。
tag / tags营养标签,ManageDishTeminal 首期可忽略。

ManageDishTeminal 的“设置菜谱当前菜品列表”和“排菜抽屉菜谱库”可先复用该接口做读取;若后端提供按日期/餐次/档口专用菜谱接口,则以后端新接口为准。

2.7 菜品分类 + 全部菜品列表

来源项目ZhctWeightingTableYoukate
接口POST /p/api/CaterList
Content-Typeapplication/x-www-form-urlencoded
请求参数keywordcategorypagepage_size
客户端封装NetworkService.getDishList(searchKey, dishCategory, pageIndex, pageSize)
返回字段 说明
data.category[].catergory分类 ID。字段拼写沿用已有项目 catergory
data.category[].name分类名称。
data.category[].count分类菜品数量。
data.rows[].uuid菜品 UUID。
data.rows[].name菜品名称。
data.rows[].file_path菜品图片。
data.rows[].category菜品分类 ID。

ManageDishTeminal 首期“添加菜品到菜谱抽屉”可使用该接口做菜品库列表和分类筛选;首期搜索只做名称模糊搜索,接口支持 keyword

2.8 添加菜品到菜谱

来源项目ZhctWeightingTableYoukate
接口POST /p/api/addRecipe
Content-Typeapplication/x-www-form-urlencoded
请求参数uuid:菜品 UUID;code:设备编号。
客户端封装NetworkService.pushDishToMenu(uuid, code)

该接口是称重台项目里的“添加到菜谱库”,没有日期、餐次、档口参数。ManageDishTeminal 要维护“某日期 + 某餐次 + 某档口”的菜谱,是否能直接复用该接口需要后端确认。大概率需要新增接口或扩展参数。

2.9 从菜谱移除菜品

来源项目ZhctWeightingTableYoukate
接口POST /p/api/delRecipe
Content-Typeapplication/x-www-form-urlencoded
请求参数code:设备编号;uuid:菜品 UUID。
客户端封装NetworkService.deleteDishFromMenu(uuid, code)

同添加接口一样,该接口没有日期、餐次、档口参数。ManageDishTeminal 首期如要按日期/餐次/档口移除,需要后端确认是否扩展。

3. ManageDishTeminal 首期接口建议清单

模块 接口能力 参考接口 本项目处理建议
配对/配置 根据配对码获取设备配置 /p/api/matecode 可复用,系统设置中接入。
档口 获取档口列表和当前餐次 /api/orderMachine/restaurantList 可优先复用;字段满足档口、餐次、日期展示。
餐段 获取餐段时间 /p/api/getRestaurantsInfo 可复用;用于根据当前时间判断早餐/午餐/晚餐。
菜品库 获取分类和菜品列表 /p/api/CaterList 可复用;用于“添加菜品到菜谱”抽屉。
当前菜谱 获取某餐次菜谱 /p/api/getMeal 可参考;若需要日期/档口强绑定,建议后端确认新接口。
设置菜谱 添加菜品到菜谱 /p/api/addRecipe 仅可参考;缺日期/餐次/档口参数,建议占位待补。
设置菜谱 移除菜谱菜品 /p/api/delRecipe 仅可参考;缺日期/餐次/档口参数,建议占位待补。

4. 本项目需要但已有项目未完整覆盖的占位接口

以下接口在 ManageDishTeminal 原型和规划中会用到,但现有参考项目没有完全匹配的 Android 端接口。开发时先在 ApiService / ApiRequest 中建立占位方法和 DTO,等后端文档补齐后替换路径和字段。

占位接口名 建议用途 建议参数 状态
getScaleList 获取约 60 台称重台状态、单称/双称、当前排菜。 equipment_coderestaurant_idmeal_datemeal_times 参考项目未覆盖,待后端提供。
saveScaleDish 选择未排菜称位后立即保存排菜。 scale_idslotdishes_uuidrestaurant_idmeal_datemeal_times 参考 /api/weigh/pushDishes,但本项目是集中管理多台称重台,需新接口。
replaceScaleDish 已排菜称位替换菜品,确认后覆盖。 saveScaleDish,可与保存接口合并。 待后端确认是否复用保存接口。
getRecipeByContext 获取指定日期、餐次、档口的当前菜谱。 restaurant_idmeal_datemeal_times /p/api/getMeal 可参考,但需确认是否完全等价。
saveRecipeDishes 点击“加入已选菜品”后保存当前菜谱。 restaurant_idmeal_datemeal_timesdishes_uuids[] /p/api/addRecipe 参数不足,待后端补充。
removeRecipeDish 从指定日期、餐次、档口菜谱移除某菜。 restaurant_idmeal_datemeal_timesdishes_uuid /p/api/delRecipe 参数不足,待后端补充。
copyRecipe 按天/按周复制菜谱,目标已有菜品跳过。 mode、来源日期/周、目标日期/周、meal_timesrestaurant_id 参考项目未覆盖,待后端提供。建议返回复制数量、跳过数量。

5. 客户端落地建议