minigram.py 2.6 KB

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