18:38:36 - article_server - INFO - 日志系统已启动 - 记录器: article_server 18:38:36 - article_server - INFO - 主日志文件: logs/article_server.log 18:38:36 - article_server - INFO - 错误日志文件: logs/article_error.log 18:38:36 - article_server - INFO - 日志保留策略: 每天午夜分割,主日志保留3天 18:38:36 - article_server - INFO - 错误日志保留策略: 每天午夜分割,保留9天 18:38:36 - article_server - INFO - 万花筒API服务模块已加载 18:38:49 - article_server - INFO - [API访问] POST /api/auth/login - IP: 127.0.0.1 - User-Agent: python-requests/2.32.3 18:38:49 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 127.0.0.1 18:38:49 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 127.0.0.1 18:38:49 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430 18:38:49 - article_server - INFO - 数据库连接成功,字符集设置完成 18:38:49 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:38:49 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:38:49 - article_server - INFO - [SQL参数] ('13621242430', '13621242430') 18:38:49 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:38:49 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 0, 'xhs_account': None}] 18:38:49 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user010, 角色: admin, 企业: 测试企业10号, 企业ID: 10 18:38:49 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430 18:38:49 - article_server - WARNING - [用户登录失败] 密码错误: 13621242430, 用户名: user010, IP: 127.0.0.1 18:38:49 - article_server - INFO - [API响应] POST /api/auth/login - IP: 127.0.0.1 - 状态码: 401 18:38:58 - article_server - INFO - [API访问] POST /api/auth/login - IP: 127.0.0.1 - User-Agent: python-requests/2.32.3 18:38:58 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 127.0.0.1 18:38:58 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 127.0.0.1 18:38:58 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430 18:38:58 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:38:58 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:38:58 - article_server - INFO - [SQL参数] ('13621242430', '13621242430') 18:38:58 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:38:58 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 0, 'xhs_account': None}] 18:38:58 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user010, 角色: admin, 企业: 测试企业10号, 企业ID: 10 18:38:58 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430 18:38:58 - article_server - WARNING - [用户登录失败] 密码错误: 13621242430, 用户名: user010, IP: 127.0.0.1 18:38:58 - article_server - INFO - [API响应] POST /api/auth/login - IP: 127.0.0.1 - 状态码: 401 18:39:32 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:39:32 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212 18:39:32 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 104.244.91.212 18:39:32 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430 18:39:32 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:39:32 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:39:32 - article_server - INFO - [SQL参数] ('13621242430', '13621242430') 18:39:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:39:32 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 0, 'xhs_account': None}] 18:39:32 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user010, 角色: admin, 企业: 测试企业10号, 企业ID: 10 18:39:32 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430 18:39:32 - article_server - WARNING - [用户登录失败] 密码错误: 13621242430, 用户名: user010, IP: 104.244.91.212 18:39:32 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 401 18:39:43 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:39:43 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212 18:39:43 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 104.244.91.212 18:39:43 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430 18:39:43 - article_server - INFO - 数据库连接成功,字符集设置完成 18:39:43 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:39:43 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:39:43 - article_server - INFO - [SQL参数] ('13621242430', '13621242430') 18:39:43 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:39:43 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 0, 'xhs_account': None}] 18:39:43 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user010, 角色: admin, 企业: 测试企业10号, 企业ID: 10 18:39:43 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430 18:39:43 - article_server - WARNING - [用户登录失败] 密码错误: 13621242430, 用户名: user010, IP: 104.244.91.212 18:39:43 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 401 18:40:57 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:40:57 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212 18:40:57 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 104.244.91.212 18:40:57 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430 18:40:57 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:40:57 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:40:57 - article_server - INFO - [SQL参数] ('13621242430', '13621242430') 18:40:57 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:40:57 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 0, 'xhs_account': None}] 18:40:57 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user010, 角色: admin, 企业: 测试企业10号, 企业ID: 10 18:40:57 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430 18:40:57 - article_server - INFO - [用户登录] 密码验证成功, 用户名: user010, 角色: admin 18:40:57 - article_server - INFO - [用户登录] 开始生成token, 用户ID: 10, 角色: admin 18:40:57 - article_server - INFO - [Token生成] 用户: 13621242430, ID: 10, 角色: admin 18:40:57 - article_server - INFO - [用户登录成功] Token生成成功, 用户: user010, 角色: admin, 企业: 测试企业10号, IP: 104.244.91.212 18:40:57 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 200 18:40:57 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:40:57 - article_server - INFO - [Token验证成功] 用户ID: 10 18:40:57 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212 18:40:57 - article_server - INFO - [获取用户信息] 用户ID: 10, action: , IP: 104.244.91.212 18:40:57 - article_server - INFO - 数据库连接成功,字符集设置完成 18:40:57 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:40:57 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, password, is_bound_xhs, department, role, status, created_at, updated_at FROM ai_users u WHERE id = %s AND status != 'deleted' 18:40:57 - article_server - INFO - [SQL参数] (10,) 18:40:57 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:40:57 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'real_name': '测试用户10', 'email': None, 'phone': '13621242430', 'wechat_openid': 'ovoJF1z6ejXbXcWUHnvCw5HA0OeA', 'wechat_unionid': None, 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'is_bound_xhs': 0, 'department': '运营部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 21, 10, 40, 51)}] 18:40:57 - article_server - INFO - [SQL执行] 开始执行插入SQL 18:40:57 - article_server - INFO - [SQL语句] INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, request_data, response_data, status, error_message, created_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW()) 18:40:57 - article_server - INFO - [SQL参数] (10, 'get_user_info', 'user', 10, '查询用户信息: user010, action=', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None) 18:40:57 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 62749 18:40:57 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 10 | 目标: user#10 | 状态: success | IP: 104.244.91.212 | 日志ID: 62749 18:40:57 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200 18:40:58 - article_server - INFO - [API访问] GET /api/dashboard/overview - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:40:58 - article_server - INFO - [Token验证成功] 用户ID: 10 18:40:58 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:40:58 - article_server - INFO - [SQL语句] SELECT users_total, products_total, articles_total, published_total FROM ai_enterprises WHERE id = %s 18:40:58 - article_server - INFO - [SQL参数] (10,) 18:40:58 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:40:58 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 104.244.91.212 - 状态码: 404 18:40:58 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:40:58 - article_server - INFO - [Token验证成功] 用户ID: 10 18:40:58 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:40:58 - article_server - INFO - [SQL语句] SELECT r.id, r.publish_time, u.real_name as employee_name, p.name as product_name, 'success' as status FROM ai_article_published_records r LEFT JOIN ai_users u ON r.created_user_id = u.id LEFT JOIN ai_products p ON r.product_id = p.id WHERE r.enterprise_id = %s ORDER BY r.publish_time DESC LIMIT %s 18:40:58 - article_server - INFO - [SQL参数] (10, 5) 18:40:58 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:40:58 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'publish_time': datetime.datetime(2025, 12, 15, 17, 31, 15), 'employee_name': '测试用户10', 'product_name': '美白面膜1', 'status': 'success'}] 18:40:58 - article_server - INFO - 获取最近发布成功 18:40:58 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 104.244.91.212 - 状态码: 200 18:40:59 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:40:59 - article_server - INFO - [Token验证成功] 用户ID: 10 18:40:59 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:40:59 - article_server - INFO - [SQL语句] SELECT r.product_id, p.name as product_name, COUNT(*) as publishes, ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM ai_article_published_records WHERE enterprise_id = %s), 0) as percentage FROM ai_article_published_records r LEFT JOIN ai_products p ON r.product_id = p.id WHERE r.enterprise_id = %s GROUP BY r.product_id, p.name ORDER BY publishes DESC LIMIT %s 18:40:59 - article_server - INFO - [SQL参数] (10, 10, 4) 18:40:59 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:40:59 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 1, 'product_name': '美白面膜1', 'publishes': 1, 'percentage': Decimal('100')}] 18:40:59 - article_server - INFO - 获取热门产品成功 18:40:59 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 104.244.91.212 - 状态码: 200 18:41:12 - article_server - INFO - [API访问] POST /api/auth/login - IP: 127.0.0.1 - User-Agent: python-requests/2.32.3 18:41:12 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 127.0.0.1 18:41:12 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 127.0.0.1 18:41:12 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430 18:41:12 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:41:12 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:41:12 - article_server - INFO - [SQL参数] ('13621242430', '13621242430') 18:41:12 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:41:12 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 0, 'xhs_account': None}] 18:41:12 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user010, 角色: admin, 企业: 测试企业10号, 企业ID: 10 18:41:12 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430 18:41:12 - article_server - INFO - [用户登录] 密码验证成功, 用户名: user010, 角色: admin 18:41:12 - article_server - INFO - [用户登录] 开始生成token, 用户ID: 10, 角色: admin 18:41:12 - article_server - INFO - [Token生成] 用户: 13621242430, ID: 10, 角色: admin 18:41:12 - article_server - INFO - [用户登录成功] Token生成成功, 用户: user010, 角色: admin, 企业: 测试企业10号, IP: 127.0.0.1 18:41:12 - article_server - INFO - [API响应] POST /api/auth/login - IP: 127.0.0.1 - 状态码: 200 18:41:31 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:41:31 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212 18:41:31 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13800138001, IP: 104.244.91.212 18:41:31 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13800138001 18:41:31 - article_server - INFO - 数据库连接成功,字符集设置完成 18:41:31 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:41:31 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:41:31 - article_server - INFO - [SQL参数] ('13800138001', '13800138001') 18:41:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:41:31 - article_server - WARNING - [用户登录失败] 用户不存在或已禁用: 13800138001, IP: 104.244.91.212 18:41:31 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 401 18:41:35 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:41:35 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212 18:41:35 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13800138001, IP: 104.244.91.212 18:41:35 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13800138001 18:41:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:41:35 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:41:35 - article_server - INFO - [SQL参数] ('13800138001', '13800138001') 18:41:35 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:41:35 - article_server - WARNING - [用户登录失败] 用户不存在或已禁用: 13800138001, IP: 104.244.91.212 18:41:35 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 401 18:41:45 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:41:45 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212 18:41:45 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13800138001, IP: 104.244.91.212 18:41:45 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13800138001 18:41:45 - article_server - INFO - 数据库连接成功,字符集设置完成 18:41:45 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:41:45 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:41:45 - article_server - INFO - [SQL参数] ('13800138001', '13800138001') 18:41:45 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:41:45 - article_server - WARNING - [用户登录失败] 用户不存在或已禁用: 13800138001, IP: 104.244.91.212 18:41:45 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 401 18:43:30 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:30 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212 18:43:30 - article_server - INFO - [用户登录] 收到登录请求, 账号: 18211010472, IP: 104.244.91.212 18:43:30 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 18211010472 18:43:30 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:30 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:43:30 - article_server - INFO - [SQL参数] ('18211010472', '18211010472') 18:43:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 3, 'enterprise_id': 1, 'enterprise_name': '刘勇企业3号', 'username': 'user003', 'phone': '18211010472', 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'real_name': '刘勇', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': None}] 18:43:30 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user003, 角色: admin, 企业: 刘勇企业3号, 企业ID: 1 18:43:30 - article_server - INFO - [用户登录] 开始验证密码, 账号: 18211010472 18:43:30 - article_server - INFO - [用户登录] 密码验证成功, 用户名: user003, 角色: admin 18:43:30 - article_server - INFO - [用户登录] 开始生成token, 用户ID: 3, 角色: admin 18:43:30 - article_server - INFO - [Token生成] 用户: 18211010472, ID: 3, 角色: admin 18:43:30 - article_server - INFO - [用户登录成功] Token生成成功, 用户: user003, 角色: admin, 企业: 刘勇企业3号, IP: 104.244.91.212 18:43:30 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 200 18:43:30 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:30 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:30 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212 18:43:30 - article_server - INFO - [获取用户信息] 用户ID: 3, action: , IP: 104.244.91.212 18:43:30 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:30 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, password, is_bound_xhs, department, role, status, created_at, updated_at FROM ai_users u WHERE id = %s AND status != 'deleted' 18:43:30 - article_server - INFO - [SQL参数] (3,) 18:43:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 3, 'enterprise_id': 1, 'enterprise_name': '刘勇企业3号', 'username': 'user003', 'real_name': '刘勇', 'email': None, 'phone': '18211010472', 'wechat_openid': None, 'wechat_unionid': None, 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'is_bound_xhs': 1, 'department': '市场部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 21, 10, 43, 4)}] 18:43:30 - article_server - INFO - [SQL执行] 开始执行插入SQL 18:43:30 - article_server - INFO - [SQL语句] INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, request_data, response_data, status, error_message, created_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW()) 18:43:30 - article_server - INFO - [SQL参数] (3, 'get_user_info', 'user', 3, '查询用户信息: user003, action=', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None) 18:43:30 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 62806 18:43:30 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 3 | 目标: user#3 | 状态: success | IP: 104.244.91.212 | 日志ID: 62806 18:43:30 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200 18:43:31 - article_server - INFO - [API访问] GET /api/dashboard/overview - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:31 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:31 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:31 - article_server - INFO - [SQL语句] SELECT users_total, products_total, articles_total, published_total FROM ai_enterprises WHERE id = %s 18:43:31 - article_server - INFO - [SQL参数] (1,) 18:43:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:31 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 2, 'articles_total': 40, 'published_total': 0}] 18:43:31 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:31 - article_server - INFO - [SQL语句] SELECT COUNT(*) as month_published FROM ai_article_published_records WHERE enterprise_id = %s AND YEAR(publish_time) = YEAR(CURDATE()) AND MONTH(publish_time) = MONTH(CURDATE()) 18:43:31 - article_server - INFO - [SQL参数] (1,) 18:43:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:31 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 4}] 18:43:31 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:31 - article_server - INFO - [SQL语句] SELECT COUNT(*) as last_month_published FROM ai_article_published_records WHERE enterprise_id = %s AND YEAR(publish_time) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AND MONTH(publish_time) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) 18:43:31 - article_server - INFO - [SQL参数] (1,) 18:43:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:31 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}] 18:43:31 - article_server - INFO - 获取工作台概览成功 18:43:31 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 104.244.91.212 - 状态码: 200 18:43:31 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:31 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:32 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:32 - article_server - INFO - [SQL语句] SELECT r.id, r.publish_time, u.real_name as employee_name, p.name as product_name, 'success' as status FROM ai_article_published_records r LEFT JOIN ai_users u ON r.created_user_id = u.id LEFT JOIN ai_products p ON r.product_id = p.id WHERE r.enterprise_id = %s ORDER BY r.publish_time DESC LIMIT %s 18:43:32 - article_server - INFO - [SQL参数] (1, 5) 18:43:32 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录 18:43:32 - article_server - INFO - 获取最近发布成功 18:43:32 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 104.244.91.212 - 状态码: 200 18:43:32 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:32 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:32 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:32 - article_server - INFO - [SQL语句] SELECT r.product_id, p.name as product_name, COUNT(*) as publishes, ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM ai_article_published_records WHERE enterprise_id = %s), 0) as percentage FROM ai_article_published_records r LEFT JOIN ai_products p ON r.product_id = p.id WHERE r.enterprise_id = %s GROUP BY r.product_id, p.name ORDER BY publishes DESC LIMIT %s 18:43:32 - article_server - INFO - [SQL参数] (1, 1, 4) 18:43:32 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录 18:43:32 - article_server - INFO - 获取热门产品成功 18:43:32 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 104.244.91.212 - 状态码: 200 18:43:35 - article_server - INFO - [API访问] GET /api/enterprises/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:35 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:35 - article_server - WARNING - [权限检查失败] 用户角色 admin 不在允许的角色 ('enterprise',) 中 18:43:35 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 104.244.91.212 - 状态码: 403 18:43:40 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:40 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:40 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212 18:43:40 - article_server - INFO - [获取用户信息] 用户ID: 3, action: , IP: 104.244.91.212 18:43:40 - article_server - INFO - [API访问] GET /api/enterprises/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:40 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:40 - article_server - WARNING - [权限检查失败] 用户角色 admin 不在允许的角色 ('enterprise',) 中 18:43:40 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 104.244.91.212 - 状态码: 403 18:43:40 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:40 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, password, is_bound_xhs, department, role, status, created_at, updated_at FROM ai_users u WHERE id = %s AND status != 'deleted' 18:43:40 - article_server - INFO - [SQL参数] (3,) 18:43:40 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:40 - article_server - INFO - [SQL数据] 查询结果: [{'id': 3, 'enterprise_id': 1, 'enterprise_name': '刘勇企业3号', 'username': 'user003', 'real_name': '刘勇', 'email': None, 'phone': '18211010472', 'wechat_openid': None, 'wechat_unionid': None, 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'is_bound_xhs': 1, 'department': '市场部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 21, 10, 43, 4)}] 18:43:40 - article_server - INFO - [SQL执行] 开始执行插入SQL 18:43:40 - article_server - INFO - [SQL语句] INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, request_data, response_data, status, error_message, created_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW()) 18:43:40 - article_server - INFO - [SQL参数] (3, 'get_user_info', 'user', 3, '查询用户信息: user003, action=', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None) 18:43:40 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 62811 18:43:40 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 3 | 目标: user#3 | 状态: success | IP: 104.244.91.212 | 日志ID: 62811 18:43:40 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200 18:43:41 - article_server - INFO - [API访问] GET /api/enterprises/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:41 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:41 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:41 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212 18:43:41 - article_server - INFO - [Token验证成功] 用户ID: 3 18:43:41 - article_server - INFO - [获取用户信息] 用户ID: 3, action: , IP: 104.244.91.212 18:43:41 - article_server - WARNING - [权限检查失败] 用户角色 admin 不在允许的角色 ('enterprise',) 中 18:43:41 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 104.244.91.212 - 状态码: 403 18:43:41 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:41 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, password, is_bound_xhs, department, role, status, created_at, updated_at FROM ai_users u WHERE id = %s AND status != 'deleted' 18:43:41 - article_server - INFO - [SQL参数] (3,) 18:43:41 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:41 - article_server - INFO - [SQL数据] 查询结果: [{'id': 3, 'enterprise_id': 1, 'enterprise_name': '刘勇企业3号', 'username': 'user003', 'real_name': '刘勇', 'email': None, 'phone': '18211010472', 'wechat_openid': None, 'wechat_unionid': None, 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'is_bound_xhs': 1, 'department': '市场部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 21, 10, 43, 4)}] 18:43:41 - article_server - INFO - [SQL执行] 开始执行插入SQL 18:43:41 - article_server - INFO - [SQL语句] INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, request_data, response_data, status, error_message, created_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW()) 18:43:41 - article_server - INFO - [SQL参数] (3, 'get_user_info', 'user', 3, '查询用户信息: user003, action=', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None) 18:43:41 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 62812 18:43:41 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 3 | 目标: user#3 | 状态: success | IP: 104.244.91.212 | 日志ID: 62812 18:43:41 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200 18:43:54 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:54 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212 18:43:54 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 104.244.91.212 18:43:54 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430 18:43:54 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:54 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.enterprise_name, u.username, u.phone, u.password, u.real_name, u.role, u.status, u.is_bound_xhs, a.xhs_account FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE (u.phone = %s OR u.username = %s) AND u.status = 'active' 18:43:54 - article_server - INFO - [SQL参数] ('13621242430', '13621242430') 18:43:54 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:54 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'real_name': '测试用户10', 'role': 'enterprise', 'status': 'active', 'is_bound_xhs': 0, 'xhs_account': None}] 18:43:54 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user010, 角色: enterprise, 企业: 测试企业10号, 企业ID: 10 18:43:54 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430 18:43:54 - article_server - INFO - [用户登录] 密码验证成功, 用户名: user010, 角色: enterprise 18:43:54 - article_server - INFO - [用户登录] 检测到企业角色, 开始获取企业详细信息, 企业ID: 10 18:43:54 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:54 - article_server - INFO - [SQL语句] SELECT id, enterprise_ID, name, short_name, phone, email, status, users_total, products_total, articles_total, published_total FROM ai_enterprises WHERE id = %s AND status = 'active' 18:43:54 - article_server - INFO - [SQL参数] (10,) 18:43:54 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:43:54 - article_server - WARNING - [用户登录] 企业信息不存在或已禁用, 企业ID: 10 18:43:54 - article_server - INFO - [用户登录] 开始生成token, 用户ID: 10, 角色: enterprise 18:43:54 - article_server - INFO - [Token生成] 用户: 13621242430, ID: 10, 角色: enterprise 18:43:54 - article_server - INFO - [用户登录成功] Token生成成功, 用户: user010, 角色: enterprise, 企业: 测试企业10号, IP: 104.244.91.212 18:43:54 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 200 18:43:55 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:55 - article_server - INFO - [Token验证成功] 用户ID: 10 18:43:55 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212 18:43:55 - article_server - INFO - [获取用户信息] 用户ID: 10, action: , IP: 104.244.91.212 18:43:55 - article_server - INFO - [API访问] GET /api/dashboard/overview - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:55 - article_server - INFO - [Token验证成功] 用户ID: 10 18:43:55 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:55 - article_server - INFO - [Token验证成功] 用户ID: 10 18:43:55 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:55 - article_server - INFO - [Token验证成功] 用户ID: 10 18:43:55 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:55 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, password, is_bound_xhs, department, role, status, created_at, updated_at FROM ai_users u WHERE id = %s AND status != 'deleted' 18:43:55 - article_server - INFO - [SQL参数] (10,) 18:43:55 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:55 - article_server - INFO - [SQL语句] SELECT users_total, products_total, articles_total, published_total FROM ai_enterprises WHERE id = %s 18:43:55 - article_server - INFO - [SQL参数] (10,) 18:43:55 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:55 - article_server - INFO - [SQL语句] SELECT r.product_id, p.name as product_name, COUNT(*) as publishes, ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM ai_article_published_records WHERE enterprise_id = %s), 0) as percentage FROM ai_article_published_records r LEFT JOIN ai_products p ON r.product_id = p.id WHERE r.enterprise_id = %s GROUP BY r.product_id, p.name ORDER BY publishes DESC LIMIT %s 18:43:55 - article_server - INFO - [SQL参数] (10, 10, 4) 18:43:55 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:55 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:55 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'real_name': '测试用户10', 'email': None, 'phone': '13621242430', 'wechat_openid': 'ovoJF1z6ejXbXcWUHnvCw5HA0OeA', 'wechat_unionid': None, 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'is_bound_xhs': 0, 'department': '运营部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 21, 10, 42, 52)}] 18:43:55 - article_server - INFO - [SQL语句] SELECT r.id, r.publish_time, u.real_name as employee_name, p.name as product_name, 'success' as status FROM ai_article_published_records r LEFT JOIN ai_users u ON r.created_user_id = u.id LEFT JOIN ai_products p ON r.product_id = p.id WHERE r.enterprise_id = %s ORDER BY r.publish_time DESC LIMIT %s 18:43:55 - article_server - INFO - [SQL参数] (10, 5) 18:43:55 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:43:55 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:55 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 1, 'product_name': '美白面膜1', 'publishes': 1, 'percentage': Decimal('100')}] 18:43:55 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:55 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'publish_time': datetime.datetime(2025, 12, 15, 17, 31, 15), 'employee_name': '测试用户10', 'product_name': '美白面膜1', 'status': 'success'}] 18:43:55 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 104.244.91.212 - 状态码: 404 18:43:55 - article_server - INFO - 获取热门产品成功 18:43:55 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 104.244.91.212 - 状态码: 200 18:43:55 - article_server - INFO - [SQL执行] 开始执行插入SQL 18:43:55 - article_server - INFO - [SQL语句] INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, request_data, response_data, status, error_message, created_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW()) 18:43:55 - article_server - INFO - [SQL参数] (10, 'get_user_info', 'user', 10, '查询用户信息: user010, action=', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None) 18:43:55 - article_server - INFO - 获取最近发布成功 18:43:55 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 104.244.91.212 - 状态码: 200 18:43:55 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 62819 18:43:55 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 10 | 目标: user#10 | 状态: success | IP: 104.244.91.212 | 日志ID: 62819 18:43:55 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200 18:43:57 - article_server - INFO - [API访问] GET /api/enterprises/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:57 - article_server - INFO - [Token验证成功] 用户ID: 10 18:43:57 - article_server - INFO - [获取企业列表] 开始处理请求, IP: 104.244.91.212 18:43:57 - article_server - INFO - [获取企业列表] 查询参数: page=1, pageSize=10, keyword=, status=, IP: 104.244.91.212 18:43:57 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:57 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_enterprises WHERE 1=1 18:43:57 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:43:57 - article_server - INFO - [SQL数据] 查询结果: [{'total': 11}] 18:43:57 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:57 - article_server - INFO - [SQL语句] SELECT id, enterprise_ID, name, short_name, phone, email, status, users_total, products_total, articles_total, published_total, created_at, updated_at FROM ai_enterprises WHERE 1=1 ORDER BY created_at DESC LIMIT %s OFFSET %s 18:43:57 - article_server - INFO - [SQL参数] [10, 0] 18:43:57 - article_server - INFO - [SQL结果] 查询完成,返回 10 条记录 18:43:57 - article_server - INFO - [获取企业列表] 查询成功, 总数: 11, 当前页: 1, 每页: 10, 返回数量: 10, IP: 104.244.91.212 18:43:57 - article_server - INFO - [API响应] GET /api/enterprises/list - IP: 104.244.91.212 - 状态码: 200 18:43:59 - article_server - INFO - [API访问] GET /api/enterprises/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:43:59 - article_server - INFO - [Token验证成功] 用户ID: 10 18:43:59 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:43:59 - article_server - INFO - [SQL语句] SELECT id, enterprise_ID, name, short_name, phone, email, status, users_total, products_total, articles_total, published_total, created_at, updated_at FROM ai_enterprises WHERE id = %s 18:43:59 - article_server - INFO - [SQL参数] (10,) 18:43:59 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:43:59 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 104.244.91.212 - 状态码: 404 18:44:04 - article_server - INFO - [API访问] GET /api/enterprises/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:44:04 - article_server - INFO - [Token验证成功] 用户ID: 10 18:44:04 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:44:04 - article_server - INFO - [Token验证成功] 用户ID: 10 18:44:04 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212 18:44:04 - article_server - INFO - [获取用户信息] 用户ID: 10, action: , IP: 104.244.91.212 18:44:04 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:44:04 - article_server - INFO - [SQL语句] SELECT id, enterprise_ID, name, short_name, phone, email, status, users_total, products_total, articles_total, published_total, created_at, updated_at FROM ai_enterprises WHERE id = %s 18:44:04 - article_server - INFO - [SQL参数] (10,) 18:44:04 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:44:04 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:44:04 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, password, is_bound_xhs, department, role, status, created_at, updated_at FROM ai_users u WHERE id = %s AND status != 'deleted' 18:44:04 - article_server - INFO - [SQL参数] (10,) 18:44:04 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 104.244.91.212 - 状态码: 404 18:44:04 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:44:04 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'real_name': '测试用户10', 'email': None, 'phone': '13621242430', 'wechat_openid': 'ovoJF1z6ejXbXcWUHnvCw5HA0OeA', 'wechat_unionid': None, 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'is_bound_xhs': 0, 'department': '运营部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 21, 10, 42, 52)}] 18:44:04 - article_server - INFO - [SQL执行] 开始执行插入SQL 18:44:04 - article_server - INFO - [SQL语句] INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, request_data, response_data, status, error_message, created_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW()) 18:44:04 - article_server - INFO - [SQL参数] (10, 'get_user_info', 'user', 10, '查询用户信息: user010, action=', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None) 18:44:04 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 62822 18:44:04 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 10 | 目标: user#10 | 状态: success | IP: 104.244.91.212 | 日志ID: 62822 18:44:04 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200 18:44:10 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:44:10 - article_server - INFO - [Token验证成功] 用户ID: 10 18:44:10 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212 18:44:10 - article_server - INFO - [获取用户信息] 用户ID: 10, action: , IP: 104.244.91.212 18:44:10 - article_server - INFO - [API访问] GET /api/enterprises/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:44:10 - article_server - INFO - [Token验证成功] 用户ID: 10 18:44:10 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:44:10 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, password, is_bound_xhs, department, role, status, created_at, updated_at FROM ai_users u WHERE id = %s AND status != 'deleted' 18:44:10 - article_server - INFO - [SQL参数] (10,) 18:44:10 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:44:10 - article_server - INFO - [SQL语句] SELECT id, enterprise_ID, name, short_name, phone, email, status, users_total, products_total, articles_total, published_total, created_at, updated_at FROM ai_enterprises WHERE id = %s 18:44:10 - article_server - INFO - [SQL参数] (10,) 18:44:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:44:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:44:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'real_name': '测试用户10', 'email': None, 'phone': '13621242430', 'wechat_openid': 'ovoJF1z6ejXbXcWUHnvCw5HA0OeA', 'wechat_unionid': None, 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'is_bound_xhs': 0, 'department': '运营部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 21, 10, 42, 52)}] 18:44:10 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 104.244.91.212 - 状态码: 404 18:44:10 - article_server - INFO - [SQL执行] 开始执行插入SQL 18:44:10 - article_server - INFO - [SQL语句] INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, request_data, response_data, status, error_message, created_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW()) 18:44:10 - article_server - INFO - [SQL参数] (10, 'get_user_info', 'user', 10, '查询用户信息: user010, action=', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None) 18:44:10 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 62827 18:44:10 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 10 | 目标: user#10 | 状态: success | IP: 104.244.91.212 | 日志ID: 62827 18:44:10 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200 18:45:10 - article_server - INFO - [API访问] GET /api/enterprises/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:45:10 - article_server - INFO - [Token验证成功] 用户ID: 10 18:45:10 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:45:10 - article_server - INFO - [SQL语句] SELECT id, enterprise_ID, name, short_name, phone, email, status, users_total, products_total, articles_total, published_total, created_at, updated_at FROM ai_enterprises WHERE id = %s 18:45:10 - article_server - INFO - [SQL参数] (10,) 18:45:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:45:11 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 104.244.91.212 - 状态码: 404 18:45:11 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:45:11 - article_server - INFO - [Token验证成功] 用户ID: 10 18:45:11 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212 18:45:11 - article_server - INFO - [获取用户信息] 用户ID: 10, action: , IP: 104.244.91.212 18:45:11 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:45:11 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, password, is_bound_xhs, department, role, status, created_at, updated_at FROM ai_users u WHERE id = %s AND status != 'deleted' 18:45:11 - article_server - INFO - [SQL参数] (10,) 18:45:11 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:45:11 - article_server - INFO - [SQL数据] 查询结果: [{'id': 10, 'enterprise_id': 1, 'enterprise_name': '测试企业10号', 'username': 'user010', 'real_name': '测试用户10', 'email': None, 'phone': '13621242430', 'wechat_openid': 'ovoJF1z6ejXbXcWUHnvCw5HA0OeA', 'wechat_unionid': None, 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'is_bound_xhs': 0, 'department': '运营部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 21, 10, 44, 39)}] 18:45:11 - article_server - INFO - [SQL执行] 开始执行插入SQL 18:45:11 - article_server - INFO - [SQL语句] INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, request_data, response_data, status, error_message, created_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW()) 18:45:11 - article_server - INFO - [SQL参数] (10, 'get_user_info', 'user', 10, '查询用户信息: user010, action=', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None) 18:45:11 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 62850 18:45:11 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 10 | 目标: user#10 | 状态: success | IP: 104.244.91.212 | 日志ID: 62850 18:45:11 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200 18:48:03 - article_server - INFO - [API访问] GET /api/employees/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:48:03 - article_server - INFO - [Token验证成功] 用户ID: 10 18:48:03 - article_server - INFO - [API访问] GET /api/employees/stats - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 18:48:03 - article_server - INFO - [Token验证成功] 用户ID: 10 18:48:03 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:48:03 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total_count, SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) as active_count, SUM(CASE WHEN is_bound_xhs = 1 THEN 1 ELSE 0 END) as bound_xhs_count FROM ai_users WHERE enterprise_id = %s AND status != 'deleted' 18:48:03 - article_server - INFO - [SQL参数] (10,) 18:48:03 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:48:03 - article_server - INFO - [SQL数据] 查询结果: [{'total_count': 0, 'active_count': None, 'bound_xhs_count': None}] 18:48:03 - article_server - INFO - 获取员工统计成功 18:48:03 - article_server - INFO - [API响应] GET /api/employees/stats - IP: 104.244.91.212 - 状态码: 200 18:48:03 - article_server - INFO - 数据库连接成功,字符集设置完成 18:48:03 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:48:03 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_users u WHERE u.enterprise_id = %s AND u.status != 'deleted' 18:48:03 - article_server - INFO - [SQL参数] [10] 18:48:03 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 18:48:03 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}] 18:48:03 - article_server - INFO - [SQL执行] 开始执行查询SQL 18:48:03 - article_server - INFO - [SQL语句] SELECT u.id, u.enterprise_id, u.real_name as name, u.username, u.phone, u.role, u.department, u.is_bound_xhs, a.xhs_account, u.status, u.created_at, u.updated_at FROM ai_users u LEFT JOIN ai_authors a ON u.id = a.created_user_id AND a.status = 'active' WHERE u.enterprise_id = %s AND u.status != 'deleted' ORDER BY u.created_at DESC LIMIT %s OFFSET %s 18:48:03 - article_server - INFO - [SQL参数] [10, 10, 0] 18:48:03 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 18:48:03 - article_server - INFO - 获取员工列表成功,总数: 0 18:48:03 - article_server - INFO - [API响应] GET /api/employees/list - IP: 104.244.91.212 - 状态码: 200