LNHttpManager+Order.swift 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. //
  2. // LNHttpManager+Order.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/11/18.
  6. //
  7. import Foundation
  8. private let kNetPath_Order_Create = "/skill/order/payment"
  9. private let kNetPath_Order_List = "/skill/order/list"
  10. private let kNetPath_Order_Detail = "/skill/order/detail"
  11. private let kNetPath_Order_Unfinished = "/skill/order/unfinishedWith"
  12. private let kNetPath_Order_Last = "/playmate/mylast/orderinfo"
  13. private let kNetPath_Order_Finish = "/skill/order/finish"
  14. private let kNetPath_Order_Refund = "/skill/order/refund/apply"
  15. private let kNetPath_Order_Star = "/skill/order/star"
  16. private let kNetPath_Order_Cancel = "/skill/order/canecl"
  17. private let kNetPath_Order_Handler = "/playmate/order/handler"
  18. private let kNetPath_Order_QR_Create = "/skill/create/order/qrcode"
  19. private let kNetPath_Order_QR_Detail = "/skill/view/order/qrcode"
  20. private let kNetPath_Order_QR_Order = "/skill/order/qr/payment"
  21. private let kNetPath_Order_Records = "/playmate/order/list"
  22. private let kNetPath_Order_Protest = "/playmate/submit/refundVoucher"
  23. private let kNetPath_Order_Discount = "/skill/firstOrder/discount/chance"
  24. private enum LNOrderHandlerType: Int {
  25. case accept = 1
  26. case reject = 2
  27. case start = 3
  28. case done = 4
  29. }
  30. extension LNHttpManager {
  31. func createOrderBySkill(
  32. skillId: String, count: Int, remark: String,
  33. completion: @escaping (LNCreateOrderResponse?, LNHttpError?) -> Void)
  34. {
  35. post(path: kNetPath_Order_Create, params: [
  36. "skillId": skillId,
  37. "purchaseQty": count,
  38. "remark": remark
  39. ], completion: completion)
  40. }
  41. }
  42. extension LNHttpManager {
  43. func getOrderList(
  44. size: Int, next: String,
  45. completion: @escaping (LNOrderListResponse?, LNHttpError?) -> Void)
  46. {
  47. post(path: kNetPath_Order_List, params: [
  48. "status": -1,
  49. "page": [
  50. "size": size, "next": next
  51. ]
  52. ], completion: completion)
  53. }
  54. func getOrderDetail(orderId: String, completion: @escaping (LNOrderDetailResponse?, LNHttpError?) -> Void) {
  55. post(path: kNetPath_Order_Detail, params: ["id": orderId], completion: completion)
  56. }
  57. func getOrderRecordList(
  58. size: Int, next: String,
  59. completion: @escaping (LNOrderRecordListResponse?, LNHttpError?) -> Void)
  60. {
  61. post(path: kNetPath_Order_Records, params: [
  62. "status": -1,
  63. "page": [
  64. "size": size, "next": next
  65. ]
  66. ], completion: completion)
  67. }
  68. func getUnfinishedOrderWith(uid: String, size: Int, next: String,
  69. completion: @escaping (LNUnfinishedOrderListResponse?, LNHttpError?) -> Void) {
  70. post(path: kNetPath_Order_Unfinished, params: [
  71. "userNo": uid,
  72. "page": [
  73. "size": size,
  74. "next": next
  75. ]
  76. ], completion: completion)
  77. }
  78. func getLastOrder(completion: @escaping (LNLastOrderResponse?, LNHttpError?) -> Void) {
  79. post(path: kNetPath_Order_Last, completion: completion)
  80. }
  81. }
  82. extension LNHttpManager {
  83. func createOrderQR(skillId: String, count: Int, type: LNOrderSource,
  84. completion: @escaping (LNCreateOrderQRCodeResponse?, LNHttpError?) -> Void) {
  85. post(path: kNetPath_Order_QR_Create, params: [
  86. "skillId": skillId,
  87. "purchaseQty": count,
  88. "type": type.rawValue
  89. ], completion: completion)
  90. }
  91. func getQRDetail(data: String, completion: @escaping (LNQRCodeDetailResponse?, LNHttpError?) -> Void) {
  92. post(path: kNetPath_Order_QR_Detail, params: [
  93. "id": data
  94. ], completion: completion)
  95. }
  96. func createQROrder(data: String, count: Int, extra: String,
  97. completion: @escaping (LNCreateOrderResponse?, LNHttpError?) -> Void) {
  98. post(path: kNetPath_Order_QR_Order, params: [
  99. "qrCode": data,
  100. "purchaseQty": count,
  101. "remark": extra
  102. ], completion: completion)
  103. }
  104. }
  105. extension LNHttpManager {
  106. func cancelOrder(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  107. post(path: kNetPath_Order_Cancel, params: [
  108. "id": orderId
  109. ], completion: completion)
  110. }
  111. func finishOrder(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  112. post(path: kNetPath_Order_Finish, params: [
  113. "id": orderId
  114. ], completion: completion)
  115. }
  116. func refundOrder(orderId: String, reason: String, attachments: [String], completion: @escaping (LNHttpError?) -> Void) {
  117. var atts: [[String: String]] = []
  118. attachments.forEach {
  119. atts.append(["attachmentUrl": $0])
  120. }
  121. post(path: kNetPath_Order_Refund, params: [
  122. "orderId": orderId,
  123. "reason": reason,
  124. "attachments": atts
  125. ], completion: completion)
  126. }
  127. func commentOrder(orderId: String, star: Double, comment: String, completion: @escaping (LNHttpError?) -> Void) {
  128. post(path: kNetPath_Order_Star, params: [
  129. "orderId": orderId,
  130. "star": star,
  131. "comment": comment
  132. ], completion: completion)
  133. }
  134. func rejectOrder(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  135. post(path: kNetPath_Order_Handler, params: [
  136. "orderNo": orderId,
  137. "type": LNOrderHandlerType.reject.rawValue
  138. ], completion: completion)
  139. }
  140. func acceptOrder(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  141. post(path: kNetPath_Order_Handler, params: [
  142. "orderNo": orderId,
  143. "type": LNOrderHandlerType.accept.rawValue
  144. ], completion: completion)
  145. }
  146. func startOrderService(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  147. post(path: kNetPath_Order_Handler, params: [
  148. "orderNo": orderId,
  149. "type": LNOrderHandlerType.start.rawValue
  150. ], completion: completion)
  151. }
  152. func finishOrderService(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  153. post(path: kNetPath_Order_Handler, params: [
  154. "orderNo": orderId,
  155. "type": LNOrderHandlerType.done.rawValue
  156. ], completion: completion)
  157. }
  158. func protestOrder(orderId: String, reason: String, attachments: [String], completion: @escaping (LNHttpError?) -> Void) {
  159. var atts: [[String: String]] = []
  160. attachments.forEach {
  161. atts.append(["attachmentUrl": $0])
  162. }
  163. post(path: kNetPath_Order_Protest, params: [
  164. "orderId": orderId,
  165. "reason": reason,
  166. "attachments": atts
  167. ], completion: completion)
  168. }
  169. }
  170. extension LNHttpManager {
  171. func fetchOrderDiscount(completion: @escaping (LNOrderDiscountVO?, LNHttpError?) -> Void) {
  172. post(path: kNetPath_Order_Discount, completion: completion)
  173. }
  174. }