Merge branch 'main' of https://git.yuxindazhineng.com/admin/railway_cloud
This commit is contained in:
@@ -52,7 +52,8 @@ def get_account(request: AccountGetRequest, db: Session = Depends(get_db)):
|
|||||||
project_name=request.project_name,
|
project_name=request.project_name,
|
||||||
status=request.status,
|
status=request.status,
|
||||||
today_updated=request.today_updated,
|
today_updated=request.today_updated,
|
||||||
yh_id=request.yh_id
|
yh_id=request.yh_id,
|
||||||
|
cl_name=request.cl_name
|
||||||
)
|
)
|
||||||
if not accounts:
|
if not accounts:
|
||||||
return AccountListResponse(
|
return AccountListResponse(
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class Account(Base):
|
|||||||
update_time = Column(String(1000), nullable=False, comment="更新时间跨度")
|
update_time = Column(String(1000), nullable=False, comment="更新时间跨度")
|
||||||
max_variation = Column(Integer, default=1, comment="变化量的绝对值,单位是毫米")
|
max_variation = Column(Integer, default=1, comment="变化量的绝对值,单位是毫米")
|
||||||
yh_id = Column(String(1000), comment="宇恒一号用户id")
|
yh_id = Column(String(1000), comment="宇恒一号用户id")
|
||||||
|
cl_name = Column(String(100), nullable=True, comment="测量人员")
|
||||||
|
|
||||||
|
|
||||||
# 模型转字典
|
# 模型转字典
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ class AccountBase(BaseModel):
|
|||||||
update_time: Optional[str] = None
|
update_time: Optional[str] = None
|
||||||
max_variation: Optional[int] = None
|
max_variation: Optional[int] = None
|
||||||
yh_id: Optional[str] = None
|
yh_id: Optional[str] = None
|
||||||
|
cl_name: Optional[str] = None
|
||||||
|
|
||||||
class AccountCreate(AccountBase):
|
class AccountCreate(AccountBase):
|
||||||
pass
|
pass
|
||||||
@@ -22,6 +23,7 @@ class AccountUpdate(BaseModel):
|
|||||||
today_updated: Optional[int] = None
|
today_updated: Optional[int] = None
|
||||||
project_name: Optional[str] = None
|
project_name: Optional[str] = None
|
||||||
update_time: Optional[str] = None
|
update_time: Optional[str] = None
|
||||||
|
cl_name: Optional[str] = None
|
||||||
|
|
||||||
class AccountResponse(AccountBase):
|
class AccountResponse(AccountBase):
|
||||||
account_id: int
|
account_id: int
|
||||||
@@ -46,7 +48,8 @@ class AccountResponse(AccountBase):
|
|||||||
updated_at=account.updated_at,
|
updated_at=account.updated_at,
|
||||||
update_time=account.update_time,
|
update_time=account.update_time,
|
||||||
max_variation=account.max_variation,
|
max_variation=account.max_variation,
|
||||||
yh_id=account.yh_id
|
yh_id=account.yh_id,
|
||||||
|
cl_name=account.cl_name
|
||||||
)
|
)
|
||||||
|
|
||||||
class AccountListRequest(BaseModel):
|
class AccountListRequest(BaseModel):
|
||||||
@@ -61,6 +64,7 @@ class AccountGetRequest(BaseModel):
|
|||||||
today_updated: Optional[int] = None
|
today_updated: Optional[int] = None
|
||||||
update_time: Optional[str] = None
|
update_time: Optional[str] = None
|
||||||
yh_id: Optional[str] = None
|
yh_id: Optional[str] = None
|
||||||
|
cl_name: Optional[str] = None
|
||||||
|
|
||||||
class AccountUpdateRequest(BaseModel):
|
class AccountUpdateRequest(BaseModel):
|
||||||
account_id: int
|
account_id: int
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class AccountService:
|
|||||||
def search_accounts(db: Session, account_id: Optional[int] = None,
|
def search_accounts(db: Session, account_id: Optional[int] = None,
|
||||||
username: Optional[str] = None, project_name: Optional[str] = None,
|
username: Optional[str] = None, project_name: Optional[str] = None,
|
||||||
status: Optional[int] = None, today_updated: Optional[int] = None,
|
status: Optional[int] = None, today_updated: Optional[int] = None,
|
||||||
yh_id: Optional[str] = None) -> List[AccountResponse]:
|
yh_id: Optional[str] = None, cl_name: Optional[str] = None) -> List[AccountResponse]:
|
||||||
"""根据多种条件搜索账号"""
|
"""根据多种条件搜索账号"""
|
||||||
query = db.query(Account)
|
query = db.query(Account)
|
||||||
|
|
||||||
@@ -49,6 +49,8 @@ class AccountService:
|
|||||||
query = query.filter(Account.today_updated == today_updated)
|
query = query.filter(Account.today_updated == today_updated)
|
||||||
if yh_id is not None:
|
if yh_id is not None:
|
||||||
query = query.filter(Account.yh_id == yh_id)
|
query = query.filter(Account.yh_id == yh_id)
|
||||||
|
if cl_name is not None:
|
||||||
|
query = query.filter(Account.cl_name.like(f"%{cl_name}%"))
|
||||||
|
|
||||||
accounts = query.all()
|
accounts = query.all()
|
||||||
return [AccountResponse.from_orm_account(account) for account in accounts]
|
return [AccountResponse.from_orm_account(account) for account in accounts]
|
||||||
|
|||||||
@@ -58,7 +58,11 @@ class BaseService(Generic[ModelType]):
|
|||||||
for field_name, field_value in conditions.items():
|
for field_name, field_value in conditions.items():
|
||||||
if hasattr(self.model, field_name) and field_value is not None:
|
if hasattr(self.model, field_name) and field_value is not None:
|
||||||
field = getattr(self.model, field_name)
|
field = getattr(self.model, field_name)
|
||||||
if isinstance(field_value, str):
|
if field_name == 'account_id':
|
||||||
|
if not isinstance(field_value, (list, tuple)):
|
||||||
|
field_value = [field_value]
|
||||||
|
query = query.filter(field.in_(field_value))
|
||||||
|
elif isinstance(field_value, str):
|
||||||
query = query.filter(field.like(f"{field_value}"))
|
query = query.filter(field.like(f"{field_value}"))
|
||||||
else:
|
else:
|
||||||
query = query.filter(field == field_value)
|
query = query.filter(field == field_value)
|
||||||
@@ -73,7 +77,11 @@ class BaseService(Generic[ModelType]):
|
|||||||
for field_name, field_value in conditions.items():
|
for field_name, field_value in conditions.items():
|
||||||
if hasattr(self.model, field_name) and field_value is not None:
|
if hasattr(self.model, field_name) and field_value is not None:
|
||||||
field = getattr(self.model, field_name)
|
field = getattr(self.model, field_name)
|
||||||
if isinstance(field_value, str):
|
if field_name == 'account_id':
|
||||||
|
if not isinstance(field_value, (list, tuple)):
|
||||||
|
field_value = [field_value]
|
||||||
|
query = query.filter(field.in_(field_value))
|
||||||
|
elif isinstance(field_value, str):
|
||||||
query = query.filter(field.like(f"{field_value}"))
|
query = query.filter(field.like(f"{field_value}"))
|
||||||
else:
|
else:
|
||||||
query = query.filter(field == field_value)
|
query = query.filter(field == field_value)
|
||||||
|
|||||||
Reference in New Issue
Block a user