penalty.wsd 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. @startuml Order penalty flow
  2. title Order penalty
  3. actor Apps as app
  4. participant Server as server
  5. database Database as db
  6. participant "Third Party" as third
  7. autonumber
  8. app -> app: Finished Order\nWith out leaving the connector
  9. third -> server ++: notification_charge_order_info
  10. server -> db --: Update Order Status
  11. ' alt Interval
  12. ' third -> server ++: notification_charge_order_info
  13. ' app -> third ++: Get Connector Status by order
  14. ' third -> server --++
  15. ' server -> server --: Check connector status
  16. ' server -> db --: Update Order Actual End Time \nIf Status is not 已插槍
  17. ' end
  18. autonumber
  19. alt 拔槍
  20. third -> server ++: notification_stationStatus
  21. server -> db ++: Find Out Current Order (Status = 已完成 & Acutal End Time = Null) By Connector ID
  22. db -> server --
  23. server -> db --: Update Actual End Time & Calculate Penalty ((Acutal End Time - End Time) * Penalty Fee/Min)
  24. end
  25. autonumber
  26. alt Having Penalty
  27. app -> server ++: Get Order Information: Current || Having Penalty & Not Paid\nTry to create another order
  28. server -> app --++: Penalty Fee
  29. app -> server --++: Wallet Transaction to pay the penalty fee by Order ID
  30. server -> db --: Update Order pay penalty fee status by ID
  31. end
  32. @enduml