package cn.lihu.jh.module.ecg.annotation;
|
|
import java.lang.annotation.*;
|
|
/**
|
* 标记「必须是该工位的主人才能调用」的写接口(主/围观模型的核心鉴权)。
|
*
|
* <h3>为什么需要它</h3>
|
* 引入"围观"后,任何登录用户都能**查看**任意已开放工位的数据(只读),
|
* 但**写**操作(叫号、过号、完成检查、确费、领用、装机…)只能由该工位的主人执行。
|
*
|
* <p>前端虽然会在围观模式下禁用按钮,但那只是界面约定 —— 任何人绕过界面直接调接口照样能改数据。
|
* 因此服务端必须统一校验:<b>当前登录人 == clinic_room 该 roomId+bedNo 的 doc_id</b>。
|
*
|
* <h3>用法</h3>
|
* 加在 Controller 的写方法上即可,切面会自动从参数里解析 roomId / bedNo:
|
* <ul>
|
* <li>{@code @RequestParam("roomId") Long roomId} / {@code @RequestParam("bedNo") String bedNo};</li>
|
* <li>或 {@code @RequestBody XxxVO vo},VO 里有 {@code getRoomId()} / {@code getBedNo()}。</li>
|
* </ul>
|
* 解析不到 roomId/bedNo 时**放行并记警告**(避免误伤),此类接口需在业务里自行校验
|
* (例如只带 rentId 的 {@code fee-confirm})。
|
*
|
* @author 心电排队装机系统
|
*/
|
@Target({ElementType.METHOD})
|
@Retention(RetentionPolicy.RUNTIME)
|
@Documented
|
public @interface RequireBedOwner {
|
|
/** 便于日志排查:写清这个接口是做什么的(可选) */
|
String value() default "";
|
}
|