From a4188f41f3bc981fe8fa92c253a1195b76be04dd Mon Sep 17 00:00:00 2001
From: Bang Hu <hu_bang@hotmail.com>
Date: 星期三, 03 九月 2025 16:45:00 +0800
Subject: [PATCH] 交易确认添加积分扣减功能

---
 src/api/pointsApi.ts |   55 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/src/api/pointsApi.ts b/src/api/pointsApi.ts
index 6d3e554..2cc74b2 100644
--- a/src/api/pointsApi.ts
+++ b/src/api/pointsApi.ts
@@ -5,7 +5,7 @@
 const pointsApi = {
   // 绉垎瑙勫垯璁剧疆鐩稿叧鎺ュ彛
   // 鑾峰彇绉垎瑙勫垯閰嶇疆
-  getPointsRules(data?: object): ApiPromise {
+  getPointsRules(data: object): ApiPromise {
     return createAxios({
       url: `${url}main/page`,
       data: data,
@@ -13,28 +13,30 @@
   },
 
   // 鏍规嵁ID鑾峰彇绉垎瑙勫垯
-  getPointsRuleById(ruleId: string): ApiPromise {
-
+  getPointsRuleById(data: URLSearchParams): ApiPromise {
     return createAxios({
-      url: `${url}rules/getById`,
-      method: 'get',
-      params: { ruleId }
+      url: `${url}rule/list`,
+      method: 'post',
+      data: data,
+      headers: {
+        'Content-Type': 'application/x-www-form-urlencoded'
+      }
     }) as ApiPromise
   },
 
   // 淇濆瓨绉垎瑙勫垯閰嶇疆
   savePointsRules(data: object): ApiPromise {
     return createAxios({
-      url: `${url}rules/save`,
+      url: `${url}rules/update`,
       data: data,
     }) as ApiPromise
   },
 
   // 涓汉绉垎鐩稿叧鎺ュ彛
   // 鑾峰彇涓汉绉垎缁熻
-  getPersonalPointsStats(): ApiPromise {
+  getPersonalPointsStats(userId: number): ApiPromise {
     return createAxios({
-      url: `${url}personal/stats`,
+      url: `${url}/total/user/` + userId,
       method: 'get',
     }) as ApiPromise
   },
@@ -42,7 +44,7 @@
   // 鑾峰彇涓汉绉垎娴佹按
   getPersonalPointsFlow(data: object): ApiPromise {
     return createAxios({
-      url: `${url}personal/flow`,
+      url: `${url}flow/personal/page`,
       data: data,
     }) as ApiPromise
   },
@@ -79,6 +81,39 @@
       data,
     }) as ApiPromise
   },
+
+  // 鑾峰彇绉垎娴佹按鏁版嵁绫荤洰鍒楄〃
+  getPointsFlowCategories(): ApiPromise {
+    return createAxios({
+      url: `${url}flow/categories`,
+      method: 'get',
+    }) as ApiPromise
+  },
+
+  // 鑾峰彇鐢ㄦ埛绉垎浣欓 - 浣跨敤宸插瓨鍦ㄧ殑鎺ュ彛
+  getUserPoints(userId: number): ApiPromise {
+    return createAxios({
+      url: `${url}total/user/${userId}`,  // 淇敼涓哄疄闄呭瓨鍦ㄧ殑璺緞
+      method: 'get',
+    }) as ApiPromise
+  },
+
+  // 浣跨敤涓撻棬鐨勭Н鍒嗘墸鍑忔帴鍙�
+  deductPointsByFlow(userId: string, unitId: string, points: number, orderId: string, remark?: string, dataCategory?: string): ApiPromise {
+    return createAxios({
+      url: `${url}user/deduct`,  // 浣跨敤鏂扮殑涓撻棬绉垎鎵e噺鎺ュ彛
+      method: 'post',
+      data: {
+        userId,
+        unitId,
+        points,                    // 鐩存帴浼犲叆瑕佹墸鍑忕殑绉垎鏁伴噺
+        orderId,
+        remark: remark || `璁㈠崟${orderId}浜ゆ槗鎵e噺绉垎`,
+        dataCategory: dataCategory || 'resource_transaction',
+        dataType: 1               // 1琛ㄧず娑堣��
+      },
+    }) as ApiPromise
+  },
 }
 
 export default pointsApi

--
Gitblit v1.8.0