Commit 8df1a750 authored by 邱阿朋's avatar 邱阿朋

优化

parent a115058c
......@@ -10,5 +10,4 @@ invoices
coop
*.xlsx
build
dist
*.spec
\ No newline at end of file
@echo off
D:\app\Python\python.exe src\coop.py
pause
File added
......@@ -3,3 +3,5 @@ DrissionPage==4.1.0.2
xlrd==2.0.1
pandas==2.0.3
openpyxl==3.1.5
pyinstaller==6.11.0
requests==2.32.3
\ No newline at end of file
......@@ -10,7 +10,7 @@ from DrissionPage import ChromiumPage
from DrissionPage.errors import ElementNotFoundError
from lxml import etree
from helper import helper, excel, file, domain, logger
from helper import helper, excel, file, domain, logger, api
country = None
log = logger.ConsoleLog()
......@@ -32,17 +32,6 @@ def page_get(url):
full_url = host + url
page.get(full_url, timeout=3)
def sku_relations():
relations_dict = {}
df = pd.read_excel('relations.xlsx')
for index, row in df.iterrows():
row_dict = row.to_dict()
relations_dict[row_dict['ASIN']] = {"SKU": row_dict['SKU'], "NAME": row_dict['NAME']}
return relations_dict
def export_list_read_data():
file_name = "ContraCogsInvoices.xls"
if not os.path.isfile(file_name):
......@@ -123,7 +112,7 @@ def export_item_read_data(invoice_id):
def main():
relation_data = sku_relations() # 获取 ASIN 与 SKU 的对应关系数据
relation_data = api.sku_relations() # 获取 ASIN 与 SKU 的对应关系数据
coop_list = export_list_read_data() # 获取合作数据列表
log.info(f"共计:{len(coop_list)} 条数据")
......@@ -164,8 +153,8 @@ def main():
new_item = item.copy()
new_item.pop("Asin")
new_item['Asin'] = asin
new_item['ERP SKU'] = relation.get("SKU")
new_item['Group Name'] = relation.get("NAME")
new_item['ERP SKU'] = relation.get("erp_sku")
new_item['Group Name'] = relation.get("name")
item_coop_data.append(new_item)
else:
new_item = coop.copy()
......@@ -177,8 +166,8 @@ def main():
new_item['Original balance'] = vendor_funding_in_agreement_currency
new_item['Asin'] = asin
new_item['ERP SKU'] = relation.get("SKU")
new_item['Group Name'] = relation.get("NAME")
new_item['ERP SKU'] = relation.get("erp_sku")
new_item['Group Name'] = relation.get("name")
new_coop_data.append(new_item)
# 保存已处理的 item 数据到 Excel 文件中
......@@ -204,15 +193,15 @@ def main():
for key, value in max_sheet_data.items():
excel.save_xls(value, 'SPA查询.xlsx', key)
page.close() # 关闭页面
if __name__ == '__main__':
try:
country = helper.get_input_with_default("国家", "usa")
domain.domain_page(page, country)
main()
page.close()
except KeyboardInterrupt:
pass
except Exception as e:
log.error(e)
helper.print_trace("main", e)
# coding: utf-8
import requests
def sku_relations():
# 发送 GET 请求
url = "https://order.3oj.com/api/platform_sku_list"
response = requests.get(url)
if response.status_code == 200:
# 将 JSON 响应解析为 Python 字典
data = response.json()
sku_list = data.get("data")
return sku_list
else:
raise Exception("获取sku关系异常")
\ No newline at end of file
# coding: utf-8
import os
import sys
import traceback
def make_dir(path):
......@@ -14,3 +16,13 @@ def make_dir(path):
def get_input_with_default(prompt, default):
user_input = input(f"{prompt}(默认为 '{default}'):")
return user_input or default
def print_trace(title: str, err):
print("-----------{}:出错-----------".format(title))
except_type, _, except_traceback = sys.exc_info()
err_str = ','.join(str(i) for i in err.args)
print(except_type)
print(err_str)
for i in traceback.extract_tb(except_traceback):
print("函数{},文件:{},行:{}".format(i.name, i.filename, i.lineno))
......@@ -321,7 +321,9 @@ if __name__ == '__main__':
country = helper.get_input_with_default("国家", "usa")
domain.domain_page(page, country)
main()
page.close()
except KeyboardInterrupt:
pass
except Exception as e:
log.error(e)
helper.print_trace("main", e)
......@@ -6,7 +6,7 @@ import pandas as pd
from DrissionPage import ChromiumPage
from DrissionPage.errors import ElementNotFoundError
from helper import helper, excel, file, domain, logger
from helper import helper, excel, file, domain, logger, api
country = None
log = logger.ConsoleLog()
......@@ -29,21 +29,6 @@ def page_get(url):
page.get(full_url, timeout=3)
def sku_relations():
relations_dict = {}
# 读取ASIN和sku映射关系
file_name = 'relations.xlsx'
if not os.path.isfile(file_name):
raise FileNotFoundError(f"{file_name},请确认sku关系文件不存在")
df = pd.read_excel(file_name)
for index, row in df.iterrows():
row_dict = row.to_dict()
relations_dict[row_dict['ASIN']] = row_dict['SKU']
return relations_dict
def export_list_read_data():
file_name = "Return_Summary.xls"
if not os.path.isfile(file_name):
......@@ -77,7 +62,7 @@ def export_item_read_data(return_id):
def main():
# 读取sku映射关系
relations_dict = sku_relations()
relations_dict = api.sku_relations()
# 下载并读取list数据
list_data = export_list_read_data()
......@@ -99,12 +84,14 @@ def main():
})
for _, item_row in item_data_result.iterrows():
relation = relations_dict.get(item_row.get('ASIN'))
erp_sku = relation.get('erp_sku')
data_dict = data.to_dict()
data_dict['Return Date'] = data_dict['Return Date'].strftime('%m/%d/%Y')
data_dict['Return ID'] = str(data_dict['Return ID'])
data_dict['PO'] = item_row.get('Purchase order')
data_dict['ASIN'] = item_row.get('ASIN')
data_dict['SKU'] = relations_dict[item_row.get('ASIN')]
data_dict['SKU'] = erp_sku if erp_sku is not None else "",
data_dict['Quantity'] = item_row.get('Quantity')
# 替换回会数量和金额为详情里面的值
......@@ -115,7 +102,6 @@ def main():
new_list_data.append(data_dict)
excel.save_xls(new_list_data, '退货明细.xlsx')
page.close()
if __name__ == '__main__':
......@@ -123,7 +109,9 @@ if __name__ == '__main__':
country = helper.get_input_with_default("国家", "usa")
domain.domain_page(page, country)
main()
page.close()
except KeyboardInterrupt:
pass
except Exception as e:
log.error(e)
helper.print_trace("main", e)
@echo off
setlocal
set "PYTHON_VERSION=3.10.10"
set "PYTHON_INSTALLER=python-%PYTHON_VERSION%-amd64.exe"
set "TARGET_DIR=D:\app\Python"
echo Downloading Python %PYTHON_VERSION%...
powershell -Command "Invoke-WebRequest -Uri https://www.python.org/ftp/python/%PYTHON_VERSION%/%PYTHON_INSTALLER% -OutFile %PYTHON_INSTALLER%"
echo Installing Python...
start /wait %PYTHON_INSTALLER% /quiet InstallAllUsers=1 PrependPath=1 TargetDir="%TARGET_DIR%"
echo Cleaning up...
del %PYTHON_INSTALLER%
echo Python %PYTHON_VERSION% has been installed to %TARGET_DIR%.
"%TARGET_DIR%\python.exe" --version
echo Installing required packages...
"%TARGET_DIR%\pip.exe" install --no-warn-script-location -i https://mirrors.cloud.tencent.com/pypi/simple -r requirements.txt
endlocal
pause
pip.exe install -i https://mirrors.cloud.tencent.com/pypi/simple -r requirements.txt
pyinstaller -F -n refund.exe .\src\invoices.py
pyinstaller -F -n return_goods.exe .\src\returns.py
pyinstaller -F -n spa_search.exe .\src\coop.py
\ No newline at end of file
@echo off
D:\app\Python\python.exe src\invoices.py
pause
@echo off
D:\app\Python\python.exe src\returns.py
pause
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment