Browse Source

feat(order): 重构油品订单相关API并实现开票功能

- 调整和统一油品订单相关接口定义,增加未支付订单检查、支付结果查询等GET接口
- 规范订单取消、支付、退款、开票等POST接口的作用域及返回类型
- 移除重复和错误接口定义,修正接口路径保持一致
- 在全局类型定义中调整接口返回结果结构,新增支付结果详情结构体
- 实现订单页面开票功能,调用新增开票接口获取URL并跳转
- 增加接口调用时的加载状态处理和异常捕获机制
zhangtao 4 days ago
parent
commit
ed556bfde9
3 changed files with 257 additions and 202 deletions
  1. 8 7
      src/api/apiDefinitions.ts
  2. 235 193
      src/api/globals.d.ts
  3. 14 2
      src/pages/order/index.vue

+ 8 - 7
src/api/apiDefinitions.ts

@@ -98,20 +98,21 @@ export default {
   ],
   'general.post_app_api_v1_product_oil_querydistancefence': ['POST', '/app-api/v1/product_oil/queryDistanceFence'],
   'general.post_smqjh_oms_api_v1_oil_order_createorder': ['POST', '/smqjh-oms/api/v1/oil/order/createOrder'],
-  'general.post_smqjh_oms_api_v1_oil_order_cancel': ['POST', '/smqjh-oms/api/v1/oil/order/cancel'],
-  'general.post_smqjh_oms_api_v1_oil_order_pay': ['POST', '/smqjh-oms/api/v1/oil/order/pay'],
-  'general.post_smqjh_oms_api_v1_oil_order_refundorder': ['POST', '/smqjh-oms/api/v1/oil/order/refundOrder'],
   'general.post_smqjh_oms_api_v1_oil_order_findoilorderpage': ['POST', '/smqjh-oms/api/v1/oil/order/findOilOrderPage'],
   'general.post_api_v1_oil_order_findoilorderpage': ['POST', '/api/v1/oil/order/findOilOrderPage'],
   'general.post_api_v1_oil_order_createorder': ['POST', '/api/v1/oil/order/createOrder'],
+  'general.get_api_v1_oil_order_checkonpayorder': ['GET', '/api/v1/oil/order/checkOnPayOrder'],
+  'general.post_smqjh_oms_api_v1_oil_order_cancel': ['POST', '/smqjh-oms/api/v1/oil/order/cancel'],
+  'general.get_api_v1_oil_order_payresultinfo': ['GET', '/api/v1/oil/order/payResultInfo'],
+  'general.post_smqjh_oms_api_v1_oil_order_pay': ['POST', '/smqjh-oms/api/v1/oil/order/pay'],
   'general.post_api_v1_oil_order_cancel': ['POST', '/api/v1/oil/order/cancel'],
-  'general.post_api_v1_oil_order_invoiceorder': ['POST', '/api/v1/oil/order/invoiceOrder'],
+  'general.post_smqjh_oms_api_v1_oil_order_invoiceorder': ['POST', '/smqjh-oms/api/v1/oil/order/invoiceOrder'],
+  'general.get_smqjh_oms_api_v1_oil_order_payresultinfo': ['GET', '/smqjh-oms/api/v1/oil/order/payResultInfo'],
   'general.post_api_v1_oil_order_pay': ['POST', '/api/v1/oil/order/pay'],
   'general.post_api_v1_oil_order_scantimeoutcancelorder': ['POST', '/api/v1/oil/order/scanTimeoutCancelOrder'],
   'general.post_api_v1_oil_order_refundorder': ['POST', '/api/v1/oil/order/refundOrder'],
-  'general.get_smqjh_oms_api_v1_oil_order_payresultinfo': ['GET', '/smqjh-oms/api/v1/oil/order/payResultInfo'],
-  'general.get_api_v1_oil_order_payresultinfo': ['GET', '/api/v1/oil/order/payResultInfo'],
-  'general.get_api_v1_oil_order_checkonpayorder': ['GET', '/api/v1/oil/order/checkOnPayOrder'],
+  'general.post_smqjh_oms_api_v1_oil_order_refundorder': ['POST', '/smqjh-oms/api/v1/oil/order/refundOrder'],
+  'general.post_api_v1_oil_order_invoiceorder': ['POST', '/api/v1/oil/order/invoiceOrder'],
   'general.post_smqjh_oms_api_v1_oil_order_findbypayurl': ['POST', '/smqjh-oms/api/v1/oil/order/findByPayUrl'],
   'general.post_api_v1_oil_callback_third_party': ['POST', '/api/v1/oil/callback/third-party'],
   'general.get_api_v1_order_orderlist': ['GET', '/api/v1/order/orderList'],

+ 235 - 193
src/api/globals.d.ts

@@ -750,17 +750,6 @@ export interface ResultQueryTokenResponse {
   data?: QueryTokenResponse;
   msg?: string;
 }
-export interface ResultBoolean {
-  /**
-   * 返回状态码
-   */
-  code?: string;
-  /**
-   * 返回数据对象
-   */
-  data?: boolean;
-  msg?: string;
-}
 export interface CheckOnPayOrderVO {
   /**
    * 小桔H5支付地址
@@ -776,6 +765,17 @@ export interface ResultCheckOnPayOrderVO {
   data?: CheckOnPayOrderVO;
   msg?: string;
 }
+export interface ResultBoolean {
+  /**
+   * 返回状态码
+   */
+  code?: string;
+  /**
+   * 返回数据对象
+   */
+  data?: boolean;
+  msg?: string;
+}
 export interface AppMemberCouponVO {
   /**
    * id
@@ -6714,126 +6714,6 @@ declare global {
       >(
         config: Config
       ): Alova2Method<ResultString, 'general.post_smqjh_oms_api_v1_oil_order_createorder', Config>;
-      /**
-       * ---
-       *
-       * [POST] 取消订单并释放优惠券
-       *
-       * **path:** /smqjh-oms/api/v1/oil/order/cancel
-       *
-       * ---
-       *
-       * **Query Parameters**
-       * ```ts
-       * type QueryParameters = {
-       *   // 订单ID
-       *   orderId: string
-       * }
-       * ```
-       *
-       * ---
-       *
-       * **Response**
-       * ```ts
-       * type Response = {
-       *   // 返回状态码
-       *   code?: string
-       *   // 返回数据对象
-       *   data?: boolean
-       *   msg?: string
-       * }
-       * ```
-       */
-      post_smqjh_oms_api_v1_oil_order_cancel<
-        Config extends Alova2MethodConfig<ResultBoolean> & {
-          params: {
-            /**
-             * 订单ID
-             */
-            orderId: string;
-          };
-        }
-      >(
-        config: Config
-      ): Alova2Method<ResultBoolean, 'general.post_smqjh_oms_api_v1_oil_order_cancel', Config>;
-      /**
-       * ---
-       *
-       * [POST] 支付订单+标记优惠券使用
-       *
-       * **path:** /smqjh-oms/api/v1/oil/order/pay
-       *
-       * ---
-       *
-       * **Query Parameters**
-       * ```ts
-       * type QueryParameters = {
-       *   orderId: string
-       * }
-       * ```
-       *
-       * ---
-       *
-       * **Response**
-       * ```ts
-       * type Response = {
-       *   // 返回状态码
-       *   code?: string
-       *   // 返回数据对象
-       *   data?: boolean
-       *   msg?: string
-       * }
-       * ```
-       */
-      post_smqjh_oms_api_v1_oil_order_pay<
-        Config extends Alova2MethodConfig<ResultBoolean> & {
-          params: {
-            orderId: string;
-          };
-        }
-      >(
-        config: Config
-      ): Alova2Method<ResultBoolean, 'general.post_smqjh_oms_api_v1_oil_order_pay', Config>;
-      /**
-       * ---
-       *
-       * [POST] 退款
-       *
-       * **path:** /smqjh-oms/api/v1/oil/order/refundOrder
-       *
-       * ---
-       *
-       * **Query Parameters**
-       * ```ts
-       * type QueryParameters = {
-       *   orderId: string
-       *   refundTime: string
-       * }
-       * ```
-       *
-       * ---
-       *
-       * **Response**
-       * ```ts
-       * type Response = {
-       *   // 返回状态码
-       *   code?: string
-       *   // 返回数据对象
-       *   data?: boolean
-       *   msg?: string
-       * }
-       * ```
-       */
-      post_smqjh_oms_api_v1_oil_order_refundorder<
-        Config extends Alova2MethodConfig<ResultBoolean> & {
-          params: {
-            orderId: string;
-            refundTime: string;
-          };
-        }
-      >(
-        config: Config
-      ): Alova2Method<ResultBoolean, 'general.post_smqjh_oms_api_v1_oil_order_refundorder', Config>;
       /**
        * ---
        *
@@ -7068,12 +6948,38 @@ declare global {
       >(
         config: Config
       ): Alova2Method<ResultString, 'general.post_api_v1_oil_order_createorder', Config>;
+      /**
+       * ---
+       *
+       * [GET] 检查是否还有未支付订单
+       *
+       * **path:** /api/v1/oil/order/checkOnPayOrder
+       *
+       * ---
+       *
+       * **Response**
+       * ```ts
+       * type Response = {
+       *   // 返回状态码
+       *   code?: string
+       *   data?: {
+       *     // 小桔H5支付地址
+       *     payUrl?: string
+       *     orderId?: string
+       *   }
+       *   msg?: string
+       * }
+       * ```
+       */
+      get_api_v1_oil_order_checkonpayorder<Config extends Alova2MethodConfig<ResultCheckOnPayOrderVO>>(
+        config?: Config
+      ): Alova2Method<ResultCheckOnPayOrderVO, 'general.get_api_v1_oil_order_checkonpayorder', Config>;
       /**
        * ---
        *
        * [POST] 取消订单并释放优惠券
        *
-       * **path:** /api/v1/oil/order/cancel
+       * **path:** /smqjh-oms/api/v1/oil/order/cancel
        *
        * ---
        *
@@ -7098,7 +7004,7 @@ declare global {
        * }
        * ```
        */
-      post_api_v1_oil_order_cancel<
+      post_smqjh_oms_api_v1_oil_order_cancel<
         Config extends Alova2MethodConfig<ResultBoolean> & {
           params: {
             /**
@@ -7109,13 +7015,13 @@ declare global {
         }
       >(
         config: Config
-      ): Alova2Method<ResultBoolean, 'general.post_api_v1_oil_order_cancel', Config>;
+      ): Alova2Method<ResultBoolean, 'general.post_smqjh_oms_api_v1_oil_order_cancel', Config>;
       /**
        * ---
        *
-       * [POST] 获取订单开票
+       * [GET] 支付成功后订单回写信息
        *
-       * **path:** /api/v1/oil/order/invoiceOrder
+       * **path:** /api/v1/oil/order/payResultInfo
        *
        * ---
        *
@@ -7134,14 +7040,30 @@ declare global {
        * type Response = {
        *   // 返回状态码
        *   code?: string
-       *   // 返回数据对象
-       *   data?: string
+       *   data?: {
+       *     // 订单金额
+       *     totalMoney?: number
+       *     // 平台订单号
+       *     orderNumber?: string
+       *     // 三方订单号
+       *     thirdOrderId?: string
+       *     // 枪号
+       *     gunNo?: string
+       *     // 加油量
+       *     quantity?: number
+       *     // 品牌名称
+       *     brandName?: string
+       *     // 门店名称
+       *     storeName?: string
+       *     // 油品
+       *     itemName?: string
+       *   }
        *   msg?: string
        * }
        * ```
        */
-      post_api_v1_oil_order_invoiceorder<
-        Config extends Alova2MethodConfig<ResultString> & {
+      get_api_v1_oil_order_payresultinfo<
+        Config extends Alova2MethodConfig<ResultPayResultInfoVO> & {
           params: {
             /**
              * 订单ID
@@ -7151,13 +7073,13 @@ declare global {
         }
       >(
         config: Config
-      ): Alova2Method<ResultString, 'general.post_api_v1_oil_order_invoiceorder', Config>;
+      ): Alova2Method<ResultPayResultInfoVO, 'general.get_api_v1_oil_order_payresultinfo', Config>;
       /**
        * ---
        *
        * [POST] 支付订单+标记优惠券使用
        *
-       * **path:** /api/v1/oil/order/pay
+       * **path:** /smqjh-oms/api/v1/oil/order/pay
        *
        * ---
        *
@@ -7181,7 +7103,7 @@ declare global {
        * }
        * ```
        */
-      post_api_v1_oil_order_pay<
+      post_smqjh_oms_api_v1_oil_order_pay<
         Config extends Alova2MethodConfig<ResultBoolean> & {
           params: {
             orderId: string;
@@ -7189,13 +7111,23 @@ declare global {
         }
       >(
         config: Config
-      ): Alova2Method<ResultBoolean, 'general.post_api_v1_oil_order_pay', Config>;
+      ): Alova2Method<ResultBoolean, 'general.post_smqjh_oms_api_v1_oil_order_pay', Config>;
       /**
        * ---
        *
-       * [POST] 支付订单+标记优惠券使用
+       * [POST] 取消订单并释放优惠券
        *
-       * **path:** /api/v1/oil/order/scanTimeoutCancelOrder
+       * **path:** /api/v1/oil/order/cancel
+       *
+       * ---
+       *
+       * **Query Parameters**
+       * ```ts
+       * type QueryParameters = {
+       *   // 订单ID
+       *   orderId: string
+       * }
+       * ```
        *
        * ---
        *
@@ -7210,23 +7142,32 @@ declare global {
        * }
        * ```
        */
-      post_api_v1_oil_order_scantimeoutcancelorder<Config extends Alova2MethodConfig<ResultBoolean>>(
-        config?: Config
-      ): Alova2Method<ResultBoolean, 'general.post_api_v1_oil_order_scantimeoutcancelorder', Config>;
+      post_api_v1_oil_order_cancel<
+        Config extends Alova2MethodConfig<ResultBoolean> & {
+          params: {
+            /**
+             * 订单ID
+             */
+            orderId: string;
+          };
+        }
+      >(
+        config: Config
+      ): Alova2Method<ResultBoolean, 'general.post_api_v1_oil_order_cancel', Config>;
       /**
        * ---
        *
-       * [POST] 退款
+       * [POST] 获取订单开票
        *
-       * **path:** /api/v1/oil/order/refundOrder
+       * **path:** /smqjh-oms/api/v1/oil/order/invoiceOrder
        *
        * ---
        *
        * **Query Parameters**
        * ```ts
        * type QueryParameters = {
+       *   // 订单ID
        *   orderId: string
-       *   refundTime: string
        * }
        * ```
        *
@@ -7238,21 +7179,23 @@ declare global {
        *   // 返回状态码
        *   code?: string
        *   // 返回数据对象
-       *   data?: boolean
+       *   data?: string
        *   msg?: string
        * }
        * ```
        */
-      post_api_v1_oil_order_refundorder<
-        Config extends Alova2MethodConfig<ResultBoolean> & {
+      post_smqjh_oms_api_v1_oil_order_invoiceorder<
+        Config extends Alova2MethodConfig<ResultString> & {
           params: {
+            /**
+             * 订单ID
+             */
             orderId: string;
-            refundTime: string;
           };
         }
       >(
         config: Config
-      ): Alova2Method<ResultBoolean, 'general.post_api_v1_oil_order_refundorder', Config>;
+      ): Alova2Method<ResultString, 'general.post_smqjh_oms_api_v1_oil_order_invoiceorder', Config>;
       /**
        * ---
        *
@@ -7314,16 +7257,15 @@ declare global {
       /**
        * ---
        *
-       * [GET] 支付成功后订单回写信息
+       * [POST] 支付订单+标记优惠券使用
        *
-       * **path:** /api/v1/oil/order/payResultInfo
+       * **path:** /api/v1/oil/order/pay
        *
        * ---
        *
        * **Query Parameters**
        * ```ts
        * type QueryParameters = {
-       *   // 订单ID
        *   orderId: string
        * }
        * ```
@@ -7335,46 +7277,27 @@ declare global {
        * type Response = {
        *   // 返回状态码
        *   code?: string
-       *   data?: {
-       *     // 订单金额
-       *     totalMoney?: number
-       *     // 平台订单号
-       *     orderNumber?: string
-       *     // 三方订单号
-       *     thirdOrderId?: string
-       *     // 枪号
-       *     gunNo?: string
-       *     // 加油量
-       *     quantity?: number
-       *     // 品牌名称
-       *     brandName?: string
-       *     // 门店名称
-       *     storeName?: string
-       *     // 油品
-       *     itemName?: string
-       *   }
+       *   // 返回数据对象
+       *   data?: boolean
        *   msg?: string
        * }
        * ```
        */
-      get_api_v1_oil_order_payresultinfo<
-        Config extends Alova2MethodConfig<ResultPayResultInfoVO> & {
+      post_api_v1_oil_order_pay<
+        Config extends Alova2MethodConfig<ResultBoolean> & {
           params: {
-            /**
-             * 订单ID
-             */
             orderId: string;
           };
         }
       >(
         config: Config
-      ): Alova2Method<ResultPayResultInfoVO, 'general.get_api_v1_oil_order_payresultinfo', Config>;
+      ): Alova2Method<ResultBoolean, 'general.post_api_v1_oil_order_pay', Config>;
       /**
        * ---
        *
-       * [GET] 检查是否还有未支付订单
+       * [POST] 支付订单+标记优惠券使用
        *
-       * **path:** /api/v1/oil/order/checkOnPayOrder
+       * **path:** /api/v1/oil/order/scanTimeoutCancelOrder
        *
        * ---
        *
@@ -7383,18 +7306,137 @@ declare global {
        * type Response = {
        *   // 返回状态码
        *   code?: string
-       *   data?: {
-       *     // 小桔H5支付地址
-       *     payUrl?: string
-       *     orderId?: string
-       *   }
+       *   // 返回数据对象
+       *   data?: boolean
        *   msg?: string
        * }
        * ```
        */
-      get_api_v1_oil_order_checkonpayorder<Config extends Alova2MethodConfig<ResultCheckOnPayOrderVO>>(
+      post_api_v1_oil_order_scantimeoutcancelorder<Config extends Alova2MethodConfig<ResultBoolean>>(
         config?: Config
-      ): Alova2Method<ResultCheckOnPayOrderVO, 'general.get_api_v1_oil_order_checkonpayorder', Config>;
+      ): Alova2Method<ResultBoolean, 'general.post_api_v1_oil_order_scantimeoutcancelorder', Config>;
+      /**
+       * ---
+       *
+       * [POST] 退款
+       *
+       * **path:** /api/v1/oil/order/refundOrder
+       *
+       * ---
+       *
+       * **Query Parameters**
+       * ```ts
+       * type QueryParameters = {
+       *   orderId: string
+       *   refundTime: string
+       * }
+       * ```
+       *
+       * ---
+       *
+       * **Response**
+       * ```ts
+       * type Response = {
+       *   // 返回状态码
+       *   code?: string
+       *   // 返回数据对象
+       *   data?: boolean
+       *   msg?: string
+       * }
+       * ```
+       */
+      post_api_v1_oil_order_refundorder<
+        Config extends Alova2MethodConfig<ResultBoolean> & {
+          params: {
+            orderId: string;
+            refundTime: string;
+          };
+        }
+      >(
+        config: Config
+      ): Alova2Method<ResultBoolean, 'general.post_api_v1_oil_order_refundorder', Config>;
+      /**
+       * ---
+       *
+       * [POST] 退款
+       *
+       * **path:** /smqjh-oms/api/v1/oil/order/refundOrder
+       *
+       * ---
+       *
+       * **Query Parameters**
+       * ```ts
+       * type QueryParameters = {
+       *   orderId: string
+       *   refundTime: string
+       * }
+       * ```
+       *
+       * ---
+       *
+       * **Response**
+       * ```ts
+       * type Response = {
+       *   // 返回状态码
+       *   code?: string
+       *   // 返回数据对象
+       *   data?: boolean
+       *   msg?: string
+       * }
+       * ```
+       */
+      post_smqjh_oms_api_v1_oil_order_refundorder<
+        Config extends Alova2MethodConfig<ResultBoolean> & {
+          params: {
+            orderId: string;
+            refundTime: string;
+          };
+        }
+      >(
+        config: Config
+      ): Alova2Method<ResultBoolean, 'general.post_smqjh_oms_api_v1_oil_order_refundorder', Config>;
+      /**
+       * ---
+       *
+       * [POST] 获取订单开票
+       *
+       * **path:** /api/v1/oil/order/invoiceOrder
+       *
+       * ---
+       *
+       * **Query Parameters**
+       * ```ts
+       * type QueryParameters = {
+       *   // 订单ID
+       *   orderId: string
+       * }
+       * ```
+       *
+       * ---
+       *
+       * **Response**
+       * ```ts
+       * type Response = {
+       *   // 返回状态码
+       *   code?: string
+       *   // 返回数据对象
+       *   data?: string
+       *   msg?: string
+       * }
+       * ```
+       */
+      post_api_v1_oil_order_invoiceorder<
+        Config extends Alova2MethodConfig<ResultString> & {
+          params: {
+            /**
+             * 订单ID
+             */
+            orderId: string;
+          };
+        }
+      >(
+        config: Config
+      ): Alova2Method<ResultString, 'general.post_api_v1_oil_order_invoiceorder', Config>;
       /**
        * ---
        *

+ 14 - 2
src/pages/order/index.vue

@@ -73,8 +73,20 @@ function handlePay(_item: OmsOrderOilPageVO) {
 }
 
 // 申请开票(占位)
-function handleInvoice(_item: OmsOrderOilPageVO) {
-  useGlobalToast().show('功能开发中')
+async function handleInvoice(_item: OmsOrderOilPageVO) {
+  // useGlobalToast().show('功能开发中')
+  uni.showLoading({ mask: true })
+  try {
+    const res = await Apis.general.post_smqjh_oms_api_v1_oil_order_invoiceorder({ params: { orderId: _item.orderNumber as string } })
+    window.location.href = res.data as string
+  }
+  catch (error) {
+    console.log(error)
+    // useGlobalToast().show('获取支付信息失败')
+  }
+  finally {
+    uni.hideLoading()
+  }
 }
 
 onShow(() => {