async def inner(): args = g.to_data() j = await ztk.guess_you_like(args) if j.status == 200: return ApiResp.from_data(j.content) else: return ApiResp.from_errno(AppErrno.ztk_error, str(j.content))
async def inner(): args = ItemDetailV2Args(tao_id=item_id) j = await ztk.item_detail_v2(args) if j.status == 200: return ApiResp.from_data(j.content) else: return ApiResp.from_errno(AppErrno.ztk_error, "请求详细数据失败")
async def wrapper(func: Callable[[User], Any]): try: logic = UserV2Logic(logger) user = await logic.get_user_by_token(token) if user is None: return ApiResp.from_errno(AppErrno.auth_failed).to_dict() ret = await func(user) if isinstance(ret, ApiResp): return ret.to_dict() else: return ret except ApiException as e: tb = traceback.format_tb(e.__traceback__) logger.bind(exec=e, tb=tb).error("内部处理错误") return convert_exception_to_api_ret(e).to_dict() except InterfaceError: # 数据库连接失败 connection.close() logger.error("数据库错误") return ApiResp.system_error().to_dict() except Exception as e: tb = traceback.format_tb(e.__traceback__) logger.bind(exce=e, tb=tb).error("其他严重错误") return ApiResp.system_error().to_dict()
async def inner(): j = await dtk.goods_search_suggestion(g) if j is None: return ApiResp.from_errno(AppErrno.dtk_error) ret_list = [] for data in j: ret_list.append(data.kw) return ApiResp.from_data(ret_list)
async def init(): args = await g.to_data(g, logger) if args is None: # 渠道 ID 信息可以没有 [客户端需要判断有渠道 ID 的信息] # 在 iOS 上, 因为 iOS 的审核,所以支持不需要 绑定淘宝 也支持购买 # 在 android 上,必须绑定才允许购买 return ApiResp.from_errno(AppErrno.no_channel_id) logic = ZTKLogic(logger) item = await logic.gao_yong(args) if item is None: # 获取数据失败 logger.error("get gao yong data failed") return ApiResp.from_data(None) else: # 获取数据成功 return ApiResp.from_data(item)
def convert_exception_to_api_ret(e: ApiException) -> ApiResp: """ 把异常转换成错误的返回值 :param e: :return: """ if isinstance(e, TokenException): return ApiResp.from_errno(AppErrno.token_invalid, "您的认证凭证已经 过期/失效 ,请尝试重新登录") elif isinstance(e, UserNotExistsException): return ApiResp.from_errno(AppErrno.user_not_exists, "账号不存在") elif isinstance(e, TbNotBindException): return ApiResp.from_errno(AppErrno.no_channel_id, "没有淘宝授权") elif isinstance(e, ItemNotFoundException): return ApiResp.from_errno(AppErrno.item_not_found, "没有找到指定商品的优惠信息") elif isinstance(e, AuthFailedException): return ApiResp.from_errno(AppErrno.code_error, "验证码错误或者已经失效") elif isinstance(e, ZtkException): return ApiResp.from_errno(AppErrno.ztk_error, "请求第三方接口失败, 请稍后再试") else: return ApiResp.from_errno(AppErrno.system, "系统内部错误")
async def inner(): j = await tbk.get_goods_detail(args.tao_id) if j is None: return ApiResp.from_errno(AppErrno.tbk_error) return ApiResp.from_data(j)
async def inner(): j = await dtk.tb_service_get_privilege_link(args) if j is None: return ApiResp.from_errno(AppErrno.dtk_error) return ApiResp.from_data(j)
async def inner(): j = await dtk.goods_get_ranking_list(args) if j is None: return ApiResp.from_errno(AppErrno.dtk_error) return ApiResp.from_data(j)
async def inner(): j = await dtk.category_get_top100() if j is None: return ApiResp.from_errno(AppErrno.dtk_error) return ApiResp.from_data(j.hotWords)
async def inner(): j = await dtk.tb_service_get_brand_list(g) if j is None: return ApiResp.from_errno(AppErrno.dtk_error) return ApiResp.from_data(j)
async def inner(): j = await tbk.get_brand_list(args.page_id) if j is None: return ApiResp.from_errno(AppErrno.tbk_error) return ApiResp.from_data(j)
async def inner(): j = await dtk.goods_get_dtk_search_goods(args) if j is None: return ApiResp.from_errno(AppErrno.dtk_error) return ApiResp.from_data(j)
async def inner(): j = await dtk.category_get_super_category() if j is None: return ApiResp.from_errno(AppErrno.dtk_error) return ApiResp.from_data(j)
async def inner(): j = await dtk.category_ddq_goods_list(g) if j is None: return ApiResp.from_errno(AppErrno.dtk_error) out = j[0] return ApiResp.from_data(out)
async def inner(): j = await dtk.goods_explosive_goods_list(g) if j is None: return ApiResp.from_errno(AppErrno.dtk_error) return ApiResp.from_data(j)
async def inner(): j = await dtk.goods_price_trend(args) if j is None: return ApiResp.from_errno(AppErrno.dtk_error) return ApiResp.from_data(j)