fix: auto-fix code issues (cron)
- 修复重复导入/字段 - 修复异常处理 - 修复PEP8格式问题 (816+ 处) - 添加缺失的导入 (json, re) - 统一SQL查询格式 - 修复赋值语句空格问题 修复文件: - db_manager.py (96处) - search_manager.py (77处) - ops_manager.py (66处) - developer_ecosystem_manager.py (68处) - growth_manager.py (60处) - enterprise_manager.py (61处) - tenant_manager.py (57处) - plugin_manager.py (48处) - subscription_manager.py (46处) - security_manager.py (29处) - workflow_manager.py (32处) - localization_manager.py (31处) - api_key_manager.py (20处) - ai_manager.py (23处) - performance_manager.py (24处) - neo4j_manager.py (25处) - collaboration_manager.py (33处) - test_phase8_task8.py (16处) - test_phase8_task6.py (4处) - knowledge_reasoner.py (添加import json) - llm_client.py (添加import json)
This commit is contained in:
@@ -515,7 +515,7 @@ class GrowthManager:
|
||||
with self._get_db() as conn:
|
||||
# 检查用户画像是否存在
|
||||
row = conn.execute(
|
||||
"SELECT * FROM user_profiles WHERE tenant_id = ? AND user_id = ?",
|
||||
"SELECT * FROM user_profiles WHERE tenant_id = ? AND user_id = ?",
|
||||
(tenant_id, user_id),
|
||||
).fetchone()
|
||||
|
||||
@@ -531,9 +531,9 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE user_profiles
|
||||
SET last_seen = ?, total_events = total_events + 1,
|
||||
feature_usage = ?, updated_at = ?
|
||||
WHERE id = ?
|
||||
SET last_seen = ?, total_events = total_events + 1,
|
||||
feature_usage = ?, updated_at = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
(now, json.dumps(feature_usage), now, row["id"]),
|
||||
)
|
||||
@@ -572,7 +572,7 @@ class GrowthManager:
|
||||
"""获取用户画像"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
"SELECT * FROM user_profiles WHERE tenant_id = ? AND user_id = ?",
|
||||
"SELECT * FROM user_profiles WHERE tenant_id = ? AND user_id = ?",
|
||||
(tenant_id, user_id),
|
||||
).fetchone()
|
||||
|
||||
@@ -592,7 +592,7 @@ class GrowthManager:
|
||||
COUNT(DISTINCT session_id) as total_sessions,
|
||||
COUNT(DISTINCT date(timestamp)) as active_days
|
||||
FROM analytics_events
|
||||
WHERE tenant_id = ?
|
||||
WHERE tenant_id = ?
|
||||
"""
|
||||
params = [tenant_id]
|
||||
|
||||
@@ -609,7 +609,7 @@ class GrowthManager:
|
||||
type_query = """
|
||||
SELECT event_type, COUNT(*) as count
|
||||
FROM analytics_events
|
||||
WHERE tenant_id = ?
|
||||
WHERE tenant_id = ?
|
||||
"""
|
||||
type_params = [tenant_id]
|
||||
|
||||
@@ -678,7 +678,7 @@ class GrowthManager:
|
||||
"""分析漏斗转化率"""
|
||||
with self._get_db() as conn:
|
||||
funnel_row = conn.execute(
|
||||
"SELECT * FROM funnels WHERE id = ?", (funnel_id,)
|
||||
"SELECT * FROM funnels WHERE id = ?", (funnel_id,)
|
||||
).fetchone()
|
||||
|
||||
if not funnel_row:
|
||||
@@ -701,7 +701,7 @@ class GrowthManager:
|
||||
query = """
|
||||
SELECT COUNT(DISTINCT user_id) as user_count
|
||||
FROM analytics_events
|
||||
WHERE event_name = ? AND timestamp >= ? AND timestamp <= ?
|
||||
WHERE event_name = ? AND timestamp >= ? AND timestamp <= ?
|
||||
"""
|
||||
row = conn.execute(
|
||||
query, (event_name, period_start.isoformat(), period_end.isoformat())
|
||||
@@ -763,10 +763,10 @@ class GrowthManager:
|
||||
cohort_query = """
|
||||
SELECT DISTINCT user_id
|
||||
FROM analytics_events
|
||||
WHERE tenant_id = ? AND date(timestamp) = date(?)
|
||||
WHERE tenant_id = ? AND date(timestamp) = date(?)
|
||||
AND user_id IN (
|
||||
SELECT user_id FROM user_profiles
|
||||
WHERE tenant_id = ? AND date(first_seen) = date(?)
|
||||
WHERE tenant_id = ? AND date(first_seen) = date(?)
|
||||
)
|
||||
"""
|
||||
cohort_rows = conn.execute(
|
||||
@@ -788,7 +788,7 @@ class GrowthManager:
|
||||
active_query = """
|
||||
SELECT COUNT(DISTINCT user_id) as active_count
|
||||
FROM analytics_events
|
||||
WHERE tenant_id = ? AND date(timestamp) = date(?)
|
||||
WHERE tenant_id = ? AND date(timestamp) = date(?)
|
||||
AND user_id IN ({})
|
||||
""".format(", ".join(["?" for _ in cohort_users]))
|
||||
|
||||
@@ -893,7 +893,7 @@ class GrowthManager:
|
||||
"""获取实验详情"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
"SELECT * FROM experiments WHERE id = ?", (experiment_id,)
|
||||
"SELECT * FROM experiments WHERE id = ?", (experiment_id,)
|
||||
).fetchone()
|
||||
|
||||
if row:
|
||||
@@ -902,11 +902,11 @@ class GrowthManager:
|
||||
|
||||
def list_experiments(self, tenant_id: str, status: ExperimentStatus = None) -> list[Experiment]:
|
||||
"""列出实验"""
|
||||
query = "SELECT * FROM experiments WHERE tenant_id = ?"
|
||||
query = "SELECT * FROM experiments WHERE tenant_id = ?"
|
||||
params = [tenant_id]
|
||||
|
||||
if status:
|
||||
query += " AND status = ?"
|
||||
query += " AND status = ?"
|
||||
params.append(status.value)
|
||||
|
||||
query += " ORDER BY created_at DESC"
|
||||
@@ -927,7 +927,7 @@ class GrowthManager:
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
"""SELECT variant_id FROM experiment_assignments
|
||||
WHERE experiment_id = ? AND user_id = ?""",
|
||||
WHERE experiment_id = ? AND user_id = ?""",
|
||||
(experiment_id, user_id),
|
||||
).fetchone()
|
||||
|
||||
@@ -1067,7 +1067,7 @@ class GrowthManager:
|
||||
"""
|
||||
SELECT COUNT(DISTINCT user_id) as sample_size
|
||||
FROM experiment_assignments
|
||||
WHERE experiment_id = ? AND variant_id = ?
|
||||
WHERE experiment_id = ? AND variant_id = ?
|
||||
""",
|
||||
(experiment_id, variant_id),
|
||||
).fetchone()
|
||||
@@ -1082,7 +1082,7 @@ class GrowthManager:
|
||||
COUNT(*) as metric_count,
|
||||
SUM(metric_value) as total_value
|
||||
FROM experiment_metrics
|
||||
WHERE experiment_id = ? AND variant_id = ? AND metric_name = ?
|
||||
WHERE experiment_id = ? AND variant_id = ? AND metric_name = ?
|
||||
""",
|
||||
(experiment_id, variant_id, experiment.primary_metric),
|
||||
).fetchone()
|
||||
@@ -1137,8 +1137,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE experiments
|
||||
SET status = ?, start_date = ?, updated_at = ?
|
||||
WHERE id = ? AND status = ?
|
||||
SET status = ?, start_date = ?, updated_at = ?
|
||||
WHERE id = ? AND status = ?
|
||||
""",
|
||||
(
|
||||
ExperimentStatus.RUNNING.value,
|
||||
@@ -1159,8 +1159,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE experiments
|
||||
SET status = ?, end_date = ?, updated_at = ?
|
||||
WHERE id = ? AND status = ?
|
||||
SET status = ?, end_date = ?, updated_at = ?
|
||||
WHERE id = ? AND status = ?
|
||||
""",
|
||||
(
|
||||
ExperimentStatus.COMPLETED.value,
|
||||
@@ -1248,7 +1248,7 @@ class GrowthManager:
|
||||
"""获取邮件模板"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
"SELECT * FROM email_templates WHERE id = ?", (template_id,)
|
||||
"SELECT * FROM email_templates WHERE id = ?", (template_id,)
|
||||
).fetchone()
|
||||
|
||||
if row:
|
||||
@@ -1259,11 +1259,11 @@ class GrowthManager:
|
||||
self, tenant_id: str, template_type: EmailTemplateType = None
|
||||
) -> list[EmailTemplate]:
|
||||
"""列出邮件模板"""
|
||||
query = "SELECT * FROM email_templates WHERE tenant_id = ? AND is_active = 1"
|
||||
query = "SELECT * FROM email_templates WHERE tenant_id = ? AND is_active = 1"
|
||||
params = [tenant_id]
|
||||
|
||||
if template_type:
|
||||
query += " AND template_type = ?"
|
||||
query += " AND template_type = ?"
|
||||
params.append(template_type.value)
|
||||
|
||||
query += " ORDER BY created_at DESC"
|
||||
@@ -1398,8 +1398,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE email_logs
|
||||
SET status = ?, sent_at = ?, subject = ?
|
||||
WHERE campaign_id = ? AND user_id = ?
|
||||
SET status = ?, sent_at = ?, subject = ?
|
||||
WHERE campaign_id = ? AND user_id = ?
|
||||
""",
|
||||
(EmailStatus.SENDING.value, now, rendered["subject"], campaign_id, user_id),
|
||||
)
|
||||
@@ -1419,8 +1419,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE email_logs
|
||||
SET status = ?, delivered_at = ?
|
||||
WHERE campaign_id = ? AND user_id = ?
|
||||
SET status = ?, delivered_at = ?
|
||||
WHERE campaign_id = ? AND user_id = ?
|
||||
""",
|
||||
(EmailStatus.DELIVERED.value, now, campaign_id, user_id),
|
||||
)
|
||||
@@ -1428,8 +1428,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE email_logs
|
||||
SET status = ?, error_message = ?
|
||||
WHERE campaign_id = ? AND user_id = ?
|
||||
SET status = ?, error_message = ?
|
||||
WHERE campaign_id = ? AND user_id = ?
|
||||
""",
|
||||
(EmailStatus.FAILED.value, "Send failed", campaign_id, user_id),
|
||||
)
|
||||
@@ -1442,8 +1442,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE email_logs
|
||||
SET status = ?, error_message = ?
|
||||
WHERE campaign_id = ? AND user_id = ?
|
||||
SET status = ?, error_message = ?
|
||||
WHERE campaign_id = ? AND user_id = ?
|
||||
""",
|
||||
(EmailStatus.FAILED.value, str(e), campaign_id, user_id),
|
||||
)
|
||||
@@ -1454,7 +1454,7 @@ class GrowthManager:
|
||||
"""发送整个营销活动"""
|
||||
with self._get_db() as conn:
|
||||
campaign_row = conn.execute(
|
||||
"SELECT * FROM email_campaigns WHERE id = ?", (campaign_id,)
|
||||
"SELECT * FROM email_campaigns WHERE id = ?", (campaign_id,)
|
||||
).fetchone()
|
||||
|
||||
if not campaign_row:
|
||||
@@ -1463,14 +1463,14 @@ class GrowthManager:
|
||||
# 获取待发送的邮件
|
||||
logs = conn.execute(
|
||||
"""SELECT * FROM email_logs
|
||||
WHERE campaign_id = ? AND status IN (?, ?)""",
|
||||
WHERE campaign_id = ? AND status IN (?, ?)""",
|
||||
(campaign_id, EmailStatus.DRAFT.value, EmailStatus.SCHEDULED.value),
|
||||
).fetchall()
|
||||
|
||||
# 更新活动状态
|
||||
now = datetime.now().isoformat()
|
||||
conn.execute(
|
||||
"UPDATE email_campaigns SET status = ?, started_at = ? WHERE id = ?",
|
||||
"UPDATE email_campaigns SET status = ?, started_at = ? WHERE id = ?",
|
||||
("sending", now, campaign_id),
|
||||
)
|
||||
conn.commit()
|
||||
@@ -1498,8 +1498,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE email_campaigns
|
||||
SET status = ?, completed_at = ?, sent_count = ?
|
||||
WHERE id = ?
|
||||
SET status = ?, completed_at = ?, sent_count = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
("completed", now, success_count, campaign_id),
|
||||
)
|
||||
@@ -1575,7 +1575,7 @@ class GrowthManager:
|
||||
"""触发自动化工作流"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
"SELECT * FROM automation_workflows WHERE id = ? AND is_active = 1",
|
||||
"SELECT * FROM automation_workflows WHERE id = ? AND is_active = 1",
|
||||
(workflow_id,),
|
||||
).fetchone()
|
||||
|
||||
@@ -1594,7 +1594,7 @@ class GrowthManager:
|
||||
|
||||
# 更新执行计数
|
||||
conn.execute(
|
||||
"UPDATE automation_workflows SET execution_count = execution_count + 1 WHERE id = ?",
|
||||
"UPDATE automation_workflows SET execution_count = execution_count + 1 WHERE id = ?",
|
||||
(workflow_id,),
|
||||
)
|
||||
conn.commit()
|
||||
@@ -1699,7 +1699,7 @@ class GrowthManager:
|
||||
with self._get_db() as conn:
|
||||
count_row = conn.execute(
|
||||
"""SELECT COUNT(*) as count FROM referrals
|
||||
WHERE program_id = ? AND referrer_id = ? AND status != ?""",
|
||||
WHERE program_id = ? AND referrer_id = ? AND status != ?""",
|
||||
(program_id, referrer_id, ReferralStatus.EXPIRED.value),
|
||||
).fetchone()
|
||||
|
||||
@@ -1769,7 +1769,7 @@ class GrowthManager:
|
||||
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
"SELECT 1 FROM referrals WHERE referral_code = ?", (code,)
|
||||
"SELECT 1 FROM referrals WHERE referral_code = ?", (code,)
|
||||
).fetchone()
|
||||
|
||||
if not row:
|
||||
@@ -1779,7 +1779,7 @@ class GrowthManager:
|
||||
"""获取推荐计划"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
"SELECT * FROM referral_programs WHERE id = ?", (program_id,)
|
||||
"SELECT * FROM referral_programs WHERE id = ?", (program_id,)
|
||||
).fetchone()
|
||||
|
||||
if row:
|
||||
@@ -1791,7 +1791,7 @@ class GrowthManager:
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
"""SELECT * FROM referrals
|
||||
WHERE referral_code = ? AND status = ? AND expires_at > ?""",
|
||||
WHERE referral_code = ? AND status = ? AND expires_at > ?""",
|
||||
(referral_code, ReferralStatus.PENDING.value, datetime.now().isoformat()),
|
||||
).fetchone()
|
||||
|
||||
@@ -1802,8 +1802,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE referrals
|
||||
SET referee_id = ?, status = ?, converted_at = ?
|
||||
WHERE id = ?
|
||||
SET referee_id = ?, status = ?, converted_at = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
(referee_id, ReferralStatus.CONVERTED.value, now, row["id"]),
|
||||
)
|
||||
@@ -1814,7 +1814,7 @@ class GrowthManager:
|
||||
def reward_referral(self, referral_id: str) -> bool:
|
||||
"""发放推荐奖励"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM referrals WHERE id = ?", (referral_id,)).fetchone()
|
||||
row = conn.execute("SELECT * FROM referrals WHERE id = ?", (referral_id,)).fetchone()
|
||||
|
||||
if not row or row["status"] != ReferralStatus.CONVERTED.value:
|
||||
return False
|
||||
@@ -1823,8 +1823,8 @@ class GrowthManager:
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE referrals
|
||||
SET status = ?, referrer_rewarded = 1, referee_rewarded = 1, rewarded_at = ?
|
||||
WHERE id = ?
|
||||
SET status = ?, referrer_rewarded = 1, referee_rewarded = 1, rewarded_at = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
(ReferralStatus.REWARDED.value, now, referral_id),
|
||||
)
|
||||
@@ -1839,13 +1839,13 @@ class GrowthManager:
|
||||
"""
|
||||
SELECT
|
||||
COUNT(*) as total_referrals,
|
||||
SUM(CASE WHEN status = ? THEN 1 ELSE 0 END) as pending,
|
||||
SUM(CASE WHEN status = ? THEN 1 ELSE 0 END) as converted,
|
||||
SUM(CASE WHEN status = ? THEN 1 ELSE 0 END) as rewarded,
|
||||
SUM(CASE WHEN status = ? THEN 1 ELSE 0 END) as expired,
|
||||
SUM(CASE WHEN status = ? THEN 1 ELSE 0 END) as pending,
|
||||
SUM(CASE WHEN status = ? THEN 1 ELSE 0 END) as converted,
|
||||
SUM(CASE WHEN status = ? THEN 1 ELSE 0 END) as rewarded,
|
||||
SUM(CASE WHEN status = ? THEN 1 ELSE 0 END) as expired,
|
||||
COUNT(DISTINCT referrer_id) as unique_referrers
|
||||
FROM referrals
|
||||
WHERE program_id = ?
|
||||
WHERE program_id = ?
|
||||
""",
|
||||
(
|
||||
ReferralStatus.PENDING.value,
|
||||
@@ -1936,8 +1936,8 @@ class GrowthManager:
|
||||
rows = conn.execute(
|
||||
"""
|
||||
SELECT * FROM team_incentives
|
||||
WHERE tenant_id = ? AND is_active = 1
|
||||
AND target_tier = ? AND min_team_size <= ?
|
||||
WHERE tenant_id = ? AND is_active = 1
|
||||
AND target_tier = ? AND min_team_size <= ?
|
||||
AND valid_from <= ? AND valid_until >= ?
|
||||
""",
|
||||
(tenant_id, current_tier, team_size, now, now),
|
||||
@@ -1961,7 +1961,7 @@ class GrowthManager:
|
||||
COUNT(*) as total_events,
|
||||
COUNT(DISTINCT session_id) as sessions
|
||||
FROM analytics_events
|
||||
WHERE tenant_id = ? AND timestamp >= ?
|
||||
WHERE tenant_id = ? AND timestamp >= ?
|
||||
""",
|
||||
(tenant_id, today_start.isoformat()),
|
||||
).fetchone()
|
||||
@@ -1971,7 +1971,7 @@ class GrowthManager:
|
||||
"""
|
||||
SELECT event_name, event_type, timestamp, user_id
|
||||
FROM analytics_events
|
||||
WHERE tenant_id = ?
|
||||
WHERE tenant_id = ?
|
||||
ORDER BY timestamp DESC
|
||||
LIMIT 20
|
||||
""",
|
||||
@@ -1983,7 +1983,7 @@ class GrowthManager:
|
||||
"""
|
||||
SELECT event_name, COUNT(*) as count
|
||||
FROM analytics_events
|
||||
WHERE tenant_id = ? AND timestamp >= ? AND event_type = ?
|
||||
WHERE tenant_id = ? AND timestamp >= ? AND event_type = ?
|
||||
GROUP BY event_name
|
||||
ORDER BY count DESC
|
||||
LIMIT 10
|
||||
@@ -2001,7 +2001,7 @@ class GrowthManager:
|
||||
"""
|
||||
SELECT COUNT(DISTINCT user_id) as count
|
||||
FROM analytics_events
|
||||
WHERE tenant_id = ? AND timestamp >= ? AND timestamp < ?
|
||||
WHERE tenant_id = ? AND timestamp >= ? AND timestamp < ?
|
||||
""",
|
||||
(tenant_id, hour_start.isoformat(), hour_end.isoformat()),
|
||||
).fetchone()
|
||||
|
||||
Reference in New Issue
Block a user