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]
|
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):
|
def get_user_map(key='uid', acl=None):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -145,3 +145,14 @@ class EmployeePositionView(APIView):
|
||||||
result = EmployeeCRUD.get_all_position()
|
result = EmployeeCRUD.get_all_position()
|
||||||
return self.jsonify(result)
|
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