添加根据部门列表获取用户列表的接口
This commit is contained in:
parent
738768d412
commit
4acc5a706a
|
@ -1 +1,2 @@
|
|||
/jurigged/
|
||||
/venv/
|
||||
|
|
|
@ -51,8 +51,10 @@ def daily_query(db: Session, params: DailyQuery) -> [int]:
|
|||
if value:
|
||||
if value[0] is not None:
|
||||
query = query.filter(getattr(db_model, key) >= datetime.fromtimestamp(value[0] / 1000))
|
||||
print(datetime.fromtimestamp(value[0] / 1000))
|
||||
if value[1] is not None:
|
||||
query = query.filter(getattr(db_model, key) <= datetime.fromtimestamp(value[1] / 1000))
|
||||
print(datetime.fromtimestamp(value[0] / 1000))
|
||||
else:
|
||||
query = query.filter(getattr(db_model, key) == value)
|
||||
query = query.order_by(Daily.daily_time.desc())
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from fastapi import HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from sqlalchemy import func
|
||||
from Models.DepartmentModel import Department
|
||||
from Models.PostModel import Post
|
||||
from Models.UserModel import User, UserInfo
|
||||
|
@ -88,3 +88,15 @@ def load_company_config_to_db():
|
|||
print(e)
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
def get_user_by_departments(db: Session, departments: []):
|
||||
set_emails = set()
|
||||
users = []
|
||||
for department in departments:
|
||||
res = db.query(User).filter(func.find_in_set(department, User.department))
|
||||
for item in res:
|
||||
if item.email not in set_emails:
|
||||
set_emails.add(item.email)
|
||||
users.append(item.to_dict())
|
||||
|
||||
|
|
|
@ -151,6 +151,13 @@ def refresh_token(token_data: TokenData = Depends(token_data_depend), db: Sessio
|
|||
return {'token': token}
|
||||
|
||||
|
||||
@router.post("/get_user_by_department", tags=["用户接口"], summary=["根据部门列表获取用户信息"],response_model=UserSchemas.GetUserByDepartmentRes)
|
||||
def get_user_by_department(body: UserSchemas.GetUserByDepartmentReq, token_data: TokenData = Depends(token_data_depend),
|
||||
db: Session = Depends(get_db)):
|
||||
users = UserCrud.get_user_by_departments(db, body.departments)
|
||||
return UserSchemas.GetUserByDepartmentRes(users=[UserSchemas.UserInfo(**user) for user in users])
|
||||
|
||||
|
||||
department_crud = auto_create_crud(Department, 'department', "部门", auto_create_keys=['id'], tags=["部门职务操作"])
|
||||
post_crud = auto_create_crud(Post, 'post', "职务", auto_create_keys=['id'], tags=["部门职务操作"])
|
||||
department_crud.mount(router)
|
||||
|
|
|
@ -88,6 +88,14 @@ class GetPhoneVerifyCodeReq(BaseModel):
|
|||
phone: str
|
||||
|
||||
|
||||
class GetUserByDepartmentReq(BaseModel):
|
||||
departments: List[int]
|
||||
|
||||
|
||||
class GetUserByDepartmentRes(BaseModel):
|
||||
users: List[UserInfo]
|
||||
|
||||
|
||||
@unique
|
||||
class DepartmentTypeEnum(Enum):
|
||||
enum01 = "董监高"
|
||||
|
|
|
@ -54,11 +54,11 @@ class PhoneVerifyCode:
|
|||
@classmethod
|
||||
def make_code(cls, phone, expire_time_s=60 * 5, verify_type: PhoneVerifyType = PhoneVerifyType.login):
|
||||
client = redis_pool.get_redis_client()
|
||||
email_id = cls.get_phone_id(phone, verify_type)
|
||||
phone_id = cls.get_phone_id(phone, verify_type)
|
||||
code = get_random_num_code(4)
|
||||
client.set(email_id, code)
|
||||
client.set(phone_id, code)
|
||||
if expire_time_s:
|
||||
client.expire(email_id, expire_time_s)
|
||||
client.expire(phone_id, expire_time_s)
|
||||
return code
|
||||
|
||||
@classmethod
|
||||
|
|
Loading…
Reference in New Issue