mirror of https://github.com/veops/cmdb.git
feat: add api get_notice_by_ids (#184)
This commit is contained in:
parent
42c506ded8
commit
f57d640c5d
|
@ -474,6 +474,29 @@ class EmployeeCRUD(object):
|
|||
|
||||
return [r.to_dict() for r in results]
|
||||
|
||||
@staticmethod
|
||||
def get_employee_notice_by_ids(employee_ids):
|
||||
criterion = [
|
||||
Employee.employee_id.in_(employee_ids),
|
||||
Employee.deleted == 0,
|
||||
]
|
||||
direct_columns = ['email', 'mobile']
|
||||
employees = Employee.query.filter(
|
||||
*criterion
|
||||
).all()
|
||||
results = []
|
||||
for employee in employees:
|
||||
d = employee.to_dict()
|
||||
tmp = dict(
|
||||
employee_id=employee.employee_id,
|
||||
)
|
||||
for column in direct_columns:
|
||||
tmp[column] = d.get(column, '')
|
||||
notice_info = d.get('notice_info', {})
|
||||
tmp.update(**notice_info)
|
||||
results.append(tmp)
|
||||
return results
|
||||
|
||||
|
||||
def get_user_map(key='uid', acl=None):
|
||||
"""
|
||||
|
|
|
@ -145,3 +145,14 @@ class EmployeePositionView(APIView):
|
|||
result = EmployeeCRUD.get_all_position()
|
||||
return self.jsonify(result)
|
||||
|
||||
|
||||
class GetEmployeeNoticeByIds(APIView):
|
||||
url_prefix = (f'{prefix}/get_notice_by_ids',)
|
||||
|
||||
def post(self):
|
||||
employee_ids = request.json.get('employee_ids', [])
|
||||
if not employee_ids:
|
||||
result = []
|
||||
else:
|
||||
result = EmployeeCRUD.get_employee_notice_by_ids(employee_ids)
|
||||
return self.jsonify(result)
|
||||
|
|
Loading…
Reference in New Issue