add user requests

This commit is contained in:
jxxghp
2024-07-04 21:52:49 +08:00
parent 604c418bd4
commit 290cafa03d
3 changed files with 120 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
from datetime import datetime from datetime import datetime
from sqlalchemy import Column, Integer, String, Sequence from sqlalchemy import Column, Integer, String, Sequence, Float
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from app.db import db_query, Base from app.db import db_query, Base
@@ -22,21 +22,21 @@ class SiteUserData(Base):
# 加入时间 # 加入时间
join_at = Column(String) join_at = Column(String)
# 积分 # 积分
bonus = Column(Integer, default=0) bonus = Column(Float, default=0)
# 上传量 # 上传量
upload = Column(Integer, default=0) upload = Column(Float, default=0)
# 下载量 # 下载量
download = Column(Integer, default=0) download = Column(Float, default=0)
# 分享率 # 分享率
ratio = Column(Integer, default=0) ratio = Column(Float, default=0)
# 做种数 # 做种数
seeding = Column(Integer, default=0) seeding = Column(Float, default=0)
# 下载数 # 下载数
leeching = Column(Integer, default=0) leeching = Column(Float, default=0)
# 做种体积 # 做种体积
seeding_size = Column(Integer, default=0) seeding_size = Column(Float, default=0)
# 下载体积 # 下载体积
leeching_size = Column(Integer, default=0) leeching_size = Column(Float, default=0)
# 做种人数, 种子大小 JSON # 做种人数, 种子大小 JSON
seeding_info = Column(String) seeding_info = Column(String)
# 未读消息 # 未读消息

View File

@@ -0,0 +1,69 @@
from sqlalchemy import Column, Integer, String, Sequence, Float
from sqlalchemy.orm import Session
from app.db import db_query, Base
class UserRequest(Base):
"""
用户请求表
"""
# ID
id = Column(Integer, Sequence('id'), primary_key=True, index=True)
# 申请用户
req_user = Column(String, index=True, nullable=False)
# 申请时间
req_time = Column(String)
# 申请备注
req_remark = Column(String)
# 审批用户
app_user = Column(String, index=True, nullable=False)
# 审批时间
app_time = Column(String)
# 审批状态 0-待审批 1-通过 2-拒绝
app_status = Column(Integer, default=0)
# 类型
type = Column(String)
# 标题
title = Column(String)
# 年份
year = Column(String)
# 媒体ID
tmdbid = Column(Integer)
imdbid = Column(String)
tvdbid = Column(Integer)
doubanid = Column(String)
bangumiid = Column(Integer)
# 季号
season = Column(Integer)
# 海报
poster = Column(String)
# 背景图
backdrop = Column(String)
# 评分float
vote = Column(Float)
# 简介
description = Column(String)
@staticmethod
@db_query
def get_by_req_user(db: Session, req_user: str, status: int = None):
if status:
return db.query(UserRequest).filter(UserRequest.req_user == req_user,
UserRequest.app_status == status).all()
else:
return db.query(UserRequest).filter(UserRequest.req_user == req_user).all()
@staticmethod
@db_query
def get_by_app_user(db: Session, app_user: str, status: int = None):
if status:
return db.query(UserRequest).filter(UserRequest.app_user == app_user,
UserRequest.app_status == status).all()
else:
return db.query(UserRequest).filter(UserRequest.app_user == app_user).all()
@staticmethod
@db_query
def get_by_status(db: Session, status: int):
return db.query(UserRequest).filter(UserRequest.app_status == status).all()

View File

@@ -0,0 +1,42 @@
from typing import Optional
from app.db import DbOper
from app.db.models.userrequest import UserRequest
class UserRequestOper(DbOper):
"""
用户请求管理
"""
def get_need_approve(self) -> Optional[UserRequest]:
"""
获取待审批申请
"""
return UserRequest.get_by_status(self._db, 0)
def get_my_requests(self, username: str) -> Optional[UserRequest]:
"""
获取我的申请
"""
return UserRequest.get_by_req_user(self._db, username)
def approve(self, rid: int) -> bool:
"""
审批申请
"""
user_request = UserRequest.get(self._db, rid)
if user_request:
user_request.update(self._db, {"status": 1})
return True
return False
def deny(self, rid: int) -> bool:
"""
拒绝申请
"""
user_request = UserRequest.get(self._db, rid)
if user_request:
user_request.update(self._db, {"status": 2})
return True
return False