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