from PDAPI import * __metadata__ = { "methods": ["GET"], "blueprint": "GERP", "permission": 1.0, "attributes": [], "limit": "1 per second", "args": [ {"Name": "DepartmentUUID", "Type": "UUID"}, ] } def HandleRequest(): User: GERPUser DepartmentUUID = flask.request.args.get("DepartmentUUID") if DepartmentUUID != "0"*32: if not (Department := GERPDepartment.query.filter(GERPDepartment.DepartmentUUID == Get16toBytes(DepartmentUUID)).first()): return {"code": 1, "msg": "部门 不存在"} MembersSMTM = Department.dept_GERPSMTM.all() if DepartmentUUID != "0"*32 else GERPSMTM.query.all() data = {} for UserSMTM in MembersSMTM: UserSMTM: GERPSMTM DepartmentSMTMs = UserSMTM.User.dept_GERPSMTM.options( sqlalchemy.orm.joinedload(GERPSMTM.Department) ).all() DepartmentUUIDs = [GetBytesTo16(i.DepartmentUUID) for i in DepartmentSMTMs] DepartmentNames = [Smtm.Department.DepartmentName for Smtm in DepartmentSMTMs if Smtm.Department] if GetBytesTo16(UserSMTM.User.UserUUID) in data: continue data[GetBytesTo16(UserSMTM.User.UserUUID)] = { "UserUUID": GetBytesTo16(UserSMTM.User.UserUUID), "UserJobNumber": GetBytesTo16(UserSMTM.User.UserJobNumber) if UserSMTM.User.UserJobNumber else "未启用工号", "UserName": UserSMTM.User.UserName, "UserPermission": UserSMTM.User.UserPermission, "UserGender": Gender2Str(UserSMTM.User.UserGender), "UserEmail": UserSMTM.User.UserEmail, "UserTele": UserSMTM.User.GetTele(), "UserLastLoginDate": UserSMTM.User.UserLastLoginDate.strftime("%Y年%m月%d日 %H时%M分%S秒 UTC+8") if UserSMTM.User.UserLastLoginDate else "从未登录", "UserCreateTime": UserSMTM.User.UserCreateTime.strftime("%Y年%m月%d日 %H时%M分%S秒 UTC+8"), "DepartmentUUIDs": ";".join(list(map(lambda x: GetBytesTo16(x), DepartmentUUIDs))) if DepartmentUUIDs else "", "Departments": ";".join(DepartmentNames) if DepartmentNames else "", "PersonInChargeStatus": UserSMTM.PersonInChargeStatus if DepartmentUUID != "0"*32 else 0 } return {"code": 0, "count": 1000, "data": list(data.values())}