refactor: crud 并入 repositories + alembic 迁移文件去 hex 前缀

- 数据访问层统一: app/crud/{ad_reward,savings,signin,task,wallet}.py 移入
  app/repositories/(与 user.py 同目录),删除 crud/;更新 10 处 import
  (api/v1/* + scripts/* + repositories 内部交叉引用 app.crud→app.repositories)
- alembic/versions 9 个迁移文件去掉 hex 前缀,改成可读文件名(如
  welfare_tables_coin_account_coin_txn.py);**仅重命名文件**,文件内
  revision/down_revision 不动 → 迁移链与已迁移库的 alembic_version 不受影响
  (alembic heads/history 验证链完好,单一 head c8d9e0f1a2b3)
- 测试: 37 passed(1 个 coupon 代理失败为连不到 pricebot 上游的环境问题,与本次无关)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
OuYingJun1024
2026-05-27 21:03:19 +08:00
parent 3d1e8969e6
commit a4d214964a
21 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ from app.core import rewards
from app.core.config import settings
from app.integrations import pangle
from app.core.ratelimit import rate_limit
from app.crud import ad_reward as crud_ad
from app.repositories import ad_reward as crud_ad
from app.schemas.ad import AdRewardStatusOut, PangleCallbackOut, TestGrantOut
logger = logging.getLogger("shagua.ad")
+1 -1
View File
@@ -12,7 +12,7 @@ import logging
from fastapi import APIRouter, Query
from app.api.deps import CurrentUser, DbSession
from app.crud import savings as crud_savings
from app.repositories import savings as crud_savings
from app.schemas.welfare import (
SavingsBattleOut,
SavingsRecordOut,
+1 -1
View File
@@ -11,7 +11,7 @@ import logging
from fastapi import APIRouter, HTTPException, status
from app.api.deps import CurrentUser, DbSession
from app.crud import signin as crud_signin
from app.repositories import signin as crud_signin
from app.schemas.welfare import SigninResultOut, SigninStatusOut
logger = logging.getLogger("shagua.signin")
+1 -1
View File
@@ -11,7 +11,7 @@ import logging
from fastapi import APIRouter, HTTPException, status
from app.api.deps import CurrentUser, DbSession
from app.crud import task as crud_task
from app.repositories import task as crud_task
from app.schemas.welfare import TaskClaimResultOut, TaskListOut, TaskOut
logger = logging.getLogger("shagua.tasks")
+1 -1
View File
@@ -20,7 +20,7 @@ from app.core.rewards import (
WITHDRAW_MAX_CENTS,
WITHDRAW_MIN_CENTS,
)
from app.crud import wallet as crud_wallet
from app.repositories import wallet as crud_wallet
from app.models.user import User
from app.schemas.welfare import (
BindWechatRequest,
@@ -15,7 +15,7 @@ from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import Session
from app.core.rewards import AD_REWARD_COIN, DAILY_AD_REWARD_LIMIT, cn_today
from app.crud import wallet as crud_wallet
from app.repositories import wallet as crud_wallet
from app.models.ad_reward import AdRewardRecord
from app.models.user import User
@@ -14,7 +14,7 @@ from sqlalchemy import select
from sqlalchemy.orm import Session
from app.core.rewards import SIGNIN_CYCLE_LEN, SIGNIN_REWARDS, cn_today, signin_reward
from app.crud import wallet as crud_wallet
from app.repositories import wallet as crud_wallet
from app.models.signin import SigninRecord
@@ -10,7 +10,7 @@ from sqlalchemy import select
from sqlalchemy.orm import Session
from app.core.rewards import TASK_REWARDS
from app.crud import wallet as crud_wallet
from app.repositories import wallet as crud_wallet
from app.models.task import UserTask
+1 -1
View File
@@ -20,7 +20,7 @@ try:
except Exception: # noqa: BLE001
pass
from app.crud import wallet as crud_wallet
from app.repositories import wallet as crud_wallet
from app.db.session import SessionLocal
+1 -1
View File
@@ -30,7 +30,7 @@ from sqlalchemy import select # noqa: E402
from app.integrations import pangle # noqa: E402
from app.core.config import settings # noqa: E402
from app.core.rewards import AD_REWARD_COIN # noqa: E402
from app.crud import wallet as crud_wallet # noqa: E402
from app.repositories import wallet as crud_wallet # noqa: E402
from app.db.session import SessionLocal # noqa: E402
from app.main import app # noqa: E402
from app.models.user import User # noqa: E402