From f57d640c5d19eaa64db47ce95d264408af87ffa0 Mon Sep 17 00:00:00 2001 From: simontigers <47096077+simontigers@users.noreply.github.com> Date: Wed, 27 Sep 2023 09:54:30 +0800 Subject: [PATCH] feat: add api get_notice_by_ids (#184) --- cmdb-api/api/lib/common_setting/employee.py | 23 +++++++++++++++++++ cmdb-api/api/views/common_setting/employee.py | 11 +++++++++ 2 files changed, 34 insertions(+) diff --git a/cmdb-api/api/lib/common_setting/employee.py b/cmdb-api/api/lib/common_setting/employee.py index 72898f7..bbd3cb6 100644 --- a/cmdb-api/api/lib/common_setting/employee.py +++ b/cmdb-api/api/lib/common_setting/employee.py @@ -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): """ diff --git a/cmdb-api/api/views/common_setting/employee.py b/cmdb-api/api/views/common_setting/employee.py index 56adf8b..ce5578b 100644 --- a/cmdb-api/api/views/common_setting/employee.py +++ b/cmdb-api/api/views/common_setting/employee.py @@ -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)