添加根据部门列表获取用户列表的接口

This commit is contained in:
Administrator 2023-03-20 16:23:50 +08:00
parent 738768d412
commit 4acc5a706a
6 changed files with 34 additions and 4 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/jurigged/
/venv/

View File

@ -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())

View File

@ -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())

View File

@ -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)

View File

@ -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 = "董监高"

View File

@ -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