触碰型二元期权:期次与购买流程
核对入口
coinex-contract-option-touch/contract-option-touch-provider/src/main/java/com/exch/contract/optiontouch/service/OptionOrderServiceImpl.java 的 add(OptionOrder, User)。与其他两版本不同,此入口显式接收 User。
已读取的处理顺序
- 先查询首赠金额;该值大于零时检查购买金额限制及用户当前订单、弹窗相关缓存。
- 校验期次 ID、金额和方向,并按本方法设置金额精度。
- 进入用户级同步块,设置订单时间并查开放期次。
- 用
Long.parseLong(scene) + DateUtil.MY_SECOND与当前秒时间比较是否超出窗口;不能直接替换成版本二的时间解析与截止规则。 - 检查期次 OPEN、用户及交易配置,调用
compareOrderVal。 - 核对商户停止买入开关后调用
addOrder(...)。
首赠相关缓存拦截在该入口具有条件,不能描述为所有订单无条件执行同一检查。用户级同步块只说明进程内互斥。
需要保留的订单上下文
购买时价格、方向、方向幅度、所属期次、配置倍率和首赠相关状态。具体 directionRate 的合法范围需对照参数校验实现,不只看前端输入。
验证场景
无首赠、有首赠且金额不足、当前订单冲突、购买时间边界、商户停买、不同方向幅度及重复请求。