71 lines
3.1 KiB
Python
71 lines
3.1 KiB
Python
|
|
"""
|
||
|
|
数据库初始化 API
|
||
|
|
"""
|
||
|
|
from flask import jsonify
|
||
|
|
from lib.db import execute_update
|
||
|
|
from . import init_bp
|
||
|
|
|
||
|
|
|
||
|
|
@init_bp.route('/init-tables', methods=['POST'])
|
||
|
|
def init_tables():
|
||
|
|
"""初始化数据库表"""
|
||
|
|
try:
|
||
|
|
# 创建配置表
|
||
|
|
create_config_table = """
|
||
|
|
CREATE TABLE IF NOT EXISTS t_daily_report_config (
|
||
|
|
id BIGINT NOT NULL COMMENT '配置 ID',
|
||
|
|
config_name VARCHAR(100) NOT NULL COMMENT '配置名称',
|
||
|
|
split_type VARCHAR(20) NOT NULL COMMENT '拆分方式',
|
||
|
|
split_value VARCHAR(100) NOT NULL COMMENT '拆分值',
|
||
|
|
split_name VARCHAR(200) NULL COMMENT '拆分显示名称',
|
||
|
|
selected_fields VARCHAR(3000) NOT NULL COMMENT '选择的字段列表',
|
||
|
|
sum_fields VARCHAR(3000) NULL COMMENT '求和字段列表',
|
||
|
|
is_active TINYINT NULL COMMENT '是否启用',
|
||
|
|
sort_order INT NULL COMMENT '排序顺序',
|
||
|
|
create_time DATETIME NULL COMMENT '创建时间',
|
||
|
|
update_time DATETIME NULL COMMENT '更新时间'
|
||
|
|
)
|
||
|
|
UNIQUE KEY(id)
|
||
|
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||
|
|
PROPERTIES("replication_num" = "1")
|
||
|
|
"""
|
||
|
|
execute_update(create_config_table)
|
||
|
|
|
||
|
|
# 创建历史表
|
||
|
|
create_history_table = """
|
||
|
|
CREATE TABLE IF NOT EXISTS t_daily_report_history (
|
||
|
|
id BIGINT NOT NULL COMMENT '历史 ID',
|
||
|
|
report_date VARCHAR(20) NULL COMMENT '报表日期',
|
||
|
|
start_time VARCHAR(50) NULL COMMENT '开始时间',
|
||
|
|
end_time VARCHAR(50) NULL COMMENT '结束时间',
|
||
|
|
split_type VARCHAR(20) NULL COMMENT '拆分方式',
|
||
|
|
split_value VARCHAR(100) NULL COMMENT '拆分值',
|
||
|
|
split_name VARCHAR(200) NULL COMMENT '拆分显示名称',
|
||
|
|
config_id BIGINT NULL COMMENT '配置 ID',
|
||
|
|
config_name VARCHAR(200) NULL COMMENT '配置名称',
|
||
|
|
total_orders INT NULL COMMENT '订单总数',
|
||
|
|
total_amount DECIMAL(10,2) NULL COMMENT '总金额',
|
||
|
|
sum_results VARCHAR(2000) NULL COMMENT '求和结果',
|
||
|
|
file_path VARCHAR(500) NULL COMMENT '文件路径',
|
||
|
|
status TINYINT NULL COMMENT '状态',
|
||
|
|
create_time DATETIME NULL COMMENT '创建时间'
|
||
|
|
)
|
||
|
|
UNIQUE KEY(id)
|
||
|
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||
|
|
PROPERTIES("replication_num" = "1")
|
||
|
|
"""
|
||
|
|
execute_update(create_history_table)
|
||
|
|
|
||
|
|
# 为已存在的表添加 config_name 字段(如果不存在)
|
||
|
|
try:
|
||
|
|
execute_update("""
|
||
|
|
ALTER TABLE t_daily_report_history
|
||
|
|
ADD COLUMN IF NOT EXISTS config_name VARCHAR(200) NULL COMMENT '配置名称'
|
||
|
|
""")
|
||
|
|
except Exception as e:
|
||
|
|
print(f"[数据库] 添加 config_name 字段时出错(可能已存在): {e}")
|
||
|
|
|
||
|
|
return jsonify({'success': True, 'message': '数据库表初始化成功'})
|
||
|
|
except Exception as e:
|
||
|
|
return jsonify({'success': False, 'message': str(e)}), 500
|