area_email.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from utils.mysql_helper import MySQLHelper
  2. class AreaEmail:
  3. def __init__(self, name=None, area=None, email=None,is_active=None,remark=None):
  4. self.name = name
  5. self.area = area
  6. if email is None:
  7. email = ""
  8. self.email = email.replace(",", ",")
  9. self.is_active = is_active
  10. self.remark = remark
  11. def __repr__(self):
  12. return (
  13. f"<AreaEmail(name={self.name},area={self.area}, email={self.email}, "
  14. f"is_active={self.is_active}, remark={self.remark})>")
  15. def to_dict(self):
  16. return {
  17. 'area': self.area,
  18. 'email': self.email,
  19. }
  20. # # 插入 AreaEmail 数据
  21. # def insert(self, area_email):
  22. # if not isinstance(area_email, AreaEmail):
  23. # raise TypeError("area_email 必须是 AreaEmail 的实例")
  24. # with MySQLHelper() as db_helper:
  25. # query = (
  26. # "INSERT INTO t_area_email (area, email, is_active, remark) "
  27. # "VALUES (%s, %s, %s, %s)")
  28. # params = (area_email.area, area_email.email, area_email.is_active,
  29. # area_email.remark)
  30. # db_helper.execute_non_query(query, params)
  31. _query = "SELECT name,area,email FROM t_area_email WHERE is_active = 1"
  32. _query_by_area = "SELECT email FROM t_area_email WHERE CONCAT(area,',') like %s AND is_active = 1"
  33. # 查询 AreaEmail 数据
  34. def fetch_all(self):
  35. with MySQLHelper() as db_helper:
  36. results = db_helper.execute_query(self._query)
  37. data = [AreaEmail(**result) for result in results]
  38. return data
  39. def fetch_one_by_area(self, area: str):
  40. with MySQLHelper() as db_helper:
  41. params = ('%' + area + ',%', )
  42. result = db_helper.fetch_one(self._query_by_area, params)
  43. if result is None:
  44. return None
  45. return result["email"]