初始化
This commit is contained in:
80
backend/app/init_data.py
Normal file
80
backend/app/init_data.py
Normal file
@@ -0,0 +1,80 @@
|
||||
from sqlalchemy.orm import Session
|
||||
from app.models import User, Setting, ProductCategory
|
||||
from app.config import get_settings
|
||||
from passlib.context import CryptContext
|
||||
|
||||
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
||||
settings = get_settings()
|
||||
|
||||
|
||||
def init_default_data(db: Session):
|
||||
"""初始化默认数据"""
|
||||
|
||||
# 1. 创建默认管理员账号
|
||||
admin = db.query(User).filter(User.username == "admin").first()
|
||||
if not admin:
|
||||
admin = User(
|
||||
username="admin",
|
||||
password_hash=pwd_context.hash("admin123"),
|
||||
role="admin",
|
||||
name="系统管理员",
|
||||
status=1
|
||||
)
|
||||
db.add(admin)
|
||||
db.commit()
|
||||
print("✅ 默认管理员账号已创建")
|
||||
print(" 用户名: admin")
|
||||
print(" 密码: admin123")
|
||||
|
||||
# 2. 初始化默认配置
|
||||
default_settings = [
|
||||
("salary_base_min", str(settings.DEFAULT_SALARY_BASE_MIN), "底薪范围最小值(元)", "salary"),
|
||||
("salary_base_max", str(settings.DEFAULT_SALARY_BASE_MAX), "底薪范围最大值(元)", "salary"),
|
||||
("salary_performance", str(settings.DEFAULT_SALARY_PERFORMANCE), "绩效奖金基数(元)", "salary"),
|
||||
("salary_performance_threshold", str(settings.DEFAULT_SALARY_PERFORMANCE_THRESHOLD), "绩效完成率阈值(%)", "salary"),
|
||||
("commission_ai_model", str(settings.DEFAULT_COMMISSION_AI_MODEL), "大模型类产品提成比例", "commission"),
|
||||
("commission_cloud_base", str(settings.DEFAULT_COMMISSION_CLOUD_BASE), "云基础类产品提成比例", "commission"),
|
||||
("commission_main_product", str(settings.DEFAULT_COMMISSION_MAIN_PRODUCT), "主推产品提成比例", "commission"),
|
||||
("agent_employee_commission", str(settings.DEFAULT_AGENT_EMPLOYEE_COMMISSION), "员工二级代理提成比例", "agent"),
|
||||
("agent_profit_share_min", str(settings.DEFAULT_AGENT_PROFIT_SHARE_MIN), "二级代理分佣比例最小值", "agent"),
|
||||
("agent_profit_share_max", str(settings.DEFAULT_AGENT_PROFIT_SHARE_MAX), "二级代理分佣比例最大值", "agent"),
|
||||
("company_name", "火山引擎渠道合作伙伴", "公司名称", "company"),
|
||||
]
|
||||
|
||||
for key, value, desc, group in default_settings:
|
||||
existing = db.query(Setting).filter(Setting.setting_key == key).first()
|
||||
if not existing:
|
||||
setting = Setting(
|
||||
setting_key=key,
|
||||
setting_value=value,
|
||||
description=desc,
|
||||
group_name=group
|
||||
)
|
||||
db.add(setting)
|
||||
|
||||
db.commit()
|
||||
print("✅ 默认系统配置已初始化")
|
||||
|
||||
# 3. 初始化默认产品分类
|
||||
default_categories = [
|
||||
("大模型类产品", "ai_model", 0.03, 0.30, 0),
|
||||
("云基础类产品", "cloud_base", 0.10, 0.25, 0),
|
||||
("主推产品-直播大师", "main_live_master", 0.08, 0.35, 1),
|
||||
("主推产品-创作Agent", "main_create_agent", 0.08, 0.35, 1),
|
||||
]
|
||||
|
||||
for name, code, commission, rebate, is_main in default_categories:
|
||||
existing = db.query(ProductCategory).filter(ProductCategory.code == code).first()
|
||||
if not existing:
|
||||
category = ProductCategory(
|
||||
name=name,
|
||||
code=code,
|
||||
commission_rate=commission,
|
||||
monthly_rebate=rebate,
|
||||
is_main_product=is_main,
|
||||
status=1
|
||||
)
|
||||
db.add(category)
|
||||
|
||||
db.commit()
|
||||
print("✅ 默认产品分类已初始化")
|
||||
Reference in New Issue
Block a user