This commit is contained in:
aaron 2025-06-12 10:56:36 +08:00
parent 362b19e5b7
commit 16194547a9
6 changed files with 25 additions and 19 deletions

View File

@ -108,7 +108,7 @@ class UserSubscriptionManager:
subscription = self.session.query(UserSubscription).filter( subscription = self.session.query(UserSubscription).filter(
UserSubscription.user_id == user_id, UserSubscription.user_id == user_id,
UserSubscription.expire_time > datetime.now() UserSubscription.expire_time > datetime.now()
).order_by(UserSubscription.expire_time.desc()).first() ).order_by(UserSubscription.create_time.desc()).first()
if subscription: if subscription:
# 转换为字典 # 转换为字典

View File

@ -210,15 +210,14 @@ async def chat(request: ChatRequest,
current_user: dict = Depends(get_current_user), current_user: dict = Depends(get_current_user),
session: Session = Depends(get_db)): session: Session = Depends(get_db)):
# 检查用户积分
if current_user["points"] < 1:
raise HTTPException(status_code=400, detail="您的免费次数不足,你可以订阅会员。")
# 检查用户是否订阅 # 检查用户是否订阅
user_subscription_manager = UserSubscriptionManager(session) user_subscription_manager = UserSubscriptionManager(session)
user_subscription = user_subscription_manager.get_subscription_by_user_id(current_user["id"]) user_subscription = user_subscription_manager.get_subscription_by_user_id(current_user["id"])
if not user_subscription or user_subscription["expire_time"] < datetime.now(): is_member = user_subscription and user_subscription["expire_time"] > datetime.now()
raise HTTPException(status_code=400, detail="您的会员已过期,请续订会员。") user_points = current_user["points"]
if not is_member and user_points < 1:
raise HTTPException(status_code=999, detail="你的免费次数不足,你可以订阅会员。")
payload = { payload = {
"inputs" : {}, "inputs" : {},

View File

@ -12,7 +12,6 @@ from cryptoai.utils.db_manager import get_db
from cryptoai.models.user_subscription import UserSubscriptionManager from cryptoai.models.user_subscription import UserSubscriptionManager
from datetime import timedelta from datetime import timedelta
import logging import logging
from fastapi import Request
router = APIRouter() router = APIRouter()
@ -22,13 +21,18 @@ logger.setLevel(logging.DEBUG)
class CreateOrderRequest(BaseModel): class CreateOrderRequest(BaseModel):
subscribe_type: int subscribe_type: int
pricing = {
"price_month": 29,
"price_year": 269
}
@router.get('/pricing') @router.get('/pricing')
async def pricing(): async def pricing_info():
return { return {
"code": 200, "code": 200,
"data": { "data": {
"price_month": 29, "price_month": pricing["price_month"],
"price_year": 219 "price_year": pricing["price_year"]
} }
} }
@ -50,10 +54,10 @@ async def create_order(request: CreateOrderRequest,
## 1=包月2=包年 ## 1=包月2=包年
if request.subscribe_type == 1: if request.subscribe_type == 1:
fiat_amount = "29" fiat_amount = str(pricing["price_month"])
product_name = "会员订阅1个月" product_name = "会员订阅1个月"
elif request.subscribe_type == 2: elif request.subscribe_type == 2:
fiat_amount = "219" fiat_amount = str(pricing["price_year"])
product_name = "会员订阅1年" product_name = "会员订阅1年"
else: else:
return { return {

View File

@ -300,7 +300,7 @@ async def login(loginData: UserLogin, session: Session = Depends(get_db)) -> Tok
user_subscription = user_subscription_manager.get_subscription_by_user_id(user["id"]) user_subscription = user_subscription_manager.get_subscription_by_user_id(user["id"])
is_subscribed = False is_subscribed = False
expire_time = None expire_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
if user_subscription: if user_subscription:
member_name = "VIP" member_name = "VIP"

View File

@ -4,10 +4,13 @@ from typing import Dict, Any, Optional
class Upay: class Upay:
def __init__(self): def __init__(self):
self.app_id="4NgfCm1e" # self.app_id="4NgfCm1e"
self.app_secret="4gDTZDXfpKQBboT6" # self.app_secret="4gDTZDXfpKQBboT6"
self.base_url = "https://api-test.upay.ink" # self.base_url = "https://api-test.upay.ink"
# self.base_url = "https://api.upay.ink"
self.app_id="E7c4dss9"
self.app_secret="Hwc56INsabRau2yn"
self.base_url = "https://api.upay.ink"
def _generate_signature(self, params: Dict[str, Any]) -> str: def _generate_signature(self, params: Dict[str, Any]) -> str:
""" """

View File

@ -29,7 +29,7 @@ services:
cryptoai-api: cryptoai-api:
build: . build: .
container_name: cryptoai-api container_name: cryptoai-api
image: cryptoai-api:0.2.3 image: cryptoai-api:0.2.4
restart: always restart: always
ports: ports:
- "8000:8000" - "8000:8000"