Ver código fonte

feat: add order

叶静 2 meses atrás
pai
commit
20fab7737a

+ 0 - 286
doc/dls.json

@@ -1,286 +0,0 @@
-{
-  "openapi": "3.0.1",
-  "info": {
-    "title": "默认模块",
-    "description": "",
-    "version": "1.0.0"
-  },
-  "tags": [],
-  "paths": {
-    "/agentPaymentType/list": {
-      "get": {
-        "summary": "列表-代收或代付 agent_payment_type_query",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "paymentType",
-            "in": "query",
-            "description": "通道类型\nPAY :代付\nHARVEST :代收",
-            "required": true,
-            "schema": {
-              "type": "string",
-              "enum": [
-                "PAY",
-                "HARVEST"
-              ]
-            }
-          },
-          {
-            "name": "agentUserId",
-            "in": "query",
-            "description": "代理商id",
-            "required": true,
-            "schema": {
-              "type": "integer",
-              "format": "int64"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/RListAgentPaymentTypeListVO"
-                },
-                "example": {
-                  "code": 0,
-                  "msg": "",
-                  "data": [
-                    {
-                      "agentPaymentTypeId": 0,
-                      "paymentTypeId": 0,
-                      "channelName": "",
-                      "channelCode": "",
-                      "paymentName": "",
-                      "paymentCode": "",
-                      "status": false,
-                      "feeType": "",
-                      "feeRate": 0,
-                      "feeEvery": 0
-                    }
-                  ]
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/agentPaymentType/edit": {
-      "post": {
-        "summary": "编辑配置 agent_payment_type_edit",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/EditAgentPaymentROEdit",
-                "description": ""
-              }
-            }
-          }
-        },
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/R",
-                  "description": "响应信息主体"
-                },
-                "example": {
-                  "ok": false,
-                  "code": null,
-                  "msg": "",
-                  "data": {}
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    }
-  },
-  "components": {
-    "schemas": {
-      "AgentPaymentTypeListVO": {
-        "type": "object",
-        "properties": {
-          "agentPaymentTypeId": {
-            "type": "integer",
-            "description": "配置id",
-            "format": "int64"
-          },
-          "paymentTypeId": {
-            "type": "integer",
-            "description": "支付类型id",
-            "format": "int64"
-          },
-          "channelName": {
-            "type": "string",
-            "description": "通道名称"
-          },
-          "channelCode": {
-            "type": "string",
-            "description": "通道编码"
-          },
-          "paymentName": {
-            "type": "string",
-            "description": "支付类型名称"
-          },
-          "paymentCode": {
-            "type": "string",
-            "description": "支付类型代码"
-          },
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "feeType": {
-            "type": "string",
-            "description": "手续费类型",
-            "enum": [
-              "PERCENTAGE",
-              "FIXED",
-              "MIXED"
-            ]
-          },
-          "feeRate": {
-            "type": "number",
-            "description": "手续费比例(百分比)"
-          },
-          "feeEvery": {
-            "type": "number",
-            "description": "手续费固定金额"
-          }
-        }
-      },
-      "RListAgentPaymentTypeListVO": {
-        "type": "object",
-        "properties": {
-          "code": {
-            "type": "integer",
-            "description": "返回标记:成功标记=0,失败标记=1"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "type": "array",
-            "items": {
-              "$ref": "#/components/schemas/AgentPaymentTypeListVO",
-              "description": ""
-            },
-            "description": "数据"
-          }
-        }
-      },
-      "EditAgentPaymentROEdit": {
-        "type": "object",
-        "properties": {
-          "agentPaymentTypeId": {
-            "type": "integer",
-            "description": "配置id",
-            "format": "int64"
-          },
-          "paymentType": {
-            "type": "string",
-            "description": "通道类型",
-            "enum": [
-              "PAY",
-              "HARVEST"
-            ]
-          },
-          "paymentTypeId": {
-            "type": "integer",
-            "description": "支付类型id",
-            "format": "int64"
-          },
-          "agentUserId": {
-            "type": "integer",
-            "description": "代理商id",
-            "format": "int64"
-          },
-          "feeType": {
-            "type": "string",
-            "description": "手续费类型",
-            "enum": [
-              "PERCENTAGE",
-              "FIXED",
-              "MIXED"
-            ]
-          },
-          "feeRate": {
-            "type": "number",
-            "description": "手续费比例(百分比)"
-          },
-          "feeEvery": {
-            "type": "number",
-            "description": "手续费固定金额"
-          },
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          }
-        },
-        "required": [
-          "paymentType",
-          "paymentTypeId",
-          "agentUserId",
-          "feeType",
-          "status"
-        ]
-      },
-      "R": {
-        "type": "object",
-        "properties": {
-          "ok": {
-            "type": "boolean"
-          },
-          "code": {
-            "description": "返回标记:成功标记=0,失败标记=1",
-            "type": "null"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "type": "object",
-            "properties": {},
-            "description": "数据"
-          }
-        }
-      }
-    },
-    "securitySchemes": {
-      "bearer": {
-        "type": "http",
-        "scheme": "bearer"
-      }
-    }
-  },
-  "servers": [],
-  "security": []
-}

+ 867 - 0
doc/order.json

@@ -0,0 +1,867 @@
+{
+  "openapi": "3.0.1",
+  "info": {
+    "title": "默认模块",
+    "description": "",
+    "version": "1.0.0"
+  },
+  "tags": [],
+  "paths": {
+    "/admin/payOrder/page": {
+      "post": {
+        "summary": "分页查询列表",
+        "deprecated": false,
+        "description": "",
+        "tags": [],
+        "parameters": [],
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/PayOrderPageDTO",
+                "description": "参数集"
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/RIPagePayOrder",
+                  "description": "用户集合"
+                },
+                "example": {
+                  "ok": false,
+                  "code": 0,
+                  "msg": "",
+                  "data": {}
+                }
+              }
+            },
+            "headers": {}
+          }
+        },
+        "security": []
+      }
+    },
+    "/admin/payOrder/statistics": {
+      "post": {
+        "summary": "代付列表统计",
+        "deprecated": false,
+        "description": "",
+        "tags": [],
+        "parameters": [],
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/PayOrderPageDTO",
+                "description": "参数集"
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/RPayOrderStatisticsRO",
+                  "description": "用户集合"
+                },
+                "example": {
+                  "ok": false,
+                  "code": 0,
+                  "msg": "",
+                  "data": {}
+                }
+              }
+            },
+            "headers": {}
+          }
+        },
+        "security": []
+      }
+    },
+    "/admin/withdrawOrder/page": {
+      "post": {
+        "summary": "分页查询列表",
+        "deprecated": false,
+        "description": "",
+        "tags": [],
+        "parameters": [],
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/WithdrawOrderPageDTO",
+                "description": "参数集"
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/RIPageWithdrawOrder",
+                  "description": "用户集合"
+                },
+                "example": {
+                  "ok": false,
+                  "code": 0,
+                  "msg": "",
+                  "data": {}
+                }
+              }
+            },
+            "headers": {}
+          }
+        },
+        "security": []
+      }
+    }
+  },
+  "components": {
+    "schemas": {
+      "PayOrder": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "createTime": {
+            "type": "string",
+            "description": "创建时间"
+          },
+          "updateTime": {
+            "type": "string",
+            "description": "修改时间"
+          },
+          "appId": {
+            "type": "string",
+            "description": "appId"
+          },
+          "mchOrderNo": {
+            "type": "string",
+            "description": "商户订单号"
+          },
+          "orderStatus": {
+            "type": "string",
+            "description": "订单状态",
+            "enum": [
+              "CREATE_ORDER",
+              "PAY_SUCCESS",
+              "PAY_FAIL",
+              "CANCEL_ORDER",
+              "PAY_TIMEOUT"
+            ]
+          },
+          "currency": {
+            "type": "string",
+            "description": "币种"
+          },
+          "amount": {
+            "type": "number",
+            "description": "订单原始金额"
+          },
+          "clientIp": {
+            "type": "string",
+            "description": "客户端IP"
+          },
+          "device": {
+            "type": "string",
+            "description": "设备"
+          },
+          "returnUrl": {
+            "type": "string",
+            "description": "支付结果前端跳转URL"
+          },
+          "notifyUrl": {
+            "type": "string",
+            "description": "支付结果后台回调URL"
+          },
+          "subject": {
+            "type": "string",
+            "description": "主题"
+          },
+          "body": {
+            "type": "string",
+            "description": "内容不能为空"
+          },
+          "extra": {
+            "type": "string",
+            "description": "扩展参数"
+          },
+          "reqTime": {
+            "type": "string",
+            "description": "请求时间"
+          },
+          "merchantUserId": {
+            "type": "integer",
+            "description": "商户id",
+            "format": "int64"
+          },
+          "agentUserId": {
+            "type": "integer",
+            "description": "代理商id",
+            "format": "int64"
+          },
+          "paymentTypeId": {
+            "type": "integer",
+            "description": "通道类型id",
+            "format": "int64"
+          },
+          "paymentChannelId": {
+            "type": "integer",
+            "description": "支付通道id",
+            "format": "int64"
+          },
+          "paymentChannelName": {
+            "type": "string",
+            "description": "支付通道名称"
+          },
+          "feeStatus": {
+            "type": "boolean",
+            "description": "获取通道费率成功标识"
+          },
+          "mFeeType": {
+            "type": "string",
+            "description": "平台手续费类型",
+            "enum": [
+              "PERCENTAGE",
+              "FIXED",
+              "MIXED"
+            ]
+          },
+          "mFeeRate": {
+            "type": "number",
+            "description": "平台手续费比例(百分比)"
+          },
+          "mFeeEvery": {
+            "type": "number",
+            "description": "平台手续费固定金额"
+          },
+          "mFee": {
+            "type": "number",
+            "description": "平台手续费"
+          },
+          "aFeeType": {
+            "type": "string",
+            "description": "代理商手续费类型",
+            "enum": [
+              "PERCENTAGE",
+              "FIXED",
+              "MIXED"
+            ]
+          },
+          "aFeeRate": {
+            "type": "number",
+            "description": "代理商手续费比例(百分比)"
+          },
+          "aFeeEvery": {
+            "type": "number",
+            "description": "代理商手续费固定金额"
+          },
+          "aFee": {
+            "type": "number",
+            "description": "代理商手续"
+          },
+          "noticeDatetime": {
+            "type": "string",
+            "description": "支付完成时间"
+          },
+          "noticeAmount": {
+            "type": "number",
+            "description": "实际支付金额"
+          },
+          "noticeMFee": {
+            "type": "number",
+            "description": "实际平台手续费"
+          },
+          "noticeAFee": {
+            "type": "number",
+            "description": "实际平台手续费"
+          },
+          "transactionId": {
+            "type": "string",
+            "description": "上游三方支付流水号"
+          }
+        }
+      },
+      "WithdrawOrder": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "createTime": {
+            "type": "string",
+            "description": "创建时间"
+          },
+          "updateTime": {
+            "type": "string",
+            "description": "修改时间"
+          },
+          "appId": {
+            "type": "string",
+            "description": "appId"
+          },
+          "mchOrderNo": {
+            "type": "string",
+            "description": "商户订单号"
+          },
+          "orderStatus": {
+            "type": "string",
+            "description": "订单状态",
+            "enum": [
+              "CREATE_ORDER",
+              "WITHDRAW_SUCCESS",
+              "WITHDRAW_FAIL"
+            ]
+          },
+          "currencyType": {
+            "type": "string",
+            "description": "币种"
+          },
+          "amount": {
+            "type": "number",
+            "description": "订单原始金额"
+          },
+          "notifyUrl": {
+            "type": "string",
+            "description": "支付结果后台回调URL"
+          },
+          "subject": {
+            "type": "string",
+            "description": "主题"
+          },
+          "payUsername": {
+            "type": "string",
+            "description": "用户姓名"
+          },
+          "payBankNumber": {
+            "type": "string",
+            "description": "银行账号"
+          },
+          "payBankName": {
+            "type": "string",
+            "description": "银行名称"
+          },
+          "payAttach": {
+            "type": "string",
+            "description": "扩展参数"
+          },
+          "payEmail": {
+            "type": "string",
+            "description": "用户邮箱"
+          },
+          "payMobile": {
+            "type": "string",
+            "description": "用户电话"
+          },
+          "reqTime": {
+            "type": "string",
+            "description": "请求时间"
+          },
+          "merchantUserId": {
+            "type": "integer",
+            "description": "商户id",
+            "format": "int64"
+          },
+          "paymentTypeId": {
+            "type": "integer",
+            "description": "通道类型id",
+            "format": "int64"
+          },
+          "paymentChannelId": {
+            "type": "integer",
+            "description": "支付通道id",
+            "format": "int64"
+          },
+          "feeStatus": {
+            "type": "boolean",
+            "description": "获取通道费率成功标识"
+          },
+          "mFeeType": {
+            "type": "string",
+            "description": "平台手续费类型",
+            "enum": [
+              "PERCENTAGE",
+              "FIXED",
+              "MIXED"
+            ]
+          },
+          "mFeeRate": {
+            "type": "number",
+            "description": "平台手续费比例(百分比)"
+          },
+          "mFeeEvery": {
+            "type": "number",
+            "description": "平台手续费固定金额"
+          },
+          "mFee": {
+            "type": "number",
+            "description": "平台手续费"
+          },
+          "aFeeType": {
+            "type": "string",
+            "description": "代理商手续费类型",
+            "enum": [
+              "PERCENTAGE",
+              "FIXED",
+              "MIXED"
+            ]
+          },
+          "aFeeRate": {
+            "type": "number",
+            "description": "代理商手续费比例(百分比)"
+          },
+          "aFeeEvery": {
+            "type": "number",
+            "description": "代理商手续费固定金额"
+          },
+          "aFee": {
+            "type": "number",
+            "description": "代理商手续"
+          },
+          "noticeDatetime": {
+            "type": "string",
+            "description": "支付完成时间"
+          },
+          "noticeAmount": {
+            "type": "number",
+            "description": "实际支付金额"
+          },
+          "noticeMFee": {
+            "type": "number",
+            "description": "实际平台手续费"
+          },
+          "noticeAFee": {
+            "type": "number",
+            "description": "实际平台手续费"
+          },
+          "transactionId": {
+            "type": "string",
+            "description": "上游三方支付流水号"
+          }
+        }
+      },
+      "": {
+        "type": "object",
+        "properties": {}
+      },
+      "IPagePayOrder": {
+        "type": "object",
+        "properties": {
+          "records": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/PayOrder",
+              "description": ""
+            },
+            "description": ""
+          },
+          "total": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "size": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "current": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "orders": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/OrderItem",
+              "description": "com.baomidou.mybatisplus.core.metadata.OrderItem"
+            },
+            "description": ""
+          },
+          "optimizeCountSql": {
+            "type": "boolean",
+            "description": ""
+          },
+          "searchCount": {
+            "type": "boolean",
+            "description": ""
+          },
+          "optimizeJoinOfCountSql": {
+            "type": "boolean",
+            "description": ""
+          },
+          "maxLimit": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "countId": {
+            "type": "string",
+            "description": ""
+          },
+          "pages": {
+            "type": "integer",
+            "format": "int64"
+          }
+        }
+      },
+      "IPageWithdrawOrder": {
+        "type": "object",
+        "properties": {
+          "records": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/WithdrawOrder",
+              "description": ""
+            },
+            "description": ""
+          },
+          "total": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "size": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "current": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "orders": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/OrderItem",
+              "description": "com.baomidou.mybatisplus.core.metadata.OrderItem"
+            },
+            "description": ""
+          },
+          "optimizeCountSql": {
+            "type": "boolean",
+            "description": ""
+          },
+          "searchCount": {
+            "type": "boolean",
+            "description": ""
+          },
+          "optimizeJoinOfCountSql": {
+            "type": "boolean",
+            "description": ""
+          },
+          "maxLimit": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "countId": {
+            "type": "string",
+            "description": ""
+          },
+          "pages": {
+            "type": "integer",
+            "format": "int64"
+          }
+        }
+      },
+      "PayOrderPageDTO": {
+        "type": "object",
+        "properties": {
+          "records": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/1"
+            },
+            "description": ""
+          },
+          "total": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "size": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "current": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "orders": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/OrderItem",
+              "description": "com.baomidou.mybatisplus.core.metadata.OrderItem"
+            },
+            "description": ""
+          },
+          "optimizeCountSql": {
+            "type": "boolean",
+            "description": ""
+          },
+          "searchCount": {
+            "type": "boolean",
+            "description": ""
+          },
+          "optimizeJoinOfCountSql": {
+            "type": "boolean",
+            "description": ""
+          },
+          "maxLimit": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "countId": {
+            "type": "string",
+            "description": ""
+          },
+          "mchOrderNo": {
+            "type": "string",
+            "description": "商户单号"
+          },
+          "transactionId": {
+            "type": "string",
+            "description": "支付单号"
+          },
+          "orderStatus": {
+            "type": "string",
+            "description": "订单状态",
+            "enum": [
+              "CREATE_ORDER",
+              "PAY_SUCCESS",
+              "PAY_FAIL",
+              "CANCEL_ORDER",
+              "PAY_TIMEOUT"
+            ]
+          },
+          "startTime": {
+            "type": "string",
+            "description": "开始时间"
+          },
+          "endTime": {
+            "type": "string",
+            "description": "结束时间"
+          },
+          "paymentChannelId": {
+            "type": "integer",
+            "description": "支付通道id",
+            "format": "int64"
+          }
+        }
+      },
+      "WithdrawOrderPageDTO": {
+        "type": "object",
+        "properties": {
+          "records": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/1"
+            },
+            "description": ""
+          },
+          "total": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "size": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "current": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "orders": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/OrderItem",
+              "description": "com.baomidou.mybatisplus.core.metadata.OrderItem"
+            },
+            "description": ""
+          },
+          "optimizeCountSql": {
+            "type": "boolean",
+            "description": ""
+          },
+          "searchCount": {
+            "type": "boolean",
+            "description": ""
+          },
+          "optimizeJoinOfCountSql": {
+            "type": "boolean",
+            "description": ""
+          },
+          "maxLimit": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "countId": {
+            "type": "string",
+            "description": ""
+          },
+          "mchOrderNo": {
+            "type": "string",
+            "description": "商户单号"
+          },
+          "transactionId": {
+            "type": "string",
+            "description": "支付单号"
+          },
+          "orderStatus": {
+            "type": "string",
+            "description": "订单状态",
+            "enum": [
+              "CREATE_ORDER",
+              "WITHDRAW_SUCCESS",
+              "WITHDRAW_FAIL"
+            ]
+          },
+          "startTime": {
+            "type": "string",
+            "description": "开始时间"
+          },
+          "endTime": {
+            "type": "string",
+            "description": "结束时间"
+          }
+        }
+      },
+      "RIPagePayOrder": {
+        "type": "object",
+        "properties": {
+          "ok": {
+            "type": "boolean"
+          },
+          "code": {
+            "type": "integer",
+            "description": "返回标记:成功标记=0,失败标记=1"
+          },
+          "msg": {
+            "type": "string",
+            "description": "返回信息"
+          },
+          "data": {
+            "$ref": "#/components/schemas/IPagePayOrder",
+            "description": "数据"
+          }
+        }
+      },
+      "RIPageWithdrawOrder": {
+        "type": "object",
+        "properties": {
+          "ok": {
+            "type": "boolean"
+          },
+          "code": {
+            "type": "integer",
+            "description": "返回标记:成功标记=0,失败标记=1"
+          },
+          "msg": {
+            "type": "string",
+            "description": "返回信息"
+          },
+          "data": {
+            "$ref": "#/components/schemas/IPageWithdrawOrder",
+            "description": "数据"
+          }
+        }
+      },
+      "OrderItem": {
+        "type": "object",
+        "properties": {
+          "column": {
+            "type": "string",
+            "description": ""
+          },
+          "asc": {
+            "type": "boolean",
+            "description": ""
+          }
+        }
+      },
+      "PayOrderStatisticsRO": {
+        "type": "object",
+        "properties": {
+          "numberOrders": {
+            "type": "integer",
+            "description": "提交订单数"
+          },
+          "totalOrderAmount": {
+            "type": "number",
+            "description": "订单总金额"
+          },
+          "paidOrders": {
+            "type": "integer",
+            "description": "已付订单数"
+          },
+          "totalAmountPaid": {
+            "type": "number",
+            "description": "已付总金额"
+          },
+          "totalMerchantAmount": {
+            "type": "number",
+            "description": "商户总收入"
+          },
+          "totalAgentAmount": {
+            "type": "number",
+            "description": "代理商总收入"
+          },
+          "unpaidOrders": {
+            "type": "integer",
+            "description": "未付订单数"
+          },
+          "totalAmountUnpaid": {
+            "type": "number",
+            "description": "未付总金额"
+          }
+        }
+      },
+      "RPayOrderStatisticsRO": {
+        "type": "object",
+        "properties": {
+          "code": {
+            "type": "integer",
+            "description": "返回标记:成功标记=0,失败标记=1"
+          },
+          "msg": {
+            "type": "string",
+            "description": "返回信息"
+          },
+          "data": {
+            "$ref": "#/components/schemas/PayOrderStatisticsRO",
+            "description": "数据"
+          }
+        }
+      }
+    },
+    "securitySchemes": {}
+  },
+  "servers": [],
+  "security": []
+}

+ 0 - 713
doc/payChannel.json

@@ -1,713 +0,0 @@
-{
-  "openapi": "3.0.1",
-  "info": {
-    "title": "默认模块",
-    "description": "",
-    "version": "1.0.0"
-  },
-  "tags": [],
-  "paths": {
-    "/paymentChannel/page": {
-      "get": {
-        "summary": "分页 payment_channel_page",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "records[0].key",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": ""
-            }
-          },
-          {
-            "name": "total",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "integer",
-              "format": "int64"
-            }
-          },
-          {
-            "name": "size",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "integer",
-              "format": "int64"
-            }
-          },
-          {
-            "name": "current",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "integer",
-              "format": "int64"
-            }
-          },
-          {
-            "name": "orders[0].column",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "string"
-            }
-          },
-          {
-            "name": "orders[0].asc",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
-          },
-          {
-            "name": "optimizeCountSql",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
-          },
-          {
-            "name": "searchCount",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
-          },
-          {
-            "name": "optimizeJoinOfCountSql",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
-          },
-          {
-            "name": "maxLimit",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "integer",
-              "format": "int64"
-            }
-          },
-          {
-            "name": "countId",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "string"
-            }
-          },
-          {
-            "name": "query",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "string"
-            }
-          },
-          {
-            "name": "status",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/RPagePaymentChannelPageVO"
-                },
-                "example": {
-                  "code": 0,
-                  "msg": "",
-                  "data": {
-                    "records": [
-                      {
-                        "id": 0,
-                        "status": false,
-                        "channelName": "",
-                        "baseRechargeRate": 0,
-                        "riskControlStatus": false
-                      }
-                    ],
-                    "total": 0,
-                    "size": 0,
-                    "current": 0,
-                    "orders": [
-                      {
-                        "column": "",
-                        "asc": false
-                      }
-                    ],
-                    "optimizeCountSql": false,
-                    "searchCount": false,
-                    "optimizeJoinOfCountSql": false,
-                    "maxLimit": 0,
-                    "countId": ""
-                  }
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/paymentChannel/save": {
-      "post": {
-        "summary": "新增 payment_channel_save",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/PaymentChannelROAdd",
-                "description": ""
-              }
-            }
-          }
-        },
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/R",
-                  "description": "响应信息主体"
-                },
-                "example": {
-                  "ok": false,
-                  "code": null,
-                  "msg": "",
-                  "data": {}
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/paymentChannel/info/{id:^\\d+$}": {
-      "get": {
-        "summary": "详情 payment_channel_info",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "id",
-            "in": "path",
-            "description": "",
-            "required": true,
-            "schema": {
-              "type": "integer"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/RPaymentChannel"
-                },
-                "example": {
-                  "code": 0,
-                  "msg": "",
-                  "data": {
-                    "id": 0,
-                    "status": false,
-                    "createBy": "",
-                    "updateBy": "",
-                    "createTime": "",
-                    "updateTime": "",
-                    "channelName": "",
-                    "baseRechargeRate": 0,
-                    "todayTotalAmount": 0,
-                    "singleMaxAmount": 0,
-                    "singleMinAmount": 0,
-                    "riskControlStatus": false
-                  }
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/paymentChannel/edit/{id:^\\d+$}": {
-      "patch": {
-        "summary": "编辑(不可修改状态) payment_channel_edit",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "id",
-            "in": "path",
-            "description": "",
-            "required": true,
-            "schema": {
-              "type": "integer"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/PaymentChannelROEdit",
-                "description": ""
-              }
-            }
-          }
-        },
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/R",
-                  "description": "响应信息主体"
-                },
-                "example": {
-                  "ok": false,
-                  "code": null,
-                  "msg": "",
-                  "data": {}
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/paymentChannel/changeStatus/{id:^\\d+$}": {
-      "patch": {
-        "summary": "修改状态 payment_channel_edit",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "id",
-            "in": "path",
-            "description": "",
-            "required": true,
-            "schema": {
-              "type": "integer"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/R",
-                  "description": "响应信息主体"
-                },
-                "example": {
-                  "ok": false,
-                  "code": null,
-                  "msg": "",
-                  "data": {}
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    }
-  },
-  "components": {
-    "schemas": {
-      "PaymentChannelPageVO": {
-        "type": "object",
-        "properties": {
-          "id": {
-            "type": "integer",
-            "description": "",
-            "format": "int64"
-          },
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "channelName": {
-            "type": "string",
-            "description": "通道名称"
-          },
-          "channelCode": {
-            "type": "string",
-            "description": "通道编码"
-          },
-          "baseRechargeRate": {
-            "type": "number",
-            "description": "基础费率(百分比)"
-          },
-          "riskControlStatus": {
-            "type": "boolean",
-            "description": "风控状态"
-          }
-        }
-      },
-      "PagePaymentChannelPageVO": {
-        "type": "object",
-        "properties": {
-          "records": {
-            "type": "array",
-            "items": {
-              "$ref": "#/components/schemas/PaymentChannelPageVO",
-              "description": ""
-            },
-            "description": ""
-          },
-          "total": {
-            "type": "integer",
-            "description": "",
-            "format": "int64"
-          },
-          "size": {
-            "type": "integer",
-            "description": "",
-            "format": "int64"
-          },
-          "current": {
-            "type": "integer",
-            "description": "",
-            "format": "int64"
-          },
-          "orders": {
-            "type": "array",
-            "items": {
-              "$ref": "#/components/schemas/OrderItem",
-              "description": "com.baomidou.mybatisplus.core.metadata.OrderItem"
-            },
-            "description": ""
-          },
-          "optimizeCountSql": {
-            "type": "boolean",
-            "description": ""
-          },
-          "searchCount": {
-            "type": "boolean",
-            "description": ""
-          },
-          "optimizeJoinOfCountSql": {
-            "type": "boolean",
-            "description": ""
-          },
-          "maxLimit": {
-            "type": "integer",
-            "description": "",
-            "format": "int64"
-          },
-          "countId": {
-            "type": "string",
-            "description": ""
-          }
-        }
-      },
-      "RPagePaymentChannelPageVO": {
-        "type": "object",
-        "properties": {
-          "code": {
-            "type": "integer",
-            "description": "返回标记:成功标记=0,失败标记=1"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "$ref": "#/components/schemas/PagePaymentChannelPageVO",
-            "description": "数据"
-          }
-        }
-      },
-      "R": {
-        "type": "object",
-        "properties": {
-          "ok": {
-            "type": "boolean"
-          },
-          "code": {
-            "description": "返回标记:成功标记=0,失败标记=1",
-            "type": "null"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "type": "object",
-            "properties": {},
-            "description": "数据"
-          }
-        }
-      },
-      "PaymentChannelROAdd": {
-        "type": "object",
-        "properties": {
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "channelName": {
-            "type": "string",
-            "description": "通道名称"
-          },
-          "channelCode": {
-            "type": "string",
-            "description": "通道编码"
-          },
-          "baseRechargeRate": {
-            "type": "number",
-            "description": "基础费率(百分比)",
-            "minimum": 0,
-            "maximum": 100,
-            "exclusiveMinimum": true,
-            "exclusiveMaximum": true
-          },
-          "todayTotalAmount": {
-            "type": "number",
-            "description": "当天总金额",
-            "minimum": 0,
-            "maximum": 9999999999.99
-          },
-          "singleMaxAmount": {
-            "type": "number",
-            "description": "单比最大金额",
-            "minimum": 0,
-            "maximum": 9999999999.99
-          },
-          "singleMinAmount": {
-            "type": "number",
-            "description": "单比最小金额",
-            "minimum": 0,
-            "maximum": 9999999999.99
-          },
-          "riskControlStatus": {
-            "type": "boolean",
-            "description": "风控状态"
-          }
-        },
-        "required": [
-          "channelName",
-          "channelCode"
-        ]
-      },
-      "OrderItem": {
-        "type": "object",
-        "properties": {
-          "column": {
-            "type": "string",
-            "description": ""
-          },
-          "asc": {
-            "type": "boolean",
-            "description": ""
-          }
-        }
-      },
-      "PaymentChannel": {
-        "type": "object",
-        "properties": {
-          "id": {
-            "type": "integer",
-            "description": "",
-            "format": "int64"
-          },
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "createBy": {
-            "type": "string",
-            "description": "创建人"
-          },
-          "updateBy": {
-            "type": "string",
-            "description": "修改人"
-          },
-          "createTime": {
-            "type": "string",
-            "description": "创建时间"
-          },
-          "updateTime": {
-            "type": "string",
-            "description": "修改时间"
-          },
-          "channelName": {
-            "type": "string",
-            "description": "通道名称"
-          },
-          "channelCode": {
-            "type": "string",
-            "description": "通道编码"
-          },
-          "baseRechargeRate": {
-            "type": "number",
-            "description": "基础费率(百分比)"
-          },
-          "todayTotalAmount": {
-            "type": "number",
-            "description": "当天总金额"
-          },
-          "singleMaxAmount": {
-            "type": "number",
-            "description": "单比最大金额"
-          },
-          "singleMinAmount": {
-            "type": "number",
-            "description": "单比最小金额"
-          },
-          "riskControlStatus": {
-            "type": "boolean",
-            "description": "风控状态"
-          }
-        }
-      },
-      "RPaymentChannel": {
-        "type": "object",
-        "properties": {
-          "code": {
-            "type": "integer",
-            "description": "返回标记:成功标记=0,失败标记=1"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "$ref": "#/components/schemas/PaymentChannel",
-            "description": "数据"
-          }
-        }
-      },
-      "PaymentChannelROEdit": {
-        "type": "object",
-        "properties": {
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "channelName": {
-            "type": "string",
-            "description": "通道名称"
-          },
-          "channelCode": {
-            "type": "string",
-            "description": "通道编码"
-          },
-          "baseRechargeRate": {
-            "type": "number",
-            "description": "基础费率(百分比)",
-            "minimum": 0,
-            "maximum": 100,
-            "exclusiveMinimum": true,
-            "exclusiveMaximum": true
-          },
-          "todayTotalAmount": {
-            "type": "number",
-            "description": "当天总金额",
-            "minimum": 0,
-            "maximum": 9999999999.99
-          },
-          "singleMaxAmount": {
-            "type": "number",
-            "description": "单比最大金额",
-            "minimum": 0,
-            "maximum": 9999999999.99
-          },
-          "singleMinAmount": {
-            "type": "number",
-            "description": "单比最小金额",
-            "minimum": 0,
-            "maximum": 9999999999.99
-          },
-          "riskControlStatus": {
-            "type": "boolean",
-            "description": "风控状态"
-          }
-        },
-        "required": [
-          "channelName",
-          "channelCode"
-        ]
-      }
-    },
-    "securitySchemes": {
-      "bearer": {
-        "type": "http",
-        "scheme": "bearer"
-      }
-    }
-  },
-  "servers": [],
-  "security": []
-}

+ 0 - 507
doc/payType.json

@@ -1,507 +0,0 @@
-{
-  "openapi": "3.0.1",
-  "info": {
-    "title": "默认模块",
-    "description": "",
-    "version": "1.0.0"
-  },
-  "tags": [],
-  "paths": {
-    "/paymentType/list/{id:^\\d+$}": {
-      "get": {
-        "summary": "列表 payment_type_query",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "id",
-            "in": "path",
-            "description": "",
-            "required": true,
-            "schema": {
-              "type": "integer"
-            }
-          },
-          {
-            "name": "query",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "string"
-            }
-          },
-          {
-            "name": "status",
-            "in": "query",
-            "description": "",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
-          },
-          {
-            "name": "paymentType",
-            "in": "query",
-            "description": " PAY :代付\nHARVEST :代收",
-            "required": false,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/RListPaymentTypeListVO"
-                },
-                "example": {
-                  "code": 0,
-                  "msg": "",
-                  "data": [
-                    {
-                      "id": 0,
-                      "status": false,
-                      "paymentName": "",
-                      "paymentCode": "",
-                      "paymentType": ""
-                    }
-                  ]
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/paymentType/save": {
-      "post": {
-        "summary": "新增 payment_type_save",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/PaymentTypeROAdd",
-                "description": ""
-              }
-            }
-          }
-        },
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/R",
-                  "description": "响应信息主体"
-                },
-                "example": {
-                  "ok": false,
-                  "code": null,
-                  "msg": "",
-                  "data": {}
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/paymentType/info/{id:^\\d+$}": {
-      "get": {
-        "summary": "详情 payment_type_info",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "id",
-            "in": "path",
-            "description": "",
-            "required": true,
-            "schema": {
-              "type": "integer"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/RPaymentType"
-                },
-                "example": {
-                  "code": 0,
-                  "msg": "",
-                  "data": {
-                    "id": 0,
-                    "status": false,
-                    "createBy": "",
-                    "updateBy": "",
-                    "createTime": "",
-                    "updateTime": "",
-                    "channelId": 0,
-                    "paymentName": "",
-                    "paymentCode": "",
-                    "paymentType": ""
-                  }
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/paymentType/edit/{id:^\\d+$}": {
-      "patch": {
-        "summary": "编辑(不可修改状态、不可修改类型) payment_type_edit",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "id",
-            "in": "path",
-            "description": "",
-            "required": true,
-            "schema": {
-              "type": "integer"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/PaymentTypeROEdit",
-                "description": ""
-              }
-            }
-          }
-        },
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/R",
-                  "description": "响应信息主体"
-                },
-                "example": {
-                  "ok": false,
-                  "code": null,
-                  "msg": "",
-                  "data": {}
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/paymentType/changeStatus/{id:^\\d+$}": {
-      "patch": {
-        "summary": "修改状态 payment_channel_edit",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "id",
-            "in": "path",
-            "description": "",
-            "required": true,
-            "schema": {
-              "type": "integer"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/R",
-                  "description": "响应信息主体"
-                },
-                "example": {
-                  "ok": false,
-                  "code": null,
-                  "msg": "",
-                  "data": {}
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    }
-  },
-  "components": {
-    "schemas": {
-      "PaymentTypeListVO": {
-        "type": "object",
-        "properties": {
-          "id": {
-            "type": "integer",
-            "description": "",
-            "format": "int64"
-          },
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "paymentName": {
-            "type": "string",
-            "description": "支付类型名称"
-          },
-          "paymentCode": {
-            "type": "string",
-            "description": "支付类型代码"
-          },
-          "paymentType": {
-            "type": "string",
-            "description": "支付类别",
-            "enum": [
-              "PAY",
-              "HARVEST"
-            ]
-          }
-        }
-      },
-      "RListPaymentTypeListVO": {
-        "type": "object",
-        "properties": {
-          "code": {
-            "type": "integer",
-            "description": "返回标记:成功标记=0,失败标记=1"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "type": "array",
-            "items": {
-              "$ref": "#/components/schemas/PaymentTypeListVO",
-              "description": ""
-            },
-            "description": "数据"
-          }
-        }
-      },
-      "PaymentTypeROAdd": {
-        "type": "object",
-        "properties": {
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "channelId": {
-            "type": "integer",
-            "description": "通道id",
-            "format": "int64"
-          },
-          "paymentName": {
-            "type": "string",
-            "description": "支付类型名称"
-          },
-          "paymentCode": {
-            "type": "string",
-            "description": "支付类型代码"
-          },
-          "paymentType": {
-            "type": "string",
-            "description": "支付类别",
-            "enum": [
-              "PAY",
-              "HARVEST"
-            ]
-          }
-        },
-        "required": [
-          "status",
-          "channelId",
-          "paymentName",
-          "paymentCode",
-          "paymentType"
-        ]
-      },
-      "PaymentType": {
-        "type": "object",
-        "properties": {
-          "id": {
-            "type": "integer",
-            "description": "",
-            "format": "int64"
-          },
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "createBy": {
-            "type": "string",
-            "description": "创建人"
-          },
-          "updateBy": {
-            "type": "string",
-            "description": "修改人"
-          },
-          "createTime": {
-            "type": "string",
-            "description": "创建时间"
-          },
-          "updateTime": {
-            "type": "string",
-            "description": "修改时间"
-          },
-          "channelId": {
-            "type": "integer",
-            "description": "通道id",
-            "format": "int64"
-          },
-          "paymentName": {
-            "type": "string",
-            "description": "支付类型名称"
-          },
-          "paymentCode": {
-            "type": "string",
-            "description": "支付类型代码"
-          },
-          "paymentType": {
-            "type": "string",
-            "description": "支付类别",
-            "enum": [
-              "PAY",
-              "HARVEST"
-            ]
-          }
-        }
-      },
-      "R": {
-        "type": "object",
-        "properties": {
-          "ok": {
-            "type": "boolean"
-          },
-          "code": {
-            "description": "返回标记:成功标记=0,失败标记=1",
-            "type": "null"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "type": "object",
-            "properties": {},
-            "description": "数据"
-          }
-        }
-      },
-      "RPaymentType": {
-        "type": "object",
-        "properties": {
-          "code": {
-            "type": "integer",
-            "description": "返回标记:成功标记=0,失败标记=1"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "$ref": "#/components/schemas/PaymentType",
-            "description": "数据"
-          }
-        }
-      },
-      "PaymentTypeROEdit": {
-        "type": "object",
-        "properties": {
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "channelId": {
-            "type": "integer",
-            "description": "通道id",
-            "format": "int64"
-          },
-          "paymentName": {
-            "type": "string",
-            "description": "支付类型名称"
-          },
-          "paymentCode": {
-            "type": "string",
-            "description": "支付类型代码"
-          },
-          "paymentType": {
-            "type": "string",
-            "description": "支付类别",
-            "enum": [
-              "PAY",
-              "HARVEST"
-            ]
-          }
-        },
-        "required": [
-          "channelId",
-          "paymentName",
-          "paymentCode"
-        ]
-      }
-    },
-    "securitySchemes": {
-      "bearer": {
-        "type": "http",
-        "scheme": "bearer"
-      }
-    }
-  },
-  "servers": [],
-  "security": []
-}

+ 0 - 294
doc/shtd.json

@@ -1,294 +0,0 @@
-{
-  "openapi": "3.0.1",
-  "info": {
-    "title": "默认模块",
-    "description": "",
-    "version": "1.0.0"
-  },
-  "tags": [],
-  "paths": {
-    "/merchantPaymentType/list": {
-      "get": {
-        "summary": "列表-代收或代付 merchant_payment_type_query",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [
-          {
-            "name": "paymentType",
-            "in": "query",
-            "description": "通道类型\nPAY :代付\nHARVEST :代收",
-            "required": true,
-            "schema": {
-              "type": "string",
-              "enum": [
-                "PAY",
-                "HARVEST"
-              ]
-            }
-          },
-          {
-            "name": "merchantUserId",
-            "in": "query",
-            "description": "商户id",
-            "required": true,
-            "schema": {
-              "type": "integer",
-              "format": "int64"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/RListMerchantPaymentTypeListVO"
-                },
-                "example": {
-                  "code": 0,
-                  "msg": "",
-                  "data": [
-                    {
-                      "merchantPaymentTypeId": 0,
-                      "paymentTypeId": 0,
-                      "channelName": "",
-                      "channelCode": "",
-                      "paymentName": "",
-                      "paymentCode": "",
-                      "status": false,
-                      "agentUserRate": 0,
-                      "merchantUserRate": 0,
-                      "singleMaxAmount": 0,
-                      "singleMinAmount": 0,
-                      "baseSingleMaxAmount": 0,
-                      "baseSingleMinAmount": 0
-                    }
-                  ]
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    },
-    "/merchantPaymentType/edit": {
-      "post": {
-        "summary": "编辑配置 merchant_payment_type_edit",
-        "deprecated": false,
-        "description": "",
-        "tags": [],
-        "parameters": [],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/EditMerchantPaymentROEdit",
-                "description": ""
-              }
-            }
-          }
-        },
-        "responses": {
-          "200": {
-            "description": "",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/R",
-                  "description": "响应信息主体"
-                },
-                "example": {
-                  "ok": false,
-                  "code": null,
-                  "msg": "",
-                  "data": {}
-                }
-              }
-            },
-            "headers": {}
-          }
-        },
-        "security": [
-          {
-            "bearer": []
-          }
-        ]
-      }
-    }
-  },
-  "components": {
-    "schemas": {
-      "MerchantPaymentTypeListVO": {
-        "type": "object",
-        "properties": {
-          "merchantPaymentTypeId": {
-            "type": "integer",
-            "description": "配置id",
-            "format": "int64"
-          },
-          "paymentTypeId": {
-            "type": "integer",
-            "description": "支付类型id",
-            "format": "int64"
-          },
-          "channelName": {
-            "type": "string",
-            "description": "通道名称"
-          },
-          "channelCode": {
-            "type": "string",
-            "description": "通道编码"
-          },
-          "paymentName": {
-            "type": "string",
-            "description": "支付类型名称"
-          },
-          "paymentCode": {
-            "type": "string",
-            "description": "支付类型代码"
-          },
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "agentUserRate": {
-            "type": "number",
-            "description": "代理商费率"
-          },
-          "merchantUserRate": {
-            "type": "number",
-            "description": "商户费率"
-          },
-          "singleMaxAmount": {
-            "type": "number",
-            "description": "单比最大金额"
-          },
-          "singleMinAmount": {
-            "type": "number",
-            "description": "单比最小金额"
-          },
-          "baseSingleMaxAmount": {
-            "type": "number",
-            "description": "通道单比最大金额"
-          },
-          "baseSingleMinAmount": {
-            "type": "number",
-            "description": "通道单比最小金额"
-          }
-        }
-      },
-      "RListMerchantPaymentTypeListVO": {
-        "type": "object",
-        "properties": {
-          "code": {
-            "type": "integer",
-            "description": "返回标记:成功标记=0,失败标记=1"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "type": "array",
-            "items": {
-              "$ref": "#/components/schemas/MerchantPaymentTypeListVO",
-              "description": ""
-            },
-            "description": "数据"
-          }
-        }
-      },
-      "EditMerchantPaymentROEdit": {
-        "type": "object",
-        "properties": {
-          "merchantPaymentTypeId": {
-            "type": "integer",
-            "description": "配置id",
-            "format": "int64"
-          },
-          "paymentType": {
-            "type": "string",
-            "description": "通道类型",
-            "enum": [
-              "PAY",
-              "HARVEST"
-            ]
-          },
-          "paymentTypeId": {
-            "type": "integer",
-            "description": "支付类型id",
-            "format": "int64"
-          },
-          "merchantUserId": {
-            "type": "integer",
-            "description": "商户id",
-            "format": "int64"
-          },
-          "agentUserRate": {
-            "type": "number",
-            "description": "代理商费率"
-          },
-          "merchantUserRate": {
-            "type": "number",
-            "description": "商户费率"
-          },
-          "status": {
-            "type": "boolean",
-            "description": "启用状态"
-          },
-          "singleMaxAmount": {
-            "type": "number",
-            "description": "单比最大金额"
-          },
-          "singleMinAmount": {
-            "type": "number",
-            "description": "单比最小金额"
-          }
-        },
-        "required": [
-          "paymentType",
-          "paymentTypeId",
-          "merchantUserId",
-          "status"
-        ]
-      },
-      "R": {
-        "type": "object",
-        "properties": {
-          "ok": {
-            "type": "boolean"
-          },
-          "code": {
-            "description": "返回标记:成功标记=0,失败标记=1",
-            "type": "null"
-          },
-          "msg": {
-            "type": "string",
-            "description": "返回信息"
-          },
-          "data": {
-            "type": "object",
-            "properties": {},
-            "description": "数据"
-          }
-        }
-      }
-    },
-    "securitySchemes": {
-      "bearer": {
-        "type": "http",
-        "scheme": "bearer"
-      }
-    }
-  },
-  "servers": [],
-  "security": []
-}

+ 172 - 0
doc/tz.json

@@ -0,0 +1,172 @@
+{
+  "openapi": "3.0.1",
+  "info": {
+    "title": "默认模块",
+    "description": "",
+    "version": "1.0.0"
+  },
+  "tags": [],
+  "paths": {
+    "/admin/payNotify/page": {
+      "get": {
+        "summary": "分页查询列表",
+        "deprecated": false,
+        "description": "",
+        "tags": [],
+        "parameters": [
+          {
+            "name": "appId",
+            "in": "query",
+            "description": "",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          },
+          {
+            "name": "orderId",
+            "in": "query",
+            "description": "",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/RPayNotifyRO",
+                  "description": "通知记录"
+                },
+                "example": {
+                  "code": 0,
+                  "msg": "",
+                  "data": {
+                    "id": 0,
+                    "orderId": "",
+                    "status": 0,
+                    "nextNotifyTime": "",
+                    "lastExecuteTime": "",
+                    "notifyTimes": 0,
+                    "maxNotifyTimes": 0,
+                    "notifyUrl": "",
+                    "errorMsg": "",
+                    "payNotifyLogs": [
+                      {
+                        "notifyTimes": 0,
+                        "response": "",
+                        "status": 0,
+                        "createTime": ""
+                      }
+                    ]
+                  }
+                }
+              }
+            },
+            "headers": {}
+          }
+        },
+        "security": []
+      }
+    }
+  },
+  "components": {
+    "schemas": {
+      "PayNotifyLogRO": {
+        "type": "object",
+        "properties": {
+          "notifyTimes": {
+            "type": "integer",
+            "description": "第几次被通知\n\n对应到{@link MchPayNotifyTask#getNotifyTimes()}"
+          },
+          "response": {
+            "type": "string",
+            "description": "HTTP 响应结果"
+          },
+          "status": {
+            "type": "integer",
+            "description": "支付通知状态\n\n枚举{@link PayNotifyStatusEnum}"
+          },
+          "createTime": {
+            "type": "string",
+            "description": "创建时间"
+          }
+        }
+      },
+      "PayNotifyRO": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "integer",
+            "description": "",
+            "format": "int64"
+          },
+          "orderId": {
+            "type": "string",
+            "description": "平台订单ID"
+          },
+          "status": {
+            "type": "integer",
+            "description": "通知状态\n\n枚举{@link PayNotifyStatusEnum}"
+          },
+          "nextNotifyTime": {
+            "type": "string",
+            "description": "下一次通知时间"
+          },
+          "lastExecuteTime": {
+            "type": "string",
+            "description": "最后一次执行时间"
+          },
+          "notifyTimes": {
+            "type": "integer",
+            "description": "当前通知次数"
+          },
+          "maxNotifyTimes": {
+            "type": "integer",
+            "description": "最大可通知次数"
+          },
+          "notifyUrl": {
+            "type": "string",
+            "description": "通知地址"
+          },
+          "errorMsg": {
+            "type": "string",
+            "description": "失败原因"
+          },
+          "payNotifyLogs": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/PayNotifyLogRO",
+              "description": "com.mw.bridging.open.ro.PayNotifyLogRO"
+            },
+            "description": "通知日志"
+          }
+        }
+      },
+      "RPayNotifyRO": {
+        "type": "object",
+        "properties": {
+          "code": {
+            "type": "integer",
+            "description": "返回标记:成功标记=0,失败标记=1"
+          },
+          "msg": {
+            "type": "string",
+            "description": "返回信息"
+          },
+          "data": {
+            "$ref": "#/components/schemas/PayNotifyRO",
+            "description": "数据"
+          }
+        }
+      }
+    },
+    "securitySchemes": {}
+  },
+  "servers": [],
+  "security": []
+}

+ 42 - 0
src/api/order/index.ts

@@ -0,0 +1,42 @@
+import request from '/@/utils/request';
+
+// ==================== 代收订单相关 API ====================
+
+export function fetchPayOrderList(query?: Object) {
+	return request({
+		url: 'open/admin/payOrder/page',
+		method: 'post',
+		data: query,
+	});
+}
+
+export function fetchPayOrderStatistics(query?: Object) {
+	return request({
+		url: 'open/admin/payOrder/statistics',
+		method: 'post',
+		data: query,
+	});
+}
+
+// ==================== 代付订单相关 API ====================
+
+export function fetchWithdrawOrderList(query?: Object) {
+	return request({
+		url: 'open/admin/withdrawOrder/page',
+		method: 'post',
+		data: query,
+	});
+}
+
+// ==================== 回调日志相关 API ====================
+
+export function fetchPayNotifyLog(appId: string, orderId: string) {
+	return request({
+		url: 'open/admin/payNotify/page',
+		method: 'get',
+		params: {
+			appId,
+			orderId,
+		},
+	});
+}

+ 12 - 0
src/api/statistics/index.ts

@@ -0,0 +1,12 @@
+import request from '/@/utils/request';
+
+/**
+ * 首页数据统计
+ * @returns 返回统计数据
+ */
+export function getIndexStatistics() {
+	return request({
+		url: '/open/statistisc/index',
+		method: 'get',
+	});
+}

+ 284 - 16
src/views/home/index.vue

@@ -1,24 +1,292 @@
 <template>
-  <div>
-    <div v-if="pageLoading">
-      <el-main>
-        <el-card shadow="never">
-          <el-skeleton :rows="1"></el-skeleton>
-        </el-card>
-        <el-card shadow="never" style="margin-top: 15px;">
-          <el-skeleton></el-skeleton>
-        </el-card>
-      </el-main>
-    </div>
-    <widgets/>
-  </div>
+	<div class="home-container">
+		<el-row :gutter="20" v-loading="loading">
+			<!-- 提交订单 -->
+			<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+				<el-card shadow="hover" class="stat-card">
+					<div class="stat-item">
+						<div class="stat-icon" style="background: #409eff">
+							<el-icon :size="28"><DocumentAdd /></el-icon>
+						</div>
+						<div class="stat-info">
+							<div class="stat-title">提交订单</div>
+							<div class="stat-number">{{ statistics.submitCreateNum || 0 }}</div>
+							<div class="stat-desc">金额: {{ formatAmount(statistics.submitCreateAmount) }}</div>
+						</div>
+					</div>
+				</el-card>
+			</el-col>
+
+			<!-- 支付订单 -->
+			<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+				<el-card shadow="hover" class="stat-card">
+					<div class="stat-item">
+						<div class="stat-icon" style="background: #67c23a">
+							<el-icon :size="28"><Wallet /></el-icon>
+						</div>
+						<div class="stat-info">
+							<div class="stat-title">支付订单</div>
+							<div class="stat-number">{{ statistics.payOrderNum || 0 }}</div>
+							<div class="stat-desc">金额: {{ formatAmount(statistics.payOrderAmount) }}</div>
+						</div>
+					</div>
+				</el-card>
+			</el-col>
+
+			<!-- 提现订单 -->
+			<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+				<el-card shadow="hover" class="stat-card">
+					<div class="stat-item">
+						<div class="stat-icon" style="background: #e6a23c">
+							<el-icon :size="28"><Money /></el-icon>
+						</div>
+						<div class="stat-info">
+							<div class="stat-title">提现订单</div>
+							<div class="stat-number">{{ statistics.withdrawOrderNum || 0 }}</div>
+							<div class="stat-desc">金额: {{ formatAmount(statistics.withdrawOrderAmount) }}</div>
+						</div>
+					</div>
+				</el-card>
+			</el-col>
+
+			<!-- 提现成功 -->
+			<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+				<el-card shadow="hover" class="stat-card">
+					<div class="stat-item">
+						<div class="stat-icon" style="background: #f56c6c">
+							<el-icon :size="28"><CircleCheck /></el-icon>
+						</div>
+						<div class="stat-info">
+							<div class="stat-title">提现成功</div>
+							<div class="stat-number">{{ statistics.withdrawOrderSuccessNum || 0 }}</div>
+							<div class="stat-desc">金额: {{ formatAmount(statistics.withdrawOrderSuccessAmount) }}</div>
+						</div>
+					</div>
+				</el-card>
+			</el-col>
+		</el-row>
+
+		<!-- 支付成功率 -->
+		<el-row :gutter="20" style="margin-top: 20px">
+			<el-col :span="24">
+				<el-card shadow="hover" class="rate-card">
+					<div class="rate-item">
+						<div class="rate-icon">
+							<el-icon :size="40"><TrendCharts /></el-icon>
+						</div>
+						<div class="rate-info">
+							<div class="rate-title">支付成功率</div>
+							<div class="rate-number">{{ formatRate(statistics.paySuccessRate) }}</div>
+						</div>
+						<div class="rate-progress">
+							<el-progress :percentage="statistics.paySuccessRate || 0" :stroke-width="20" :text-inside="true" />
+						</div>
+					</div>
+				</el-card>
+			</el-col>
+		</el-row>
+	</div>
 </template>
 
 <script setup lang="ts" name="dashboard">
-const Widgets = defineAsyncComponent(() => import('./widgets/index.vue'));
-const pageLoading = ref(true);
+import { ref, onMounted } from 'vue';
+import { DocumentAdd, Wallet, Money, CircleCheck, TrendCharts } from '@element-plus/icons-vue';
+import { getIndexStatistics } from '/@/api/statistics/index';
+import { ElMessage } from 'element-plus';
+
+// 统计数据
+const statistics = ref({
+	submitCreateNum: 0,
+	payOrderNum: 0,
+	submitCreateAmount: 0,
+	payOrderAmount: 0,
+	withdrawOrderNum: 0,
+	withdrawOrderSuccessNum: 0,
+	withdrawOrderAmount: 0,
+	withdrawOrderSuccessAmount: 0,
+	paySuccessRate: 0,
+});
+
+const loading = ref(false);
+
+// 格式化金额
+const formatAmount = (amount: number | undefined) => {
+	if (!amount) return '¥0.00';
+	return `¥${amount.toFixed(2)}`;
+};
+
+// 格式化百分比
+const formatRate = (rate: number | undefined) => {
+	if (!rate) return '0%';
+	return `${rate.toFixed(2)}%`;
+};
+
+// 加载统计数据
+const loadStatistics = async () => {
+	loading.value = true;
+	try {
+		const res = await getIndexStatistics();
+		if (res.code === 0) {
+			statistics.value = res.data;
+		} else {
+			ElMessage.error(res.msg || '加载统计数据失败');
+		}
+	} catch (error) {
+		ElMessage.error('加载统计数据失败');
+	} finally {
+		loading.value = false;
+	}
+};
 
 onMounted(() => {
-  pageLoading.value = false;
+	loadStatistics();
 });
 </script>
+
+<style scoped lang="scss">
+.home-container {
+	padding: 20px;
+
+	.stat-card {
+		margin-bottom: 20px;
+		transition: all 0.3s;
+
+		&:hover {
+			transform: translateY(-2px);
+		}
+
+		.stat-item {
+			display: flex;
+			align-items: center;
+			padding: 10px;
+
+			.stat-icon {
+				width: 60px;
+				height: 60px;
+				border-radius: 8px;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				color: #fff;
+				margin-right: 20px;
+			}
+
+			.stat-info {
+				flex: 1;
+
+				.stat-title {
+					font-size: 14px;
+					color: var(--el-text-color-secondary);
+					margin-bottom: 8px;
+				}
+
+				.stat-number {
+					font-size: 28px;
+					font-weight: bold;
+					color: var(--el-text-color-primary);
+					margin-bottom: 5px;
+				}
+
+				.stat-desc {
+					font-size: 13px;
+					color: var(--el-text-color-regular);
+				}
+			}
+		}
+	}
+
+	.rate-card {
+		.rate-item {
+			display: flex;
+			align-items: center;
+			padding: 20px 10px;
+
+			.rate-icon {
+				width: 80px;
+				height: 80px;
+				border-radius: 50%;
+				background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				color: #fff;
+				margin-right: 30px;
+			}
+
+			.rate-info {
+				margin-right: 30px;
+
+				.rate-title {
+					font-size: 16px;
+					color: var(--el-text-color-secondary);
+					margin-bottom: 10px;
+				}
+
+				.rate-number {
+					font-size: 36px;
+					font-weight: bold;
+					color: var(--el-text-color-primary);
+				}
+			}
+
+			.rate-progress {
+				flex: 1;
+				min-width: 300px;
+			}
+		}
+	}
+}
+
+@media (max-width: 768px) {
+	.home-container {
+		padding: 10px;
+
+		.stat-card {
+			margin-bottom: 10px;
+
+			.stat-item {
+				.stat-icon {
+					width: 50px;
+					height: 50px;
+					margin-right: 15px;
+				}
+
+				.stat-info {
+					.stat-number {
+						font-size: 24px;
+					}
+				}
+			}
+		}
+
+		.rate-card {
+			.rate-item {
+				flex-direction: column;
+				align-items: flex-start;
+				padding: 15px;
+
+				.rate-icon {
+					width: 60px;
+					height: 60px;
+					margin-right: 0;
+					margin-bottom: 15px;
+				}
+
+				.rate-info {
+					margin-right: 0;
+					margin-bottom: 15px;
+
+					.rate-number {
+						font-size: 28px;
+					}
+				}
+
+				.rate-progress {
+					width: 100%;
+					min-width: auto;
+				}
+			}
+		}
+	}
+}
+</style>

+ 110 - 0
src/views/order/payOrder/detail.vue

@@ -0,0 +1,110 @@
+<template>
+	<el-dialog :close-on-click-modal="false" title="代收订单详情" draggable v-model="visible" width="900px">
+		<el-descriptions :column="2" border v-loading="loading">
+			<el-descriptions-item label="订单ID">{{ orderData.id }}</el-descriptions-item>
+			<el-descriptions-item label="AppId">{{ orderData.appId }}</el-descriptions-item>
+			<el-descriptions-item label="商户订单号" :span="2">{{ orderData.mchOrderNo }}</el-descriptions-item>
+			<el-descriptions-item label="平台订单号" :span="2">{{ orderData.transactionId || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="订单状态">
+				<el-tag v-if="orderData.orderStatus === 'CREATE_ORDER'" type="info">创建订单</el-tag>
+				<el-tag v-else-if="orderData.orderStatus === 'PAY_SUCCESS'" type="success">支付成功</el-tag>
+				<el-tag v-else-if="orderData.orderStatus === 'PAY_FAIL'" type="danger">支付失败</el-tag>
+				<el-tag v-else-if="orderData.orderStatus === 'CANCEL_ORDER'" type="warning">取消订单</el-tag>
+				<el-tag v-else-if="orderData.orderStatus === 'PAY_TIMEOUT'" type="info">支付超时</el-tag>
+				<el-tag v-else>{{ orderData.orderStatus }}</el-tag>
+			</el-descriptions-item>
+			<el-descriptions-item label="币种">{{ orderData.currency }}</el-descriptions-item>
+
+			<el-descriptions-item label="订单金额">
+				<span style="color: #f56c6c; font-weight: bold; font-size: 16px">¥{{ orderData.amount ? orderData.amount.toFixed(2) : '0.00' }}</span>
+			</el-descriptions-item>
+			<el-descriptions-item label="实付金额">
+				<span v-if="orderData.noticeAmount" style="color: #67c23a; font-weight: bold; font-size: 16px"
+					>¥{{ orderData.noticeAmount.toFixed(2) }}</span
+				>
+				<span v-else>-</span>
+			</el-descriptions-item>
+
+			<el-descriptions-item label="支付通道ID">{{ orderData.paymentChannelId }}</el-descriptions-item>
+			<el-descriptions-item label="支付通道名称">{{ orderData.paymentChannelName || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="商户ID">{{ orderData.merchantUserId }}</el-descriptions-item>
+			<el-descriptions-item label="代理商ID">{{ orderData.agentUserId }}</el-descriptions-item>
+
+			<el-descriptions-item label="商户手续费类型">
+				<el-tag v-if="orderData.mFeeType === 'PERCENTAGE'" type="info">百分比</el-tag>
+				<el-tag v-else-if="orderData.mFeeType === 'FIXED'" type="warning">固定</el-tag>
+				<el-tag v-else-if="orderData.mFeeType === 'MIXED'" type="success">百分比+固定</el-tag>
+				<span v-else>-</span>
+			</el-descriptions-item>
+			<el-descriptions-item label="商户手续费">
+				{{ orderData.mFee ? `¥${orderData.mFee.toFixed(2)}` : '-' }}
+			</el-descriptions-item>
+
+			<el-descriptions-item label="商户手续费比例">
+				{{ orderData.mFeeRate ? `${orderData.mFeeRate}%` : '-' }}
+			</el-descriptions-item>
+			<el-descriptions-item label="商户手续费固定金额">
+				{{ orderData.mFeeEvery ? `¥${orderData.mFeeEvery.toFixed(2)}` : '-' }}
+			</el-descriptions-item>
+
+			<el-descriptions-item label="代理商手续费类型">
+				<el-tag v-if="orderData.aFeeType === 'PERCENTAGE'" type="info">百分比</el-tag>
+				<el-tag v-else-if="orderData.aFeeType === 'FIXED'" type="warning">固定</el-tag>
+				<el-tag v-else-if="orderData.aFeeType === 'MIXED'" type="success">百分比+固定</el-tag>
+				<span v-else>-</span>
+			</el-descriptions-item>
+			<el-descriptions-item label="代理商手续费">
+				{{ orderData.aFee ? `¥${orderData.aFee.toFixed(2)}` : '-' }}
+			</el-descriptions-item>
+
+			<el-descriptions-item label="代理商手续费比例">
+				{{ orderData.aFeeRate ? `${orderData.aFeeRate}%` : '-' }}
+			</el-descriptions-item>
+			<el-descriptions-item label="代理商手续费固定金额">
+				{{ orderData.aFeeEvery ? `¥${orderData.aFeeEvery.toFixed(2)}` : '-' }}
+			</el-descriptions-item>
+
+			<el-descriptions-item label="客户端IP">{{ orderData.clientIp || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="设备">{{ orderData.device || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="主题" :span="2">{{ orderData.subject || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="内容" :span="2">{{ orderData.body || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="前端跳转URL" :span="2">{{ orderData.returnUrl || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="后台回调URL" :span="2">{{ orderData.notifyUrl || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="扩展参数" :span="2">{{ orderData.extra || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="请求时间">{{ orderData.reqTime || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="支付完成时间">{{ orderData.noticeDatetime || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="创建时间">{{ orderData.createTime }}</el-descriptions-item>
+			<el-descriptions-item label="更新时间">{{ orderData.updateTime }}</el-descriptions-item>
+		</el-descriptions>
+
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="visible = false">关闭</el-button>
+			</span>
+		</template>
+	</el-dialog>
+</template>
+
+<script lang="ts" name="PayOrderDetailDialog" setup>
+// 定义变量
+const visible = ref(false);
+const loading = ref(false);
+const orderData = reactive<any>({});
+
+// 打开弹窗
+const openDialog = (row: any) => {
+	visible.value = true;
+	Object.assign(orderData, row);
+};
+
+// 暴露方法
+defineExpose({
+	openDialog,
+});
+</script>

+ 219 - 0
src/views/order/payOrder/index.vue

@@ -0,0 +1,219 @@
+<template>
+	<div class="layout-padding">
+		<div class="layout-padding-auto layout-padding-view">
+			<el-row class="ml10" v-show="showSearch">
+				<el-form :inline="true" :model="state.queryForm" @keyup.enter="getDataList" ref="queryRef">
+					<el-form-item label="商户订单号" prop="mchOrderNo">
+						<el-input placeholder="请输入商户订单号" style="max-width: 180px" v-model="state.queryForm.mchOrderNo" clearable />
+					</el-form-item>
+					<el-form-item label="平台订单号" prop="transactionId">
+						<el-input placeholder="请输入平台订单号" style="max-width: 180px" v-model="state.queryForm.transactionId" clearable />
+					</el-form-item>
+					<el-form-item label="订单状态" prop="orderStatus">
+						<el-select v-model="state.queryForm.orderStatus" placeholder="请选择订单状态" style="max-width: 180px" clearable>
+							<el-option label="创建订单" value="CREATE_ORDER" />
+							<el-option label="支付成功" value="PAY_SUCCESS" />
+							<el-option label="支付失败" value="PAY_FAIL" />
+							<el-option label="取消订单" value="CANCEL_ORDER" />
+							<el-option label="支付超时" value="PAY_TIMEOUT" />
+						</el-select>
+					</el-form-item>
+					<el-form-item label="支付通道" prop="paymentChannelId">
+						<el-input placeholder="请输入支付通道ID" style="max-width: 180px" v-model="state.queryForm.paymentChannelId" clearable />
+					</el-form-item>
+					<el-form-item>
+						<el-button @click="getDataList" icon="search" type="primary">查询</el-button>
+						<el-button @click="resetQuery" icon="Refresh">重置</el-button>
+					</el-form-item>
+				</el-form>
+			</el-row>
+			<el-row>
+				<div class="mb8" style="width: 100%">
+					<right-toolbar
+						@queryTable="getDataList"
+						class="ml10"
+						style="float: right; margin-right: 20px"
+						v-model:showSearch="showSearch"
+					></right-toolbar>
+				</div>
+			</el-row>
+
+			<!-- 统计信息卡片 -->
+			<el-row :gutter="20" class="mb20" v-if="statistics">
+				<el-col :span="6">
+					<el-card shadow="hover">
+						<div class="statistic-item">
+							<div class="statistic-label">提交订单数</div>
+							<div class="statistic-value">{{ statistics.numberOrders || 0 }}</div>
+						</div>
+					</el-card>
+				</el-col>
+				<el-col :span="6">
+					<el-card shadow="hover">
+						<div class="statistic-item">
+							<div class="statistic-label">订单总金额</div>
+							<div class="statistic-value">¥{{ (statistics.totalOrderAmount || 0).toFixed(2) }}</div>
+						</div>
+					</el-card>
+				</el-col>
+				<el-col :span="6">
+					<el-card shadow="hover">
+						<div class="statistic-item">
+							<div class="statistic-label">已付订单数</div>
+							<div class="statistic-value success">{{ statistics.paidOrders || 0 }}</div>
+						</div>
+					</el-card>
+				</el-col>
+				<el-col :span="6">
+					<el-card shadow="hover">
+						<div class="statistic-item">
+							<div class="statistic-label">已付总金额</div>
+							<div class="statistic-value success">¥{{ (statistics.totalAmountPaid || 0).toFixed(2) }}</div>
+						</div>
+					</el-card>
+				</el-col>
+			</el-row>
+
+			<el-table
+				:data="state.dataList"
+				@selection-change="handleSelectionChange"
+				@sort-change="sortChangeHandle"
+				style="width: 100%"
+				v-loading="state.loading"
+				border
+				:cell-style="tableStyle.cellStyle"
+				:header-cell-style="tableStyle.headerCellStyle"
+			>
+				<el-table-column align="center" type="selection" width="40" />
+				<el-table-column label="商户订单号" prop="mchOrderNo" show-overflow-tooltip />
+				<el-table-column label="平台订单号" prop="transactionId" show-overflow-tooltip />
+				<el-table-column label="通道编码" prop="paymentChannelId" show-overflow-tooltip />
+				<el-table-column label="金额" prop="amount" show-overflow-tooltip>
+					<template #default="scope">
+						<span style="color: #f56c6c; font-weight: bold">¥{{ scope.row.amount ? scope.row.amount.toFixed(2) : '0.00' }}</span>
+					</template>
+				</el-table-column>
+				<el-table-column label="订单状态" prop="orderStatus" show-overflow-tooltip>
+					<template #default="scope">
+						<el-tag :type="orderStatusMap[scope.row.orderStatus]?.type || 'info'" size="small">
+							{{ orderStatusMap[scope.row.orderStatus]?.label || scope.row.orderStatus }}
+						</el-tag>
+					</template>
+				</el-table-column>
+				<el-table-column label="操作">
+					<template #default="scope">
+						<!-- <el-button icon="View" @click="handleView(scope.row)" text type="primary" size="small">查看</el-button> -->
+						<el-button icon="Document" @click="handleNotifyLog(scope.row)" text type="warning" size="small">回调日志</el-button>
+					</template>
+				</el-table-column>
+			</el-table>
+			<pagination @current-change="currentChangeHandle" @size-change="sizeChangeHandle" v-bind="state.pagination" />
+		</div>
+
+		<!-- 回调日志弹窗 -->
+		<notify-log-dialog ref="notifyLogDialogRef" />
+	</div>
+</template>
+
+<script lang="ts" name="orderPayOrder" setup>
+import { BasicTableProps, useTable } from '/@/hooks/table';
+import { fetchPayOrderList, fetchPayOrderStatistics } from '/@/api/order';
+import { useMessage } from '/@/hooks/message';
+
+// 引入组件
+const NotifyLogDialog = defineAsyncComponent(() => import('./notifyLog.vue'));
+
+// 订单状态映射
+const orderStatusMap: Record<string, { label: string; type: any }> = {
+	CREATE_ORDER: { label: '创建订单', type: 'info' },
+	PAY_SUCCESS: { label: '支付成功', type: 'success' },
+	PAY_FAIL: { label: '支付失败', type: 'danger' },
+	CANCEL_ORDER: { label: '取消订单', type: 'warning' },
+	PAY_TIMEOUT: { label: '支付超时', type: 'info' },
+};
+
+// 定义变量内容
+const notifyLogDialogRef = ref();
+const queryRef = ref();
+const showSearch = ref(true);
+const selectObjs = ref([]);
+const multiple = ref(true);
+const statistics = ref<any>(null);
+
+// 定义表格查询、变更
+const state: BasicTableProps = reactive<BasicTableProps>({
+	queryForm: {
+		mchOrderNo: '',
+		transactionId: '',
+		orderStatus: '',
+		paymentChannelId: '',
+	},
+	pageList: fetchPayOrderList,
+	descs: ['create_time'],
+	createdIsNeed: false, // 禁用自动加载,由 getDataListWithStats 手动调用
+});
+
+const { getDataList, currentChangeHandle, sizeChangeHandle, sortChangeHandle, tableStyle } = useTable(state);
+
+// 加载统计数据
+const loadStatistics = async () => {
+	try {
+		const res = await fetchPayOrderStatistics(state.queryForm);
+		statistics.value = res.data;
+	} catch (err: any) {
+		useMessage().error(err.msg);
+	}
+};
+
+// 重写 getDataList,同时加载统计数据
+const originalGetDataList = getDataList;
+const getDataListWithStats = async (reload = true) => {
+	await originalGetDataList(reload);
+	await loadStatistics();
+};
+
+// 重置查询
+const resetQuery = () => {
+	queryRef.value?.resetFields();
+	getDataListWithStats();
+};
+
+// 多选事件
+const handleSelectionChange = (objs: any) => {
+	selectObjs.value = objs.map((val: any) => val.id);
+	multiple.value = !objs.length;
+};
+
+// 查看回调日志
+const handleNotifyLog = (row: any) => {
+	notifyLogDialogRef.value.openDialog(row.appId, row.id);
+};
+
+// 初始化加载数据
+onMounted(() => {
+	getDataListWithStats();
+});
+</script>
+
+<style scoped>
+.statistic-item {
+	text-align: center;
+	padding: 10px 0;
+}
+
+.statistic-label {
+	font-size: 14px;
+	color: #909399;
+	margin-bottom: 8px;
+}
+
+.statistic-value {
+	font-size: 24px;
+	font-weight: bold;
+	color: #303133;
+}
+
+.statistic-value.success {
+	color: #67c23a;
+}
+</style>

+ 133 - 0
src/views/order/payOrder/notifyLog.vue

@@ -0,0 +1,133 @@
+<template>
+	<el-dialog :close-on-click-modal="false" title="回调日志" draggable v-model="visible" width="1000px">
+		<div v-loading="loading">
+			<!-- 回调信息概览 -->
+			<el-descriptions :column="2" border class="mb20" v-if="notifyData.id">
+				<el-descriptions-item label="订单ID">{{ notifyData.orderId }}</el-descriptions-item>
+				<el-descriptions-item label="通知状态">
+					<el-tag v-if="notifyData.status === 0" type="warning">待通知</el-tag>
+					<el-tag v-else-if="notifyData.status === 1" type="success">通知成功</el-tag>
+					<el-tag v-else-if="notifyData.status === 2" type="danger">通知失败</el-tag>
+					<el-tag v-else>{{ notifyData.status }}</el-tag>
+				</el-descriptions-item>
+				<el-descriptions-item label="当前通知次数">{{ notifyData.notifyTimes }}</el-descriptions-item>
+				<el-descriptions-item label="最大通知次数">{{ notifyData.maxNotifyTimes }}</el-descriptions-item>
+				<el-descriptions-item label="通知地址" :span="2">{{ notifyData.notifyUrl }}</el-descriptions-item>
+				<el-descriptions-item label="最后执行时间" :span="2">{{ notifyData.lastExecuteTime || '-' }}</el-descriptions-item>
+				<el-descriptions-item label="下次通知时间" :span="2">{{ notifyData.nextNotifyTime || '-' }}</el-descriptions-item>
+				<el-descriptions-item label="失败原因" :span="2">
+					<span style="color: #f56c6c">{{ notifyData.errorMsg || '-' }}</span>
+				</el-descriptions-item>
+			</el-descriptions>
+
+			<!-- 通知日志列表 -->
+			<el-divider content-position="left">通知日志</el-divider>
+			<el-timeline v-if="notifyData.payNotifyLogs && notifyData.payNotifyLogs.length > 0">
+				<el-timeline-item
+					v-for="(log, index) in notifyData.payNotifyLogs"
+					:key="index"
+					:timestamp="log.createTime"
+					placement="top"
+					:type="log.status === 1 ? 'success' : 'danger'"
+				>
+					<el-card shadow="hover">
+						<div class="log-item">
+							<div class="log-header">
+								<span class="log-title">第 {{ log.notifyTimes }} 次通知</span>
+								<el-tag v-if="log.status === 0" type="warning" size="small">待通知</el-tag>
+								<el-tag v-else-if="log.status === 1" type="success" size="small">通知成功</el-tag>
+								<el-tag v-else-if="log.status === 2" type="danger" size="small">通知失败</el-tag>
+							</div>
+							<div class="log-content">
+								<div class="log-label">响应结果:</div>
+								<pre class="log-response">{{ log.response || '无响应' }}</pre>
+							</div>
+						</div>
+					</el-card>
+				</el-timeline-item>
+			</el-timeline>
+			<el-empty v-else description="暂无通知日志" />
+		</div>
+
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="visible = false">关闭</el-button>
+			</span>
+		</template>
+	</el-dialog>
+</template>
+
+<script lang="ts" name="NotifyLogDialog" setup>
+import { fetchPayNotifyLog } from '/@/api/order';
+import { useMessage } from '/@/hooks/message';
+
+// 定义变量
+const visible = ref(false);
+const loading = ref(false);
+const notifyData = reactive<any>({});
+
+// 打开弹窗
+const openDialog = async (appId: string, orderId: string) => {
+	visible.value = true;
+	loading.value = true;
+	
+	// 清空数据
+	Object.keys(notifyData).forEach(key => delete notifyData[key]);
+	
+	try {
+		const res = await fetchPayNotifyLog(appId, orderId);
+		Object.assign(notifyData, res.data);
+	} catch (err: any) {
+		useMessage().error(err.msg || '获取回调日志失败');
+	} finally {
+		loading.value = false;
+	}
+};
+
+// 暴露方法
+defineExpose({
+	openDialog,
+});
+</script>
+
+<style scoped>
+.log-item {
+	padding: 10px 0;
+}
+
+.log-header {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	margin-bottom: 10px;
+}
+
+.log-title {
+	font-size: 16px;
+	font-weight: bold;
+	color: #303133;
+}
+
+.log-content {
+	margin-top: 10px;
+}
+
+.log-label {
+	font-size: 14px;
+	color: #606266;
+	margin-bottom: 5px;
+}
+
+.log-response {
+	background: #f5f7fa;
+	padding: 10px;
+	border-radius: 4px;
+	font-size: 13px;
+	color: #303133;
+	white-space: pre-wrap;
+	word-wrap: break-word;
+	max-height: 200px;
+	overflow-y: auto;
+	margin: 0;
+}
+</style>

+ 114 - 0
src/views/order/withdrawOrder/detail.vue

@@ -0,0 +1,114 @@
+<template>
+	<el-dialog :close-on-click-modal="false" title="代付订单详情" draggable v-model="visible" width="900px">
+		<el-descriptions :column="2" border v-loading="loading">
+			<el-descriptions-item label="订单ID">{{ orderData.id }}</el-descriptions-item>
+			<el-descriptions-item label="AppId">{{ orderData.appId }}</el-descriptions-item>
+			<el-descriptions-item label="商户订单号" :span="2">{{ orderData.mchOrderNo }}</el-descriptions-item>
+			<el-descriptions-item label="平台订单号" :span="2">{{ orderData.transactionId || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="订单状态">
+				<el-tag v-if="orderData.orderStatus === 'CREATE_ORDER'" type="info">创建订单</el-tag>
+				<el-tag v-else-if="orderData.orderStatus === 'WITHDRAW_SUCCESS'" type="success">提现成功</el-tag>
+				<el-tag v-else-if="orderData.orderStatus === 'WITHDRAW_FAIL'" type="danger">提现失败</el-tag>
+				<el-tag v-else>{{ orderData.orderStatus }}</el-tag>
+			</el-descriptions-item>
+			<el-descriptions-item label="币种">{{ orderData.currencyType }}</el-descriptions-item>
+
+			<el-descriptions-item label="订单金额">
+				<span style="color: #f56c6c; font-weight: bold; font-size: 16px">¥{{ orderData.amount ? orderData.amount.toFixed(2) : '0.00' }}</span>
+			</el-descriptions-item>
+			<el-descriptions-item label="实付金额">
+				<span v-if="orderData.noticeAmount" style="color: #67c23a; font-weight: bold; font-size: 16px"
+					>¥{{ orderData.noticeAmount.toFixed(2) }}</span
+				>
+				<span v-else>-</span>
+			</el-descriptions-item>
+
+			<el-descriptions-item label="支付通道ID">{{ orderData.paymentChannelId }}</el-descriptions-item>
+			<el-descriptions-item label="通道类型ID">{{ orderData.paymentTypeId }}</el-descriptions-item>
+
+			<el-descriptions-item label="商户ID">{{ orderData.merchantUserId }}</el-descriptions-item>
+			<el-descriptions-item label="费率状态">
+				<el-tag v-if="orderData.feeStatus" type="success">成功</el-tag>
+				<el-tag v-else type="danger">失败</el-tag>
+			</el-descriptions-item>
+
+			<el-descriptions-item label="商户手续费类型">
+				<el-tag v-if="orderData.mFeeType === 'PERCENTAGE'" type="info">百分比</el-tag>
+				<el-tag v-else-if="orderData.mFeeType === 'FIXED'" type="warning">固定</el-tag>
+				<el-tag v-else-if="orderData.mFeeType === 'MIXED'" type="success">百分比+固定</el-tag>
+				<span v-else>-</span>
+			</el-descriptions-item>
+			<el-descriptions-item label="商户手续费">
+				{{ orderData.mFee ? `¥${orderData.mFee.toFixed(2)}` : '-' }}
+			</el-descriptions-item>
+
+			<el-descriptions-item label="商户手续费比例">
+				{{ orderData.mFeeRate ? `${orderData.mFeeRate}%` : '-' }}
+			</el-descriptions-item>
+			<el-descriptions-item label="商户手续费固定金额">
+				{{ orderData.mFeeEvery ? `¥${orderData.mFeeEvery.toFixed(2)}` : '-' }}
+			</el-descriptions-item>
+
+			<el-descriptions-item label="代理商手续费类型">
+				<el-tag v-if="orderData.aFeeType === 'PERCENTAGE'" type="info">百分比</el-tag>
+				<el-tag v-else-if="orderData.aFeeType === 'FIXED'" type="warning">固定</el-tag>
+				<el-tag v-else-if="orderData.aFeeType === 'MIXED'" type="success">百分比+固定</el-tag>
+				<span v-else>-</span>
+			</el-descriptions-item>
+			<el-descriptions-item label="代理商手续费">
+				{{ orderData.aFee ? `¥${orderData.aFee.toFixed(2)}` : '-' }}
+			</el-descriptions-item>
+
+			<el-descriptions-item label="代理商手续费比例">
+				{{ orderData.aFeeRate ? `${orderData.aFeeRate}%` : '-' }}
+			</el-descriptions-item>
+			<el-descriptions-item label="代理商手续费固定金额">
+				{{ orderData.aFeeEvery ? `¥${orderData.aFeeEvery.toFixed(2)}` : '-' }}
+			</el-descriptions-item>
+
+			<el-descriptions-item label="收款人姓名">{{ orderData.payUsername || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="收款人电话">{{ orderData.payMobile || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="银行账号" :span="2">{{ orderData.payBankNumber || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="银行名称" :span="2">{{ orderData.payBankName || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="收款人邮箱" :span="2">{{ orderData.payEmail || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="主题" :span="2">{{ orderData.subject || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="后台回调URL" :span="2">{{ orderData.notifyUrl || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="扩展参数" :span="2">{{ orderData.payAttach || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="请求时间">{{ orderData.reqTime || '-' }}</el-descriptions-item>
+			<el-descriptions-item label="完成时间">{{ orderData.noticeDatetime || '-' }}</el-descriptions-item>
+
+			<el-descriptions-item label="创建时间">{{ orderData.createTime }}</el-descriptions-item>
+			<el-descriptions-item label="更新时间">{{ orderData.updateTime }}</el-descriptions-item>
+		</el-descriptions>
+
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="visible = false">关闭</el-button>
+			</span>
+		</template>
+	</el-dialog>
+</template>
+
+<script lang="ts" name="WithdrawOrderDetailDialog" setup>
+// 定义变量
+const visible = ref(false);
+const loading = ref(false);
+const orderData = reactive<any>({});
+
+// 打开弹窗
+const openDialog = (row: any) => {
+	visible.value = true;
+	Object.assign(orderData, row);
+};
+
+// 暴露方法
+defineExpose({
+	openDialog,
+});
+</script>

+ 128 - 0
src/views/order/withdrawOrder/index.vue

@@ -0,0 +1,128 @@
+<template>
+	<div class="layout-padding">
+		<div class="layout-padding-auto layout-padding-view">
+			<el-row class="ml10" v-show="showSearch">
+				<el-form :inline="true" :model="state.queryForm" @keyup.enter="getDataList" ref="queryRef">
+					<el-form-item label="商户订单号" prop="mchOrderNo">
+						<el-input placeholder="请输入商户订单号" style="max-width: 180px" v-model="state.queryForm.mchOrderNo" clearable />
+					</el-form-item>
+					<el-form-item label="平台订单号" prop="transactionId">
+						<el-input placeholder="请输入平台订单号" style="max-width: 180px" v-model="state.queryForm.transactionId" clearable />
+					</el-form-item>
+					<el-form-item label="订单状态" prop="orderStatus">
+						<el-select v-model="state.queryForm.orderStatus" placeholder="请选择订单状态" style="max-width: 180px" clearable>
+							<el-option label="创建订单" value="CREATE_ORDER" />
+							<el-option label="提现成功" value="WITHDRAW_SUCCESS" />
+							<el-option label="提现失败" value="WITHDRAW_FAIL" />
+						</el-select>
+					</el-form-item>
+					<el-form-item>
+						<el-button @click="getDataList" icon="search" type="primary">查询</el-button>
+						<el-button @click="resetQuery" icon="Refresh">重置</el-button>
+					</el-form-item>
+				</el-form>
+			</el-row>
+			<el-row>
+				<div class="mb8" style="width: 100%">
+					<right-toolbar
+						@queryTable="getDataList"
+						class="ml10"
+						style="float: right; margin-right: 20px"
+						v-model:showSearch="showSearch"
+					></right-toolbar>
+				</div>
+			</el-row>
+
+			<el-table
+				:data="state.dataList"
+				@selection-change="handleSelectionChange"
+				@sort-change="sortChangeHandle"
+				style="width: 100%"
+				v-loading="state.loading"
+				border
+				:cell-style="tableStyle.cellStyle"
+				:header-cell-style="tableStyle.headerCellStyle"
+			>
+				<el-table-column align="center" type="selection" width="40" />
+				<el-table-column label="商户订单号" prop="mchOrderNo" show-overflow-tooltip />
+				<el-table-column label="平台订单号" prop="transactionId" show-overflow-tooltip />
+				<el-table-column label="通道编码" prop="paymentChannelId" show-overflow-tooltip />
+				<el-table-column label="金额" prop="amount" show-overflow-tooltip>
+					<template #default="scope">
+						<span style="color: #f56c6c; font-weight: bold">¥{{ scope.row.amount ? scope.row.amount.toFixed(2) : '0.00' }}</span>
+					</template>
+				</el-table-column>
+				<el-table-column label="订单状态" prop="orderStatus" show-overflow-tooltip>
+					<template #default="scope">
+						<el-tag :type="orderStatusMap[scope.row.orderStatus]?.type || 'info'" size="small">
+							{{ orderStatusMap[scope.row.orderStatus]?.label || scope.row.orderStatus }}
+						</el-tag>
+					</template>
+				</el-table-column>
+				<el-table-column label="操作">
+					<template #default="scope">
+						<!-- <el-button icon="View" @click="handleView(scope.row)" text type="primary" size="small">查看</el-button> -->
+						<el-button icon="Document" @click="handleNotifyLog(scope.row)" text type="warning" size="small">回调日志</el-button>
+					</template>
+				</el-table-column>
+			</el-table>
+			<pagination @current-change="currentChangeHandle" @size-change="sizeChangeHandle" v-bind="state.pagination" />
+		</div>
+
+		<!-- 回调日志弹窗 -->
+		<notify-log-dialog ref="notifyLogDialogRef" />
+	</div>
+</template>
+
+<script lang="ts" name="orderWithdrawOrder" setup>
+import { BasicTableProps, useTable } from '/@/hooks/table';
+import { fetchWithdrawOrderList } from '/@/api/order';
+
+// 引入组件
+const NotifyLogDialog = defineAsyncComponent(() => import('../payOrder/notifyLog.vue'));
+
+// 订单状态映射
+const orderStatusMap: Record<string, { label: string; type: any }> = {
+	CREATE_ORDER: { label: '创建订单', type: 'info' },
+	WITHDRAW_SUCCESS: { label: '提现成功', type: 'success' },
+	WITHDRAW_FAIL: { label: '提现失败', type: 'danger' },
+};
+
+// 定义变量内容
+const notifyLogDialogRef = ref();
+const queryRef = ref();
+const showSearch = ref(true);
+const selectObjs = ref([]);
+const multiple = ref(true);
+
+// 定义表格查询、变更
+const state: BasicTableProps = reactive<BasicTableProps>({
+	queryForm: {
+		mchOrderNo: '',
+		transactionId: '',
+		orderStatus: '',
+	},
+	pageList: fetchWithdrawOrderList,
+	descs: ['create_time'],
+	createdIsNeed: true, // 使用自动加载
+});
+
+const { getDataList, currentChangeHandle, sizeChangeHandle, sortChangeHandle, tableStyle } = useTable(state);
+
+// 重置查询
+const resetQuery = () => {
+	queryRef.value?.resetFields();
+	getDataList();
+};
+
+// 多选事件
+const handleSelectionChange = (objs: any) => {
+	selectObjs.value = objs.map((val: any) => val.id);
+	multiple.value = !objs.length;
+};
+
+// 查看回调日志
+const handleNotifyLog = (row: any) => {
+	notifyLogDialogRef.value.openDialog(row.appId, row.id);
+};
+</script>