petstore-docs/ontology/actions.md

28 KiB
Raw Blame History

Actions动作

读写实体的命令/用例。每个动作标注入口controller/service 方法)、输入输出实体、适用规则。

Store 相关

action:register_boss

老板入驻:创建 Store + boss User,签发 session_token

  • 入口POST /api/user/register-bossUserService#registerBoss(公开,在 AuthInterceptor allowlist
  • 输入storeNamebossNamephonepassword
  • 输出entity:storeentity:usersession_token
  • 适用规则rule:BR-AUTH-001session token 签发)
  • 代码backend/src/main/java/com/petstore/service/UserService.java#registerBoss
  • 证据anchored

action:update_store

更新店铺信息:仅 boss 且只能改自己所属门店。

  • 入口PUT /api/store/updateStoreController#updateStoreService#update
  • 输入entity:storeid 必须等于 current.storeId
  • 输出entity:store
  • 适用规则rule:BR-STORE-001(仅 boss + 同店)
  • 代码backend/src/main/java/com/petstore/controller/StoreController.java#update
  • 测试StoreControllerTest
  • 证据anchored

action:delete_store

删除店铺:仅 boss 且只能删自己所属门店(软删)。

  • 入口DELETE /api/store/deleteStoreController#delete
  • 适用规则rule:BR-STORE-001
  • 代码backend/src/main/java/com/petstore/controller/StoreController.java#delete
  • 测试StoreControllerTest
  • 证据anchored

action:get_store_by_invite_code

按邀请码查门店:仅 boss/staff 且邀请码对应门店必须为当前用户所属门店。

  • 入口GET /api/store/invite-codeStoreController#getByInviteCode
  • 适用规则rule:BR-STORE-002(邀请码同店校验)
  • 代码backend/src/main/java/com/petstore/controller/StoreController.java#getByInviteCode
  • 测试StoreControllerTest
  • 证据anchored

User / 鉴权相关

action:login

手机号 + 短信验证码登录。生产禁用,仅 dev 模式(万能验证码 123456可用。

  • 入口POST /api/user/loginUserService#login(公开)
  • 输入phonecode
  • 输出entity:userentity:storesession_token
  • 适用规则rule:BR-AUTH-001rule:BR-AUTH-002(生产 SMS 禁用)
  • 代码backend/src/main/java/com/petstore/service/UserService.java#login
  • 测试UserServiceLoginStrategyTest
  • 证据anchored

action:wx_phone_login

微信小程序手机号授权登录:getPhoneNumber 的 phoneCode + uni.login 的 loginCode 换手机号并沉淀 openid。

  • 入口POST /api/user/wx-phone-loginUserController#wxPhoneLoginUserService#loginByVerifiedPhone(公开)
  • 输出entity:userentity:storesession_token、可能绑定 wechat_openid/wechat_unionid
  • 适用规则rule:BR-AUTH-001
  • 代码backend/src/main/java/com/petstore/controller/UserController.java#wxPhoneLogin
  • 证据anchored(生产登录主路径)

action:bind_wechat

绑定小程序 openid/unionid若标识曾绑定其他账号则先解绑。

  • 入口UserController#wxPhoneLogin 内调用 UserService#bindWechatMiniIdentity
  • 适用规则:—
  • 代码backend/src/main/java/com/petstore/service/UserService.java#bindWechatMiniIdentity
  • 证据anchored

Appointment 相关

action:create_appointment

创建预约:半小时占号,取消不占号;客户与创建人分开记录。

  • 入口POST /api/appointment/createAppointmentController#createAppointmentService#createBooking
  • 输入petNamepetTypeserviceTypeappointmentTimestoreIdremark?petId?;门店代客预约另需 customerUserIdcustomerPhone
  • 输出entity:appointment
  • 身份口径customer 自约时客户=创建人=current.userIdboss/staff 代约时创建人=current.userId客户按请求解析legacy userId 镜像客户
  • 适用规则rule:BR-APPT-001(状态机)、rule:BR-APPT-003(客户归属)、rule:BR-APPT-004(半小时档 + 营业时间 + 占用校验)
  • 代码backend/src/main/java/com/petstore/controller/AppointmentController.java#create
  • 证据anchored

action:start_service

开始服务:仅 new → doing,指定技师(谁点谁服务);仅 boss/staff 且同店。

  • 入口POST /api/appointment/startAppointmentController#startAppointmentService#startService
  • 适用规则rule:BR-APPT-001rule:BR-APPT-002(仅 boss/staff + 同店)
  • 代码backend/src/main/java/com/petstore/controller/AppointmentController.java#start
  • 测试AppointmentServiceTest
  • 证据anchored

action:transition_appointment_status

更新预约状态:合法迁移见 AppointmentService#transitionStatuscustomer 仅可取消自己的。

  • 入口PUT /api/appointment/statusAppointmentController#updateStatus
  • 适用规则rule:BR-APPT-001rule:BR-APPT-003customer 仅取消自己的)
  • 代码backend/src/main/java/com/petstore/controller/AppointmentController.java#updateStatus
  • 测试AppointmentServiceTest
  • 证据anchored

action:get_appointment_detail

预约详情customer 仅本人boss/staff 仅同店。

  • 入口GET /api/appointment/detailAppointmentController#detail
  • 适用规则rule:BR-APPT-002rule:BR-APPT-003
  • 代码backend/src/main/java/com/petstore/controller/AppointmentController.java#detail
  • 测试AppointmentControllerDetailTest
  • 证据anchored

action:list_appointments

预约列表身份从上下文派生customer 看自己boss/staff 看本店。

  • 入口GET /api/appointment/listAppointmentController#list
  • 适用规则rule:BR-APPT-002rule:BR-APPT-003
  • 代码backend/src/main/java/com/petstore/controller/AppointmentController.java#list
  • 证据anchored

Report 相关

action:submit_report

提交报告:仅 boss/staffauthorStaffId 从上下文派生,customerUserId 从预约派生;报告所属门店必须等于当前用户门店。

  • 入口POST /api/report/createReportController#createReportService#create
  • 输入appointmentIdremark?images;身份字段不从请求体采信
  • 输出reportTokenreportId
  • 适用规则rule:BR-RPT-001(必须绑定预约)、rule:BR-RPT-002(一约一份)、rule:BR-RPT-003(前后照片必填)、rule:BR-RPT-004(仅 doing 预约)、rule:BR-RPT-005(跨店 403
  • 代码backend/src/main/java/com/petstore/controller/ReportController.java#create
  • 测试ReportControllerTestReportServiceTest
  • 证据anchored

action:get_report_by_token

公开报告查询:凭 token 匿名访问,字段裁剪不返回 top-level userId/storeId/reportToken

  • 入口GET /api/report/get?token=ReportController#getByAppointmentId(公开)
  • 适用规则rule:BR-RPT-006(公开字段裁剪)
  • 代码backend/src/main/java/com/petstore/controller/ReportController.java#getByAppointmentId
  • 测试ReportControllerTest#publicTokenQueryHidesInternalFields
  • 证据anchored

action:track_report_open

报告打开埋点:日志只记 token SHA-256 前 8 位 hash。

  • 入口POST /api/report/open-trackReportController#trackReportOpen(公开)
  • 适用规则rule:BR-RPT-007token hash 日志)
  • 代码backend/src/main/java/com/petstore/controller/ReportController.java#trackReportOpen
  • 证据anchored

action:delete_report

删除报告:仅 boss/staff 且同店。

  • 入口DELETE /api/report/deleteReportController#delete
  • 适用规则rule:BR-RPT-005
  • 代码backend/src/main/java/com/petstore/controller/ReportController.java#delete
  • 证据anchored(同店校验用 reportService.list(storeId,null) 遍历,性能非最优,列为已知 gap

ReportLead 相关

action:submit_lead

宠主留资:凭 reportToken 匿名提交手机号,同报告同手机号去重。

  • 入口POST /api/report/{token}/reminderReportLeadController#submitReminderReportLeadService#submit(公开)
  • 输入phoneconsentloginCode?
  • 输出leadIdremindDateunsubscribeTokenwechatBound
  • 适用规则rule:BR-LEAD-001(去重)
  • 代码backend/src/main/java/com/petstore/controller/ReportLeadController.java#submitReminder
  • 证据documented(去重逻辑未补测试用例)

action:unsubscribe

一键退订:凭 unsubscribeToken

  • 入口POST /api/report/unsubscribeReportLeadController#unsubscribe(公开)
  • 适用规则rule:BR-UNSUB-001
  • 代码backend/src/main/java/com/petstore/controller/ReportLeadController.java#unsubscribe
  • 测试ReportLeadControllerTest
  • 证据anchored

action:list_leads

回访池列表:仅 boss/staffstoreId 从上下文派生;返回脱敏 openid/unionid。

  • 入口GET /api/report/leadsReportLeadController#leads
  • 适用规则rule:BR-LEAD-002(标识脱敏)、rule:BR-LEAD-003(跨店 403
  • 代码backend/src/main/java/com/petstore/controller/ReportLeadController.java#leads
  • 证据anchored

Batch 2 录入动作

Pet 相关

action:list_pets

宠物列表customer 查自己宠物(ownerUserId=current.userIdboss/staff 查本店服务过的宠物(storeId=current.storeId)。

  • 入口GET /api/pet/listPetController#list
  • 适用规则rule:BR-PET-001(跨用户/跨店)
  • 代码backend/src/main/java/com/petstore/controller/PetController.java#list
  • 证据anchored

action:create_pet

创建宠物档案customer 强制 ownerUserId=current.userIdboss/staff 用 body.ownerUserId代客建档

  • 入口POST /api/pet/createPetController#createPetService#create
  • 适用规则rule:BR-PET-001
  • 代码backend/src/main/java/com/petstore/controller/PetController.java#create
  • 证据anchored

action:update_pet

更新宠物:operatorUserId/role 从上下文派生。

  • 入口PUT /api/pet/updatePetController#updatePetService#update
  • 适用规则rule:BR-PET-001
  • 代码backend/src/main/java/com/petstore/controller/PetController.java#update
  • 证据anchored

action:delete_pet

删除宠物:operatorUserId/role 从上下文派生。

  • 入口DELETE /api/pet/deletePetController#deletePetService#delete
  • 适用规则rule:BR-PET-001
  • 代码backend/src/main/java/com/petstore/controller/PetController.java#delete
  • 证据anchored

action:get_pet_history

宠物服务时间线:宠主本人或本店员工/老板可查。

  • 入口GET /api/pet/historyPetController#historyPetService#getServiceHistory
  • 适用规则rule:BR-PET-001
  • 代码backend/src/main/java/com/petstore/controller/PetController.java#history
  • 证据anchored

ServiceType 相关

action:list_service_types

服务类型列表:公开接口,不传 storeId 返回系统默认;传 storeId 返回系统默认 + 该店自定义。

  • 入口GET /api/service-type/listServiceTypeController#list(公开,在 AuthInterceptor allowlist
  • 代码backend/src/main/java/com/petstore/controller/ServiceTypeController.java#list
  • 证据anchored

action:create_service_type

新增服务类型:仅 bossstoreId=current.storeId

  • 入口POST /api/service-type/createServiceTypeController#createServiceTypeService#create
  • 适用规则rule:BR-ST-001(仅 boss + 同店)
  • 代码backend/src/main/java/com/petstore/controller/ServiceTypeController.java#create
  • 测试ServiceTypeControllerTest
  • 证据anchored

action:update_service_type

编辑服务类型:仅 boss必须为本店自定义系统默认 storeId 为空不可改、他店不可改)。

  • 入口PUT /api/service-type/updateServiceTypeController#update
  • 适用规则rule:BR-ST-001
  • 代码backend/src/main/java/com/petstore/controller/ServiceTypeController.java#update
  • 测试ServiceTypeControllerTest
  • 证据anchored

action:delete_service_type

删除服务类型:仅 boss必须为本店自定义系统默认不可删、他店不可删

  • 入口DELETE /api/service-type/deleteServiceTypeController#delete
  • 适用规则rule:BR-ST-001
  • 代码backend/src/main/java/com/petstore/controller/ServiceTypeController.java#delete
  • 测试ServiceTypeControllerTest
  • 证据anchored

action:init_service_types

初始化系统默认服务类型:仅 boss/staff启动期已自动初始化

  • 入口POST /api/service-type/initServiceTypeController#init
  • 代码backend/src/main/java/com/petstore/controller/ServiceTypeController.java#init
  • 测试ServiceTypeControllerTest
  • 证据anchored

Schedule 相关

action:day_agenda

门店某日日程:仅 boss/staffstoreId=current.storeId

  • 入口GET /api/schedule/dayScheduleController#dayScheduleService#dayAgenda
  • 适用规则rule:BR-SCH-001(仅 boss/staff + 跨店 403
  • 代码backend/src/main/java/com/petstore/controller/ScheduleController.java#day
  • 测试ScheduleControllerTest
  • 证据anchored

action:create_schedule_block

手动占用半小时档:仅 boss/staffstoreId=current.storeIdcreatedByUserId=current.userId

  • 入口POST /api/schedule/blockScheduleController#createBlockScheduleService#createBlock
  • 适用规则rule:BR-SCH-001
  • 代码backend/src/main/java/com/petstore/controller/ScheduleController.java#createBlock
  • 测试ScheduleControllerTest
  • 证据anchored

action:delete_schedule_block

取消手动占用:仅 boss/staffservice 层做同店校验(operatorStoreId)。

  • 入口DELETE /api/schedule/blockScheduleController#deleteBlockScheduleService#deleteBlock
  • 适用规则rule:BR-SCH-001
  • 代码backend/src/main/java/com/petstore/controller/ScheduleController.java#deleteBlockservice/ScheduleService.java#deleteBlock
  • 测试ScheduleControllerTest
  • 证据anchored

Upload / Highlight 相关

action:upload_image

上传图片/视频:扩展名/MIME 校验 + 路径归一化防逃逸;需登录。

  • 入口POST /api/upload/imageFileController#uploadImage
  • 适用规则rule:BR-UPLOAD-001(路径归一化)、rule:BR-UPLOAD-002(扩展名/MIME 校验)
  • 代码backend/src/main/java/com/petstore/controller/FileController.java#uploadImage
  • 证据anchored

action:get_upload_image

读取上传资源:公开(在 AuthInterceptor allowlist GET /api/upload/image/**);路径归一化防逃逸。

  • 入口GET /api/upload/image/**FileController#getImage
  • 适用规则rule:BR-UPLOAD-001
  • 代码backend/src/main/java/com/petstore/controller/FileController.java#getImage
  • 证据anchored

action:generate_highlight

触发服务回顾短片生成:仅 boss/staffoperatorUserId/role 从上下文派生;异步 FFmpeg 拼接。

  • 入口POST /api/report/highlight/startReportController#startHighlightReportHighlightVideoService#requestGenerate
  • 适用规则rule:BR-HL-001(仅 boss/staffrule:BR-HL-002(三态 + composeMode
  • 代码backend/src/main/java/com/petstore/controller/ReportController.java#startHighlightservice/ReportHighlightVideoService.java#requestGenerate
  • 文档docs/洗美报告短视频成片方案.md
  • 证据anchored接口与上下文派生已实现FFmpeg 集成测试 gap

User 管理相关

action:create_staff

老板创建员工:仅 bossstoreId=current.storeId

  • 入口POST /api/user/create-staffUserController#createStaffUserService#createStaff
  • 适用规则rule:BR-USER-001(仅 boss
  • 代码backend/src/main/java/com/petstore/controller/UserController.java#createStaff
  • 证据anchored

action:list_staff

员工列表:仅 boss/staffstoreId=current.storeId

  • 入口GET /api/user/staff-listUserController#staffList
  • 适用规则rule:BR-USER-001
  • 代码backend/src/main/java/com/petstore/controller/UserController.java#staffList
  • 证据anchored

action:delete_staff

删除员工:仅 boss目标员工必须属于本店。

  • 入口DELETE /api/user/staffUserController#deleteStaff
  • 适用规则rule:BR-USER-001
  • 代码backend/src/main/java/com/petstore/controller/UserController.java#deleteStaff
  • 证据anchored

action:update_user

更新当前登录用户信息(头像/姓名/手机号):id=current.userId(覆盖请求体);手机号变更需 SMS 验证码(生产禁用)。

  • 入口PUT /api/user/updateUserController#updateUserUserService#updateUser
  • 适用规则rule:BR-USER-002(仅本人)、rule:BR-AUTH-002(生产手机号变更禁用)
  • 代码backend/src/main/java/com/petstore/controller/UserController.java#updateUser
  • 证据anchored

Batch 2.1 补录动作audit_drift 发现的遗漏)

公开查询类(在 AuthInterceptor allowlist

action:list_stores

门店列表:公开接口,经 toPublicStoreView 裁剪(不含 ownerId/inviteCode

  • 入口GET /api/store/listStoreController#list(公开)
  • 适用规则rule:BR-STORE-003
  • 代码backend/src/main/java/com/petstore/controller/StoreController.java#list
  • 测试StoreControllerTest#publicListHidesOwnerIdAndInviteCode
  • 证据anchored

action:get_store

门店详情:公开接口,经 toPublicStoreView 裁剪(含 intro/营业时段,不含 ownerId/inviteCode/deleted

  • 入口GET /api/store/getStoreController#get(公开)
  • 适用规则rule:BR-STORE-003
  • 代码backend/src/main/java/com/petstore/controller/StoreController.java#get
  • 测试StoreControllerTest#publicGetHidesOwnerIdAndInviteCode
  • 证据anchored

action:get_available_slots

门店某日可预约时段:公开接口,半小时档,含已占用/已过/可约。

  • 入口GET /api/appointment/available-slotsAppointmentController#availableSlots(公开)
  • 适用规则rule:BR-APPT-004(时段校验)
  • 代码backend/src/main/java/com/petstore/controller/AppointmentController.java#availableSlots
  • 证据anchored

action:get_report_suggestion

报告下次建议日期:公开接口,凭 token 查询(读取 entity:service_interval 推算)。

  • 入口GET /api/report/{token}/suggestionReportLeadController#suggestion(公开)
  • 适用规则rule:BR-INT-001
  • 代码backend/src/main/java/com/petstore/controller/ReportLeadController.java#suggestion
  • 证据anchored

action:submit_testimonial

宠主寄语提交:公开接口,凭 token 提交;同一报告保留一条,重复提交更新。

  • 入口POST /api/report/{token}/testimonialReportController#submitTestimonial(公开)
  • 输出entity:report_testimonial
  • 适用规则rule:BR-TST-001
  • 触发事件event:testimonial_saved
  • 代码backend/src/main/java/com/petstore/controller/ReportController.java#submitTestimonial
  • 证据anchored

action:get_legacy_upload

兼容旧路径读取上传资源:公开接口,路径归一化防逃逸。

  • 入口GET /api/upload/legacy/**FileController#getLegacyImage(公开)
  • 适用规则rule:BR-UPLOAD-001
  • 代码backend/src/main/java/com/petstore/controller/FileController.java#getLegacyImage
  • 证据anchored

注册/短信类(公开)

action:register_staff

员工注册(邀请码方式):公开接口,凭邀请码加入对应门店。

  • 入口POST /api/user/register-staffUserController#registerStaffUserService#registerStaff(公开)
  • 输出entity:userstaffentity:storesession_token
  • 适用规则rule:BR-AUTH-001
  • 代码backend/src/main/java/com/petstore/controller/UserController.java#registerStaff
  • 证据anchored

action:send_sms

发送短信验证码:公开接口;生产禁用universalSmsCode 为空时返回 403 SMS_LOGIN_DISABLED)。

  • 入口POST /api/sms/sendSmsController#send(公开)
  • 适用规则rule:BR-AUTH-002
  • 代码backend/src/main/java/com/petstore/controller/SmsController.java#send
  • 证据anchored

action:register_store

店铺注册(旧入口):公开接口,创建 Store。deprecated:与 action:register_boss 重复,勿作为新集成入口。

  • 入口POST /api/store/registerStoreController#registerStoreService#create
  • 输出entity:store
  • 状态deprecated
  • 代码backend/src/main/java/com/petstore/controller/StoreController.java#register
  • 证据gap(与 register_boss 重复,建议废弃或合并)

删除/列表类protected

action:delete_appointment

删除预约:仅 boss/staff 且同店。

  • 入口DELETE /api/appointment/deleteAppointmentController#delete
  • 适用规则rule:BR-APPT-002
  • 代码backend/src/main/java/com/petstore/controller/AppointmentController.java#delete
  • 证据anchored

action:list_reports

报告列表boss/staff 查本店customer 查自己相关报告;身份从上下文派生。

  • 入口GET /api/report/listReportController#list
  • 适用规则rule:BR-RPT-005(跨店 403
  • 代码backend/src/main/java/com/petstore/controller/ReportController.java#list
  • 证据anchored

微信 OAuthTODO demodeprecated

action:wechat_authorize

获取微信授权跳转 URL公开接口TODO demo真实微信登录走 action:wx_phone_login)。deprecated

  • 入口GET /api/wechat/authorizeWechatController#getAuthorizeUrl(公开)
  • 状态deprecated
  • 代码backend/src/main/java/com/petstore/controller/WechatController.java#getAuthorizeUrl
  • 证据gapTODO demo未真实实现

action:wechat_callback

微信授权回调公开接口TODO demo返回 demo_openid_ + code未真实换取 access_tokendeprecated

  • 入口GET /api/wechat/callbackWechatController#callback(公开)
  • 状态deprecated
  • 代码backend/src/main/java/com/petstore/controller/WechatController.java#callback
  • 证据gapTODO demo未真实实现真实微信登录走 action:wx_phone_login

客户端埋点 / 会话生命周期

action:track_video_play

成片点击播放埋点(前端客户端事件)。

  • 入口frontend reportView / videoPlayerclient-emitted
  • 触发事件event:video_play
  • 证据documentedschema 已冻结;上报与统计落地 gap

action:track_video_save

成片保存到相册埋点(前端客户端事件)。

  • 入口frontend reportView / videoPlayerclient-emitted
  • 触发事件event:video_save
  • 证据documentedschema 已冻结;上报与统计落地 gap

action:logout

退出登录 / 吊销会话:当前仅前端清本地 token无服务端吊销

  • 入口:—(未实现)
  • 触发事件event:session_revoked
  • 适用规则rule:BR-AUTH-001
  • 证据gap

action:get_user_info

获取当前登录用户信息:userId=current.userId

  • 入口GET /api/user/infoUserController#info
  • 适用规则rule:BR-USER-002rule:BR-USER-003
  • 代码backend/src/main/java/com/petstore/controller/UserController.java#info
  • 证据anchored

门店 Web 后台Phase A · documented

产品:docs/门店管理后台升级方案-对标宠老板.md。优先复用现有 /api/**,不另造状态机。

action:view_workbench

查看今日工作台(登录落点;可弹今日待办)。

  • 入口Admin UI /workbenchplanned
  • 输出entity:workbenchentity:workbench_todo_item
  • 适用规则rule:BR-ADMIN-001rule:BR-ADMIN-002rule:BR-ADMIN-004
  • 触发事件event:workbench_viewed可选gap
  • 证据documented

action:drilldown_workbench_todo

工作台待办卡片下钻到对应列表并带筛选。

  • 入口Admin UI workbench todo clickplanned
  • 适用规则rule:BR-ADMIN-001rule:BR-ADMIN-002
  • 证据documented

action:admin_list_appointments

后台预约列表(增强筛选;规则复用 Appointment*)。

  • 入口Admin UI /appointmentsplanned数据复用 GET /api/appointment/list
  • 适用规则rule:BR-ADMIN-001rule:BR-ADMIN-002rule:BR-APPT-001rule:BR-APPT-002
  • 证据documented

action:admin_list_reports

后台报告列表(成片三态、复制公开链接、触发重生成)。

  • 入口Admin UI /reportsplanned复用 GET /api/report/list + action:generate_highlight
  • 适用规则rule:BR-ADMIN-001rule:BR-ADMIN-002rule:BR-ADMIN-003rule:BR-RPT-005
  • 证据documented

action:admin_list_leads

后台回访线索列表。

  • 入口Admin UI /leadsplanned复用 GET /api/report/leads
  • 适用规则rule:BR-ADMIN-001rule:BR-ADMIN-002rule:BR-LEAD-002rule:BR-LEAD-003
  • 证据documented

action:admin_list_service_customers

后台服务客户列表(瘦身主档;姓名/手机/宠物名搜索)。

  • 入口GET /api/admin/service-customersAdminServiceCustomerController#listServiceCustomers → Admin UI /customers
  • 输出entity:service_customer
  • 适用规则rule:BR-ADMIN-001BR-ADMIN-004
  • 证据anchored
  • 代码backend/src/main/java/com/petstore/controller/AdminServiceCustomerController.javaAdminServiceCustomerService
  • 产品决策:新建聚合 API不以前端拼装为正式方案不做余额/次卡列、持卡会员导入
  • 文档docs/门店管理后台-PhaseA-页面清单PRD.md §7.6

action:admin_update_settings

后台门店设置(资料、营业时段、服务类型瘦身表单、员工)。

  • 入口GET /api/admin/storeAdminStoreController#currentStoreAdmin UI /settings;写资料 PUT /api/store/update
  • 适用规则rule:BR-ADMIN-001rule:BR-ADMIN-002rule:BR-ADMIN-003rule:BR-STORE-001rule:BR-ST-001rule:BR-USER-001
  • 证据anchored
  • 代码AdminStoreControllerStoreController#update;服务类型/员工复用既有 API

action:admin_manage_schedule

后台排班与手动占用(日视图)。

  • 入口Admin UI /scheduleGET /api/schedule/dayPOST/DELETE /api/schedule/block
  • 适用规则rule:BR-ADMIN-001rule:BR-ADMIN-002rule:BR-SCH-001
  • 证据anchored