LNHttpManager+Order.swift 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  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. enum LNOrderScene: Int {
  31. case normal = 0
  32. case room
  33. }
  34. extension LNHttpManager {
  35. func createOrderBySkill(
  36. skillId: String, count: Int, remark: String, scene: LNOrderScene,
  37. completion: @escaping (LNCreateOrderResponse?, LNHttpError?) -> Void)
  38. {
  39. let params: [String: Any] = [
  40. "skillId": skillId,
  41. "purchaseQty": count,
  42. "remark": remark,
  43. "source": scene.rawValue
  44. ]
  45. post(path: kNetPath_Order_Create, params: params, completion: completion)
  46. }
  47. }
  48. extension LNHttpManager {
  49. func getOrderList(
  50. size: Int, next: String,
  51. completion: @escaping (LNOrderListResponse?, LNHttpError?) -> Void)
  52. {
  53. post(path: kNetPath_Order_List, params: [
  54. "status": -1,
  55. "page": [
  56. "size": size, "next": next
  57. ]
  58. ], completion: completion)
  59. }
  60. func getOrderDetail(orderId: String, completion: @escaping (LNOrderDetailResponse?, LNHttpError?) -> Void) {
  61. post(path: kNetPath_Order_Detail, params: ["id": orderId], completion: completion)
  62. }
  63. func getOrderRecordList(
  64. size: Int, next: String,
  65. completion: @escaping (LNOrderRecordListResponse?, LNHttpError?) -> Void)
  66. {
  67. post(path: kNetPath_Order_Records, params: [
  68. "status": -1,
  69. "page": [
  70. "size": size, "next": next
  71. ]
  72. ], completion: completion)
  73. }
  74. func getUnfinishedOrderWith(uid: String, size: Int, next: String,
  75. completion: @escaping (LNUnfinishedOrderListResponse?, LNHttpError?) -> Void) {
  76. post(path: kNetPath_Order_Unfinished, params: [
  77. "userNo": uid,
  78. "page": [
  79. "size": size,
  80. "next": next
  81. ]
  82. ], completion: completion)
  83. }
  84. func getLastOrder(completion: @escaping (LNLastOrderResponse?, LNHttpError?) -> Void) {
  85. post(path: kNetPath_Order_Last, completion: completion)
  86. }
  87. }
  88. extension LNHttpManager {
  89. func createOrderQR(skillId: String, count: Int, type: LNOrderSource,
  90. completion: @escaping (LNCreateOrderQRCodeResponse?, LNHttpError?) -> Void) {
  91. post(path: kNetPath_Order_QR_Create, params: [
  92. "skillId": skillId,
  93. "purchaseQty": count,
  94. "type": type.rawValue
  95. ], completion: completion)
  96. }
  97. func getQRDetail(data: String, completion: @escaping (LNQRCodeDetailResponse?, LNHttpError?) -> Void) {
  98. post(path: kNetPath_Order_QR_Detail, params: [
  99. "id": data
  100. ], completion: completion)
  101. }
  102. func createQROrder(data: String, count: Int, extra: String, scene: LNOrderScene,
  103. completion: @escaping (LNCreateOrderResponse?, LNHttpError?) -> Void) {
  104. let params: [String: Any] = [
  105. "qrCode": data,
  106. "purchaseQty": count,
  107. "remark": extra,
  108. "source": scene.rawValue
  109. ]
  110. post(path: kNetPath_Order_QR_Order, params: params, completion: completion)
  111. }
  112. }
  113. extension LNHttpManager {
  114. func cancelOrder(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  115. post(path: kNetPath_Order_Cancel, params: [
  116. "id": orderId
  117. ], completion: completion)
  118. }
  119. func finishOrder(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  120. post(path: kNetPath_Order_Finish, params: [
  121. "id": orderId
  122. ], completion: completion)
  123. }
  124. func refundOrder(orderId: String, reason: String, attachments: [String], completion: @escaping (LNHttpError?) -> Void) {
  125. var atts: [[String: String]] = []
  126. attachments.forEach {
  127. atts.append(["attachmentUrl": $0])
  128. }
  129. post(path: kNetPath_Order_Refund, params: [
  130. "orderId": orderId,
  131. "reason": reason,
  132. "attachments": atts
  133. ], completion: completion)
  134. }
  135. func commentOrder(orderId: String, star: Double, comment: String, completion: @escaping (LNHttpError?) -> Void) {
  136. post(path: kNetPath_Order_Star, params: [
  137. "orderId": orderId,
  138. "star": star,
  139. "comment": comment
  140. ], completion: completion)
  141. }
  142. func rejectOrder(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  143. post(path: kNetPath_Order_Handler, params: [
  144. "orderNo": orderId,
  145. "type": LNOrderHandlerType.reject.rawValue
  146. ], completion: completion)
  147. }
  148. func acceptOrder(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  149. post(path: kNetPath_Order_Handler, params: [
  150. "orderNo": orderId,
  151. "type": LNOrderHandlerType.accept.rawValue
  152. ], completion: completion)
  153. }
  154. func startOrderService(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  155. post(path: kNetPath_Order_Handler, params: [
  156. "orderNo": orderId,
  157. "type": LNOrderHandlerType.start.rawValue
  158. ], completion: completion)
  159. }
  160. func finishOrderService(orderId: String, completion: @escaping (LNHttpError?) -> Void) {
  161. post(path: kNetPath_Order_Handler, params: [
  162. "orderNo": orderId,
  163. "type": LNOrderHandlerType.done.rawValue
  164. ], completion: completion)
  165. }
  166. func protestOrder(orderId: String, reason: String, attachments: [String], completion: @escaping (LNHttpError?) -> Void) {
  167. var atts: [[String: String]] = []
  168. attachments.forEach {
  169. atts.append(["attachmentUrl": $0])
  170. }
  171. post(path: kNetPath_Order_Protest, params: [
  172. "orderId": orderId,
  173. "reason": reason,
  174. "attachments": atts
  175. ], completion: completion)
  176. }
  177. }
  178. extension LNHttpManager {
  179. func fetchOrderDiscount(completion: @escaping (LNOrderDiscountVO?, LNHttpError?) -> Void) {
  180. post(path: kNetPath_Order_Discount, completion: completion)
  181. }
  182. }