sql_operate.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/usr/bin/python3.6
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2021/3/11 9:20
  4. # @Author : lijunliang
  5. # @Email : lijunliang@topnet.net.cn
  6. # @File : sql_operate.py
  7. # @Software: PyCharm
  8. from loguru import logger
  9. from util.hash_file import cal_md5
  10. import uuid
  11. from pymysql.converters import escape_string
  12. def md5_exists(MySql, file_path: str) -> str:
  13. """
  14. 检查MD5去重接口
  15. :param file_path:文件路径
  16. :return:
  17. """
  18. md5_number = cal_md5(file_path)
  19. # 检查返回值
  20. sql = r"select * from doc where md5='{}'".format(md5_number)
  21. ret = MySql.search(sql)
  22. if ret:
  23. return True, md5_number
  24. return False, md5_number
  25. def create_insert_sql(value: dict) -> str:
  26. '''
  27. 插入mysql语句
  28. :param value:数据字典
  29. :return:
  30. '''
  31. docSummary = escape_string(value["docSummary"])
  32. docName = escape_string(value["docName"])
  33. sql = r"""insert into doc (id,userId,docName,docFileType,docFileSuffix,
  34. docFileSize,docPageSize,docClass,docTags,uploadDate,isDelete,ossDocId,
  35. md5,ossPdfId,ossTxtId,price,downOrUp,docSummary,previewImgId,appId) values ('{}','{}','{}','{}','{}','{}','{}','{}','{}','{}',
  36. '{}','{}','{}','{}','{}','{}','{}','{}','{}','{}')""".format(str(uuid.uuid1()),
  37. value["userId"], docName, value["docFileType"],
  38. value["docFileSuffix"], value["docFileSize"],
  39. value["docPageSize"],
  40. value["docClass"], value["docTags"], value["uploadDate"],
  41. value["isDelete"], value["ossDocId"], value["md5"],
  42. value["ossPdfId"],
  43. value["ossTxtId"], value["price"], value["downOrUp"],
  44. docSummary, value["previewImgId"],
  45. value["appId"])
  46. return sql
  47. def save_field(MySql, value: dict) -> str:
  48. """
  49. 生成保存字段
  50. :param kwargs:
  51. :return:
  52. """
  53. # 生成sql
  54. sql = create_insert_sql(value)
  55. # 插入
  56. insert_state = MySql.execute_sql(sql)
  57. return insert_state