Commit f45e6b85 authored by 邱阿朋's avatar 邱阿朋

refactor(env): 使用环境变量管理配置信息

- 引入 dotenv 模块,加载环境变量- 修改 RabbitMQClient 和 RedisClient 类,从环境变量获取配置信息
- 更新 payment.py、return_goods.py 和 spa_search.py,使用新的环境变量配置
- 在 requirements.txt 中添加 python-dotenv 依赖
parent cc5c3e8f
...@@ -7,4 +7,6 @@ pyinstaller==6.11.0 ...@@ -7,4 +7,6 @@ pyinstaller==6.11.0
requests==2.32.3 requests==2.32.3
redis==5.0.8 redis==5.0.8
pika==1.3.2 pika==1.3.2
xmltodict==0.14.2 xmltodict==0.14.2
\ No newline at end of file python-dotenv==1.0.1
paramiko==3.5.0
\ No newline at end of file
import os
import pika import pika
import json import json
class RabbitMQClient: class RabbitMQClient:
def __init__(self, host='localhost', port='5672', username='guest', password='guest'): def __init__(self):
""" host = os.getenv('RABBITMQ_HOST', '47.107.31.4')
初始化 RabbitMQ 客户端,创建连接和通道。 port = os.getenv('RABBITMQ_PORT', 5672)
:param host: RabbitMQ 主机地址 username = os.getenv('RABBITMQ_USER', 'khd_rabbitmq')
:param username: RabbitMQ 账号 password = os.getenv('RABBITMQ_PASSWORD', 'KHDrq2024%,,')
:param password: RabbitMQ 密码
"""
self.host = host self.host = host
self.port = port self.port = port
......
# coding: utf-8 # coding: utf-8
import os
import redis import redis
class RedisClient: class RedisClient:
_instance = None _instance = None
def __new__(cls, *args, **kwargs): def __new__(cls):
if not cls._instance: if not cls._instance:
cls._instance = super(RedisClient, cls).__new__(cls) cls._instance = super(RedisClient, cls).__new__(cls)
cls._instance._initialize(*args, **kwargs) cls._instance._initialize()
return cls._instance return cls._instance
def _initialize(self, host='47.119.182.76', port=6379, db=12, password="khd2022!", decode_responses=True): def _initialize(self):
self.client = redis.StrictRedis(host=host, port=port, db=db, password=password, host = os.getenv('REDIS_HOST', '47.119.182.76')
decode_responses=decode_responses) port = os.getenv('REDIS_PORT', 6379)
db = os.getenv('REDIS_DB', 12)
password = os.getenv('REDIS_PASSWORD', 'khd2022!')
self.client = redis.StrictRedis(host=host, port=port, db=db, password=password, decode_responses=True)
def get_client(self): def get_client(self):
return self.client return self.client
\ No newline at end of file
...@@ -11,6 +11,7 @@ from decimal import Decimal ...@@ -11,6 +11,7 @@ from decimal import Decimal
import pandas as pd import pandas as pd
from DrissionPage import ChromiumPage from DrissionPage import ChromiumPage
from DrissionPage.errors import ElementNotFoundError from DrissionPage.errors import ElementNotFoundError
from dotenv import load_dotenv
from lxml import etree from lxml import etree
from helper import helper, excel, file, domain, logger, redisx, rabbitmq from helper import helper, excel, file, domain, logger, redisx, rabbitmq
...@@ -19,6 +20,8 @@ country = None ...@@ -19,6 +20,8 @@ country = None
payeeCode = None payeeCode = None
shop_code = None shop_code = None
load_dotenv()
log = logger.ConsoleLog() log = logger.ConsoleLog()
rdb = redisx.RedisClient() rdb = redisx.RedisClient()
...@@ -410,17 +413,16 @@ def main(): ...@@ -410,17 +413,16 @@ def main():
def push_data_queue(file_name): def push_data_queue(file_name):
# rabbit = rabbitmq.RabbitMQClient(host='39.108.185.244', port=5672, username='test', password='khd123456') rabbit = rabbitmq.RabbitMQClient()
rabbit = rabbitmq.RabbitMQClient(host='47.107.31.4', port=5672, username='khd_rabbitmq', password='KHDrq2024%,,') rabbit.connect(queue='refund_robot', routing_key='refund_robot', exchange='reports')
rabbit.connect(queue='return_robot', routing_key='return_robot', exchange='reports')
data = pd.read_excel(file_name) data = pd.read_excel(file_name)
for _, item_row in data.iterrows(): for _, item_row in data.iterrows():
push_data = { push_data = {
'payment_number': item_row.get('Payment Number', ''), # 订单id 'payment_number': item_row.get('Payment Number', ''), # 订单id
'order_date': item_row.get('Invoice Date', ''), # 发票时间 'order_date': str(item_row.get('Invoice Date', '')), # 发票时间
'payment_date': item_row.get('Payment Date', ''), # 支付时间 'payment_date': str(item_row.get('Payment Date', '')), # 支付时间
'order_no': item_row.get('Invoice Number', 0), # 订单号 'order_no': item_row.get('Invoice Number', 0), # 订单号
'payment_type': item_row.get('Description', ''), # Description 'payment_type': item_row.get('Description', ''), # Description
'platform_payable_amount': item_row.get('Invoice Amount', ''), # 平台应付金额 'platform_payable_amount': item_row.get('Invoice Amount', ''), # 平台应付金额
...@@ -428,8 +430,6 @@ def push_data_queue(file_name): ...@@ -428,8 +430,6 @@ def push_data_queue(file_name):
'actual_payment': item_row.get('Amount Paid', ''), # 实际支付金额 'actual_payment': item_row.get('Amount Paid', ''), # 实际支付金额
'currency': item_row.get('Invoice Currency', ''), # 货币 'currency': item_row.get('Invoice Currency', ''), # 货币
'shop_code': shop_code, # 店铺code 'shop_code': shop_code, # 店铺code
'group_name': item_row.get('Group Name', ""), # 组别 运营一组 运营二组
'group_code': item_row.get('Group Code', ""), # 组别 T1 T2
} }
# 推送数据 # 推送数据
......
...@@ -7,12 +7,15 @@ from datetime import datetime ...@@ -7,12 +7,15 @@ from datetime import datetime
import pandas as pd import pandas as pd
from DrissionPage import ChromiumPage from DrissionPage import ChromiumPage
from DrissionPage.errors import ElementNotFoundError from DrissionPage.errors import ElementNotFoundError
from dotenv import load_dotenv
from helper import helper, excel, file, domain, logger, api, rabbitmq from helper import helper, excel, file, domain, logger, api, rabbitmq
country = None country = None
shop_code = None shop_code = None
load_dotenv()
log = logger.ConsoleLog() log = logger.ConsoleLog()
page = ChromiumPage() page = ChromiumPage()
...@@ -114,15 +117,10 @@ def main(): ...@@ -114,15 +117,10 @@ def main():
def push_data_queue(file_name): def push_data_queue(file_name):
# rabbit = rabbitmq.RabbitMQClient(host='39.108.185.244', port=5672, username='test', password='khd123456') rabbit = rabbitmq.RabbitMQClient()
rabbit = rabbitmq.RabbitMQClient(host='47.107.31.4', port=5672, username='khd_rabbitmq', password='KHDrq2024%,,')
rabbit.connect(queue='return_robot', routing_key='return_robot', exchange='reports') rabbit.connect(queue='return_robot', routing_key='return_robot', exchange='reports')
data = pd.read_excel(file_name) data = pd.read_excel(file_name)
# 使用 format='%m/%d/%Y' 解析日期
data['Return Date'] = pd.to_datetime(data['Return Date'], format='%m/%d/%Y')
# 将日期格式化为 'YYYY-MM-DD' 字符串,去掉时间部分
data['Return Date'].dt.strftime('%Y-%m-%d')
for _, item_row in data.iterrows(): for _, item_row in data.iterrows():
push_data = { push_data = {
......
...@@ -8,6 +8,7 @@ from urllib.parse import urlparse, parse_qs ...@@ -8,6 +8,7 @@ from urllib.parse import urlparse, parse_qs
import pandas as pd import pandas as pd
from DrissionPage import ChromiumPage from DrissionPage import ChromiumPage
from DrissionPage.errors import ElementNotFoundError from DrissionPage.errors import ElementNotFoundError
from dotenv import load_dotenv
from lxml import etree from lxml import etree
from helper import helper, excel, file, domain, logger, api, rabbitmq from helper import helper, excel, file, domain, logger, api, rabbitmq
...@@ -15,6 +16,8 @@ from helper import helper, excel, file, domain, logger, api, rabbitmq ...@@ -15,6 +16,8 @@ from helper import helper, excel, file, domain, logger, api, rabbitmq
country = None country = None
shop_code = None shop_code = None
load_dotenv()
log = logger.ConsoleLog() log = logger.ConsoleLog()
page = ChromiumPage() page = ChromiumPage()
...@@ -307,8 +310,7 @@ def save_excel(sheet_data, large_sheet_data, new_file_name): ...@@ -307,8 +310,7 @@ def save_excel(sheet_data, large_sheet_data, new_file_name):
def push_data_queue(file_name): def push_data_queue(file_name):
# rabbit = rabbitmq.RabbitMQClient(host='39.108.185.244', port=5672, username='test', password='khd123456') rabbit = rabbitmq.RabbitMQClient()
rabbit = rabbitmq.RabbitMQClient(host='47.107.31.4', port=5672, username='khd_rabbitmq', password='KHDrq2024%,,')
rabbit.connect(queue='spa_robot', routing_key='spa_robot', exchange='reports') rabbit.connect(queue='spa_robot', routing_key='spa_robot', exchange='reports')
log.info("开始读取数据....") log.info("开始读取数据....")
data_dict = pd.read_excel(file_name, sheet_name=None) data_dict = pd.read_excel(file_name, sheet_name=None)
......
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