Skip to content

Destroy Tickets

Description

銷毀票券。

Resource

POST /v1/ticket/destruction

Authorization

採用 OAuth 2.0 Bearer Token,詳細使用流程請參考 Auth Login。

Request Body Parameters

Name Type Description
id string 任務編號/訂單編號
(option)
ticket_id_list List[string] 票劵編號列表
(option)

Request Example

{
  "id": "test21092200001",
  "ticket_id_list": [
    "A001",
    "B001"
  ]
}

Response

Status-Code: 204 No Content

Destroy Tickets API Workflow

sequenceDiagram
  autonumber
  participant C as Client
  participant OP as OmniPlatform

  C->>OP: Call Destroy Tickets API
  activate OP
  alt params['id'] != ''
    OP->>OP: Call destroy_tickets_by_id(params['id'])
    OP->>C: Return Response()
  end
  alt params['ticket_id_list'] != ''
    OP->>OP: Call destroy_tickets_by_ticket_id_list(params['ticket_id_list'])
    OP->>C: Return Response()
  end
  OP->>C: Return Response(400, "缺少請求參數 id 或 ticket_id_list")
  deactivate OP

Destroy Tickets By ID Workflow

sequenceDiagram
  autonumber
  participant O as Object
  participant DTBI as destroy_tickets_by_id()
  participant R as repository

  O->>DTBI: Call destroy_tickets_by_id(id)
  activate DTBI
  DTBI->>R: Call get_ticket_by_id(company_id, id)
  Note Over DTBI,R: 透過任務/訂單編號取得 ticket_df
  alt if ticket_df.empty
    DTBI->>O: Return Response(204)
  end
  alt if use_ticket_df.empty
    DTBI->>O: Return Response(400, message='已使用票券')
  end
  DTBI->>DTBI: Call handle_ticket_df(ticket_df, id)
  alt if need_destroy_to_pos
    DTBI->>DTBI: Call destroy_ticket_to_pos(ticket_df, id)
    alt if destroy_ticket_to_pos_result['status_code'] != 204
      DTBI->>O:return destroy_ticket_to_pos_result
    end
  end
  DTBI->>R: Call update_ticket_isuse_status(company_id, ticket_id_list, '4')
  DTBI->>O: Return Response(204)
  deactivate DTBI

Destroy Tickets By Ticket ID List Workflow

sequenceDiagram
  autonumber
  participant O as Object
  participant DTBTIL as destroy_tickets_by_ticket_id_list(()
  participant R as repository

  O->>DTBTIL: Call destroy_tickets_by_ticket_id_list(ticket_id_list)
  activate DTBTIL
  DTBTIL->>DTBTIL: Call destroy_ticket_to_pos(ticket_df, id)
  alt if destroy_ticket_to_pos_result['status_code'] != 204
    DTBTIL->>O:return destroy_ticket_to_pos_result
  end
  DTBTIL->>R: Call update_ticket_isuse_status(company_id, ticket_id_list, '4')
  DTBTIL->>O: Return Response(204)
  deactivate DTBTIL