minigram.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. """
  2. @author: luojunhui
  3. """
  4. minigram_map = {
  5. 1: {
  6. # 25: {
  7. # "avatar": "https://rescdn.yishihui.com/0temp/ttmhzfsh.png",
  8. # "id": "wx0b7d95eb293b783b",
  9. # "name": "天天美好祝福生活",
  10. # "index": 25
  11. # },
  12. 25: {
  13. "avatar": "https://rescdn.yishihui.com/0temp/pqsp.png",
  14. "id": "wxbdd2a2e93d9a6e25",
  15. "name": "票圈视频",
  16. "index": 25
  17. },
  18. 29: {
  19. "avatar": "https://rescdn.yishihui.com/0temp/cyfyld.png",
  20. "id": "wx65c76bb4c67934db",
  21. "name": "财运福运来到",
  22. "index": 29
  23. },
  24. 31: {
  25. "avatar": "https://rescdn.yishihui.com/0temp/mhzfshxf2.png",
  26. "id": "wx2e4478b1641b3b15",
  27. "name": "美好祝福生活幸福",
  28. "index": 31
  29. }
  30. },
  31. 2: {
  32. 36: {
  33. "avatar": "https://rescdn.yishihui.com/0temp/zfyfyc.jpeg",
  34. "id": "wxcddf231abd0dabdc",
  35. "name": "祝福有福有财",
  36. "index": 36
  37. },
  38. 33: {
  39. "avatar": "https://rescdn.yishihui.com/0temp/pqsp.png",
  40. "id": "wxbdd2a2e93d9a6e25",
  41. "name": "票圈视频",
  42. "index": 33
  43. }
  44. },
  45. 3: {
  46. 27: {
  47. "avatar": "https://rescdn.yishihui.com/0temp/xymhfqdd.png",
  48. "id": "wx7187c217efef24a7",
  49. "name": "幸运美好福气多多",
  50. "index": 27
  51. }
  52. }
  53. }
  54. class Minigram(object):
  55. """
  56. 小程序卡片
  57. """
  58. def __init__(self, params):
  59. self.params = params
  60. self.business_type = None
  61. self.mini_code = None
  62. self.trace_id = None
  63. def check_params(self):
  64. """
  65. 校验参数
  66. :return:
  67. """
  68. try:
  69. self.business_type = self.params['businessType']
  70. self.mini_code = self.params['miniCode']
  71. self.trace_id = self.params['traceId']
  72. return None
  73. except Exception as e:
  74. response = {
  75. "status": "fail",
  76. "code": 1,
  77. "message": str(e),
  78. "info": "params check error"
  79. }
  80. return response
  81. def choose_minigram(self):
  82. """
  83. 分配小程序卡片
  84. :return:
  85. """
  86. try:
  87. minigram = minigram_map.get(self.business_type).get(self.mini_code)
  88. response = {
  89. "programAvatar": minigram['avatar'],
  90. "programId": minigram['id'],
  91. "programName": minigram['name'],
  92. "trace_id": self.trace_id
  93. }
  94. except Exception as e:
  95. response = {
  96. "error": "invalid params",
  97. "msg": str(e)
  98. }
  99. return response
  100. async def deal(self):
  101. """
  102. :return:
  103. """
  104. return self.check_params() if self.check_params() else self.choose_minigram()