ZHIWEI666 commited on
Commit
cdf4b52
·
verified ·
1 Parent(s): 320ab71

Upload 2 files

Browse files
Files changed (2) hide show
  1. router_posts.py +15 -18
  2. router_tasks.py +12 -8
router_posts.py CHANGED
@@ -24,10 +24,10 @@ async def get_posts(page: int = 1, limit: int = 20):
24
  获取帖子列表(分页,按时间倒序)
25
  """
26
  posts_db = db.load_data("posts.json", default_data=[])
27
- users_db = db.load_data("users.json", default_data=[])
28
 
29
- # 构建户信息映射
30
- user_map = {u["account"]: u for u in users_db}
31
 
32
  # 按创建时间倒序
33
  sorted_posts = sorted(posts_db, key=lambda x: x.get("created_at", 0), reverse=True)
@@ -80,9 +80,10 @@ async def get_post_detail(post_id: str):
80
  获取帖子详情
81
  """
82
  posts_db = db.load_data("posts.json", default_data=[])
83
- users_db = db.load_data("users.json", default_data=[])
84
 
85
- user_map = {u["account"]: u for u in users_db}
 
86
 
87
  for post in posts_db:
88
  if post["id"] == post_id:
@@ -245,7 +246,7 @@ async def tip_post(post_id: str, amount: int, is_anon: bool = False, current_use
245
  raise HTTPException(status_code=400, detail="打赏金额必须大于0")
246
 
247
  posts_db = db.load_data("posts.json", default_data=[])
248
- users_db = db.load_data("users.json", default_data=[])
249
 
250
  # 查找帖子
251
  target_post = None
@@ -261,12 +262,8 @@ async def tip_post(post_id: str, amount: int, is_anon: bool = False, current_use
261
  if target_post.get("author") == current_user:
262
  raise HTTPException(status_code=400, detail="不能打赏自己的帖子")
263
 
264
- # 检查余额
265
- tipper = None
266
- for u in users_db:
267
- if u["account"] == current_user:
268
- tipper = u
269
- break
270
 
271
  if not tipper or tipper.get("balance", 0) < amount:
272
  raise HTTPException(status_code=400, detail="余额不足")
@@ -275,10 +272,9 @@ async def tip_post(post_id: str, amount: int, is_anon: bool = False, current_use
275
  tipper["balance"] = tipper.get("balance", 0) - amount
276
 
277
  # 给作者加钱
278
- for u in users_db:
279
- if u["account"] == target_post.get("author"):
280
- u["balance"] = u.get("balance", 0) + amount
281
- break
282
 
283
  # 更新打赏榜单
284
  tip_board = target_post.get("tip_board", [])
@@ -311,9 +307,10 @@ async def get_post_comments(post_id: str):
311
  获取帖子评论
312
  """
313
  comments_db = db.load_data("comments.json", default_data=[])
314
- users_db = db.load_data("users.json", default_data=[])
315
 
316
- user_map = {u["account"]: u for u in users_db}
 
317
 
318
  # 过滤该帖子的评论
319
  post_comments = [c for c in comments_db if c.get("target_id") == post_id and c.get("target_type") == "post"]
 
24
  获取帖子列表(分页,按时间倒序)
25
  """
26
  posts_db = db.load_data("posts.json", default_data=[])
27
+ users_db = db.load_data("users.json", default_data={})
28
 
29
+ # users_db 已经是 {account: user_info} 格式,直接使
30
+ user_map = users_db
31
 
32
  # 按创建时间倒序
33
  sorted_posts = sorted(posts_db, key=lambda x: x.get("created_at", 0), reverse=True)
 
80
  获取帖子详情
81
  """
82
  posts_db = db.load_data("posts.json", default_data=[])
83
+ users_db = db.load_data("users.json", default_data={})
84
 
85
+ # users_db 已经是 {account: user_info} 格式,直接使用
86
+ user_map = users_db
87
 
88
  for post in posts_db:
89
  if post["id"] == post_id:
 
246
  raise HTTPException(status_code=400, detail="打赏金额必须大于0")
247
 
248
  posts_db = db.load_data("posts.json", default_data=[])
249
+ users_db = db.load_data("users.json", default_data={})
250
 
251
  # 查找帖子
252
  target_post = None
 
262
  if target_post.get("author") == current_user:
263
  raise HTTPException(status_code=400, detail="不能打赏自己的帖子")
264
 
265
+ # 检查余额(users_db 是字典格式)
266
+ tipper = users_db.get(current_user)
 
 
 
 
267
 
268
  if not tipper or tipper.get("balance", 0) < amount:
269
  raise HTTPException(status_code=400, detail="余额不足")
 
272
  tipper["balance"] = tipper.get("balance", 0) - amount
273
 
274
  # 给作者加钱
275
+ author = users_db.get(target_post.get("author"))
276
+ if author:
277
+ author["balance"] = author.get("balance", 0) + amount
 
278
 
279
  # 更新打赏榜单
280
  tip_board = target_post.get("tip_board", [])
 
307
  获取帖子评论
308
  """
309
  comments_db = db.load_data("comments.json", default_data=[])
310
+ users_db = db.load_data("users.json", default_data={})
311
 
312
+ # users_db 已经是 {account: user_info} 格式,直接使用
313
+ user_map = users_db
314
 
315
  # 过滤该帖子的评论
316
  post_comments = [c for c in comments_db if c.get("target_id") == post_id and c.get("target_type") == "post"]
router_tasks.py CHANGED
@@ -173,13 +173,14 @@ async def get_tasks(
173
  - sort: latest(最新)/price(价格高)/deadline(截止日期近)
174
  """
175
  tasks_db = db.load_data("tasks.json", default_data=[])
176
- users_db = db.load_data("users.json", default_data=[])
177
 
178
  # 自动检查并更新过期任务(带自动退款)
179
  if check_and_update_expired_tasks(tasks_db, db_session):
180
  db.save_data("tasks.json", tasks_db)
181
 
182
- user_map = {u["account"]: u for u in users_db}
 
183
 
184
  # 状态筛选(默认排除已取消和过期的)
185
  filtered = tasks_db
@@ -227,9 +228,10 @@ async def get_task_detail(task_id: str, current_user: str = None):
227
  获取任务详情
228
  """
229
  tasks_db = db.load_data("tasks.json", default_data=[])
230
- users_db = db.load_data("users.json", default_data=[])
231
 
232
- user_map = {u["account"]: u for u in users_db}
 
233
 
234
  for task in tasks_db:
235
  if task["id"] == task_id:
@@ -757,9 +759,10 @@ async def get_dispute_detail(dispute_id: str):
757
  获取申诉详情
758
  """
759
  disputes_db = db.load_data("disputes.json", default_data=[])
760
- users_db = db.load_data("users.json", default_data=[])
761
 
762
- user_map = {u["account"]: u for u in users_db}
 
763
 
764
  for dispute in disputes_db:
765
  if dispute["id"] == dispute_id:
@@ -828,9 +831,10 @@ async def get_admin_disputes(status: str = None, current_user: str = Depends(req
828
  raise HTTPException(status_code=403, detail="需要管理员权限")
829
 
830
  disputes_db = db.load_data("disputes.json", default_data=[])
831
- users_db = db.load_data("users.json", default_data=[])
832
 
833
- user_map = {u["account"]: u for u in users_db}
 
834
 
835
  # 筛选
836
  filtered = disputes_db
 
173
  - sort: latest(最新)/price(价格高)/deadline(截止日期近)
174
  """
175
  tasks_db = db.load_data("tasks.json", default_data=[])
176
+ users_db = db.load_data("users.json", default_data={})
177
 
178
  # 自动检查并更新过期任务(带自动退款)
179
  if check_and_update_expired_tasks(tasks_db, db_session):
180
  db.save_data("tasks.json", tasks_db)
181
 
182
+ # users_db 已经是 {account: user_info} 格式,直接使用
183
+ user_map = users_db
184
 
185
  # 状态筛选(默认排除已取消和过期的)
186
  filtered = tasks_db
 
228
  获取任务详情
229
  """
230
  tasks_db = db.load_data("tasks.json", default_data=[])
231
+ users_db = db.load_data("users.json", default_data={})
232
 
233
+ # users_db 已经是 {account: user_info} 格式,直接使用
234
+ user_map = users_db
235
 
236
  for task in tasks_db:
237
  if task["id"] == task_id:
 
759
  获取申诉详情
760
  """
761
  disputes_db = db.load_data("disputes.json", default_data=[])
762
+ users_db = db.load_data("users.json", default_data={})
763
 
764
+ # users_db 已经是 {account: user_info} 格式,直接使用
765
+ user_map = users_db
766
 
767
  for dispute in disputes_db:
768
  if dispute["id"] == dispute_id:
 
831
  raise HTTPException(status_code=403, detail="需要管理员权限")
832
 
833
  disputes_db = db.load_data("disputes.json", default_data=[])
834
+ users_db = db.load_data("users.json", default_data={})
835
 
836
+ # users_db 已经是 {account: user_info} 格式,直接使用
837
+ user_map = users_db
838
 
839
  # 筛选
840
  filtered = disputes_db