完整功能
This commit is contained in:
71
API/client.py
Normal file
71
API/client.py
Normal file
@ -0,0 +1,71 @@
|
||||
"""API客户端模块"""
|
||||
import requests
|
||||
import hashlib
|
||||
from config.settings import BASE_URL, LOGIN_DATA
|
||||
|
||||
|
||||
class APIClient:
|
||||
def __init__(self):
|
||||
self.base_url = BASE_URL
|
||||
self.login_url = f"{BASE_URL}/api/user/perlogin"
|
||||
self.mould_info_url = f"{BASE_URL}/api/ext/mould/last_artifact?mouldCode=SHR2B1-9"
|
||||
self.task_info_url = f"{BASE_URL}/api/ext/artifact/task"
|
||||
self.not_pour_info_url = f"{BASE_URL}/api/ext/artifact/not_pour"
|
||||
self.app_id = None
|
||||
|
||||
def hash_password(self, password):
|
||||
"""计算SHA256密码"""
|
||||
return password
|
||||
|
||||
def login(self):
|
||||
"""获取AppID"""
|
||||
login_data = LOGIN_DATA.copy()
|
||||
login_data["password"] = self.hash_password(login_data["password"])
|
||||
|
||||
response = requests.post(self.login_url, json=login_data)
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
if data.get("Code") == 200:
|
||||
self.app_id = data["Data"]["AppID"]
|
||||
return self.app_id
|
||||
raise Exception("登录失败,无法获取AppID")
|
||||
|
||||
def get_mould_info(self):
|
||||
"""获取模具的管片信息并提取TaskID"""
|
||||
if not self.app_id:
|
||||
raise Exception("请先登录获取AppID")
|
||||
|
||||
headers = {"AppID": self.app_id}
|
||||
response = requests.get(self.mould_info_url, headers=headers)
|
||||
if response.status_code == 205:
|
||||
data = response.json()
|
||||
if data.get("Code") == 200:
|
||||
return data["Data"]["BetonTaskID"]
|
||||
raise Exception("获取模具信息失败")
|
||||
|
||||
def get_task_info(self, task_id):
|
||||
"""获取任务单信息"""
|
||||
if not self.app_id:
|
||||
raise Exception("请先登录获取AppID")
|
||||
|
||||
headers = {"AppID": self.app_id}
|
||||
url = f"{self.task_info_url}?TaskId={task_id}"
|
||||
response = requests.get(url, headers=headers)
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
if data.get("Code") == 200:
|
||||
return data["Data"]
|
||||
raise Exception("获取任务单信息失败")
|
||||
|
||||
def get_not_pour_info(self):
|
||||
"""获取所有未浇筑信息"""
|
||||
if not self.app_id:
|
||||
raise Exception("请先登录获取AppID")
|
||||
|
||||
headers = {"AppID": self.app_id}
|
||||
response = requests.get(self.not_pour_info_url, headers=headers)
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
if data.get("Code") == 200:
|
||||
return data["Data"]
|
||||
raise Exception("获取未浇筑信息失败")
|
||||
Reference in New Issue
Block a user