""" @author: luojunhui """ from applications.functions.forward import forward_requests minigram_map = { 1: { 25: { "avatar": "https://rescdn.yishihui.com/0temp/logo.png", "id": "wx89e7eb06478361d7", "name": "票圈 l 3亿人喜欢的视频平台", "index": 25 }, 29: { "avatar": "https://rescdn.yishihui.com/0temp/logo.png", "id": "wx89e7eb06478361d7", "name": "票圈 l 3亿人喜欢的视频平台", "index": 29 }, 31: { "avatar": "https://rescdn.yishihui.com/0temp/logo.png", "id": "wx89e7eb06478361d7", "name": "票圈 l 3亿人喜欢的视频平台", "index": 31 } }, 2: { 36: { "avatar": "https://rescdn.yishihui.com/0temp/logo.png", "id": "wx89e7eb06478361d7", "name": "票圈 l 3亿人喜欢的视频平台", "index": 36 }, 33: { "avatar": "https://rescdn.yishihui.com/0temp/logo.png", "id": "wx89e7eb06478361d7", "name": "票圈 l 3亿人喜欢的视频平台", "index": 33 } }, 3: { 27: { "avatar": "https://rescdn.yishihui.com/0temp/xymhfqdd.png", "id": "wx7187c217efef24a7", "name": "幸运美好福气多多", "index": 27 } } } class Minigram(object): """ 小程序卡片 """ NEW_STRATEGY = "strategy_v2" def __init__(self, params): self.strategy = None self.params = params self.business_type = None self.mini_code = None self.trace_id = None def check_params(self): """ 校验参数 :return: """ try: self.business_type = self.params['businessType'] self.mini_code = self.params['miniCode'] self.trace_id = self.params['traceId'] self.strategy = self.params.get('strategy') if not self.strategy: self.strategy = "strategy_v1" return None except Exception as e: response = { "status": "fail", "code": 1, "message": str(e), "info": "params check error" } return response def choose_minigram(self): """ 分配小程序卡片 :return: """ try: minigram = minigram_map.get(self.business_type).get(self.mini_code) response = { "programAvatar": minigram['avatar'], "programId": minigram['id'], "programName": minigram['name'], "trace_id": self.trace_id } except Exception as e: response = { "error": "invalid params", "msg": str(e) } return response async def deal(self): """ :return: """ params_error = self.check_params() if params_error: return params_error else: if self.strategy == self.NEW_STRATEGY: response = await forward_requests( params=self.params, api="choose_minigram" ) return response else: return self.choose_minigram()