21:53:27 - article_server - INFO - 日志系统已启动 - 记录器: article_server 21:53:27 - article_server - INFO - 主日志文件: logs/article_server.log 21:53:27 - article_server - INFO - 错误日志文件: logs/article_error.log 21:53:27 - article_server - INFO - 日志保留策略: 每天午夜分割,主日志保留3天 21:53:27 - article_server - INFO - 错误日志保留策略: 每天午夜分割,保留9天 21:53:27 - article_server - INFO - 万花筒API服务模块已加载 21:53:41 - article_server - INFO - [API访问] DELETE /api/employees/18 - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:53:41 - article_server - INFO - [Token验证成功] 用户ID: 4 21:53:41 - article_server - INFO - 数据库连接成功,字符集设置完成 21:53:41 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:41 - article_server - INFO - [SQL语句] SELECT id, real_name FROM ai_users WHERE id = %s AND enterprise_id = %s AND status != 'deleted' 21:53:41 - article_server - INFO - [SQL参数] (18, 1) 21:53:41 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:41 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'real_name': '测试员工API'}] 21:53:41 - article_server - INFO - [SQL执行] 开始执行更新SQL 21:53:41 - article_server - INFO - [SQL语句] UPDATE ai_users SET status = 'deleted', updated_at = NOW() WHERE id = %s 21:53:41 - article_server - INFO - [SQL参数] (18,) 21:53:41 - article_server - INFO - [SQL结果] 更新完成,影响 1 行 21:53:41 - article_server - INFO - [SQL执行] 开始执行更新SQL 21:53:41 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET users_total = users_total - 1 WHERE id = %s 21:53:41 - article_server - INFO - [SQL参数] (1,) 21:53:41 - article_server - INFO - [SQL结果] 更新完成,影响 1 行 21:53:41 - article_server - INFO - 删除员工成功: 测试员工API 21:53:41 - article_server - INFO - [API响应] DELETE /api/employees/18 - IP: 36.27.52.26 - 状态码: 200 21:53:41 - article_server - INFO - [API访问] GET /api/employees/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:53:41 - article_server - INFO - [Token验证成功] 用户ID: 4 21:53:41 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:41 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_users WHERE enterprise_id = %s AND status != 'deleted' 21:53:41 - article_server - INFO - [SQL参数] [1] 21:53:41 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:41 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}] 21:53:41 - article_server - INFO - [API访问] GET /api/employees/stats - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:53:41 - article_server - INFO - [Token验证成功] 用户ID: 4 21:53:41 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:41 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, real_name as name, username, phone, role, department, is_bound_xhs, xhs_account, status, created_at, updated_at FROM ai_users WHERE enterprise_id = %s AND status != 'deleted' ORDER BY created_at DESC LIMIT %s OFFSET %s 21:53:41 - article_server - INFO - [SQL参数] [1, 20, 0] 21:53:41 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录 21:53:41 - article_server - INFO - 获取员工列表成功,总数: 4 21:53:41 - article_server - INFO - [API响应] GET /api/employees/list - IP: 36.27.52.26 - 状态码: 200 21:53:41 - article_server - INFO - 数据库连接成功,字符集设置完成 21:53:41 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:41 - 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' 21:53:41 - article_server - INFO - [SQL参数] (1,) 21:53:41 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:41 - article_server - INFO - [SQL数据] 查询结果: [{'total_count': 4, 'active_count': Decimal('4'), 'bound_xhs_count': Decimal('3')}] 21:53:41 - article_server - INFO - 获取员工统计成功 21:53:41 - article_server - INFO - [API响应] GET /api/employees/stats - IP: 36.27.52.26 - 状态码: 200 21:53:49 - article_server - INFO - [API访问] GET /api/employees/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:53:49 - article_server - INFO - [Token验证成功] 用户ID: 4 21:53:49 - article_server - INFO - [API访问] GET /api/employees/stats - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:53:49 - article_server - INFO - [Token验证成功] 用户ID: 4 21:53:49 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:49 - 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' 21:53:49 - article_server - INFO - [SQL参数] (1,) 21:53:49 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:49 - article_server - INFO - [SQL数据] 查询结果: [{'total_count': 4, 'active_count': Decimal('4'), 'bound_xhs_count': Decimal('3')}] 21:53:49 - article_server - INFO - [API访问] GET /api/users/info - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:53:49 - article_server - INFO - [Token验证成功] 用户ID: 4 21:53:49 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26 21:53:49 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26 21:53:49 - article_server - INFO - 获取员工统计成功 21:53:49 - article_server - INFO - [API响应] GET /api/employees/stats - IP: 36.27.52.26 - 状态码: 200 21:53:49 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:49 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account, is_bound_xhs, bound_at, department, role, status, created_at, updated_at FROM ai_users WHERE id = %s AND status != 'deleted' 21:53:49 - article_server - INFO - [SQL参数] (4,) 21:53:49 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:49 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}] 21:53:49 - article_server - INFO - 数据库连接成功,字符集设置完成 21:53:49 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:49 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_users WHERE enterprise_id = %s AND status != 'deleted' 21:53:49 - article_server - INFO - [SQL参数] [1] 21:53:49 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26 21:53:49 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:49 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}] 21:53:50 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:53:50 - 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()) 21:53:50 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '36.27.52.26', '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) 21:53:50 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:50 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, real_name as name, username, phone, role, department, is_bound_xhs, xhs_account, status, created_at, updated_at FROM ai_users WHERE enterprise_id = %s AND status != 'deleted' ORDER BY created_at DESC LIMIT %s OFFSET %s 21:53:50 - article_server - INFO - [SQL参数] [1, 20, 0] 21:53:50 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 22 21:53:50 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录 21:53:50 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 22 21:53:50 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200 21:53:50 - article_server - INFO - 获取员工列表成功,总数: 4 21:53:50 - article_server - INFO - [API响应] GET /api/employees/list - IP: 36.27.52.26 - 状态码: 200 21:53:52 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:53:52 - article_server - INFO - [Token验证成功] 用户ID: 4 21:53:52 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:53:52 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:53:52 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:53:52 - article_server - INFO - [API访问] GET /api/products/types/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:53:52 - article_server - INFO - [Token验证成功] 用户ID: 4 21:53:52 - article_server - INFO - [获取企业产品类型列表] 开始处理请求, IP: 36.27.52.26 21:53:52 - article_server - INFO - [获取企业产品类型列表] 企业ID: 1, IP: 36.27.52.26 21:53:52 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:52 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:53:52 - article_server - INFO - [SQL参数] [1] 21:53:52 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:52 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}] 21:53:52 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:52 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:53:52 - article_server - INFO - [SQL参数] [1, 20, 0] 21:53:52 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录 21:53:52 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:52 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:53:52 - article_server - INFO - [SQL参数] (13,) 21:53:52 - article_server - INFO - 数据库连接成功,字符集设置完成 21:53:52 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:52 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_product_types WHERE enterprise_id = %s 21:53:52 - article_server - INFO - [SQL参数] [1] 21:53:52 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:53:52 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:52 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}] 21:53:52 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:52 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:53:52 - article_server - INFO - [SQL参数] (12,) 21:53:52 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:52 - article_server - INFO - [SQL语句] SELECT id, type_name, enterprise_id, product_id, created_at FROM ai_product_types WHERE enterprise_id = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:53:52 - article_server - INFO - [SQL参数] [1, 100, 0] 21:53:52 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:53:52 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:53:52 - article_server - INFO - [获取企业产品类型列表] 查询成功, 企业ID: 1, 总数: 0, 返回: 0, IP: 36.27.52.26 21:53:52 - article_server - INFO - [API响应] GET /api/products/types/list - IP: 36.27.52.26 - 状态码: 200 21:53:52 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:52 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:53:52 - article_server - INFO - [SQL参数] (11,) 21:53:52 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:53:52 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:53:52 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:53:52 - article_server - INFO - [SQL参数] (1,) 21:53:52 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:53:52 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:53:53 - article_server - INFO - [获取产品列表] 查询成功, 总数: 4, 当前页: 1, 每页: 20, 返回数量: 4, 企业ID: 1, IP: 36.27.52.26 21:53:53 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:54:34 - article_server - INFO - [API访问] POST /api/products/create - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:54:34 - article_server - INFO - [Token验证成功] 用户ID: 4 21:54:34 - article_server - INFO - [创建产品] 开始处理创建产品请求, IP: 36.27.52.26 21:54:34 - article_server - INFO - [创建产品] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:54:34 - article_server - INFO - [创建产品] 收到创建请求, 产品名称: 产品(2), 类型: 防护品, 企业ID: 1, IP: 36.27.52.26 21:54:34 - article_server - INFO - [创建产品] 开始检查产品名称是否重复, 名称: 产品(2), 企业ID: 1 21:54:34 - article_server - INFO - 数据库连接成功,字符集设置完成 21:54:34 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:34 - article_server - INFO - [SQL语句] SELECT id, name FROM ai_products WHERE enterprise_id = %s AND name = %s AND status != 'deleted' 21:54:34 - article_server - INFO - [SQL参数] (1, '产品(2)') 21:54:34 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:34 - article_server - INFO - [创建产品] 开始插入产品数据, 名称: 产品(2), 企业ID: 1 21:54:34 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:54:34 - article_server - INFO - [SQL语句] INSERT INTO ai_products (enterprise_id, name, type_id, type_name, knowledge, status, articles_total, published_total, image_url, image_thumbnail_url) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) 21:54:34 - article_server - INFO - [SQL参数] (1, '产品(2)', 1, '防护品', '产品(2)产品(2)产品(2)', 'active', 0, 0, 'http://images16.bxmkb.cn/Images/20251201/1764586631888883_thumb.png', '') 21:54:34 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 24 21:54:34 - article_server - INFO - [创建产品] 产品插入成功, ID: 24, 名称: 产品(2), 企业ID: 1 21:54:34 - article_server - INFO - [创建产品] 开始更新企业产品总数, 企业ID: 1 21:54:34 - article_server - INFO - [SQL执行] 开始执行更新SQL 21:54:34 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET products_total = products_total + 1 WHERE id = %s 21:54:34 - article_server - INFO - [SQL参数] (1,) 21:54:34 - article_server - INFO - [SQL结果] 更新完成,影响 1 行 21:54:34 - article_server - INFO - [创建产品] 产品创建全部完成, ID: 24, 名称: 产品(2), 企业ID: 1, IP: 36.27.52.26 21:54:34 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:54:34 - 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()) 21:54:34 - article_server - INFO - [SQL参数] (4, 'create_product', 'product', 24, '创建产品: 产品(2)', '36.27.52.26', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '{"name": "产品(2)", "type_id": 1, "type_name": "防护品", "knowledge": "产品(2)产品(2)产品(2)", "image_url": "http://images16.bxmkb.cn/Images/20251201/1764586631888883_thumb.png"}', '{"id": 24}', 'success', None) 21:54:34 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 23 21:54:34 - article_server - INFO - [业务日志] 操作: create_product | 用户ID: 4 | 目标: product#24 | 状态: success | IP: 36.27.52.26 | 日志ID: 23 21:54:34 - article_server - INFO - [API响应] POST /api/products/create - IP: 36.27.52.26 - 状态码: 200 21:54:34 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:54:34 - article_server - INFO - [Token验证成功] 用户ID: 4 21:54:34 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:54:34 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:54:34 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:54:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:35 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:54:35 - article_server - INFO - [SQL参数] [1] 21:54:35 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:54:35 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}] 21:54:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:35 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:54:35 - article_server - INFO - [SQL参数] [1, 20, 0] 21:54:35 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录 21:54:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:35 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:35 - article_server - INFO - [SQL参数] (24,) 21:54:35 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:35 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:35 - article_server - INFO - [SQL参数] (13,) 21:54:35 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:35 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:35 - article_server - INFO - [SQL参数] (12,) 21:54:35 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:35 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:35 - article_server - INFO - [SQL参数] (11,) 21:54:35 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:35 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:35 - article_server - INFO - [SQL参数] (1,) 21:54:35 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:54:35 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:54:35 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 20, 返回数量: 5, 企业ID: 1, IP: 36.27.52.26 21:54:35 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:54:38 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:54:38 - article_server - INFO - [Token验证成功] 用户ID: 4 21:54:38 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:54:38 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:54:38 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:54:38 - article_server - INFO - [API访问] GET /api/products/types/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:54:38 - article_server - INFO - [Token验证成功] 用户ID: 4 21:54:38 - article_server - INFO - [获取企业产品类型列表] 开始处理请求, IP: 36.27.52.26 21:54:38 - article_server - INFO - [获取企业产品类型列表] 企业ID: 1, IP: 36.27.52.26 21:54:38 - article_server - INFO - [API访问] GET /api/users/info - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:54:38 - article_server - INFO - [Token验证成功] 用户ID: 4 21:54:38 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26 21:54:38 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account, is_bound_xhs, bound_at, department, role, status, created_at, updated_at FROM ai_users WHERE id = %s AND status != 'deleted' 21:54:38 - article_server - INFO - [SQL参数] (4,) 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:54:38 - article_server - INFO - [SQL参数] [1] 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_product_types WHERE enterprise_id = %s 21:54:38 - article_server - INFO - [SQL参数] [1] 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:54:38 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}] 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:54:38 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}] 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:54:38 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}] 21:54:38 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26 21:54:38 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:54:38 - 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()) 21:54:38 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '36.27.52.26', '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) 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT id, type_name, enterprise_id, product_id, created_at FROM ai_product_types WHERE enterprise_id = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:54:38 - article_server - INFO - [SQL参数] [1, 100, 0] 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:54:38 - article_server - INFO - [SQL参数] [1, 20, 0] 21:54:38 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 24 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录 21:54:38 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 24 21:54:38 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200 21:54:38 - article_server - INFO - [获取企业产品类型列表] 查询成功, 企业ID: 1, 总数: 0, 返回: 0, IP: 36.27.52.26 21:54:38 - article_server - INFO - [API响应] GET /api/products/types/list - IP: 36.27.52.26 - 状态码: 200 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:38 - article_server - INFO - [SQL参数] (24,) 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:38 - article_server - INFO - [SQL参数] (13,) 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:38 - article_server - INFO - [SQL参数] (12,) 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:38 - article_server - INFO - [SQL参数] (11,) 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:54:38 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:54:38 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:54:38 - article_server - INFO - [SQL参数] (1,) 21:54:38 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:54:38 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:54:38 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 20, 返回数量: 5, 企业ID: 1, IP: 36.27.52.26 21:54:38 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:55:21 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:55:21 - article_server - INFO - [API访问] GET /api/products/types/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:55:21 - article_server - INFO - [Token验证成功] 用户ID: 4 21:55:21 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:55:21 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:55:21 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:55:21 - article_server - INFO - [API访问] GET /api/users/info - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:55:21 - article_server - INFO - [Token验证成功] 用户ID: 4 21:55:21 - article_server - INFO - [获取企业产品类型列表] 开始处理请求, IP: 36.27.52.26 21:55:21 - article_server - INFO - [获取企业产品类型列表] 企业ID: 1, IP: 36.27.52.26 21:55:21 - article_server - INFO - [Token验证成功] 用户ID: 4 21:55:21 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26 21:55:21 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26 21:55:21 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:21 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account, is_bound_xhs, bound_at, department, role, status, created_at, updated_at FROM ai_users WHERE id = %s AND status != 'deleted' 21:55:21 - article_server - INFO - [SQL参数] (4,) 21:55:21 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:21 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_product_types WHERE enterprise_id = %s 21:55:21 - article_server - INFO - [SQL参数] [1] 21:55:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:55:21 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}] 21:55:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:55:21 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}] 21:55:21 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26 21:55:21 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:55:21 - 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()) 21:55:21 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '36.27.52.26', '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) 21:55:21 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:21 - article_server - INFO - [SQL语句] SELECT id, type_name, enterprise_id, product_id, created_at FROM ai_product_types WHERE enterprise_id = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:55:21 - article_server - INFO - [SQL参数] [1, 100, 0] 21:55:21 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 25 21:55:21 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:55:21 - article_server - INFO - 数据库连接成功,字符集设置完成 21:55:21 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:21 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:55:21 - article_server - INFO - [SQL参数] [1] 21:55:21 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 25 21:55:21 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200 21:55:21 - article_server - INFO - [获取企业产品类型列表] 查询成功, 企业ID: 1, 总数: 0, 返回: 0, IP: 36.27.52.26 21:55:21 - article_server - INFO - [API响应] GET /api/products/types/list - IP: 36.27.52.26 - 状态码: 200 21:55:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:55:21 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}] 21:55:21 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:21 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:55:21 - article_server - INFO - [SQL参数] [1, 20, 0] 21:55:21 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录 21:55:22 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:22 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:55:22 - article_server - INFO - [SQL参数] (24,) 21:55:22 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:55:22 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:22 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:55:22 - article_server - INFO - [SQL参数] (13,) 21:55:22 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:55:22 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:22 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:55:22 - article_server - INFO - [SQL参数] (12,) 21:55:22 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:55:22 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:22 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:55:22 - article_server - INFO - [SQL参数] (11,) 21:55:22 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:55:22 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:55:22 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:55:22 - article_server - INFO - [SQL参数] (1,) 21:55:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:55:22 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:55:22 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 20, 返回数量: 5, 企业ID: 1, IP: 36.27.52.26 21:55:22 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:57:32 - article_server - INFO - [API访问] PUT /api/products/24 - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:57:32 - article_server - INFO - [Token验证成功] 用户ID: 4 21:57:32 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:32 - article_server - INFO - [SQL语句] SELECT id FROM ai_products WHERE id = %s AND enterprise_id = %s AND status != 'deleted' 21:57:32 - article_server - INFO - [SQL参数] (24, 1) 21:57:33 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:57:33 - article_server - INFO - [SQL数据] 查询结果: [{'id': 24}] 21:57:33 - article_server - INFO - [SQL执行] 开始执行更新SQL 21:57:33 - article_server - INFO - [SQL语句] UPDATE ai_products SET name = %s, type_name = %s, knowledge = %s, updated_at = NOW() WHERE id = %s 21:57:33 - article_server - INFO - [SQL参数] ['产品(2)', '防护品', '产品(2)产品(2)产品(2)', 24] 21:57:33 - article_server - INFO - [SQL结果] 更新完成,影响 1 行 21:57:33 - article_server - INFO - 更新产品成功: ID 24 21:57:33 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:57:33 - 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()) 21:57:33 - article_server - INFO - [SQL参数] (4, 'update_product', 'product', 24, '更新产品信息', '36.27.52.26', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '{"name": "产品(2)", "type_name": "防护品", "knowledge": "产品(2)产品(2)产品(2)"}', None, 'success', None) 21:57:33 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 26 21:57:33 - article_server - INFO - [业务日志] 操作: update_product | 用户ID: 4 | 目标: product#24 | 状态: success | IP: 36.27.52.26 | 日志ID: 26 21:57:33 - article_server - INFO - [API响应] PUT /api/products/24 - IP: 36.27.52.26 - 状态码: 200 21:57:33 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:57:33 - article_server - INFO - [Token验证成功] 用户ID: 4 21:57:33 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:57:33 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:57:33 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:57:33 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:33 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:57:33 - article_server - INFO - [SQL参数] [1] 21:57:33 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:57:33 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}] 21:57:33 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:33 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:57:33 - article_server - INFO - [SQL参数] [1, 20, 0] 21:57:33 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录 21:57:33 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:33 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:33 - article_server - INFO - [SQL参数] (24,) 21:57:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:33 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:33 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:33 - article_server - INFO - [SQL参数] (13,) 21:57:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:33 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:33 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:33 - article_server - INFO - [SQL参数] (12,) 21:57:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:33 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:33 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:33 - article_server - INFO - [SQL参数] (11,) 21:57:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:33 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:33 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:33 - article_server - INFO - [SQL参数] (1,) 21:57:33 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:57:33 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:57:33 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 20, 返回数量: 5, 企业ID: 1, IP: 36.27.52.26 21:57:33 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:57:35 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:57:35 - article_server - INFO - [Token验证成功] 用户ID: 4 21:57:35 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:57:35 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:57:35 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:57:35 - article_server - INFO - [API访问] GET /api/products/types/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:57:35 - article_server - INFO - [Token验证成功] 用户ID: 4 21:57:35 - article_server - INFO - [获取企业产品类型列表] 开始处理请求, IP: 36.27.52.26 21:57:35 - article_server - INFO - [获取企业产品类型列表] 企业ID: 1, IP: 36.27.52.26 21:57:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:35 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:57:35 - article_server - INFO - [SQL参数] [1] 21:57:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:35 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:57:35 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_product_types WHERE enterprise_id = %s 21:57:35 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}] 21:57:35 - article_server - INFO - [SQL参数] [1] 21:57:35 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:57:35 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}] 21:57:35 - article_server - INFO - [API访问] GET /api/users/info - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:57:35 - article_server - INFO - [Token验证成功] 用户ID: 4 21:57:35 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26 21:57:35 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26 21:57:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:35 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:57:35 - article_server - INFO - [SQL参数] [1, 20, 0] 21:57:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:35 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account, is_bound_xhs, bound_at, department, role, status, created_at, updated_at FROM ai_users WHERE id = %s AND status != 'deleted' 21:57:35 - article_server - INFO - [SQL参数] (4,) 21:57:35 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录 21:57:35 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:57:35 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}] 21:57:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:35 - article_server - INFO - [SQL语句] SELECT id, type_name, enterprise_id, product_id, created_at FROM ai_product_types WHERE enterprise_id = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:57:35 - article_server - INFO - [SQL参数] [1, 100, 0] 21:57:35 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26 21:57:35 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:35 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:35 - article_server - INFO - [SQL参数] (24,) 21:57:35 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:57:35 - 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()) 21:57:35 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '36.27.52.26', '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) 21:57:35 - article_server - INFO - [获取企业产品类型列表] 查询成功, 企业ID: 1, 总数: 0, 返回: 0, IP: 36.27.52.26 21:57:35 - article_server - INFO - [API响应] GET /api/products/types/list - IP: 36.27.52.26 - 状态码: 200 21:57:35 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:35 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 27 21:57:35 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 27 21:57:35 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200 21:57:35 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:35 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:35 - article_server - INFO - [SQL参数] (13,) 21:57:36 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:36 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:36 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:36 - article_server - INFO - [SQL参数] (12,) 21:57:36 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:36 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:36 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:36 - article_server - INFO - [SQL参数] (11,) 21:57:36 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:57:36 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:36 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:57:36 - article_server - INFO - [SQL参数] (1,) 21:57:36 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:57:36 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:57:36 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 20, 返回数量: 5, 企业ID: 1, IP: 36.27.52.26 21:57:36 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:57:58 - article_server - INFO - [API访问] POST /api/products/create - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:57:58 - article_server - INFO - [Token验证成功] 用户ID: 4 21:57:58 - article_server - INFO - [创建产品] 开始处理创建产品请求, IP: 36.27.52.26 21:57:58 - article_server - INFO - [创建产品] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:57:58 - article_server - INFO - [创建产品] 收到创建请求, 产品名称: 产品(2), 类型: 护肤品, 企业ID: 1, IP: 36.27.52.26 21:57:58 - article_server - INFO - [创建产品] 开始检查产品名称是否重复, 名称: 产品(2), 企业ID: 1 21:57:58 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:57:58 - article_server - INFO - [SQL语句] SELECT id, name FROM ai_products WHERE enterprise_id = %s AND name = %s AND status != 'deleted' 21:57:58 - article_server - INFO - [SQL参数] (1, '产品(2)') 21:57:58 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:57:58 - article_server - INFO - [SQL数据] 查询结果: [{'id': 24, 'name': '产品(2)'}] 21:57:58 - article_server - WARNING - [创建产品] 产品名称已存在, 名称: 产品(2), 已存在ID: 24, 企业ID: 1, IP: 36.27.52.26 21:57:58 - article_server - INFO - [API响应] POST /api/products/create - IP: 36.27.52.26 - 状态码: 409 21:58:02 - article_server - INFO - [API访问] POST /api/products/create - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:02 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:02 - article_server - INFO - [创建产品] 开始处理创建产品请求, IP: 36.27.52.26 21:58:02 - article_server - INFO - [创建产品] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:58:02 - article_server - INFO - [创建产品] 收到创建请求, 产品名称: 产品(2)1, 类型: 护肤品, 企业ID: 1, IP: 36.27.52.26 21:58:02 - article_server - INFO - [创建产品] 开始检查产品名称是否重复, 名称: 产品(2)1, 企业ID: 1 21:58:02 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:02 - article_server - INFO - [SQL语句] SELECT id, name FROM ai_products WHERE enterprise_id = %s AND name = %s AND status != 'deleted' 21:58:02 - article_server - INFO - [SQL参数] (1, '产品(2)1') 21:58:02 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:02 - article_server - INFO - [创建产品] 开始插入产品数据, 名称: 产品(2)1, 企业ID: 1 21:58:02 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:02 - article_server - INFO - [SQL语句] INSERT INTO ai_products (enterprise_id, name, type_id, type_name, knowledge, status, articles_total, published_total, image_url, image_thumbnail_url) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) 21:58:02 - article_server - INFO - [SQL参数] (1, '产品(2)1', 1, '护肤品', '产品(2)产品(2)产品(2)', 'active', 0, 0, 'https://pic2.zhimg.com/v2-f2baf85af5f74f1371afbd41f8f42651_r.jpg', '') 21:58:02 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 25 21:58:02 - article_server - INFO - [创建产品] 产品插入成功, ID: 25, 名称: 产品(2)1, 企业ID: 1 21:58:02 - article_server - INFO - [创建产品] 开始更新企业产品总数, 企业ID: 1 21:58:02 - article_server - INFO - [SQL执行] 开始执行更新SQL 21:58:02 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET products_total = products_total + 1 WHERE id = %s 21:58:02 - article_server - INFO - [SQL参数] (1,) 21:58:02 - article_server - INFO - [SQL结果] 更新完成,影响 1 行 21:58:02 - article_server - INFO - [创建产品] 产品创建全部完成, ID: 25, 名称: 产品(2)1, 企业ID: 1, IP: 36.27.52.26 21:58:02 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:02 - 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()) 21:58:02 - article_server - INFO - [SQL参数] (4, 'create_product', 'product', 25, '创建产品: 产品(2)1', '36.27.52.26', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '{"name": "产品(2)1", "type_id": 1, "type_name": "护肤品", "knowledge": "产品(2)产品(2)产品(2)", "image_url": "https://pic2.zhimg.com/v2-f2baf85af5f74f1371afbd41f8f42651_r.jpg"}', '{"id": 25}', 'success', None) 21:58:02 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 28 21:58:02 - article_server - INFO - [业务日志] 操作: create_product | 用户ID: 4 | 目标: product#25 | 状态: success | IP: 36.27.52.26 | 日志ID: 28 21:58:02 - article_server - INFO - [API响应] POST /api/products/create - IP: 36.27.52.26 - 状态码: 200 21:58:02 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:02 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:02 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:58:02 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:58:02 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:58:02 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:02 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:58:02 - article_server - INFO - [SQL参数] [1] 21:58:02 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:02 - article_server - INFO - [SQL数据] 查询结果: [{'total': 6}] 21:58:02 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:02 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:58:02 - article_server - INFO - [SQL参数] [1, 20, 0] 21:58:02 - article_server - INFO - [SQL结果] 查询完成,返回 6 条记录 21:58:02 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:02 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:02 - article_server - INFO - [SQL参数] (25,) 21:58:02 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:02 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:02 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:02 - article_server - INFO - [SQL参数] (24,) 21:58:02 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:02 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:02 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:02 - article_server - INFO - [SQL参数] (13,) 21:58:02 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:02 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:02 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:02 - article_server - INFO - [SQL参数] (12,) 21:58:02 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:03 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:03 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:03 - article_server - INFO - [SQL参数] (11,) 21:58:03 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:03 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:03 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:03 - article_server - INFO - [SQL参数] (1,) 21:58:03 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:03 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:58:03 - article_server - INFO - [获取产品列表] 查询成功, 总数: 6, 当前页: 1, 每页: 20, 返回数量: 6, 企业ID: 1, IP: 36.27.52.26 21:58:03 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:58:04 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:04 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:04 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:58:04 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:58:04 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:58:04 - article_server - INFO - [API访问] GET /api/products/types/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:04 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:04 - article_server - INFO - [获取企业产品类型列表] 开始处理请求, IP: 36.27.52.26 21:58:04 - article_server - INFO - [获取企业产品类型列表] 企业ID: 1, IP: 36.27.52.26 21:58:04 - article_server - INFO - [API访问] GET /api/users/info - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:04 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:04 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26 21:58:04 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26 21:58:04 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:04 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:58:04 - article_server - INFO - [SQL参数] [1] 21:58:04 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:04 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_product_types WHERE enterprise_id = %s 21:58:04 - article_server - INFO - [SQL参数] [1] 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account, is_bound_xhs, bound_at, department, role, status, created_at, updated_at FROM ai_users WHERE id = %s AND status != 'deleted' 21:58:05 - article_server - INFO - [SQL参数] (4,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:05 - article_server - INFO - [SQL数据] 查询结果: [{'total': 6}] 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:05 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}] 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:05 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}] 21:58:05 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:58:05 - article_server - INFO - [SQL参数] [1, 20, 0] 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, type_name, enterprise_id, product_id, created_at FROM ai_product_types WHERE enterprise_id = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:58:05 - article_server - INFO - [SQL参数] [1, 100, 0] 21:58:05 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:05 - 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()) 21:58:05 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '36.27.52.26', '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) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 6 条记录 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 29 21:58:05 - article_server - INFO - [获取企业产品类型列表] 查询成功, 企业ID: 1, 总数: 0, 返回: 0, IP: 36.27.52.26 21:58:05 - article_server - INFO - [API响应] GET /api/products/types/list - IP: 36.27.52.26 - 状态码: 200 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (25,) 21:58:05 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 29 21:58:05 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (24,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:05 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:05 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:58:05 - article_server - INFO - [API访问] GET /api/users/info - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:05 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:58:05 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:58:05 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:05 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26 21:58:05 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26 21:58:05 - article_server - INFO - [API访问] GET /api/products/types/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:05 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:05 - article_server - INFO - [获取企业产品类型列表] 开始处理请求, IP: 36.27.52.26 21:58:05 - article_server - INFO - [获取企业产品类型列表] 企业ID: 1, IP: 36.27.52.26 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:58:05 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account, is_bound_xhs, bound_at, department, role, status, created_at, updated_at FROM ai_users WHERE id = %s AND status != 'deleted' 21:58:05 - article_server - INFO - [SQL参数] [1] 21:58:05 - article_server - INFO - [SQL参数] (4,) 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_product_types WHERE enterprise_id = %s 21:58:05 - article_server - INFO - [SQL参数] [1] 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (13,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:05 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}] 21:58:05 - article_server - INFO - [SQL数据] 查询结果: [{'total': 6}] 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:05 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}] 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26 21:58:05 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:05 - 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()) 21:58:05 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '36.27.52.26', '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) 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:58:05 - article_server - INFO - [SQL参数] [1, 20, 0] 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (12,) 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, type_name, enterprise_id, product_id, created_at FROM ai_product_types WHERE enterprise_id = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:58:05 - article_server - INFO - [SQL参数] [1, 100, 0] 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 6 条记录 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 30 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 30 21:58:05 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200 21:58:05 - article_server - INFO - [获取企业产品类型列表] 查询成功, 企业ID: 1, 总数: 0, 返回: 0, IP: 36.27.52.26 21:58:05 - article_server - INFO - [API响应] GET /api/products/types/list - IP: 36.27.52.26 - 状态码: 200 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (11,) 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (25,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (1,) 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (24,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:05 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [获取产品列表] 查询成功, 总数: 6, 当前页: 1, 每页: 20, 返回数量: 6, 企业ID: 1, IP: 36.27.52.26 21:58:05 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (13,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (12,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (11,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:05 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:05 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:05 - article_server - INFO - [SQL参数] (1,) 21:58:05 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:05 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:58:05 - article_server - INFO - [获取产品列表] 查询成功, 总数: 6, 当前页: 1, 每页: 20, 返回数量: 6, 企业ID: 1, IP: 36.27.52.26 21:58:05 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:58:09 - article_server - INFO - [API访问] DELETE /api/products/24 - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:09 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:09 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:09 - article_server - INFO - [SQL语句] SELECT id, name FROM ai_products WHERE id = %s AND enterprise_id = %s AND status != 'deleted' 21:58:09 - article_server - INFO - [SQL参数] (24, 1) 21:58:09 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:09 - article_server - INFO - [SQL数据] 查询结果: [{'id': 24, 'name': '产品(2)'}] 21:58:09 - article_server - INFO - [SQL执行] 开始执行更新SQL 21:58:09 - article_server - INFO - [SQL语句] UPDATE ai_products SET status = 'deleted', updated_at = NOW() WHERE id = %s 21:58:09 - article_server - INFO - [SQL参数] (24,) 21:58:09 - article_server - INFO - [SQL结果] 更新完成,影响 1 行 21:58:09 - article_server - INFO - [SQL执行] 开始执行更新SQL 21:58:09 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET products_total = products_total - 1 WHERE id = %s 21:58:09 - article_server - INFO - [SQL参数] (1,) 21:58:09 - article_server - INFO - [SQL结果] 更新完成,影响 1 行 21:58:09 - article_server - INFO - 删除产品成功: 产品(2) 21:58:09 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:09 - 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()) 21:58:09 - article_server - INFO - [SQL参数] (4, 'delete_product', 'product', 24, '删除产品: 产品(2)', '36.27.52.26', '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) 21:58:09 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 31 21:58:09 - article_server - INFO - [业务日志] 操作: delete_product | 用户ID: 4 | 目标: product#24 | 状态: success | IP: 36.27.52.26 | 日志ID: 31 21:58:09 - article_server - INFO - [API响应] DELETE /api/products/24 - IP: 36.27.52.26 - 状态码: 200 21:58:09 - article_server - INFO - [API访问] GET /api/products/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:09 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:09 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26 21:58:09 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26 21:58:09 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26 21:58:09 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:09 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted' 21:58:09 - article_server - INFO - [SQL参数] [1] 21:58:09 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:09 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}] 21:58:09 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:09 - article_server - INFO - [SQL语句] SELECT p.id, p.name, p.type_name, p.knowledge, p.status, p.articles_total, p.published_total, p.image_url, p.image_thumbnail_url, p.created_at, p.updated_at FROM ai_products p WHERE enterprise_id = %s AND status != 'deleted' ORDER BY p.created_at DESC LIMIT %s OFFSET %s 21:58:09 - article_server - INFO - [SQL参数] [1, 20, 0] 21:58:09 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录 21:58:09 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:09 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:09 - article_server - INFO - [SQL参数] (25,) 21:58:09 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:10 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:10 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:10 - article_server - INFO - [SQL参数] (13,) 21:58:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:10 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:10 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:10 - article_server - INFO - [SQL参数] (12,) 21:58:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:10 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:10 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:10 - article_server - INFO - [SQL参数] (11,) 21:58:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:10 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:10 - article_server - INFO - [SQL语句] SELECT id, tag_name FROM ai_product_tags WHERE product_id = %s 21:58:10 - article_server - INFO - [SQL参数] (1,) 21:58:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}] 21:58:10 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 20, 返回数量: 5, 企业ID: 1, IP: 36.27.52.26 21:58:10 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200 21:58:12 - article_server - INFO - [API访问] GET /api/images/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:12 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:12 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:12 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_images WHERE enterprise_id = %s AND status = %s 21:58:12 - article_server - INFO - [SQL参数] [1, 'active'] 21:58:12 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:12 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}] 21:58:12 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:12 - article_server - INFO - [SQL语句] SELECT id, product_id, product_name, image_name, image_url, image_thumb_url, thumbnail_url, image_type_id, image_type_name, department, keywords, size_type, file_size, width, height, status, created_at, updated_at FROM ai_images WHERE enterprise_id = %s AND status = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:58:12 - article_server - INFO - [SQL参数] [1, 'active', 100, 0] 21:58:12 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:12 - article_server - INFO - 获取图片列表成功,总数: 0 21:58:12 - article_server - INFO - [API响应] GET /api/images/list - IP: 36.27.52.26 - 状态码: 200 21:58:42 - article_server - INFO - [API访问] POST /api/images/upload - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:42 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:42 - article_server - INFO - [上传图片] 图片尺寸优化: 缩放到 (838, 1080) 21:58:43 - article_server - INFO - [上传图片] 优化原图保存成功: /home/work/baijiahao/tags_images/Images/20251216/1765893522846382.png 21:58:43 - article_server - INFO - [上传图片] 缩略图生成成功: /home/work/baijiahao/tags_images/Images/20251216/1765893522846382_thumb.png (尺寸: (120, 160)) 21:58:43 - article_server - INFO - [上传图片] 开始调用 TransformerImage 处理图片 21:58:43 - article_server - INFO - [OSS业务] 开始处理图片上传请求 - 文件: 1765893522846382.png 21:58:43 - article_server - INFO - [OSS业务] 文件信息 - 大小: 988600 bytes, 路径: /home/work/baijiahao/tags_images/Images/20251216/1765893522846382.png 21:58:43 - article_server - INFO - [OSS上传] 开始上传文件: /home/work/baijiahao/tags_images/Images/20251216/1765893522846382.png -> Images/20251216/1765893522846382.png 21:58:43 - article_server - INFO - [OSS业务] OSS配置 - Bucket: oss-pai-apou8llecyqfa7c9du-cn-shanghai, Endpoint: https://oss-cn-shanghai.aliyuncs.com/ 21:58:50 - article_server - INFO - [OSS业务] 上传耗时: 6.56 秒 21:58:50 - article_server - INFO - [OSS上传] 文件上传成功: Images/20251216/1765893522846382.png -> https://oss-pai-apou8llecyqfa7c9du-cn-shanghai.oss-cn-shanghai.aliyuncs.com//Images/20251216/1765893522846382.png 21:58:50 - article_server - INFO - [OSS业务] 上传成功 - OSS Key: Images/20251216/1765893522846382.png, 文件大小: 988600 bytes, 耗时: 6.56s 21:58:50 - article_server - INFO - [上传图片] 原图上传结果: {'success': True, 'message': '上传成功', 'oss_url': 'https://oss-pai-apou8llecyqfa7c9du-cn-shanghai.oss-cn-shanghai.aliyuncs.com//Images/20251216/1765893522846382.png', 'oss_key': 'Images/20251216/1765893522846382.png'} 21:58:50 - article_server - INFO - [OSS业务] 开始处理图片上传请求 - 文件: 1765893522846382_thumb.png 21:58:50 - article_server - INFO - [OSS业务] 文件信息 - 大小: 32024 bytes, 路径: /home/work/baijiahao/tags_images/Images/20251216/1765893522846382_thumb.png 21:58:50 - article_server - INFO - [OSS上传] 开始上传文件: /home/work/baijiahao/tags_images/Images/20251216/1765893522846382_thumb.png -> Images/20251216/1765893522846382_thumb.png 21:58:50 - article_server - INFO - [OSS业务] OSS配置 - Bucket: oss-pai-apou8llecyqfa7c9du-cn-shanghai, Endpoint: https://oss-cn-shanghai.aliyuncs.com/ 21:58:50 - article_server - INFO - [OSS业务] 上传耗时: 0.20 秒 21:58:50 - article_server - INFO - [OSS上传] 文件上传成功: Images/20251216/1765893522846382_thumb.png -> https://oss-pai-apou8llecyqfa7c9du-cn-shanghai.oss-cn-shanghai.aliyuncs.com//Images/20251216/1765893522846382_thumb.png 21:58:50 - article_server - INFO - [OSS业务] 上传成功 - OSS Key: Images/20251216/1765893522846382_thumb.png, 文件大小: 32024 bytes, 耗时: 0.20s 21:58:50 - article_server - INFO - [上传图片] 缩图上传结果: {'success': True, 'message': '上传成功', 'oss_url': 'https://oss-pai-apou8llecyqfa7c9du-cn-shanghai.oss-cn-shanghai.aliyuncs.com//Images/20251216/1765893522846382_thumb.png', 'oss_key': 'Images/20251216/1765893522846382_thumb.png'} 21:58:50 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:50 - article_server - INFO - [SQL语句] INSERT INTO ai_images (enterprise_id, product_id, product_name, image_name, image_url, image_thumb_url, thumbnail_url, image_type_id, image_type_name, department, keywords, size_type, file_size, width, height, upload_user_id, status) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) 21:58:50 - article_server - INFO - [SQL参数] (1, 32, '测试产品_7766', '图片描述图片描述', '20251216/1765893522846382.png', '20251216/1765893522846382_thumb.png', '20251216/1765893522846382_thumb.png', 2, '场景图(图片类型)', '', '图片描述,图片描述1', 'medical', 1263901, 993, 1280, 4, 'active') 21:58:50 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 23 21:58:50 - article_server - INFO - [上传图片] 步骤(1) ai_images 入库成功: image_id=23 21:58:50 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:50 - article_server - INFO - [SQL语句] SELECT id FROM ai_image_tags_name WHERE enterprise_id = %s AND tag_name = %s 21:58:50 - article_server - INFO - [SQL参数] (1, '图片描述') 21:58:50 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:50 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:50 - article_server - INFO - [SQL语句] INSERT INTO ai_image_tags_name (enterprise_id, tag_name, status) VALUES (%s, %s, %s) 21:58:50 - article_server - INFO - [SQL参数] (1, '图片描述', 'active') 21:58:50 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 1 21:58:50 - article_server - INFO - [上传图片] 步骤(2) 新标签入库成功: tag_name=图片描述, tag_id=1 21:58:50 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:50 - article_server - INFO - [SQL语句] SELECT id FROM ai_image_tags_name WHERE enterprise_id = %s AND tag_name = %s 21:58:50 - article_server - INFO - [SQL参数] (1, '图片描述1') 21:58:51 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录 21:58:51 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:51 - article_server - INFO - [SQL语句] INSERT INTO ai_image_tags_name (enterprise_id, tag_name, status) VALUES (%s, %s, %s) 21:58:51 - article_server - INFO - [SQL参数] (1, '图片描述1', 'active') 21:58:51 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 2 21:58:51 - article_server - INFO - [上传图片] 步骤(2) 新标签入库成功: tag_name=图片描述1, tag_id=2 21:58:51 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:51 - article_server - INFO - [SQL语句] INSERT INTO ai_image_tags (enterprise_id, product_id, image_id, image_name, image_url, image_thumb_url, tag_id, tag_name, created_user_id) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s) 21:58:51 - article_server - INFO - [SQL参数] (1, 32, 23, '图片描述图片描述', '20251216/1765893522846382.png', '20251216/1765893522846382_thumb.png', 1, '图片描述', 4) 21:58:51 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 1 21:58:51 - article_server - INFO - [上传图片] 步骤(3) 关系映射入库成功: image_id=23, tag_id=1, tag_name=图片描述, product_id=32 21:58:51 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:51 - article_server - INFO - [SQL语句] INSERT INTO ai_image_tags (enterprise_id, product_id, image_id, image_name, image_url, image_thumb_url, tag_id, tag_name, created_user_id) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s) 21:58:51 - article_server - INFO - [SQL参数] (1, 32, 23, '图片描述图片描述', '20251216/1765893522846382.png', '20251216/1765893522846382_thumb.png', 2, '图片描述1', 4) 21:58:51 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 2 21:58:51 - article_server - INFO - [上传图片] 步骤(3) 关系映射入库成功: image_id=23, tag_id=2, tag_name=图片描述1, product_id=32 21:58:51 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:51 - article_server - INFO - [SQL语句] INSERT INTO ai_product_images (enterprise_id, product_id, product_name, image_id, image_name, image_url, thumbnail_url, type_name, description, file_size, width, height, upload_user_id, status) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) 21:58:51 - article_server - INFO - [SQL参数] (1, 32, '测试产品_7766', 23, '图片描述图片描述', '20251216/1765893522846382.png', '20251216/1765893522846382_thumb.png', '场景图(图片类型)', '', 1263901, 993, 1280, 4, 'active') 21:58:51 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 11 21:58:51 - article_server - INFO - [上传图片] 步骤(4) ai_product_images 入库成功: product_image_id=11, product_id=32, image_id=23 21:58:51 - article_server - INFO - [上传图片] 全部完成: image_id=23, 标签数=2, 关系数=2, product_image_id=11 21:58:51 - article_server - INFO - [API响应] POST /api/images/upload - IP: 36.27.52.26 - 状态码: 200 21:58:51 - article_server - INFO - [API访问] GET /api/images/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:51 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:51 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:51 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_images WHERE enterprise_id = %s AND status = %s 21:58:51 - article_server - INFO - [SQL参数] [1, 'active'] 21:58:51 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:51 - article_server - INFO - [SQL数据] 查询结果: [{'total': 1}] 21:58:51 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:51 - article_server - INFO - [SQL语句] SELECT id, product_id, product_name, image_name, image_url, image_thumb_url, thumbnail_url, image_type_id, image_type_name, department, keywords, size_type, file_size, width, height, status, created_at, updated_at FROM ai_images WHERE enterprise_id = %s AND status = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:58:51 - article_server - INFO - [SQL参数] [1, 'active', 100, 0] 21:58:51 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:51 - article_server - INFO - [SQL数据] 查询结果: [{'id': 23, 'product_id': 32, 'product_name': '测试产品_7766', 'image_name': '图片描述图片描述', 'image_url': '20251216/1765893522846382.png', 'image_thumb_url': '20251216/1765893522846382_thumb.png', 'thumbnail_url': '20251216/1765893522846382_thumb.png', 'image_type_id': 2, 'image_type_name': '场景图(图片类型)', 'department': '', 'keywords': '图片描述,图片描述1', 'size_type': 'medical', 'file_size': 1263901, 'width': 993, 'height': 1280, 'status': 'active', 'created_at': datetime.datetime(2025, 12, 16, 13, 58, 50), 'updated_at': datetime.datetime(2025, 12, 16, 13, 58, 50)}] 21:58:51 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:51 - article_server - INFO - [SQL语句] SELECT tag_id, tag_name FROM ai_image_tags WHERE image_id = %s AND enterprise_id = %s ORDER BY created_at 21:58:51 - article_server - INFO - [SQL参数] [23, 1] 21:58:51 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录 21:58:51 - article_server - INFO - [SQL数据] 查询结果: [{'tag_id': 1, 'tag_name': '图片描述'}, {'tag_id': 2, 'tag_name': '图片描述1'}] 21:58:51 - article_server - INFO - 获取图片列表成功,总数: 1 21:58:51 - article_server - INFO - [API响应] GET /api/images/list - IP: 36.27.52.26 - 状态码: 200 21:58:54 - article_server - INFO - [API访问] GET /api/images/list - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:54 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:54 - article_server - INFO - [API访问] GET /api/users/info - IP: 36.27.52.26 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa 21:58:54 - article_server - INFO - [Token验证成功] 用户ID: 4 21:58:54 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26 21:58:54 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26 21:58:54 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:54 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_images WHERE enterprise_id = %s AND status = %s 21:58:54 - article_server - INFO - [SQL参数] [1, 'active'] 21:58:54 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:54 - article_server - INFO - [SQL语句] SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone, wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account, is_bound_xhs, bound_at, department, role, status, created_at, updated_at FROM ai_users WHERE id = %s AND status != 'deleted' 21:58:54 - article_server - INFO - [SQL参数] (4,) 21:58:54 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:54 - article_server - INFO - [SQL数据] 查询结果: [{'total': 1}] 21:58:54 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:54 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}] 21:58:54 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26 21:58:54 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:54 - article_server - INFO - [SQL语句] SELECT id, product_id, product_name, image_name, image_url, image_thumb_url, thumbnail_url, image_type_id, image_type_name, department, keywords, size_type, file_size, width, height, status, created_at, updated_at FROM ai_images WHERE enterprise_id = %s AND status = %s ORDER BY created_at DESC LIMIT %s OFFSET %s 21:58:54 - article_server - INFO - [SQL参数] [1, 'active', 100, 0] 21:58:54 - article_server - INFO - [SQL执行] 开始执行插入SQL 21:58:54 - 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()) 21:58:54 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '36.27.52.26', '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) 21:58:54 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录 21:58:54 - article_server - INFO - [SQL数据] 查询结果: [{'id': 23, 'product_id': 32, 'product_name': '测试产品_7766', 'image_name': '图片描述图片描述', 'image_url': '20251216/1765893522846382.png', 'image_thumb_url': '20251216/1765893522846382_thumb.png', 'thumbnail_url': '20251216/1765893522846382_thumb.png', 'image_type_id': 2, 'image_type_name': '场景图(图片类型)', 'department': '', 'keywords': '图片描述,图片描述1', 'size_type': 'medical', 'file_size': 1263901, 'width': 993, 'height': 1280, 'status': 'active', 'created_at': datetime.datetime(2025, 12, 16, 13, 58, 50), 'updated_at': datetime.datetime(2025, 12, 16, 13, 58, 50)}] 21:58:54 - article_server - INFO - [SQL结果] 插入完成,新记录ID: 32 21:58:55 - article_server - INFO - [SQL执行] 开始执行查询SQL 21:58:55 - article_server - INFO - [SQL语句] SELECT tag_id, tag_name FROM ai_image_tags WHERE image_id = %s AND enterprise_id = %s ORDER BY created_at 21:58:55 - article_server - INFO - [SQL参数] [23, 1] 21:58:55 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 32 21:58:55 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200 21:58:55 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录 21:58:55 - article_server - INFO - [SQL数据] 查询结果: [{'tag_id': 1, 'tag_name': '图片描述'}, {'tag_id': 2, 'tag_name': '图片描述1'}] 21:58:55 - article_server - INFO - 获取图片列表成功,总数: 1 21:58:55 - article_server - INFO - [API响应] GET /api/images/list - IP: 36.27.52.26 - 状态码: 200