record.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. """
  2. @author: luojunhui
  3. """
  4. import time
  5. from uuid import uuid4
  6. from applications.functions.log import logging
  7. from static.config import db_article
  8. class Record(object):
  9. """
  10. 搜索接口处理逻辑
  11. """
  12. def __init__(self, params, mysql_client):
  13. self.content_id = None
  14. self.account_name = None
  15. self.contents = None
  16. self.title = None
  17. self.gh_id = None
  18. self.params = params
  19. self.mysql_client = mysql_client
  20. self.trace_id = "search-{}-{}".format(str(uuid4()), str(int(time.time())))
  21. def check_params(self):
  22. """
  23. 检查请求params
  24. :return:
  25. """
  26. try:
  27. self.gh_id = self.params['ghId']
  28. self.title = self.params['title'].split("@@")[-1].replace("'", "")
  29. self.contents = self.params['content'].replace("'", "")
  30. self.account_name = self.params['accountName'].replace("'", "")
  31. self.content_id = self.params['articleId']
  32. logging(
  33. code="1001",
  34. info="搜索视频内容接口请求成功, 参数校验成功",
  35. port="title_to_search",
  36. trace_id=self.trace_id,
  37. data=self.params
  38. )
  39. return None
  40. except Exception as e:
  41. result = {
  42. "status": "fail",
  43. "code": 1,
  44. "message": str(e),
  45. "info": "params check error"
  46. }
  47. logging(
  48. code="4001",
  49. info="搜索视频内容接口请求成功, 参数校验失败",
  50. port="title_to_search",
  51. trace_id=self.trace_id,
  52. data=self.params
  53. )
  54. return result
  55. async def input_queue(self):
  56. """
  57. 把数据插入待处理队列
  58. :return:
  59. """
  60. request_time = int(time.time())
  61. insert_sql = f"""
  62. INSERT INTO {db_article}
  63. (trace_id, content_id, gh_id, account_name, article_title, article_text, content_status, success, request_time_stamp)
  64. VALUES
  65. (%s, %s, %s, %s, %s, %s, %s, %s, %s);"""
  66. await self.mysql_client.async_insert(
  67. sql=insert_sql,
  68. params=(self.trace_id, self.content_id, self.gh_id, self.account_name, self.title, self.contents, 0, 0, request_time)
  69. )
  70. logging(
  71. code="1002",
  72. info="成功记录请求数据到mysql中",
  73. trace_id=self.trace_id
  74. )
  75. async def deal(self):
  76. """
  77. deal
  78. :return:
  79. """
  80. params_error = self.check_params()
  81. if params_error:
  82. return params_error
  83. else:
  84. # 记录
  85. await self.input_queue()
  86. res = {
  87. "status": "success input to article queue",
  88. "code": 0,
  89. "traceId": self.trace_id
  90. }
  91. return res