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
......@@ -8,3 +8,5 @@ requests==2.32.3
redis==5.0.8
pika==1.3.2
xmltodict==0.14.2
python-dotenv==1.0.1
paramiko==3.5.0
\ No newline at end of file
import os
import pika
import json
class RabbitMQClient:
def __init__(self, host='localhost', port='5672', username='guest', password='guest'):
"""
初始化 RabbitMQ 客户端,创建连接和通道。
:param host: RabbitMQ 主机地址
:param username: RabbitMQ 账号
:param password: RabbitMQ 密码
"""
def __init__(self):
host = os.getenv('RABBITMQ_HOST', '47.107.31.4')
port = os.getenv('RABBITMQ_PORT', 5672)
username = os.getenv('RABBITMQ_USER', 'khd_rabbitmq')
password = os.getenv('RABBITMQ_PASSWORD', 'KHDrq2024%,,')
self.host = host
self.port = port
......
# coding: utf-8
import os
import redis
class RedisClient:
_instance = None
def __new__(cls, *args, **kwargs):
def __new__(cls):
if not cls._instance:
cls._instance = super(RedisClient, cls).__new__(cls)
cls._instance._initialize(*args, **kwargs)
cls._instance._initialize()
return cls._instance
def _initialize(self, host='47.119.182.76', port=6379, db=12, password="khd2022!", decode_responses=True):
self.client = redis.StrictRedis(host=host, port=port, db=db, password=password,
decode_responses=decode_responses)
def _initialize(self):
host = os.getenv('REDIS_HOST', '47.119.182.76')
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):
return self.client
......@@ -11,6 +11,7 @@ from decimal import Decimal
import pandas as pd
from DrissionPage import ChromiumPage
from DrissionPage.errors import ElementNotFoundError
from dotenv import load_dotenv
from lxml import etree
from helper import helper, excel, file, domain, logger, redisx, rabbitmq
......@@ -19,6 +20,8 @@ country = None
payeeCode = None
shop_code = None
load_dotenv()
log = logger.ConsoleLog()
rdb = redisx.RedisClient()
......@@ -410,17 +413,16 @@ def main():
def push_data_queue(file_name):
# rabbit = rabbitmq.RabbitMQClient(host='39.108.185.244', port=5672, username='test', password='khd123456')
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 = rabbitmq.RabbitMQClient()
rabbit.connect(queue='refund_robot', routing_key='refund_robot', exchange='reports')
data = pd.read_excel(file_name)
for _, item_row in data.iterrows():
push_data = {
'payment_number': item_row.get('Payment Number', ''), # 订单id
'order_date': item_row.get('Invoice Date', ''), # 发票时间
'payment_date': item_row.get('Payment Date', ''), # 支付时间
'order_date': str(item_row.get('Invoice Date', '')), # 发票时间
'payment_date': str(item_row.get('Payment Date', '')), # 支付时间
'order_no': item_row.get('Invoice Number', 0), # 订单号
'payment_type': item_row.get('Description', ''), # Description
'platform_payable_amount': item_row.get('Invoice Amount', ''), # 平台应付金额
......@@ -428,8 +430,6 @@ def push_data_queue(file_name):
'actual_payment': item_row.get('Amount Paid', ''), # 实际支付金额
'currency': item_row.get('Invoice Currency', ''), # 货币
'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
import pandas as pd
from DrissionPage import ChromiumPage
from DrissionPage.errors import ElementNotFoundError
from dotenv import load_dotenv
from helper import helper, excel, file, domain, logger, api, rabbitmq
country = None
shop_code = None
load_dotenv()
log = logger.ConsoleLog()
page = ChromiumPage()
......@@ -114,15 +117,10 @@ def main():
def push_data_queue(file_name):
# rabbit = rabbitmq.RabbitMQClient(host='39.108.185.244', port=5672, username='test', password='khd123456')
rabbit = rabbitmq.RabbitMQClient(host='47.107.31.4', port=5672, username='khd_rabbitmq', password='KHDrq2024%,,')
rabbit = rabbitmq.RabbitMQClient()
rabbit.connect(queue='return_robot', routing_key='return_robot', exchange='reports')
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():
push_data = {
......
......@@ -8,6 +8,7 @@ from urllib.parse import urlparse, parse_qs
import pandas as pd
from DrissionPage import ChromiumPage
from DrissionPage.errors import ElementNotFoundError
from dotenv import load_dotenv
from lxml import etree
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
shop_code = None
load_dotenv()
log = logger.ConsoleLog()
page = ChromiumPage()
......@@ -307,8 +310,7 @@ def save_excel(sheet_data, large_sheet_data, new_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(host='47.107.31.4', port=5672, username='khd_rabbitmq', password='KHDrq2024%,,')
rabbit = rabbitmq.RabbitMQClient()
rabbit.connect(queue='spa_robot', routing_key='spa_robot', exchange='reports')
log.info("开始读取数据....")
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