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端登录配置
898 lines
51 KiB
Python
898 lines
51 KiB
Python
# -*- 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()
|