Files
smart-management-auto-test/dulizhan/library/Dlizhan_interface.py
zhouqi 37a040c3e5 feat: 新增JoyHub C端测试用例和接口封装
1. 新增C端业务关键字层 (JoyHubC/):
   - LoginManage.py - C端登录管理
   - UserManage.py - C端用户管理
   - ProductManage.py - C端产品管理
   - BannerManage.py - C端Banner管理
   - AppVersionManage.py - C端版本管理等

2. 新增C端测试用例 (TestCase/接口/JoyHubC/):
   - JoyhubC_UserPoint.py - 用户积分测试
   - JoyhubC_Product.py - 产品测试
   - JoyhubC_Banner.py - Banner测试等

3. 接口层增强:
   - Dlizhan_interface.py 添加C端接口封装
   - 添加网易163邮箱验证码获取功能

4. 配置更新:
   - hh-qa.robot 添加C端登录配置
2026-05-13 15:56:41 +08:00

898 lines
51 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding:utf-8 -*-
import os
import sys
current_file_path = os.path.abspath(__file__)
project_root = os.path.abspath(os.path.join(os.path.dirname(current_file_path), '../../'))
if project_root not in sys.path:
sys.path.insert(0, project_root)
from base_framework.public_tools import log
from base_framework.public_tools.runner import Runner
from base_framework.public_tools.eureka_api import EurekaAPI
from base_framework.public_tools import utils
from base_framework.public_tools.pgsqlhelper import PgSqlHelper
import requests
import json
import re
import imaplib
import email as email_parser
from email.header import decode_header
obj_log = log.get_logger()
obj_runner = Runner()
eureka = EurekaAPI()
class DlzhanInterface:
def __init__(self):
self.domain_url = eureka.get_url_from_config()
self.pg_db = PgSqlHelper()
self.joyhub_domain = "https://joyhub-website-manager-api-test.best-envision.com"
self.joyhub_c_domain = "https://joyhub-website-frontend-test.best-envision.com"
self.joyhub_c_frontend_url = "https://joyhub-website-frontend-test.best-envision.com/"
self.joyhub_c_session = requests.session()
self.token = None
self.joyhub_c_token = None
def _get_joyhub_headers(self):
headers = {
'Content-Type': 'application/json',
'tenant-id': '126'
}
if self.token:
headers['Authorization'] = 'Bearer ' + self.token
return headers
def set_joyhub_token(self, token):
self.token = token
def set_joyhub_c_token(self, token):
self.joyhub_c_token = token
def _get_joyhub_c_headers(self):
headers = {
'accept': '*/*',
'Content-Type': 'application/json',
'jh-appchannel': '5',
'origin': self.joyhub_c_domain,
'referer': self.joyhub_c_frontend_url,
'tenant-id': '126'
}
if self.joyhub_c_token:
headers['Authorization'] = 'Bearer ' + self.joyhub_c_token
return headers
def _joyhub_c_request(self, method, path, is_check='', note='', return_json=True, **kwargs):
url = path if path.startswith('http') else "{}{}".format(self.joyhub_c_domain, path)
headers = self._get_joyhub_c_headers()
obj_log.info("=========== {} ===========".format(note or path))
req_params = {}
for key, value in kwargs.items():
if value is not None and value != '':
req_params[key] = value
req_map = {
'GET': lambda: self.joyhub_c_session.get(url, headers=headers, params=req_params, verify=False),
'POST': lambda: self.joyhub_c_session.post(url, headers=headers, json=req_params, verify=False),
'PUT': lambda: self.joyhub_c_session.put(url, headers=headers, json=req_params, verify=False),
'DELETE': lambda: self.joyhub_c_session.delete(url, headers=headers, verify=False)
}
resp = req_map.get(method.upper(), lambda: None)()
self._check_resp(is_check, resp)
if return_json:
return resp.json()
else:
return resp
def _joyhub_request(self, method, path, is_check='', note='', return_json=True, **kwargs):
url = "{}{}".format(self.joyhub_domain, path)
headers = self._get_joyhub_headers()
obj_log.info("=========== {} ===========".format(note or path))
req_params = {}
for key, value in kwargs.items():
if value is not None and value != '':
req_params[key] = value
req_map = {
'GET': lambda: requests.get(url, headers=headers, params=req_params, verify=False),
'POST': lambda: requests.post(url, headers=headers, json=req_params, verify=False),
'PUT': lambda: requests.put(url, headers=headers, json=req_params, verify=False),
'DELETE': lambda: requests.delete(url, headers=headers, verify=False)
}
resp = req_map.get(method.upper(), lambda: None)()
self._check_resp(is_check, resp)
if return_json:
return resp.json()
else:
return resp
def _clear_user_fingerprint(self, username):
try:
sql = "UPDATE system_users SET fingerprint = '' WHERE username = %s"
cursor, conn, count = self.pg_db.execute(sql, (username,), choose_db='joyhub')
obj_log.info(f"清除用户 {username} 的指纹锁,影响行数: {count}")
self.pg_db.close(cursor, conn)
return count >= 0
except Exception as e:
obj_log.error(f"清除指纹锁失败: {str(e)}")
return False
def kw_in_zhyy_purchase_todo_get(self, is_check='', **kwargs):
user, kwargs = self._get_user(kwargs)
kwargs = self._convert_json(kwargs)
url = "%s/erp/purchase-workbench/get-todo" % self.domain_url
obj_log.info("your input:{0}".format(kwargs))
resp = obj_runner.call_rest_api(API_URL=url, req_type="GET", user=user)
self._check_resp(is_check, resp)
return resp
def kw_in_zhyy_purchase_order_page_post(self, is_check='', **kwargs):
user, kwargs = self._get_user(kwargs)
kwargs = self._convert_json(kwargs)
url = "%s/erp/purchase-order/page" % self.domain_url
obj_log.info("your input:{0}".format(kwargs))
resp = obj_runner.call_rest_api(API_URL=url, req_type="POST", json=kwargs, user=user)
self._check_resp(is_check, resp)
return resp
def _get_user(self, kwargs):
user = kwargs.get("user", "purchase")
if "user" in kwargs:
del kwargs["user"]
return user, kwargs
def _convert_json(self, kwargs):
return kwargs
def _check_resp(self, is_check, resp):
if is_check == 'true':
assert resp is not None, "响应为空"
if hasattr(resp, 'json'):
resp_json = resp.json()
assert resp_json.get('code') == 0, f"请求失败code={resp_json.get('code')}"
return resp
def kw_in_joyhub_auth_login_post(self, is_check='', **kwargs):
obj_log.info("=========== JoyHub 登录接口 ===========")
username = kwargs.get("username", "")
password = kwargs.get("password", "")
max_retries = kwargs.get("max_retries", 3)
token = kwargs.get("token", "")
url = "https://joyhub-website-manager-api-test.best-envision.com/admin-api/system/auth/login-dev"
session = requests.session()
session.headers.update({
'isencrypt': 'true',
'x-api-encrypt': 'true',
'tenant-id': '126'
})
resp = obj_runner._Runner__call_api(session, url, req_type="POST", json=kwargs)
if resp is not None and not isinstance(resp, Exception):
try:
resp_json = resp.json()
except Exception:
try:
resp_json = json.loads(resp.text)
except Exception:
resp_json = None
if resp_json is not None:
code = resp_json.get('code')
if code == 0 or code == 200:
obj_log.info("登录成功")
self._check_resp(is_check, resp_json)
return resp_json
elif code == 401:
obj_log.warning("登录失败,尝试清除指纹后重新登录")
if resp is not None and not isinstance(resp, Exception):
try:
resp_json = resp.json()
except Exception:
resp_json = None
else:
resp_json = None
self._check_resp(is_check, resp_json)
return resp_json
def kw_in_joyhub_role_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/system/role/create', is_check, '创建角色', **kwargs)
def kw_in_joyhub_role_delete_post(self, is_check='', **kwargs):
role_id = kwargs.get('id', '')
return self._joyhub_request('DELETE', f'/admin-api/system/role/delete?id={role_id}', is_check, '删除角色')
def kw_in_joyhub_role_delete_list_post(self, is_check='', **kwargs):
ids = kwargs.get('ids', [])
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/system/role/delete-list?ids={ids_str}', is_check, '批量删除角色')
def kw_in_joyhub_role_get_get(self, is_check='', **kwargs):
role_id = kwargs.get('id', '')
return self._joyhub_request('GET', f'/admin-api/system/role/get?id={role_id}', is_check, '获得角色信息')
def kw_in_joyhub_role_page_get(self, is_check='', **kwargs):
page_no = kwargs.get('pageNo', 1)
page_size = kwargs.get('pageSize', 10)
return self._joyhub_request('GET', f'/admin-api/system/role/page?pageNo={page_no}&pageSize={page_size}', is_check, '获得角色分页', **kwargs)
def kw_in_joyhub_role_simple_list_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/system/role/simple-list', is_check, '获取角色精简信息列表')
def kw_in_joyhub_role_list_all_simple_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/system/role/list-all-simple', is_check, '获取角色精简信息列表')
def kw_in_joyhub_role_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/system/role/update', is_check, '修改角色', **kwargs)
def kw_in_joyhub_post_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/system/post/create', is_check, '创建岗位', **kwargs)
def kw_in_joyhub_post_delete_post(self, is_check='', **kwargs):
post_id = kwargs.get('id', '')
return self._joyhub_request('DELETE', f'/admin-api/system/post/delete?id={post_id}', is_check, '删除岗位')
def kw_in_joyhub_post_delete_list_post(self, is_check='', **kwargs):
ids = kwargs.get('ids', [])
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/system/post/delete-list?ids={ids_str}', is_check, '批量删除岗位')
def kw_in_joyhub_post_get_get(self, is_check='', **kwargs):
post_id = kwargs.get('id', '')
return self._joyhub_request('GET', f'/admin-api/system/post/get?id={post_id}', is_check, '获得岗位信息')
def kw_in_joyhub_post_list_all_simple_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/system/post/list-all-simple', is_check, '获取岗位全列表')
def kw_in_joyhub_post_page_get(self, is_check='', **kwargs):
page_no = kwargs.get('pageNo', 1)
page_size = kwargs.get('pageSize', 10)
return self._joyhub_request('GET', f'/admin-api/system/post/page?pageNo={page_no}&pageSize={page_size}', is_check, '获得岗位分页列表', **kwargs)
def kw_in_joyhub_post_simple_list_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/system/post/simple-list', is_check, '获取岗位精简列表')
def kw_in_joyhub_post_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/system/post/update', is_check, '修改岗位', **kwargs)
# ============ 运费模板信息接口 ============
def kw_in_joyhub_shipping_template_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/shipping-template/create', is_check, '创建运费模板信息', **kwargs)
def kw_in_joyhub_shipping_template_delete_post(self, shipping_template_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/shipping-template/delete?id={shipping_template_id}', is_check, '删除运费模板信息')
def kw_in_joyhub_shipping_template_delete_list_post(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/shipping-template/delete-list?ids={ids_str}', is_check, '批量删除运费模板信息')
def kw_in_joyhub_shipping_template_get_detail_get(self, shipping_template_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/shipping-template/get-detail?id={shipping_template_id}', is_check, '获得运费模板详情')
def kw_in_joyhub_shipping_template_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/shipping-template/page', is_check, '获得运费模板分页', **kwargs)
def kw_in_joyhub_shipping_template_save_with_children_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/shipping-template/save-with-children', is_check, '保存运费模板信息(含规则与子表)', **kwargs)
def kw_in_joyhub_shipping_template_shipping_rule_list_get(self, shipping_template_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/shipping-template/shipping-rule/list-by-shipping-template-id?shippingTemplateId={shipping_template_id}', is_check, '获得运费规则列表')
def kw_in_joyhub_shipping_template_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/shipping-template/update', is_check, '更新运费模板信息', **kwargs)
def kw_in_joyhub_banner_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/banner/create', is_check, '创建Banner管理', **kwargs)
def kw_in_joyhub_banner_delete_delete(self, banner_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/banner/delete?id={banner_id}', is_check, '删除Banner管理')
def kw_in_joyhub_banner_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/banner/delete-list?ids={ids_str}', is_check, '批量删除Banner管理')
def kw_in_joyhub_banner_get_import_template_get(self, is_check=''):
return self._joyhub_request('GET', '/admin-api/jh/banner/get-import-template', is_check, '获得导入Banner管理模板', return_json=False)
def kw_in_joyhub_banner_get_get(self, banner_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/banner/get?id={banner_id}', is_check, '获得Banner管理详情')
def kw_in_joyhub_banner_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/banner/page', is_check, '获得Banner管理分页', **kwargs)
def kw_in_joyhub_banner_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/banner/update', is_check, '更新Banner管理', **kwargs)
# ============ app版本号管理接口 ============
def kw_in_joyhub_appversion_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/appversion/create', is_check, '创建app版本号管理', **kwargs)
def kw_in_joyhub_appversion_delete_delete(self, appversion_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/appversion/delete?id={appversion_id}', is_check, '删除app版本号管理')
def kw_in_joyhub_appversion_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/appversion/delete-list?ids={ids_str}', is_check, '批量删除app版本号管理')
def kw_in_joyhub_appversion_export_excel_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/appversion/export-excel', is_check, '导出app版本号管理 Excel', return_json=False, **kwargs)
def kw_in_joyhub_appversion_get_get(self, appversion_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/appversion/get?id={appversion_id}', is_check, '获得app版本号管理')
def kw_in_joyhub_appversion_get_import_template_get(self, is_check=''):
return self._joyhub_request('GET', '/admin-api/jh/appversion/get-import-template', is_check, '获得导入app版本号管理模板', return_json=False)
def kw_in_joyhub_appversion_import_excel_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/appversion/import-excel', is_check, '导入app版本号管理Excel', **kwargs)
def kw_in_joyhub_appversion_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/appversion/page', is_check, '获得app版本号管理分页', **kwargs)
def kw_in_joyhub_appversion_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/appversion/update', is_check, '更新app版本号管理', **kwargs)
def kw_in_joyhub_user_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/system/user/create', is_check, '创建用户', **kwargs)
def kw_in_joyhub_user_delete_post(self, is_check='', **kwargs):
user_id = kwargs.get('id', '')
return self._joyhub_request('DELETE', f'/admin-api/system/user/delete?id={user_id}', is_check, '删除用户')
def kw_in_joyhub_user_delete_list_post(self, is_check='', **kwargs):
ids = kwargs.get('ids', [])
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/system/user/delete-list?ids={ids_str}', is_check, '批量删除用户')
def kw_in_joyhub_user_get_get(self, is_check='', **kwargs):
user_id = kwargs.get('id', '')
return self._joyhub_request('GET', f'/admin-api/system/user/get?id={user_id}', is_check, '获得用户详情')
def kw_in_joyhub_user_page_get(self, is_check='', **kwargs):
page_no = kwargs.get('pageNo', 1)
page_size = kwargs.get('pageSize', 10)
return self._joyhub_request('GET', f'/admin-api/system/user/page?pageNo={page_no}&pageSize={page_size}', is_check, '获得用户分页列表', **kwargs)
def kw_in_joyhub_user_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/system/user/update', is_check, '修改用户', **kwargs)
def kw_in_joyhub_user_update_password_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/system/user/update-password', is_check, '重置用户密码', **kwargs)
def kw_in_joyhub_user_update_status_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/system/user/update-status', is_check, '修改用户状态', **kwargs)
def kw_in_joyhub_user_simple_list_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/system/user/simple-list', is_check, '获取用户精简信息列表')
def kw_in_joyhub_user_profile_get_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/system/user/profile/get', is_check, '获得登录用户信息')
def kw_in_joyhub_user_profile_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/system/user/profile/update', is_check, '修改用户个人信息', **kwargs)
def kw_in_joyhub_user_profile_update_password_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/system/user/profile/update-password', is_check, '修改用户个人密码', **kwargs)
# ============ 部门管理接口 ============
def kw_in_joyhub_dept_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/system/dept/create', is_check, '创建部门', **kwargs)
def kw_in_joyhub_dept_delete_post(self, dept_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/system/dept/delete?id={dept_id}', is_check, '删除部门')
def kw_in_joyhub_dept_delete_list_post(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/system/dept/delete-list?ids={ids_str}', is_check, '批量删除部门')
def kw_in_joyhub_dept_get_get(self, dept_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/system/dept/get?id={dept_id}', is_check, '获得部门信息')
def kw_in_joyhub_dept_list_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/system/dept/list', is_check, '获取部门列表', **kwargs)
def kw_in_joyhub_dept_list_all_simple_get(self, is_check=''):
return self._joyhub_request('GET', '/admin-api/system/dept/list-all-simple', is_check, '获取部门精简信息列表')
def kw_in_joyhub_dept_simple_list_get(self, is_check=''):
return self._joyhub_request('GET', '/admin-api/system/dept/simple-list', is_check, '获取部门精简信息列表')
def kw_in_joyhub_dept_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/system/dept/update', is_check, '更新部门', **kwargs)
# ============ 协议管理接口 ============
def kw_in_joyhub_agreement_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/agreement/create', is_check, '创建协议', **kwargs)
def kw_in_joyhub_agreement_delete_delete(self, agreement_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/agreement/delete?id={agreement_id}', is_check, '删除协议')
def kw_in_joyhub_agreement_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/agreement/delete-list?ids={ids_str}', is_check, '批量删除协议')
def kw_in_joyhub_agreement_export_excel_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/agreement/export-excel', is_check, '导出协议 Excel', return_json=False, **kwargs)
def kw_in_joyhub_agreement_get_get(self, agreement_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/agreement/get?id={agreement_id}', is_check, '获得协议')
def kw_in_joyhub_agreement_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/agreement/page', is_check, '获得协议分页', **kwargs)
def kw_in_joyhub_agreement_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/agreement/update', is_check, '更新协议', **kwargs)
# ============ 售后政策管理接口 ============
def kw_in_joyhub_after_sales_policy_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/after-sales-policy/create', is_check, '创建售后政策', **kwargs)
def kw_in_joyhub_after_sales_policy_delete_delete(self, policy_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/after-sales-policy/delete?id={policy_id}', is_check, '删除售后政策')
def kw_in_joyhub_after_sales_policy_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/after-sales-policy/delete-list?ids={ids_str}', is_check, '批量删除售后政策')
def kw_in_joyhub_after_sales_policy_get_get(self, policy_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/after-sales-policy/get?id={policy_id}', is_check, '获得售后政策')
def kw_in_joyhub_after_sales_policy_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/after-sales-policy/page', is_check, '获得售后政策分页', **kwargs)
def kw_in_joyhub_after_sales_policy_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/after-sales-policy/update', is_check, '更新售后政策', **kwargs)
# ============ 售后政策-品牌管理接口 ============
def kw_in_joyhub_after_sales_brand_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/after-sales-brand/create', is_check, '创建售后政策-品牌', **kwargs)
def kw_in_joyhub_after_sales_brand_delete_delete(self, brand_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/after-sales-brand/delete?id={brand_id}', is_check, '删除售后政策-品牌')
def kw_in_joyhub_after_sales_brand_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/after-sales-brand/delete-list?ids={ids_str}', is_check, '批量删除售后政策-品牌')
def kw_in_joyhub_after_sales_brand_get_get(self, brand_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/after-sales-brand/get?id={brand_id}', is_check, '获得售后政策-品牌')
def kw_in_joyhub_after_sales_brand_list_available_get(self, is_check=''):
return self._joyhub_request('GET', '/admin-api/jh/after-sales-brand/list-available', is_check, '获得可用的品牌列表')
def kw_in_joyhub_after_sales_brand_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/after-sales-brand/page', is_check, '获得售后政策-品牌分页', **kwargs)
def kw_in_joyhub_after_sales_brand_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/after-sales-brand/update', is_check, '更新售后政策-品牌', **kwargs)
# ============ 国家信息管理接口 ============
def kw_in_joyhub_address_country_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/address-country/create', is_check, '创建国家信息', **kwargs)
def kw_in_joyhub_address_country_delete_delete(self, country_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/address-country/delete?id={country_id}', is_check, '删除国家信息')
def kw_in_joyhub_address_country_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/address-country/delete-list?ids={ids_str}', is_check, '批量删除国家信息')
def kw_in_joyhub_address_country_get_get(self, country_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/address-country/get?id={country_id}', is_check, '获得国家信息')
def kw_in_joyhub_address_country_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/address-country/page', is_check, '获得国家信息分页', **kwargs)
def kw_in_joyhub_address_country_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/address-country/update', is_check, '更新国家信息', **kwargs)
def kw_in_joyhub_address_country_update_status_list_put(self, ids, status, is_check=''):
return self._joyhub_request('PUT', f'/admin-api/jh/address-country/update-status-list?ids={ids}&status={status}', is_check, '批量更新国家信息状态')
# ============ blog分类管理接口 ============
def kw_in_joyhub_blog_cate_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/blog-cate/create', is_check, '创建blog分类', **kwargs)
def kw_in_joyhub_blog_cate_delete_delete(self, cate_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/blog-cate/delete?id={cate_id}', is_check, '删除blog分类')
def kw_in_joyhub_blog_cate_get_get(self, cate_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/blog-cate/get?id={cate_id}', is_check, '获得blog分类')
def kw_in_joyhub_blog_cate_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/blog-cate/page', is_check, '获得blog分类分页', **kwargs)
def kw_in_joyhub_blog_cate_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/blog-cate/update', is_check, '更新blog分类', **kwargs)
# ============ 二维码管理接口 ============
def kw_in_joyhub_download_qrcode_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/download-qrcode/create', is_check, '创建二维码', **kwargs)
def kw_in_joyhub_download_qrcode_get_get(self, qrcode_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/download-qrcode/get?id={qrcode_id}', is_check, '获得二维码')
def kw_in_joyhub_download_qrcode_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/download-qrcode/page', is_check, '获得二维码分页', **kwargs)
def kw_in_joyhub_download_qrcode_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/download-qrcode/update', is_check, '更新二维码', **kwargs)
# ============ FAQ分类管理接口 ============
def kw_in_joyhub_faq_cate_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/faq-cate/create', is_check, '创建FAQ分类', **kwargs)
def kw_in_joyhub_faq_cate_delete_delete(self, faq_cate_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/faq-cate/delete?id={faq_cate_id}', is_check, '删除FAQ分类')
def kw_in_joyhub_faq_cate_get_get(self, faq_cate_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/faq-cate/get?id={faq_cate_id}', is_check, '获得FAQ分类')
def kw_in_joyhub_faq_cate_list_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/faq-cate/list', is_check, '获得FAQ分类列表', **kwargs)
def kw_in_joyhub_faq_cate_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/faq-cate/update', is_check, '更新FAQ分类', **kwargs)
# ============ FAQ数据管理接口 ============
def kw_in_joyhub_faq_cate_list_get(self, is_check=''):
return self._joyhub_request('GET', '/admin-api/jh/faq/cate-list', is_check, '获得FAQ分类下拉列表')
def kw_in_joyhub_faq_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/faq/create', is_check, '创建FAQ数据', **kwargs)
def kw_in_joyhub_faq_delete_delete(self, faq_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/faq/delete?id={faq_id}', is_check, '删除FAQ数据')
def kw_in_joyhub_faq_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/faq/delete-list?ids={ids_str}', is_check, '批量删除FAQ数据')
def kw_in_joyhub_faq_get_get(self, faq_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/faq/get?id={faq_id}', is_check, '获得FAQ数据')
def kw_in_joyhub_faq_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/faq/page', is_check, '获得FAQ数据分页', **kwargs)
def kw_in_joyhub_faq_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/faq/update', is_check, '更新FAQ数据', **kwargs)
# ============ news分类管理接口 ============
def kw_in_joyhub_news_cate_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/news-cate/create', is_check, '创建news分类', **kwargs)
def kw_in_joyhub_news_cate_delete_delete(self, news_cate_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/news-cate/delete?id={news_cate_id}', is_check, '删除news分类')
def kw_in_joyhub_news_cate_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/news-cate/delete-list?ids={ids_str}', is_check, '批量删除news分类')
def kw_in_joyhub_news_cate_get_get(self, news_cate_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/news-cate/get?id={news_cate_id}', is_check, '获得news分类')
def kw_in_joyhub_news_cate_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/news-cate/page', is_check, '获得news分类分页', **kwargs)
def kw_in_joyhub_news_cate_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/news-cate/update', is_check, '更新news分类', **kwargs)
# ============ news管理接口 ============
def kw_in_joyhub_news_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/news/create', is_check, '创建news管理', **kwargs)
def kw_in_joyhub_news_delete_delete(self, news_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/news/delete?id={news_id}', is_check, '删除news管理')
def kw_in_joyhub_news_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/news/delete-list?ids={ids_str}', is_check, '批量删除news管理')
def kw_in_joyhub_news_get_get(self, news_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/news/get?id={news_id}', is_check, '获得news管理')
def kw_in_joyhub_news_cate_relation_list_get(self, news_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/news/news-cate-relation/list-by-news-id?newsId={news_id}', is_check, '获得news分类关联列表')
def kw_in_joyhub_news_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/news/page', is_check, '获得news管理分页', **kwargs)
def kw_in_joyhub_news_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/news/update', is_check, '更新news管理', **kwargs)
# ============ 产品分类管理接口 ============
def kw_in_joyhub_product_cate_change_status_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product-cate/change-status', is_check, '修改产品分类启用/停用状态', **kwargs)
def kw_in_joyhub_product_cate_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/product-cate/create', is_check, '创建产品分类', **kwargs)
def kw_in_joyhub_product_cate_delete_delete(self, product_cate_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/product-cate/delete?id={product_cate_id}', is_check, '删除产品分类')
def kw_in_joyhub_product_cate_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/product-cate/delete-list?ids={ids_str}', is_check, '批量删除产品分类')
def kw_in_joyhub_product_cate_get_get(self, product_cate_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/product-cate/get?id={product_cate_id}', is_check, '获得产品分类')
def kw_in_joyhub_product_cate_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/product-cate/page', is_check, '获得产品分类分页', **kwargs)
def kw_in_joyhub_product_cate_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product-cate/update', is_check, '更新产品分类', **kwargs)
# ============ 产品属性管理接口 ============
def kw_in_joyhub_product_attr_type_change_status_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product-attr-type/change-status', is_check, '启用/停用产品属性状态', **kwargs)
def kw_in_joyhub_product_attr_type_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/product-attr-type/create', is_check, '创建产品属性', **kwargs)
def kw_in_joyhub_product_attr_type_delete_delete(self, product_attr_type_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/product-attr-type/delete?id={product_attr_type_id}', is_check, '删除产品属性')
def kw_in_joyhub_product_attr_type_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/product-attr-type/delete-list?ids={ids_str}', is_check, '批量删除产品属性')
def kw_in_joyhub_product_attr_type_get_get(self, product_attr_type_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/product-attr-type/get?id={product_attr_type_id}', is_check, '获得产品属性')
def kw_in_joyhub_product_attr_type_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/product-attr-type/page', is_check, '获得产品属性分页', **kwargs)
def kw_in_joyhub_product_attr_type_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product-attr-type/update', is_check, '更新产品属性', **kwargs)
# ============ 产品属性值管理接口 ============
def kw_in_joyhub_product_attr_data_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/product-attr-data/create', is_check, '创建产品属性值', **kwargs)
def kw_in_joyhub_product_attr_data_delete_delete(self, product_attr_data_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/product-attr-data/delete?id={product_attr_data_id}', is_check, '删除产品属性值')
def kw_in_joyhub_product_attr_data_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/product-attr-data/delete-list?ids={ids_str}', is_check, '批量删除产品属性值')
def kw_in_joyhub_product_attr_data_get_get(self, product_attr_data_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/product-attr-data/get?id={product_attr_data_id}', is_check, '获得产品属性值')
def kw_in_joyhub_product_attr_data_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/product-attr-data/page', is_check, '获得产品属性值分页', **kwargs)
def kw_in_joyhub_product_attr_data_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product-attr-data/update', is_check, '更新产品属性值', **kwargs)
# ============ 产品管理接口 ============
def kw_in_joyhub_product_change_status_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product/change-status', is_check, '批量上下架产品', **kwargs)
def kw_in_joyhub_product_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/product/create', is_check, '创建产品', **kwargs)
def kw_in_joyhub_product_delete_delete(self, product_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/product/delete?id={product_id}', is_check, '删除产品')
def kw_in_joyhub_product_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/product/delete-list?ids={ids_str}', is_check, '批量删除产品')
def kw_in_joyhub_product_get_get(self, product_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/product/get?id={product_id}', is_check, '获得产品')
def kw_in_joyhub_product_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/product/page', is_check, '获得产品分页', **kwargs)
def kw_in_joyhub_product_product_attr_list_by_product_id_get(self, product_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/product/product-attr/list-by-product-id?productId={product_id}', is_check, '获得产品规格类型关联列表')
def kw_in_joyhub_product_product_detail_list_by_product_id_get(self, product_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/product/product-detail/list-by-product-id?productId={product_id}', is_check, '获得产品详情列表')
def kw_in_joyhub_product_product_sku_list_by_product_id_get(self, product_id, is_check=''):
return self._joyhub_request('GET', f'/admin-api/jh/product/product-sku/list-by-product-id?productId={product_id}', is_check, '获得产品规格列表')
def kw_in_joyhub_product_product_sku_list_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/product/product/sku-list', is_check, '获得产品及规格列表-优惠券中使用', **kwargs)
def kw_in_joyhub_product_update_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product/update', is_check, '更新产品', **kwargs)
# ============ 管理后台-支付页产品推荐接口 ============
def kw_in_joyhub_product_payment_recommend_change_rank_num_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product-payment-recommend/change-rank-num', is_check, '修改支付页产品推荐排序号', **kwargs)
def kw_in_joyhub_product_payment_recommend_change_status_put(self, is_check='', **kwargs):
return self._joyhub_request('PUT', '/admin-api/jh/product-payment-recommend/change-status', is_check, '修改支付页产品推荐状态', **kwargs)
def kw_in_joyhub_product_payment_recommend_create_post(self, is_check='', **kwargs):
return self._joyhub_request('POST', '/admin-api/jh/product-payment-recommend/create', is_check, '创建支付页产品推荐', **kwargs)
def kw_in_joyhub_product_payment_recommend_delete_delete(self, recommend_id, is_check=''):
return self._joyhub_request('DELETE', f'/admin-api/jh/product-payment-recommend/delete?id={recommend_id}', is_check, '删除支付页产品推荐')
def kw_in_joyhub_product_payment_recommend_delete_list_delete(self, ids, is_check=''):
ids_str = ','.join(map(str, ids))
return self._joyhub_request('DELETE', f'/admin-api/jh/product-payment-recommend/delete-list?ids={ids_str}', is_check, '批量删除支付页产品推荐')
def kw_in_joyhub_product_payment_recommend_page_get(self, is_check='', **kwargs):
return self._joyhub_request('GET', '/admin-api/jh/product-payment-recommend/page', is_check, '获得支付页产品推荐分页', **kwargs)
# ============ C端-登录公共接口 ============
def kw_in_joyhub_c_login_post(self, path, is_check='', **kwargs):
return self._joyhub_c_request('POST', path, is_check, 'JoyHub C端登录', **kwargs)
def kw_in_joyhub_c_get_email_code(self, email, code_pattern=r'\d{4,8}'):
auth_code = os.environ.get('JOYHUB_C_EMAIL_AUTH_CODE') or os.environ.get('NETEASE_163_AUTH_CODE')
if not auth_code:
raise Exception("网易163邮箱授权码不能为空请先设置环境变量 JOYHUB_C_EMAIL_AUTH_CODE")
obj_log.info("开始连接网易163邮箱获取验证码 - email: {}".format(email))
mail = imaplib.IMAP4_SSL('imap.163.com', 993)
try:
mail.login(email, auth_code)
status, _ = mail.select('INBOX')
if status != 'OK':
raise Exception("邮箱 {} 无法选择收件箱".format(email))
status, data = mail.search(None, 'ALL')
if status != 'OK' or not data or not data[0]:
raise Exception("邮箱 {} 未查询到邮件".format(email))
email_ids = data[0].split()
for email_id in reversed(email_ids[-20:]):
status, msg_data = mail.fetch(email_id, '(RFC822)')
if status != 'OK' or not msg_data:
continue
msg = email_parser.message_from_bytes(msg_data[0][1])
subject = self._decode_email_header(msg.get('Subject', ''))
content = self._get_email_content(msg)
match = re.search(code_pattern, '{}\n{}'.format(subject, content or ''))
if match:
obj_log.info("网易163邮箱验证码获取成功")
return match.group(0)
raise Exception("邮箱 {} 最近20封邮件中未匹配到验证码".format(email))
finally:
try:
mail.logout()
except Exception:
pass
def _decode_email_header(self, value):
decoded_parts = decode_header(value)
result = ''
for part, charset in decoded_parts:
if isinstance(part, bytes):
result += part.decode(charset or 'utf-8', errors='ignore')
else:
result += part
return result
def _get_email_content(self, msg):
contents = []
if msg.is_multipart():
for part in msg.walk():
content_type = part.get_content_type()
content_disposition = str(part.get('Content-Disposition'))
if content_type in ('text/plain', 'text/html') and 'attachment' not in content_disposition:
payload = part.get_payload(decode=True)
if payload:
charset = part.get_content_charset() or 'utf-8'
contents.append(payload.decode(charset, errors='ignore'))
else:
payload = msg.get_payload(decode=True)
if payload:
charset = msg.get_content_charset() or 'utf-8'
contents.append(payload.decode(charset, errors='ignore'))
return '\n'.join(contents)
# ============ C端-用户接口 ============
def kw_in_joyhub_c_client_get_point_get(self, is_check=''):
return self._joyhub_c_request('GET', '/web-api/jh/client/get/point', is_check, '查询当前用户积分')
# ============ C端-Banner信息接口 ============
def kw_in_joyhub_c_banner_get_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/banner/get', is_check, '获得Banner管理', **kwargs)
def kw_in_joyhub_c_banner_page_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/banner/page', is_check, '获得Banner管理分页', **kwargs)
# ============ C端-blog信息接口 ============
def kw_in_joyhub_c_blog_get_detail_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/blog/get-detail', is_check, '获得blog详情', **kwargs)
def kw_in_joyhub_c_blog_get_next_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/blog/get-next', is_check, '获得blog下一条', **kwargs)
def kw_in_joyhub_c_blog_page_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/blog/page', is_check, '获得blog管理分页', **kwargs)
# ============ C端-blog分类接口 ============
def kw_in_joyhub_c_blog_cate_list_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/blog-cate/list', is_check, '获得blog分类列表', **kwargs)
# ============ C端-FAQ接口 ============
def kw_in_joyhub_c_faq_cate_list_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/faq/cate-list', is_check, '获得FAQ分类树', **kwargs)
def kw_in_joyhub_c_faq_list_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/faq/list', is_check, '获得FAQ列表', **kwargs)
# ============ C端-news分类接口 ============
def kw_in_joyhub_c_news_cate_list_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/news-cate/list', is_check, '获得news分类列表', **kwargs)
# ============ C端-news管理接口 ============
def kw_in_joyhub_c_news_get_detail_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/news/get-detail', is_check, '获得news详情', **kwargs)
def kw_in_joyhub_c_news_get_next_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/news/get-next', is_check, '获得news下一条', **kwargs)
def kw_in_joyhub_c_news_page_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/news/page', is_check, '获得news管理分页', **kwargs)
# ============ C端-APP版本接口 ============
def kw_in_joyhub_c_web_appversion_page_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/web/appversion/page', is_check, '获取APP版本列表', **kwargs)
# ============ C端-产品接口 ============
def kw_in_joyhub_c_product_get_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/product/get', is_check, '产品详情', **kwargs)
def kw_in_joyhub_c_product_page_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/product/page', is_check, '获得产品分页', **kwargs)
# ============ C端-支付页产品推荐接口 ============
def kw_in_joyhub_c_product_payment_recommend_page_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/product-payment-recommend/page', is_check, '获得支付页产品推荐分页', **kwargs)
# ============ C端-合作联系接口 ============
def kw_in_joyhub_c_cooperation_create_post(self, is_check='', **kwargs):
return self._joyhub_c_request('POST', '/web-api/jh/cooperation/create', is_check, '提交合作联系信息', **kwargs)
# ============ C端-二维码访问统计接口 ============
def kw_in_joyhub_c_download_qrcode_get_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/download-qrcode/get', is_check, '获取二维码信息', **kwargs)
def kw_in_joyhub_c_download_qrcode_increment_post(self, is_check='', **kwargs):
return self._joyhub_c_request('POST', '/web-api/jh/download-qrcode/increment', is_check, '增加二维码访问/点击次数', **kwargs)
# ============ C端-FAQ联系我们接口 ============
def kw_in_joyhub_c_faq_contact_us_create_post(self, is_check='', **kwargs):
return self._joyhub_c_request('POST', '/web-api/jh/faq-contact-us/create', is_check, '提交FAQ联系信息', **kwargs)
# ============ C端-点赞记录接口 ============
def kw_in_joyhub_c_like_info_create_post(self, is_check='', **kwargs):
return self._joyhub_c_request('POST', '/web-api/jh/like-info/create', is_check, '创建点赞记录', **kwargs)
def kw_in_joyhub_c_like_info_delete_post(self, is_check='', **kwargs):
return self._joyhub_c_request('POST', '/web-api/jh/like-info/delete', is_check, '取消点赞', **kwargs)
def kw_in_joyhub_c_like_info_get_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/like-info/get', is_check, '获得点赞记录', **kwargs)
def kw_in_joyhub_c_like_info_page_get(self, is_check='', **kwargs):
return self._joyhub_c_request('GET', '/web-api/jh/like-info/page', is_check, '获得点赞记录分页', **kwargs)
if __name__ == '__main__':
test = DlzhanInterface()
print()