ZHIWEI666 commited on
Commit
c64fa2c
·
verified ·
1 Parent(s): 592cfb6

个人资料交易记录中,增加销售统计模块

Browse files
Files changed (1) hide show
  1. router_wallet.py +48 -0
router_wallet.py CHANGED
@@ -848,6 +848,54 @@ async def get_tip_stats(account: str, db: Session = Depends(get_db)):
848
  }
849
  }
850
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
851
  # ==========================================
852
  # 🔄 P7后悔模式:退款API
853
  # ==========================================
 
848
  }
849
  }
850
 
851
+ @router.get("/api/wallet/{account}/sales-stats")
852
+ async def get_sales_stats(account: str, db: Session = Depends(get_db)):
853
+ """
854
+ 📊 获取用户销售统计
855
+ - 销售收入:来自 earn_balance(累计销售收益)
856
+ - 购买支出:来自 PURCHASE 类型的交易记录
857
+ """
858
+ from sqlalchemy import func as sql_func
859
+
860
+ # 获取钱包信息(用于读取 earn_balance)
861
+ wallet = db.query(Wallet).filter(Wallet.account == account).first()
862
+
863
+ # 统计购买支出(PURCHASE类型交易)
864
+ purchase_stats = db.query(
865
+ sql_func.count(Transaction.tx_id).label('count'),
866
+ sql_func.coalesce(sql_func.sum(Transaction.amount), 0).label('total')
867
+ ).filter(
868
+ Transaction.account == account,
869
+ Transaction.tx_type == "PURCHASE"
870
+ ).first()
871
+
872
+ # 统计退款收入(REFUND类型,作为购买支出的反向操作)
873
+ refund_stats = db.query(
874
+ sql_func.count(Transaction.tx_id).label('count'),
875
+ sql_func.coalesce(sql_func.sum(Transaction.amount), 0).label('total')
876
+ ).filter(
877
+ Transaction.account == account,
878
+ Transaction.tx_type == "REFUND"
879
+ ).first()
880
+
881
+ total_sales = wallet.earn_balance or 0 if wallet else 0
882
+ total_purchase = abs(purchase_stats.total or 0)
883
+ purchase_count = purchase_stats.count or 0
884
+
885
+ # 净销售 = 销售收入 - 购买支出
886
+ net_sales = total_sales - total_purchase
887
+
888
+ return {
889
+ "status": "success",
890
+ "data": {
891
+ "total_sales": total_sales,
892
+ "sales_count": 0, # 目前无法精确统计销售笔数(没有卖家交易记录)
893
+ "total_purchase": total_purchase,
894
+ "purchase_count": purchase_count,
895
+ "net_sales": net_sales
896
+ }
897
+ }
898
+
899
  # ==========================================
900
  # 🔄 P7后悔模式:退款API
901
  # ==========================================