def send_msg_v1(self, user_id, eid, content): """ 发送消息 :param user_id: :param eid: :param content: :return: """ try: user = UserDao.get_user_by_user_id(user_id) add_emails = [] if user.role == User.Role.MANAGER: # 发消息人是管理员, 给所有人发送 users = UserDao.get_all_users() for user_ in users: email = self.send_msg(user_id, '系统管理员', user_.id, content) add_emails.append(email) elif user.role == User.Role.STUDENT: # 发消息人是老师, 给当前选实验的人发送 students = UserDao.get_all_student() for student in students: join_list = json.loads(student.join_experiments) if eid in join_list: # 当前用户选修了该实验 email = self.send_msg(user_id, user.username, student.id, content) add_emails.append(email) db.session.bulk_save_objects(add_emails) db.session.commit() except Exception as e: db.session.rollback() raise Exception(str(e))
def get_user_infos(self): users = UserDao.get_all_users() res = [] for user in users: res.append({ 'id': user.id, 'username': user.username, 'role': User.Role.__label__.get(user.role, '未知'), 'contacts': user.contacts if user.contacts else "无" }) return res