• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kkkkkrua
V2EX  ›  程序员

非工作流,普通订单的状态流转,如何保证按照预期的希望进行,除了 if 逻辑控制之外,还有什么其他方案么?

  •  
  •   kkkkkrua · Oct 25, 2018 · 3429 views
    This topic created in 2938 days ago, the information mentioned may be changed or developed.

    比如订单的状态是 创建订单-->支付成功-->出单成功
    如何保证数据的状态是这么走,而不被跳过呢。例如:我先调用创建订单 api,再调用出单成功 api
    因为 3 个状态分别对应 3 个 api,api 的操作就是 update 某订单的状态。
    除了传统 If 逻辑控制,还有其他方式吗?
    语言是 java,现在用的状态机,但是在“断开”的流程下,状态机应该不太符合这种情况?

    5 replies  •  2018-10-26 08:02:57 +08:00
    Persona0x4343
    Persona0x4343
    Oct 25, 2018
    1
    “断开”的流程是指什么情况?
    kkkkkrua
    kkkkkrua
    OP
    Oct 25, 2018
    2
    @cwx391497 假如用状态机的话,必须要每次修改状态的时候,启动状态机,然后把状态更新到当前状态,然后进行事件处理,“断开”的意思,不是启动一次,然后一路往下走的意思
    smeraldo
    smeraldo
    Oct 25, 2018
    3
    加个状态码?
    starmoon1994
    starmoon1994
    Oct 25, 2018
    4
    通过 state 控制 然后用适配器模式,不同的 state 用不同的处理器,传参只传业务流水号,适配器再自己取业务信息
    Persona0x4343
    Persona0x4343
    Oct 26, 2018
    5
    @kkkkkrua 哦,在时间上非连续发生的事件,我以前做过一个很简易的,其实就是用数据库的一个字段去记录订单当前状态,当前状态码可以往哪些状态转直接用业务逻辑实现,然后更新数据库就行
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4556 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:13 · PVG 14:13 · LAX 22:13 · JFK 01:13
    ♥ Do have faith in what you're doing.