{
  "httpStatus": 200,
  "body": {
    "creator": {
      "name": "李潇",
      "id": "63575519287a2b849fa9a642"
    },
    "modifier": {
      "name": "李潇",
      "id": "63575519287a2b849fa9a642"
    },
    "gmtCreate": 1781673302000,
    "gmtModified": 1782107237000,
    "serialNumber": "VWCG-1049",
    "subject": "手机端当日订餐按当前餐段和预订时间范围限制可订餐段",
    "description": "## 需求背景\nPC 端档口设置中，订餐外卖类型支持预订规则“当日设置”，可配置当天可预订时间段。现有手机端订餐逻辑已支持“当日设置只能订当天”，并能按档口营业餐段计算可订时间范围，但最终可订判断仍可能把多个未过期餐段同时开放。\n\n## 需求内容\n- 当档口类型为订餐外卖，且预订规则为“当日设置”时，手机端当天订餐需要与当前餐段关联。\n- 当前时间必须处于某个餐段营业时间内，且处于该餐段对应的可预订时间范围内，才允许预订该餐段。\n- 当前餐段之外的其他餐段，即使有菜品、未过餐段结束时间，也不可点餐/不可提交。\n- 不在任何餐段内，或不在当前餐段可预订时间范围内时，不允许预订。\n- 继续沿用现有 PC 档口设置里的 book_rules 结构，不新增数据库字段，不调整 PC 保存结构。\n\n## 现有逻辑关联\n- PC 端配置来源：store 档口设置保存 restaurants.book_rules，rule=3 表示当日设置，item.bookingTimeSlots 表示当日可预订时间段。\n- 手机端订餐链路：ai_api 的 Restaurant::orderList() 输出日期和餐段可订状态，MealCheckout::order() 与 MealCheckout::submit() 复用 orderList() 判断是否可订。\n- 现有 ai_api 已有当日设置只能订当天的限制，也已有将 bookingTimeSlots 与早餐/午餐/晚餐/夜宵营业时间求交集的 available_time_ranges 逻辑，本需求是在此基础上将 is_order 收敛到“当前餐段 + 当前餐段可预订时间范围”。\n\n## 验收要点\n- 当前时间在午餐餐段且命中午餐可预订时间范围时，只有午餐可点，早餐/晚餐/夜宵不可点。\n- 当前时间在某餐段内但不在该餐段可预订时间范围内时，该餐段不可点。\n- 当前时间不属于任何餐段时，所有餐段不可点。\n- 结算预览和提交订单均拦截非当前餐段或不可预订时间范围内的请求，不能仅前端隐藏。\n- 当日设置仍只能预订当天，不能预订未来日期。\n- 不影响按日期循环、按周循环的既有规则。\n- 不影响 store 点餐机现场点餐链路；点餐机仍按 VWCG-1005 约定不受 book_rules 预订时间限制。",
    "formatType": "MARKDOWN",
    "assignedTo": {
      "name": "赖清涛",
      "id": "643cc26b2ca4e1cd30923389"
    },
    "status": {
      "name": "已确认",
      "nameEn": "Open",
      "displayName": "已确认",
      "id": "32"
    },
    "space": {
      "name": "【产品线】智慧营养健康餐厅",
      "id": "dd2f708d1702891ff45b6f5d99"
    },
    "workitemType": {
      "name": "产品类需求",
      "id": "9uy29901re573f561d69jn40"
    },
    "logicalStatus": "NORMAL",
    "customFieldValues": [
      {
        "fieldName": "优先级",
        "fieldFormat": "list",
        "values": [
          {
            "identifier": "cc51041fade060f8f585052de3",
            "displayValue": "高"
          }
        ],
        "fieldId": "priority"
      }
    ],
    "updateStatusAt": 1782107232000,
    "trackers": null,
    "participants": null,
    "verifier": null,
    "sprint": null,
    "labels": null,
    "versions": null,
    "id": "1e5073f8309640b2ff70c6dc37",
    "idPath": null,
    "statusStageId": "1",
    "categoryId": "Req",
    "parentId": null
  }
}