Files
ai_wht_B/log10bjh_wht_server_api_2512162138.log
“shengyudong” 5a384b694e 2026-1-6
2026-01-06 14:18:39 +08:00

3410 lines
283 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

21:38:58 - article_server - INFO - 日志系统已启动 - 记录器: article_server
21:38:58 - article_server - INFO - 主日志文件: logs/article_server.log
21:38:58 - article_server - INFO - 错误日志文件: logs/article_error.log
21:38:58 - article_server - INFO - 日志保留策略: 每天午夜分割主日志保留3天
21:38:58 - article_server - INFO - 错误日志保留策略: 每天午夜分割保留9天
21:38:58 - article_server - INFO - 万花筒API服务模块已加载
21:46:15 - article_server - INFO - [API访问] POST /api/auth/login - 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:46:15 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 36.27.52.26
21:46:15 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 36.27.52.26
21:46:15 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430
21:46:16 - article_server - INFO - 数据库连接成功,字符集设置完成
21:46:16 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:16 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, phone, password,
real_name, role, status, is_bound_xhs, xhs_account
FROM ai_users
WHERE (phone = %s OR username = %s) AND status = 'active'
21:46:16 - article_server - INFO - [SQL参数] ('13621242430', '13621242430')
21:46:16 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
21:46:16 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '饶文龙', 'role': 'enterprise', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户4'}, {'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户'}]
21:46:16 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user004, 角色: enterprise, 企业: rwl企业4号, 企业ID: 1
21:46:16 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430
21:46:16 - article_server - WARNING - [用户登录失败] 密码错误: 13621242430, 用户名: user004, IP: 36.27.52.26
21:46:16 - article_server - INFO - [API响应] POST /api/auth/login - IP: 36.27.52.26 - 状态码: 401
21:46:16 - article_server - INFO - [API访问] POST /api/auth/employee/login - 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:46:16 - article_server - INFO - [员工登录] 开始处理员工登录请求, IP: 36.27.52.26
21:46:16 - article_server - INFO - [员工登录] 收到登录请求, 手机号: 13621242430, IP: 36.27.52.26
21:46:16 - article_server - INFO - [员工登录] 开始查询员工信息, 手机号: 13621242430
21:46:16 - article_server - INFO - 数据库连接成功,字符集设置完成
21:46:16 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:16 - article_server - INFO - [SQL语句]
SELECT u.id, u.enterprise_id, u.real_name, u.phone, u.password, u.role, u.status,
u.is_bound_xhs, u.xhs_account,
e.name as enterprise_name
FROM ai_users u
LEFT JOIN ai_enterprises e ON u.enterprise_id = e.id
WHERE u.phone = %s
21:46:16 - article_server - INFO - [SQL参数] ('13621242430',)
21:46:16 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
21:46:16 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'real_name': '饶文龙', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'role': 'enterprise', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户4', 'enterprise_name': '乐航'}, {'id': 10, 'enterprise_id': 10, 'real_name': '测试用户10', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户', 'enterprise_name': '测试企业10号'}]
21:46:16 - article_server - INFO - [员工登录] 查询到员工信息, 姓名: 饶文龙, 角色: enterprise, 企业: 乐航, 状态: active, 绑定小红书: 1
21:46:16 - article_server - INFO - [员工登录] 开始验证密码, 手机号: 13621242430, 姓名: 饶文龙
21:46:16 - article_server - WARNING - [员工登录失败] 密码错误: 13621242430, 姓名: 饶文龙, IP: 36.27.52.26
21:46:16 - article_server - INFO - [API响应] POST /api/auth/employee/login - IP: 36.27.52.26 - 状态码: 401
21:46:18 - article_server - INFO - [API访问] POST /api/auth/login - 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:46:18 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 36.27.52.26
21:46:18 - article_server - INFO - [用户登录] 收到登录请求, 账号: 15707023967, IP: 36.27.52.26
21:46:18 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 15707023967
21:46:19 - article_server - INFO - 数据库连接成功,字符集设置完成
21:46:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:19 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, phone, password,
real_name, role, status, is_bound_xhs, xhs_account
FROM ai_users
WHERE (phone = %s OR username = %s) AND status = 'active'
21:46:19 - article_server - INFO - [SQL参数] ('15707023967', '15707023967')
21:46:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:19 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'phone': '15707023967', 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'real_name': '测试员工API', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户'}]
21:46:19 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: 15707023967, 角色: admin, 企业: 测试企业1号, 企业ID: 1
21:46:19 - article_server - INFO - [用户登录] 开始验证密码, 账号: 15707023967
21:46:19 - article_server - INFO - [用户登录] 密码验证成功, 用户名: 15707023967, 角色: admin
21:46:19 - article_server - INFO - [用户登录] 开始生成token, 用户ID: 18, 角色: admin
21:46:19 - article_server - INFO - [Token生成] 用户: 15707023967, ID: 18, 角色: admin
21:46:19 - article_server - INFO - [用户登录成功] Token生成成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:19 - article_server - INFO - [API响应] POST /api/auth/login - IP: 36.27.52.26 - 状态码: 200
21:46:19 - 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:46:19 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:19 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:46:19 - article_server - INFO - [获取用户信息] 用户ID: 18, IP: 36.27.52.26
21:46:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:19 - 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:46:19 - article_server - INFO - [SQL参数] (18,)
21:46:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:19 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'real_name': '测试员工API', 'email': None, 'phone': '15707023967', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': '[{"domain":"creator.xiaohongshu.com","expires":1765886300.80173,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d09d017658845007813469ec5670285b8340a360cc4c2201c75df086add"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"xsecappid","path":"/","sameSite":"Lax","secure":false,"value":"ugc"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"a1","path":"/","sameSite":"Lax","secure":false,"value":"19b26eb1f5676nwqq68tzsm1efzwnqb8rd8crbo9150000919444"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"webId","path":"/","sameSite":"Lax","secure":false,"value":"334b292408be369dee3e00cd00c02814"},{"domain":"edith.xiaohongshu.com","expires":1765886302.122995,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a5085af17658845020951798e0db2aa6b1f683c091ed8d263bdc1b3b0c979"},{"domain":"customer.xiaohongshu.com","expires":1765886302.418581,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d0fba17658845023665490e85c24a0b09d80521793f3b775c036091618b"},{"domain":".xiaohongshu.com","expires":1766143702,"httpOnly":false,"name":"websectiga","path":"/","sameSite":"Lax","secure":false,"value":"10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009g9afb564467"},{"domain":".xiaohongshu.com","expires":1765885107,"httpOnly":false,"name":"sec_poison_id","path":"/","sameSite":"Lax","secure":false,"value":"6da615cb-087a-4c5a-9bbb-a9d1e0fc9e8a"},{"domain":".xiaohongshu.com","expires":1800444522.755296,"httpOnly":false,"name":"gid","path":"/","sameSite":"Lax","secure":false,"value":"yjDJKdDJdJFSyjDJKdDyifDl2KWKIEAAKY9uYjyM6ydiuS28EIADYF888jyj4448ifjjW8W4"},{"domain":".xiaohongshu.com","expires":1766489317.637236,"httpOnly":true,"name":"customer-sso-sid","path":"/","sameSite":"Lax","secure":false,"value":"68c517584416253487808513dmgvocd9wjabgnkp"},{"domain":".xiaohongshu.com","expires":1800444518.637453,"httpOnly":true,"name":"x-user-id-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"68bc3f6e0000000006025a91"},{"domain":".xiaohongshu.com","expires":1800444518.637597,"httpOnly":true,"name":"customerClientId","path":"/","sameSite":"Lax","secure":false,"value":"089912385389949"},{"domain":".xiaohongshu.com","expires":1768476517.637676,"httpOnly":true,"name":"access-token-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"customer.creator.AT-68c517584416253487808514asy0vghqougmrdd3"},{"domain":".xiaohongshu.com","expires":1768476518.637759,"httpOnly":true,"name":"galaxy_creator_session_id","path":"/","sameSite":"Lax","secure":false,"value":"8tDSYD75SNh8bbJhJodtab8gPBMlEAbI1jD6"},{"domain":".xiaohongshu.com","expires":1768476518.637825,"httpOnly":true,"name":"galaxy.creator.beaker.session.id","path":"/","sameSite":"Lax","secure":false,"value":"1765884518568024980624"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"loadts","path":"/","sameSite":"Lax","secure":false,"value":"1765884519319"}]', 'xhs_phone': '17710390289', 'xhs_account': '小红书用户', 'is_bound_xhs': 1, 'bound_at': datetime.datetime(2025, 12, 16, 19, 28, 51), 'department': '测试部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 19, 7, 24), 'updated_at': datetime.datetime(2025, 12, 16, 19, 28, 51)}]
21:46:19 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:46:19 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:19 - article_server - INFO - [获取用户信息] 查询成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:19 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:46:19 - article_server - INFO - [SQL参数] (1,)
21:46:19 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:46:19 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:19 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:46:19 - 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:46:19 - article_server - INFO - [SQL参数] (18, 'get_user_info', 'user', 18, '查询用户信息: 15707023967', '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:46:19 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:46:19 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:19 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:46:19 - article_server - INFO - [SQL结果] 插入完成新记录ID: 1
21:46:19 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 18 | 目标: user#18 | 状态: success | IP: 36.27.52.26 | 日志ID: 1
21:46:19 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:46:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:19 - 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())
21:46:19 - article_server - INFO - [SQL参数] (1,)
21:46:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:19 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:46:19 - article_server - INFO - 数据库连接成功,字符集设置完成
21:46:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:19 - 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
21:46:19 - article_server - INFO - [SQL参数] (1, 5)
21:46:19 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:19 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:46:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:19 - 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))
21:46:19 - article_server - INFO - [SQL参数] (1,)
21:46:19 - article_server - INFO - 数据库连接成功,字符集设置完成
21:46:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:19 - 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
21:46:19 - article_server - INFO - [SQL参数] (1, 1, 4)
21:46:19 - article_server - INFO - 获取最近发布成功
21:46:19 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:46:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:19 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:46:19 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:19 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:46:19 - article_server - INFO - 获取工作台概览成功
21:46:19 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:46:19 - article_server - INFO - 获取热门产品成功
21:46:19 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:46: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:46:21 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:21 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:46:21 - article_server - INFO - [获取用户信息] 用户ID: 18, IP: 36.27.52.26
21:46:21 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:46:21 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:21 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:46:21 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:21 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:46:21 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46: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:46:21 - article_server - INFO - [SQL参数] (18,)
21:46:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:21 - 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
21:46:21 - article_server - INFO - [SQL参数] (1, 1, 4)
21:46:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:21 - 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
21:46:21 - article_server - INFO - [SQL参数] (1, 5)
21:46:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:21 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:46:21 - article_server - INFO - [SQL参数] (1,)
21:46:21 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:21 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:46:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:21 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'real_name': '测试员工API', 'email': None, 'phone': '15707023967', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': '[{"domain":"creator.xiaohongshu.com","expires":1765886300.80173,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d09d017658845007813469ec5670285b8340a360cc4c2201c75df086add"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"xsecappid","path":"/","sameSite":"Lax","secure":false,"value":"ugc"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"a1","path":"/","sameSite":"Lax","secure":false,"value":"19b26eb1f5676nwqq68tzsm1efzwnqb8rd8crbo9150000919444"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"webId","path":"/","sameSite":"Lax","secure":false,"value":"334b292408be369dee3e00cd00c02814"},{"domain":"edith.xiaohongshu.com","expires":1765886302.122995,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a5085af17658845020951798e0db2aa6b1f683c091ed8d263bdc1b3b0c979"},{"domain":"customer.xiaohongshu.com","expires":1765886302.418581,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d0fba17658845023665490e85c24a0b09d80521793f3b775c036091618b"},{"domain":".xiaohongshu.com","expires":1766143702,"httpOnly":false,"name":"websectiga","path":"/","sameSite":"Lax","secure":false,"value":"10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009g9afb564467"},{"domain":".xiaohongshu.com","expires":1765885107,"httpOnly":false,"name":"sec_poison_id","path":"/","sameSite":"Lax","secure":false,"value":"6da615cb-087a-4c5a-9bbb-a9d1e0fc9e8a"},{"domain":".xiaohongshu.com","expires":1800444522.755296,"httpOnly":false,"name":"gid","path":"/","sameSite":"Lax","secure":false,"value":"yjDJKdDJdJFSyjDJKdDyifDl2KWKIEAAKY9uYjyM6ydiuS28EIADYF888jyj4448ifjjW8W4"},{"domain":".xiaohongshu.com","expires":1766489317.637236,"httpOnly":true,"name":"customer-sso-sid","path":"/","sameSite":"Lax","secure":false,"value":"68c517584416253487808513dmgvocd9wjabgnkp"},{"domain":".xiaohongshu.com","expires":1800444518.637453,"httpOnly":true,"name":"x-user-id-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"68bc3f6e0000000006025a91"},{"domain":".xiaohongshu.com","expires":1800444518.637597,"httpOnly":true,"name":"customerClientId","path":"/","sameSite":"Lax","secure":false,"value":"089912385389949"},{"domain":".xiaohongshu.com","expires":1768476517.637676,"httpOnly":true,"name":"access-token-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"customer.creator.AT-68c517584416253487808514asy0vghqougmrdd3"},{"domain":".xiaohongshu.com","expires":1768476518.637759,"httpOnly":true,"name":"galaxy_creator_session_id","path":"/","sameSite":"Lax","secure":false,"value":"8tDSYD75SNh8bbJhJodtab8gPBMlEAbI1jD6"},{"domain":".xiaohongshu.com","expires":1768476518.637825,"httpOnly":true,"name":"galaxy.creator.beaker.session.id","path":"/","sameSite":"Lax","secure":false,"value":"1765884518568024980624"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"loadts","path":"/","sameSite":"Lax","secure":false,"value":"1765884519319"}]', 'xhs_phone': '17710390289', 'xhs_account': '小红书用户', 'is_bound_xhs': 1, 'bound_at': datetime.datetime(2025, 12, 16, 19, 28, 51), 'department': '测试部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 19, 7, 24), 'updated_at': datetime.datetime(2025, 12, 16, 19, 28, 51)}]
21:46:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:21 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:46:21 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:21 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:46:21 - article_server - INFO - 获取热门产品成功
21:46:21 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:46:21 - article_server - INFO - [获取用户信息] 查询成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:21 - article_server - INFO - 获取最近发布成功
21:46:21 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:46:21 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:46: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:46:21 - article_server - INFO - [SQL参数] (18, 'get_user_info', 'user', 18, '查询用户信息: 15707023967', '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:46:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:21 - 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())
21:46:21 - article_server - INFO - [SQL参数] (1,)
21:46:21 - article_server - INFO - [SQL结果] 插入完成新记录ID: 2
21:46:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:21 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:46:21 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 18 | 目标: user#18 | 状态: success | IP: 36.27.52.26 | 日志ID: 2
21:46:21 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:46:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:21 - 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))
21:46:21 - article_server - INFO - [SQL参数] (1,)
21:46:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:21 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:46:21 - article_server - INFO - 获取工作台概览成功
21:46:21 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:46:22 - article_server - INFO - [获取用户信息] 用户ID: 18, IP: 36.27.52.26
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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
21:46:22 - article_server - INFO - [SQL参数] (1, 5)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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
21:46:22 - article_server - INFO - [SQL参数] (1, 1, 4)
21:46:22 - 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:46:22 - article_server - INFO - [SQL参数] (18,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'real_name': '测试员工API', 'email': None, 'phone': '15707023967', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': '[{"domain":"creator.xiaohongshu.com","expires":1765886300.80173,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d09d017658845007813469ec5670285b8340a360cc4c2201c75df086add"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"xsecappid","path":"/","sameSite":"Lax","secure":false,"value":"ugc"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"a1","path":"/","sameSite":"Lax","secure":false,"value":"19b26eb1f5676nwqq68tzsm1efzwnqb8rd8crbo9150000919444"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"webId","path":"/","sameSite":"Lax","secure":false,"value":"334b292408be369dee3e00cd00c02814"},{"domain":"edith.xiaohongshu.com","expires":1765886302.122995,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a5085af17658845020951798e0db2aa6b1f683c091ed8d263bdc1b3b0c979"},{"domain":"customer.xiaohongshu.com","expires":1765886302.418581,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d0fba17658845023665490e85c24a0b09d80521793f3b775c036091618b"},{"domain":".xiaohongshu.com","expires":1766143702,"httpOnly":false,"name":"websectiga","path":"/","sameSite":"Lax","secure":false,"value":"10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009g9afb564467"},{"domain":".xiaohongshu.com","expires":1765885107,"httpOnly":false,"name":"sec_poison_id","path":"/","sameSite":"Lax","secure":false,"value":"6da615cb-087a-4c5a-9bbb-a9d1e0fc9e8a"},{"domain":".xiaohongshu.com","expires":1800444522.755296,"httpOnly":false,"name":"gid","path":"/","sameSite":"Lax","secure":false,"value":"yjDJKdDJdJFSyjDJKdDyifDl2KWKIEAAKY9uYjyM6ydiuS28EIADYF888jyj4448ifjjW8W4"},{"domain":".xiaohongshu.com","expires":1766489317.637236,"httpOnly":true,"name":"customer-sso-sid","path":"/","sameSite":"Lax","secure":false,"value":"68c517584416253487808513dmgvocd9wjabgnkp"},{"domain":".xiaohongshu.com","expires":1800444518.637453,"httpOnly":true,"name":"x-user-id-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"68bc3f6e0000000006025a91"},{"domain":".xiaohongshu.com","expires":1800444518.637597,"httpOnly":true,"name":"customerClientId","path":"/","sameSite":"Lax","secure":false,"value":"089912385389949"},{"domain":".xiaohongshu.com","expires":1768476517.637676,"httpOnly":true,"name":"access-token-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"customer.creator.AT-68c517584416253487808514asy0vghqougmrdd3"},{"domain":".xiaohongshu.com","expires":1768476518.637759,"httpOnly":true,"name":"galaxy_creator_session_id","path":"/","sameSite":"Lax","secure":false,"value":"8tDSYD75SNh8bbJhJodtab8gPBMlEAbI1jD6"},{"domain":".xiaohongshu.com","expires":1768476518.637825,"httpOnly":true,"name":"galaxy.creator.beaker.session.id","path":"/","sameSite":"Lax","secure":false,"value":"1765884518568024980624"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"loadts","path":"/","sameSite":"Lax","secure":false,"value":"1765884519319"}]', 'xhs_phone': '17710390289', 'xhs_account': '小红书用户', 'is_bound_xhs': 1, 'bound_at': datetime.datetime(2025, 12, 16, 19, 28, 51), 'department': '测试部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 19, 7, 24), 'updated_at': datetime.datetime(2025, 12, 16, 19, 28, 51)}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:46:22 - article_server - INFO - [获取用户信息] 查询成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:22 - article_server - INFO - 获取最近发布成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - 获取热门产品成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:46:22 - 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:46:22 - article_server - INFO - [SQL参数] (18, 'get_user_info', 'user', 18, '查询用户信息: 15707023967', '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:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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())
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL结果] 插入完成新记录ID: 3
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:46:22 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 18 | 目标: user#18 | 状态: success | IP: 36.27.52.26 | 日志ID: 3
21:46:22 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:46:22 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:46:22 - article_server - INFO - [获取用户信息] 用户ID: 18, IP: 36.27.52.26
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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:46:22 - article_server - INFO - [SQL参数] (18,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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))
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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
21:46:22 - article_server - INFO - [SQL参数] (1, 1, 4)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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
21:46:22 - article_server - INFO - [SQL参数] (1, 5)
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'real_name': '测试员工API', 'email': None, 'phone': '15707023967', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': '[{"domain":"creator.xiaohongshu.com","expires":1765886300.80173,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d09d017658845007813469ec5670285b8340a360cc4c2201c75df086add"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"xsecappid","path":"/","sameSite":"Lax","secure":false,"value":"ugc"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"a1","path":"/","sameSite":"Lax","secure":false,"value":"19b26eb1f5676nwqq68tzsm1efzwnqb8rd8crbo9150000919444"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"webId","path":"/","sameSite":"Lax","secure":false,"value":"334b292408be369dee3e00cd00c02814"},{"domain":"edith.xiaohongshu.com","expires":1765886302.122995,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a5085af17658845020951798e0db2aa6b1f683c091ed8d263bdc1b3b0c979"},{"domain":"customer.xiaohongshu.com","expires":1765886302.418581,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d0fba17658845023665490e85c24a0b09d80521793f3b775c036091618b"},{"domain":".xiaohongshu.com","expires":1766143702,"httpOnly":false,"name":"websectiga","path":"/","sameSite":"Lax","secure":false,"value":"10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009g9afb564467"},{"domain":".xiaohongshu.com","expires":1765885107,"httpOnly":false,"name":"sec_poison_id","path":"/","sameSite":"Lax","secure":false,"value":"6da615cb-087a-4c5a-9bbb-a9d1e0fc9e8a"},{"domain":".xiaohongshu.com","expires":1800444522.755296,"httpOnly":false,"name":"gid","path":"/","sameSite":"Lax","secure":false,"value":"yjDJKdDJdJFSyjDJKdDyifDl2KWKIEAAKY9uYjyM6ydiuS28EIADYF888jyj4448ifjjW8W4"},{"domain":".xiaohongshu.com","expires":1766489317.637236,"httpOnly":true,"name":"customer-sso-sid","path":"/","sameSite":"Lax","secure":false,"value":"68c517584416253487808513dmgvocd9wjabgnkp"},{"domain":".xiaohongshu.com","expires":1800444518.637453,"httpOnly":true,"name":"x-user-id-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"68bc3f6e0000000006025a91"},{"domain":".xiaohongshu.com","expires":1800444518.637597,"httpOnly":true,"name":"customerClientId","path":"/","sameSite":"Lax","secure":false,"value":"089912385389949"},{"domain":".xiaohongshu.com","expires":1768476517.637676,"httpOnly":true,"name":"access-token-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"customer.creator.AT-68c517584416253487808514asy0vghqougmrdd3"},{"domain":".xiaohongshu.com","expires":1768476518.637759,"httpOnly":true,"name":"galaxy_creator_session_id","path":"/","sameSite":"Lax","secure":false,"value":"8tDSYD75SNh8bbJhJodtab8gPBMlEAbI1jD6"},{"domain":".xiaohongshu.com","expires":1768476518.637825,"httpOnly":true,"name":"galaxy.creator.beaker.session.id","path":"/","sameSite":"Lax","secure":false,"value":"1765884518568024980624"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"loadts","path":"/","sameSite":"Lax","secure":false,"value":"1765884519319"}]', 'xhs_phone': '17710390289', 'xhs_account': '小红书用户', 'is_bound_xhs': 1, 'bound_at': datetime.datetime(2025, 12, 16, 19, 28, 51), 'department': '测试部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 19, 7, 24), 'updated_at': datetime.datetime(2025, 12, 16, 19, 28, 51)}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:46:22 - article_server - INFO - [获取用户信息] 查询成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:22 - article_server - INFO - 获取热门产品成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - 获取工作台概览成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - 获取最近发布成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:46:22 - 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:46:22 - article_server - INFO - [SQL参数] (18, 'get_user_info', 'user', 18, '查询用户信息: 15707023967', '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:46:22 - article_server - INFO - [SQL结果] 插入完成新记录ID: 4
21:46:22 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 18 | 目标: user#18 | 状态: success | IP: 36.27.52.26 | 日志ID: 4
21:46:22 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:46:22 - article_server - INFO - [获取用户信息] 用户ID: 18, IP: 36.27.52.26
21:46:22 - article_server - INFO - 数据库连接成功,字符集设置完成
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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:46:22 - article_server - INFO - [SQL参数] (18,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'real_name': '测试员工API', 'email': None, 'phone': '15707023967', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': '[{"domain":"creator.xiaohongshu.com","expires":1765886300.80173,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d09d017658845007813469ec5670285b8340a360cc4c2201c75df086add"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"xsecappid","path":"/","sameSite":"Lax","secure":false,"value":"ugc"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"a1","path":"/","sameSite":"Lax","secure":false,"value":"19b26eb1f5676nwqq68tzsm1efzwnqb8rd8crbo9150000919444"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"webId","path":"/","sameSite":"Lax","secure":false,"value":"334b292408be369dee3e00cd00c02814"},{"domain":"edith.xiaohongshu.com","expires":1765886302.122995,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a5085af17658845020951798e0db2aa6b1f683c091ed8d263bdc1b3b0c979"},{"domain":"customer.xiaohongshu.com","expires":1765886302.418581,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d0fba17658845023665490e85c24a0b09d80521793f3b775c036091618b"},{"domain":".xiaohongshu.com","expires":1766143702,"httpOnly":false,"name":"websectiga","path":"/","sameSite":"Lax","secure":false,"value":"10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009g9afb564467"},{"domain":".xiaohongshu.com","expires":1765885107,"httpOnly":false,"name":"sec_poison_id","path":"/","sameSite":"Lax","secure":false,"value":"6da615cb-087a-4c5a-9bbb-a9d1e0fc9e8a"},{"domain":".xiaohongshu.com","expires":1800444522.755296,"httpOnly":false,"name":"gid","path":"/","sameSite":"Lax","secure":false,"value":"yjDJKdDJdJFSyjDJKdDyifDl2KWKIEAAKY9uYjyM6ydiuS28EIADYF888jyj4448ifjjW8W4"},{"domain":".xiaohongshu.com","expires":1766489317.637236,"httpOnly":true,"name":"customer-sso-sid","path":"/","sameSite":"Lax","secure":false,"value":"68c517584416253487808513dmgvocd9wjabgnkp"},{"domain":".xiaohongshu.com","expires":1800444518.637453,"httpOnly":true,"name":"x-user-id-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"68bc3f6e0000000006025a91"},{"domain":".xiaohongshu.com","expires":1800444518.637597,"httpOnly":true,"name":"customerClientId","path":"/","sameSite":"Lax","secure":false,"value":"089912385389949"},{"domain":".xiaohongshu.com","expires":1768476517.637676,"httpOnly":true,"name":"access-token-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"customer.creator.AT-68c517584416253487808514asy0vghqougmrdd3"},{"domain":".xiaohongshu.com","expires":1768476518.637759,"httpOnly":true,"name":"galaxy_creator_session_id","path":"/","sameSite":"Lax","secure":false,"value":"8tDSYD75SNh8bbJhJodtab8gPBMlEAbI1jD6"},{"domain":".xiaohongshu.com","expires":1768476518.637825,"httpOnly":true,"name":"galaxy.creator.beaker.session.id","path":"/","sameSite":"Lax","secure":false,"value":"1765884518568024980624"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"loadts","path":"/","sameSite":"Lax","secure":false,"value":"1765884519319"}]', 'xhs_phone': '17710390289', 'xhs_account': '小红书用户', 'is_bound_xhs': 1, 'bound_at': datetime.datetime(2025, 12, 16, 19, 28, 51), 'department': '测试部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 19, 7, 24), 'updated_at': datetime.datetime(2025, 12, 16, 19, 28, 51)}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [获取用户信息] 查询成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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
21:46:22 - article_server - INFO - [SQL参数] (1, 5)
21:46:22 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:46:22 - 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:46:22 - article_server - INFO - [SQL参数] (18, 'get_user_info', 'user', 18, '查询用户信息: 15707023967', '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:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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())
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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())
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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
21:46:22 - article_server - INFO - [SQL参数] (1, 1, 4)
21:46:22 - article_server - INFO - [SQL结果] 插入完成新记录ID: 5
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:46:22 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 18 | 目标: user#18 | 状态: success | IP: 36.27.52.26 | 日志ID: 5
21:46:22 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - 获取最近发布成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - 获取热门产品成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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))
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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))
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:46:22 - article_server - INFO - [获取用户信息] 用户ID: 18, IP: 36.27.52.26
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:46:22 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:46:22 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:22 - article_server - INFO - 获取工作台概览成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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:46:22 - article_server - INFO - [SQL参数] (18,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:46:22 - article_server - INFO - [SQL参数] (1,)
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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
21:46:22 - article_server - INFO - [SQL参数] (1, 1, 4)
21:46:22 - article_server - INFO - 获取工作台概览成功
21:46:22 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:46:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:22 - 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
21:46:22 - article_server - INFO - [SQL参数] (1, 5)
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'real_name': '测试员工API', 'email': None, 'phone': '15707023967', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': '[{"domain":"creator.xiaohongshu.com","expires":1765886300.80173,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d09d017658845007813469ec5670285b8340a360cc4c2201c75df086add"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"xsecappid","path":"/","sameSite":"Lax","secure":false,"value":"ugc"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"a1","path":"/","sameSite":"Lax","secure":false,"value":"19b26eb1f5676nwqq68tzsm1efzwnqb8rd8crbo9150000919444"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"webId","path":"/","sameSite":"Lax","secure":false,"value":"334b292408be369dee3e00cd00c02814"},{"domain":"edith.xiaohongshu.com","expires":1765886302.122995,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a5085af17658845020951798e0db2aa6b1f683c091ed8d263bdc1b3b0c979"},{"domain":"customer.xiaohongshu.com","expires":1765886302.418581,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d0fba17658845023665490e85c24a0b09d80521793f3b775c036091618b"},{"domain":".xiaohongshu.com","expires":1766143702,"httpOnly":false,"name":"websectiga","path":"/","sameSite":"Lax","secure":false,"value":"10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009g9afb564467"},{"domain":".xiaohongshu.com","expires":1765885107,"httpOnly":false,"name":"sec_poison_id","path":"/","sameSite":"Lax","secure":false,"value":"6da615cb-087a-4c5a-9bbb-a9d1e0fc9e8a"},{"domain":".xiaohongshu.com","expires":1800444522.755296,"httpOnly":false,"name":"gid","path":"/","sameSite":"Lax","secure":false,"value":"yjDJKdDJdJFSyjDJKdDyifDl2KWKIEAAKY9uYjyM6ydiuS28EIADYF888jyj4448ifjjW8W4"},{"domain":".xiaohongshu.com","expires":1766489317.637236,"httpOnly":true,"name":"customer-sso-sid","path":"/","sameSite":"Lax","secure":false,"value":"68c517584416253487808513dmgvocd9wjabgnkp"},{"domain":".xiaohongshu.com","expires":1800444518.637453,"httpOnly":true,"name":"x-user-id-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"68bc3f6e0000000006025a91"},{"domain":".xiaohongshu.com","expires":1800444518.637597,"httpOnly":true,"name":"customerClientId","path":"/","sameSite":"Lax","secure":false,"value":"089912385389949"},{"domain":".xiaohongshu.com","expires":1768476517.637676,"httpOnly":true,"name":"access-token-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"customer.creator.AT-68c517584416253487808514asy0vghqougmrdd3"},{"domain":".xiaohongshu.com","expires":1768476518.637759,"httpOnly":true,"name":"galaxy_creator_session_id","path":"/","sameSite":"Lax","secure":false,"value":"8tDSYD75SNh8bbJhJodtab8gPBMlEAbI1jD6"},{"domain":".xiaohongshu.com","expires":1768476518.637825,"httpOnly":true,"name":"galaxy.creator.beaker.session.id","path":"/","sameSite":"Lax","secure":false,"value":"1765884518568024980624"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"loadts","path":"/","sameSite":"Lax","secure":false,"value":"1765884519319"}]', 'xhs_phone': '17710390289', 'xhs_account': '小红书用户', 'is_bound_xhs': 1, 'bound_at': datetime.datetime(2025, 12, 16, 19, 28, 51), 'department': '测试部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 19, 7, 24), 'updated_at': datetime.datetime(2025, 12, 16, 19, 28, 51)}]
21:46:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:22 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:46:23 - article_server - INFO - [获取用户信息] 查询成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:23 - article_server - INFO - 获取热门产品成功
21:46:23 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:46:23 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:46:23 - 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:46:23 - article_server - INFO - [SQL参数] (18, 'get_user_info', 'user', 18, '查询用户信息: 15707023967', '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:46:23 - article_server - INFO - 获取最近发布成功
21:46:23 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:46:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:23 - 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())
21:46:23 - article_server - INFO - [SQL参数] (1,)
21:46:23 - article_server - INFO - [SQL结果] 插入完成新记录ID: 6
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:46:23 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 18 | 目标: user#18 | 状态: success | IP: 36.27.52.26 | 日志ID: 6
21:46:23 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:46:23 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:46:23 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:23 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:46:23 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:23 - 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:46:23 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:23 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:46:23 - article_server - INFO - [获取用户信息] 用户ID: 18, IP: 36.27.52.26
21:46:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:23 - 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))
21:46:23 - article_server - INFO - [SQL参数] (1,)
21:46:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:23 - 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
21:46:23 - article_server - INFO - [SQL参数] (1, 5)
21:46:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:23 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:46:23 - article_server - INFO - [SQL参数] (1,)
21:46:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:23 - 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:46:23 - article_server - INFO - [SQL参数] (18,)
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'real_name': '测试员工API', 'email': None, 'phone': '15707023967', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': '[{"domain":"creator.xiaohongshu.com","expires":1765886300.80173,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d09d017658845007813469ec5670285b8340a360cc4c2201c75df086add"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"xsecappid","path":"/","sameSite":"Lax","secure":false,"value":"ugc"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"a1","path":"/","sameSite":"Lax","secure":false,"value":"19b26eb1f5676nwqq68tzsm1efzwnqb8rd8crbo9150000919444"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"webId","path":"/","sameSite":"Lax","secure":false,"value":"334b292408be369dee3e00cd00c02814"},{"domain":"edith.xiaohongshu.com","expires":1765886302.122995,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a5085af17658845020951798e0db2aa6b1f683c091ed8d263bdc1b3b0c979"},{"domain":"customer.xiaohongshu.com","expires":1765886302.418581,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d0fba17658845023665490e85c24a0b09d80521793f3b775c036091618b"},{"domain":".xiaohongshu.com","expires":1766143702,"httpOnly":false,"name":"websectiga","path":"/","sameSite":"Lax","secure":false,"value":"10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009g9afb564467"},{"domain":".xiaohongshu.com","expires":1765885107,"httpOnly":false,"name":"sec_poison_id","path":"/","sameSite":"Lax","secure":false,"value":"6da615cb-087a-4c5a-9bbb-a9d1e0fc9e8a"},{"domain":".xiaohongshu.com","expires":1800444522.755296,"httpOnly":false,"name":"gid","path":"/","sameSite":"Lax","secure":false,"value":"yjDJKdDJdJFSyjDJKdDyifDl2KWKIEAAKY9uYjyM6ydiuS28EIADYF888jyj4448ifjjW8W4"},{"domain":".xiaohongshu.com","expires":1766489317.637236,"httpOnly":true,"name":"customer-sso-sid","path":"/","sameSite":"Lax","secure":false,"value":"68c517584416253487808513dmgvocd9wjabgnkp"},{"domain":".xiaohongshu.com","expires":1800444518.637453,"httpOnly":true,"name":"x-user-id-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"68bc3f6e0000000006025a91"},{"domain":".xiaohongshu.com","expires":1800444518.637597,"httpOnly":true,"name":"customerClientId","path":"/","sameSite":"Lax","secure":false,"value":"089912385389949"},{"domain":".xiaohongshu.com","expires":1768476517.637676,"httpOnly":true,"name":"access-token-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"customer.creator.AT-68c517584416253487808514asy0vghqougmrdd3"},{"domain":".xiaohongshu.com","expires":1768476518.637759,"httpOnly":true,"name":"galaxy_creator_session_id","path":"/","sameSite":"Lax","secure":false,"value":"8tDSYD75SNh8bbJhJodtab8gPBMlEAbI1jD6"},{"domain":".xiaohongshu.com","expires":1768476518.637825,"httpOnly":true,"name":"galaxy.creator.beaker.session.id","path":"/","sameSite":"Lax","secure":false,"value":"1765884518568024980624"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"loadts","path":"/","sameSite":"Lax","secure":false,"value":"1765884519319"}]', 'xhs_phone': '17710390289', 'xhs_account': '小红书用户', 'is_bound_xhs': 1, 'bound_at': datetime.datetime(2025, 12, 16, 19, 28, 51), 'department': '测试部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 19, 7, 24), 'updated_at': datetime.datetime(2025, 12, 16, 19, 28, 51)}]
21:46:23 - article_server - INFO - 获取工作台概览成功
21:46:23 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:46:23 - article_server - INFO - 获取最近发布成功
21:46:23 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:46:23 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:46:23 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:23 - article_server - INFO - [获取用户信息] 查询成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:23 - 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
21:46:23 - article_server - INFO - [SQL参数] (1, 1, 4)
21:46:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:23 - 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())
21:46:23 - article_server - INFO - [SQL参数] (1,)
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:46:23 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:46:23 - 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:46:23 - article_server - INFO - [SQL参数] (18, 'get_user_info', 'user', 18, '查询用户信息: 15707023967', '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:46:23 - article_server - INFO - 获取热门产品成功
21:46:23 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:46:23 - article_server - INFO - [SQL结果] 插入完成新记录ID: 7
21:46:23 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 18 | 目标: user#18 | 状态: success | IP: 36.27.52.26 | 日志ID: 7
21:46:23 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:46:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:23 - 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))
21:46:23 - article_server - INFO - [SQL参数] (1,)
21:46:23 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:23 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:46:23 - article_server - INFO - 获取工作台概览成功
21:46:23 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:46:25 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:46:25 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:25 - 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:46:25 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:46:25 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:25 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:46:25 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:25 - article_server - INFO - [获取用户信息] 用户ID: 18, IP: 36.27.52.26
21:46:25 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:46:25 - article_server - INFO - [Token验证成功] 用户ID: 18
21:46:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:25 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:46:25 - article_server - INFO - [SQL参数] (1,)
21:46:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:25 - 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
21:46:25 - 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:46:25 - article_server - INFO - [SQL参数] (1, 1, 4)
21:46:25 - article_server - INFO - [SQL参数] (18,)
21:46:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:25 - 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
21:46:25 - article_server - INFO - [SQL参数] (1, 5)
21:46:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:25 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:46:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:25 - article_server - INFO - [SQL数据] 查询结果: [{'id': 18, 'enterprise_id': 1, 'enterprise_name': '测试企业1号', 'username': '15707023967', 'real_name': '测试员工API', 'email': None, 'phone': '15707023967', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': '[{"domain":"creator.xiaohongshu.com","expires":1765886300.80173,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d09d017658845007813469ec5670285b8340a360cc4c2201c75df086add"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"xsecappid","path":"/","sameSite":"Lax","secure":false,"value":"ugc"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"a1","path":"/","sameSite":"Lax","secure":false,"value":"19b26eb1f5676nwqq68tzsm1efzwnqb8rd8crbo9150000919444"},{"domain":".xiaohongshu.com","expires":1797420501,"httpOnly":false,"name":"webId","path":"/","sameSite":"Lax","secure":false,"value":"334b292408be369dee3e00cd00c02814"},{"domain":"edith.xiaohongshu.com","expires":1765886302.122995,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a5085af17658845020951798e0db2aa6b1f683c091ed8d263bdc1b3b0c979"},{"domain":"customer.xiaohongshu.com","expires":1765886302.418581,"httpOnly":true,"name":"acw_tc","path":"/","sameSite":"Lax","secure":false,"value":"0a0d0fba17658845023665490e85c24a0b09d80521793f3b775c036091618b"},{"domain":".xiaohongshu.com","expires":1766143702,"httpOnly":false,"name":"websectiga","path":"/","sameSite":"Lax","secure":false,"value":"10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009g9afb564467"},{"domain":".xiaohongshu.com","expires":1765885107,"httpOnly":false,"name":"sec_poison_id","path":"/","sameSite":"Lax","secure":false,"value":"6da615cb-087a-4c5a-9bbb-a9d1e0fc9e8a"},{"domain":".xiaohongshu.com","expires":1800444522.755296,"httpOnly":false,"name":"gid","path":"/","sameSite":"Lax","secure":false,"value":"yjDJKdDJdJFSyjDJKdDyifDl2KWKIEAAKY9uYjyM6ydiuS28EIADYF888jyj4448ifjjW8W4"},{"domain":".xiaohongshu.com","expires":1766489317.637236,"httpOnly":true,"name":"customer-sso-sid","path":"/","sameSite":"Lax","secure":false,"value":"68c517584416253487808513dmgvocd9wjabgnkp"},{"domain":".xiaohongshu.com","expires":1800444518.637453,"httpOnly":true,"name":"x-user-id-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"68bc3f6e0000000006025a91"},{"domain":".xiaohongshu.com","expires":1800444518.637597,"httpOnly":true,"name":"customerClientId","path":"/","sameSite":"Lax","secure":false,"value":"089912385389949"},{"domain":".xiaohongshu.com","expires":1768476517.637676,"httpOnly":true,"name":"access-token-creator.xiaohongshu.com","path":"/","sameSite":"Lax","secure":false,"value":"customer.creator.AT-68c517584416253487808514asy0vghqougmrdd3"},{"domain":".xiaohongshu.com","expires":1768476518.637759,"httpOnly":true,"name":"galaxy_creator_session_id","path":"/","sameSite":"Lax","secure":false,"value":"8tDSYD75SNh8bbJhJodtab8gPBMlEAbI1jD6"},{"domain":".xiaohongshu.com","expires":1768476518.637825,"httpOnly":true,"name":"galaxy.creator.beaker.session.id","path":"/","sameSite":"Lax","secure":false,"value":"1765884518568024980624"},{"domain":".xiaohongshu.com","expires":1797420519,"httpOnly":false,"name":"loadts","path":"/","sameSite":"Lax","secure":false,"value":"1765884519319"}]', 'xhs_phone': '17710390289', 'xhs_account': '小红书用户', 'is_bound_xhs': 1, 'bound_at': datetime.datetime(2025, 12, 16, 19, 28, 51), 'department': '测试部', 'role': 'admin', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 19, 7, 24), 'updated_at': datetime.datetime(2025, 12, 16, 19, 28, 51)}]
21:46:25 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:25 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:46:25 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:46:25 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:46:25 - article_server - INFO - 获取最近发布成功
21:46:25 - article_server - INFO - [获取用户信息] 查询成功, 用户: 15707023967, 角色: admin, 企业: 测试企业1号, IP: 36.27.52.26
21:46:25 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:46:25 - article_server - INFO - 获取热门产品成功
21:46:25 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:46:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:25 - 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())
21:46:25 - article_server - INFO - [SQL参数] (1,)
21:46:25 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:46:25 - 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:46:25 - article_server - INFO - [SQL参数] (18, 'get_user_info', 'user', 18, '查询用户信息: 15707023967', '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:46:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:25 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:46:25 - article_server - INFO - [SQL结果] 插入完成新记录ID: 8
21:46:25 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 18 | 目标: user#18 | 状态: success | IP: 36.27.52.26 | 日志ID: 8
21:46:25 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:46:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:25 - 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))
21:46:25 - article_server - INFO - [SQL参数] (1,)
21:46:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:46:25 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:46:25 - article_server - INFO - 获取工作台概览成功
21:46:25 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:46:35 - article_server - INFO - [API访问] POST /api/auth/login - 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:46:35 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 36.27.52.26
21:46:35 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 36.27.52.26
21:46:35 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430
21:46:36 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:36 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, phone, password,
real_name, role, status, is_bound_xhs, xhs_account
FROM ai_users
WHERE (phone = %s OR username = %s) AND status = 'active'
21:46:36 - article_server - INFO - [SQL参数] ('13621242430', '13621242430')
21:46:36 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
21:46:36 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '饶文龙', 'role': 'enterprise', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户4'}, {'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户'}]
21:46:36 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user004, 角色: enterprise, 企业: rwl企业4号, 企业ID: 1
21:46:36 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430
21:46:36 - article_server - WARNING - [用户登录失败] 密码错误: 13621242430, 用户名: user004, IP: 36.27.52.26
21:46:36 - article_server - INFO - [API响应] POST /api/auth/login - IP: 36.27.52.26 - 状态码: 401
21:46:36 - article_server - INFO - [API访问] POST /api/auth/employee/login - 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:46:36 - article_server - INFO - [员工登录] 开始处理员工登录请求, IP: 36.27.52.26
21:46:36 - article_server - INFO - [员工登录] 收到登录请求, 手机号: 13621242430, IP: 36.27.52.26
21:46:36 - article_server - INFO - [员工登录] 开始查询员工信息, 手机号: 13621242430
21:46:36 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:46:36 - article_server - INFO - [SQL语句]
SELECT u.id, u.enterprise_id, u.real_name, u.phone, u.password, u.role, u.status,
u.is_bound_xhs, u.xhs_account,
e.name as enterprise_name
FROM ai_users u
LEFT JOIN ai_enterprises e ON u.enterprise_id = e.id
WHERE u.phone = %s
21:46:36 - article_server - INFO - [SQL参数] ('13621242430',)
21:46:36 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
21:46:36 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'real_name': '饶文龙', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'role': 'enterprise', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户4', 'enterprise_name': '乐航'}, {'id': 10, 'enterprise_id': 10, 'real_name': '测试用户10', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户', 'enterprise_name': '测试企业10号'}]
21:46:36 - article_server - INFO - [员工登录] 查询到员工信息, 姓名: 饶文龙, 角色: enterprise, 企业: 乐航, 状态: active, 绑定小红书: 1
21:46:36 - article_server - INFO - [员工登录] 开始验证密码, 手机号: 13621242430, 姓名: 饶文龙
21:46:36 - article_server - WARNING - [员工登录失败] 密码错误: 13621242430, 姓名: 饶文龙, IP: 36.27.52.26
21:46:36 - article_server - INFO - [API响应] POST /api/auth/employee/login - IP: 36.27.52.26 - 状态码: 401
21:47:18 - article_server - INFO - [API访问] POST /api/auth/login - 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:47:18 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 36.27.52.26
21:47:18 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 36.27.52.26
21:47:18 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430
21:47:18 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:18 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, phone, password,
real_name, role, status, is_bound_xhs, xhs_account
FROM ai_users
WHERE (phone = %s OR username = %s) AND status = 'active'
21:47:18 - article_server - INFO - [SQL参数] ('13621242430', '13621242430')
21:47:18 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
21:47:18 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'phone': '13621242430', 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'real_name': '饶文龙', 'role': 'enterprise', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户4'}, {'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户'}]
21:47:18 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user004, 角色: enterprise, 企业: rwl企业4号, 企业ID: 1
21:47:18 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430
21:47:18 - article_server - INFO - [用户登录] 密码验证成功, 用户名: user004, 角色: enterprise
21:47:18 - article_server - INFO - [用户登录] 检测到企业角色, 开始获取企业详细信息, 企业ID: 1
21:47:18 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:18 - 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'
21:47:18 - article_server - INFO - [SQL参数] (1,)
21:47:18 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:18 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'enterprise_ID': 'ENT-2024-0001', 'name': '乐航', 'short_name': '企业1222', 'phone': '13800138001', 'email': 'raowenlong@vizee.cn', 'status': 'active', 'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:47:18 - article_server - INFO - [用户登录] 获取企业信息成功, 企业名称: 乐航, 企业编号: ENT-2024-0001
21:47:18 - article_server - INFO - [用户登录] 开始生成token, 用户ID: 4, 角色: enterprise
21:47:18 - article_server - INFO - [Token生成] 用户: 13621242430, ID: 4, 角色: enterprise
21:47:18 - article_server - INFO - [用户登录成功] Token生成成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:47:18 - article_server - INFO - [API响应] POST /api/auth/login - IP: 36.27.52.26 - 状态码: 200
21:47:18 - 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:47:18 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:18 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:47:18 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:47:18 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:47:18 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:18 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:47:18 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:18 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:18 - 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:47:18 - article_server - INFO - [SQL参数] (4,)
21:47:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:19 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:47:19 - article_server - INFO - [SQL参数] (1,)
21:47:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:19 - 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
21:47:19 - article_server - INFO - [SQL参数] (1, 5)
21:47:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:19 - 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:47:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:19 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:47:19 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:19 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:47:19 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:47:19 - article_server - INFO - 获取最近发布成功
21:47:19 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:47:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:19 - 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())
21:47:19 - article_server - INFO - [SQL参数] (1,)
21:47:19 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:47:19 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:47:19 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:19 - 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:47:19 - 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:47:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:19 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:47:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:19 - 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
21:47:19 - article_server - INFO - [SQL参数] (1, 1, 4)
21:47:19 - article_server - INFO - [SQL结果] 插入完成新记录ID: 9
21:47:19 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:19 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:47:19 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 9
21:47:19 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:47:19 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:19 - 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))
21:47:19 - article_server - INFO - [SQL参数] (1,)
21:47:19 - article_server - INFO - 获取热门产品成功
21:47:19 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:47:19 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:19 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:47:19 - article_server - INFO - 获取工作台概览成功
21:47:19 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:47:20 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:47:20 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:47:20 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:20 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:20 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:47:20 - 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:47:20 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:20 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:20 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:47:20 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:47:20 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:20 - 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
21:47:20 - article_server - INFO - [SQL参数] (1, 5)
21:47:20 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:20 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:47:20 - article_server - INFO - [SQL参数] (1,)
21:47:20 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:20 - 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:47:20 - article_server - INFO - [SQL参数] (4,)
21:47:20 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:20 - 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
21:47:20 - article_server - INFO - [SQL参数] (1, 1, 4)
21:47:20 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:20 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:47:20 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:20 - 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:47:20 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:20 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:47:20 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:20 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:47:20 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:47:20 - article_server - INFO - 获取最近发布成功
21:47:20 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - 获取热门产品成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:47: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:47: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:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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())
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [SQL结果] 插入完成新记录ID: 10
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:47:21 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 10
21:47:21 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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))
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:47:21 - article_server - INFO - 获取工作台概览成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47: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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:47:21 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:47:21 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:47:21 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47: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:47:21 - article_server - INFO - [SQL参数] (4,)
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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
21:47:21 - article_server - INFO - [SQL参数] (1, 1, 4)
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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
21:47:21 - article_server - INFO - [SQL参数] (1, 5)
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47: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:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:47:21 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:47:21 - article_server - INFO - 获取热门产品成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:47: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:47: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:47:21 - article_server - INFO - 获取最近发布成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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())
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [SQL结果] 插入完成新记录ID: 11
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:47:21 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 11
21:47:21 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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))
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47: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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:47:21 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47: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:47:21 - article_server - INFO - [SQL参数] (4,)
21:47:21 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:47:21 - article_server - INFO - 获取工作台概览成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47: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:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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
21:47:21 - article_server - INFO - [SQL参数] (1, 5)
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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
21:47:21 - article_server - INFO - [SQL参数] (1, 1, 4)
21:47:21 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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())
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:47:21 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:47: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:47: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:47:21 - article_server - INFO - 获取最近发布成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:47:21 - article_server - INFO - 获取热门产品成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL结果] 插入完成新记录ID: 12
21:47:21 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 12
21:47:21 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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))
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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
21:47:21 - article_server - INFO - [SQL参数] (1, 1, 4)
21:47:21 - article_server - INFO - 获取工作台概览成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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
21:47:21 - article_server - INFO - [SQL参数] (1, 5)
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:47: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:47:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:21 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:47:21 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:47:21 - article_server - INFO - 获取热门产品成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - 获取最近发布成功
21:47:21 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47: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:47:21 - article_server - INFO - [SQL参数] (4,)
21:47:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:21 - 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())
21:47:21 - article_server - INFO - [SQL参数] (1,)
21:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47: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:47:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:21 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:47:22 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:47:22 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:22 - 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))
21:47:22 - article_server - INFO - [SQL参数] (1,)
21:47:22 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:47:22 - 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:47:22 - 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:47:22 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:22 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:47:22 - article_server - INFO - [SQL结果] 插入完成新记录ID: 13
21:47:22 - article_server - INFO - 获取工作台概览成功
21:47:22 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:47:22 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 13
21:47:22 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:47:23 - article_server - INFO - [API访问] GET /api/enterprises/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:47:23 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:23 - article_server - INFO - [获取企业列表] 开始处理请求, IP: 36.27.52.26
21:47:23 - article_server - INFO - [获取企业列表] 查询参数: page=1, pageSize=100, keyword=, status=, IP: 36.27.52.26
21:47:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:23 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_enterprises WHERE 1=1
21:47:23 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:23 - article_server - INFO - [SQL数据] 查询结果: [{'total': 11}]
21:47:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:23 - 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
21:47:23 - article_server - INFO - [SQL参数] [100, 0]
21:47:23 - article_server - INFO - [SQL结果] 查询完成,返回 11 条记录
21:47:23 - article_server - INFO - [获取企业列表] 查询成功, 总数: 11, 当前页: 1, 每页: 100, 返回数量: 11, IP: 36.27.52.26
21:47:23 - article_server - INFO - [API响应] GET /api/enterprises/list - IP: 36.27.52.26 - 状态码: 200
21:47:28 - article_server - INFO - [API访问] GET /api/enterprises/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:47:28 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:28 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:28 - 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
21:47:28 - article_server - INFO - [SQL参数] (1,)
21:47:28 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:28 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'enterprise_ID': 'ENT-2024-0001', 'name': '乐航', 'short_name': '企业1222', 'phone': '13800138001', 'email': 'raowenlong@vizee.cn', 'status': 'active', 'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 13, 9, 39, 53)}]
21:47:28 - article_server - INFO - 获取企业信息成功: ID 1
21:47:28 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 36.27.52.26 - 状态码: 200
21:47:28 - 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:47:28 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:28 - 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:47:28 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:28 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:28 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_users WHERE enterprise_id = %s AND status != 'deleted'
21:47:28 - article_server - INFO - [SQL参数] [1]
21:47:28 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:28 - 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:47:28 - article_server - INFO - [SQL参数] (1,)
21:47:28 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:28 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
21:47:28 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:28 - article_server - INFO - [SQL数据] 查询结果: [{'total_count': 5, 'active_count': Decimal('5'), 'bound_xhs_count': Decimal('4')}]
21:47:28 - article_server - INFO - 获取员工统计成功
21:47:28 - article_server - INFO - [API响应] GET /api/employees/stats - IP: 36.27.52.26 - 状态码: 200
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - 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:47:29 - article_server - INFO - [SQL参数] [1, 20, 0]
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
21:47:29 - article_server - INFO - 获取员工列表成功,总数: 5
21:47:29 - article_server - INFO - [API响应] GET /api/employees/list - IP: 36.27.52.26 - 状态码: 200
21:47:29 - 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:47:29 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:29 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26
21:47:29 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26
21:47:29 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=20, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26
21:47:29 - 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:47:29 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:29 - article_server - INFO - [获取企业产品类型列表] 开始处理请求, IP: 36.27.52.26
21:47:29 - article_server - INFO - [获取企业产品类型列表] 企业ID: 1, IP: 36.27.52.26
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
21:47:29 - article_server - INFO - [SQL参数] [1]
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_product_types WHERE enterprise_id = %s
21:47:29 - article_server - INFO - [SQL参数] [1]
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}]
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - 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:47:29 - article_server - INFO - [SQL参数] [1, 20, 0]
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - 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:47:29 - article_server - INFO - [SQL参数] [1, 100, 0]
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:29 - article_server - INFO - [获取企业产品类型列表] 查询成功, 企业ID: 1, 总数: 0, 返回: 0, IP: 36.27.52.26
21:47:29 - article_server - INFO - [API响应] GET /api/products/types/list - IP: 36.27.52.26 - 状态码: 200
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:29 - article_server - INFO - [SQL参数] (13,)
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:29 - article_server - INFO - [SQL参数] (12,)
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:29 - article_server - INFO - [SQL参数] (11,)
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:29 - article_server - INFO - [SQL参数] (1,)
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:29 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
21:47:29 - 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:47:29 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:29 - article_server - INFO - [获取产品列表] 查询成功, 总数: 4, 当前页: 1, 每页: 20, 返回数量: 4, 企业ID: 1, IP: 36.27.52.26
21:47:29 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_images
WHERE enterprise_id = %s AND status = %s
21:47:29 - article_server - INFO - [SQL参数] [1, 'active']
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
21:47:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:29 - 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:47:29 - article_server - INFO - [SQL参数] [1, 'active', 100, 0]
21:47:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:30 - article_server - INFO - 获取图片列表成功,总数: 0
21:47:30 - article_server - INFO - [API响应] GET /api/images/list - IP: 36.27.52.26 - 状态码: 200
21:47:31 - article_server - INFO - [API访问] GET /api/prompts/tags/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:47:31 - article_server - INFO - [API访问] GET /api/prompts/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:47:31 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:31 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_tags WHERE enterprise_id = %s
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL参数] [1]
21:47:31 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
21:47:31 - article_server - INFO - [SQL参数] (1,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 8}]
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, tag_name, created_user_id, created_at, updated_at
FROM ai_prompt_tags
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL参数] [1, 100, 0]
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
21:47:31 - article_server - INFO - [SQL参数] (1, 20, 0)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 8 条记录
21:47:31 - article_server - INFO - 获取标签列表成功,总数: 0
21:47:31 - article_server - INFO - [API响应] GET /api/prompts/tags/list - IP: 36.27.52.26 - 状态码: 200
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (25,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'id': 13, 'tag_name': 'gggggggggggg'}]
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (16,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - 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:47:31 - article_server - INFO - [API访问] GET /api/articles/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:47:31 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:31 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 36.27.52.26
21:47:31 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:31 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 36.27.52.26
21:47:31 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26
21:47:31 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 36.27.52.26
21:47:31 - 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:47:31 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:31 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26
21:47:31 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26
21:47:31 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (15,)
21:47:31 - article_server - INFO - [API访问] GET /api/prompts/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:47:31 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
21:47:31 - article_server - INFO - [SQL参数] [1]
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
21:47:31 - article_server - INFO - [SQL参数] [1]
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
21:47:31 - article_server - INFO - [SQL参数] (1,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
21:47:31 - article_server - INFO - [SQL参数] (1,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}]
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 12}]
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 12}]
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 8}]
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - 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:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL参数] [1, 100, 0]
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (14,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
21:47:31 - article_server - INFO - [SQL参数] [1, 20, 0]
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
21:47:31 - article_server - INFO - [SQL参数] (1, 100, 0)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
21:47:31 - article_server - INFO - [SQL参数] (1,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 12 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 8 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:31 - article_server - INFO - [SQL参数] (13,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (13,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:31 - article_server - INFO - [SQL参数] (31,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (25,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
21:47:31 - article_server - INFO - [SQL参数] (1,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'id': 13, 'tag_name': 'gggggggggggg'}]
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:31 - article_server - INFO - [SQL参数] (12,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 12, 可发: 0, 已发: 0, IP: 36.27.52.26
21:47:31 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 36.27.52.26 - 状态码: 200
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:31 - article_server - INFO - [SQL参数] (31,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (12,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (16,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:31 - article_server - INFO - [SQL参数] (11,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:31 - article_server - INFO - [SQL参数] (30,)
21:47:31 - article_server - INFO - [API访问] GET /api/statistics/records - 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:47:31 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (15,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (11,)
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:31 - article_server - INFO - [SQL参数] (1,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_article_published_records r
WHERE r.enterprise_id = %s
21:47:31 - article_server - INFO - [SQL参数] [1]
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
21:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
21:47:31 - article_server - INFO - [API访问] GET /api/statistics/overview - 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:47:31 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:31 - article_server - INFO - [获取产品列表] 查询成功, 总数: 4, 当前页: 1, 每页: 100, 返回数量: 4, 企业ID: 1, IP: 36.27.52.26
21:47:31 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:31 - article_server - INFO - [SQL参数] (30,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:31 - article_server - INFO - [SQL参数] (14,)
21:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:31 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_article_published_records WHERE enterprise_id = %s
21:47:31 - article_server - INFO - [SQL参数] (1,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:32 - article_server - INFO - [SQL参数] (1,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - 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:47:32 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT r.id, r.publish_time, r.created_user_id, r.product_id, r.article_id,
r.publish_link, r.topic,
u.real_name as employee_name,
p.name as product_name,
a.title
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
LEFT JOIN ai_articles a ON r.article_id = a.id
WHERE r.enterprise_id = %s
ORDER BY r.publish_time DESC
LIMIT %s OFFSET %s
21:47:32 - article_server - INFO - [SQL参数] [1, 100, 0]
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_users WHERE enterprise_id = %s AND status != 'deleted'
21:47:32 - article_server - INFO - [SQL参数] [1]
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'created_user_id': 18, 'product_id': 5, 'article_id': 5, 'publish_link': '', 'topic': '深层清洁', 'employee_name': '测试员工API', 'product_name': '洗面奶', 'title': '🧼洗面奶|深层清洁必备好物分享!'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'created_user_id': 18, 'product_id': 4, 'article_id': 4, 'publish_link': '', 'topic': '日常保养', 'employee_name': '测试员工API', 'product_name': '口红套装', 'title': '💄口红套装|日常保养必备好物分享!'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'created_user_id': 18, 'product_id': 2, 'article_id': 2, 'publish_link': '', 'topic': '夏日防晒', 'employee_name': '测试员工API', 'product_name': '保湿精华', 'title': '☀️保湿精华|夏日防晒必备好物分享!'}]
21:47:32 - article_server - INFO - 获取提示词列表成功,总数: 8
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:32 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 36.27.52.26 - 状态码: 200
21:47:32 - article_server - INFO - [SQL参数] (28,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:32 - article_server - INFO - [SQL参数] (13,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as today_count
FROM ai_article_published_records
WHERE enterprise_id = %s AND DATE(publish_time) = CURDATE()
21:47:32 - article_server - INFO - [SQL参数] (1,)
21:47:32 - article_server - INFO - 获取发布记录列表成功,总数: 3
21:47:32 - article_server - INFO - [API响应] GET /api/statistics/records - IP: 36.27.52.26 - 状态码: 200
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - 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:47:32 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:32 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 36.27.52.26
21:47:32 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 36.27.52.26
21:47:32 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 36.27.52.26
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - 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:47:32 - article_server - INFO - [SQL参数] [1, 100, 0]
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'today_count': 3}]
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
21:47:32 - article_server - INFO - [SQL参数] [1]
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:32 - article_server - INFO - [SQL参数] (28,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:32 - article_server - INFO - [SQL参数] (12,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}]
21:47:32 - article_server - INFO - 获取员工列表成功,总数: 5
21:47:32 - article_server - INFO - [API响应] GET /api/employees/list - IP: 36.27.52.26 - 状态码: 200
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as week_count
FROM ai_article_published_records
WHERE enterprise_id = %s AND YEARWEEK(publish_time, 1) = YEARWEEK(CURDATE(), 1)
21:47:32 - article_server - INFO - [SQL参数] (1,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'week_count': 3}]
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - 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:47:32 - article_server - INFO - [SQL参数] [1, 100, 0]
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:32 - article_server - INFO - [SQL参数] (26,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:32 - article_server - INFO - [SQL参数] (11,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as month_count
FROM ai_article_published_records
WHERE enterprise_id = %s AND YEAR(publish_time) = YEAR(CURDATE())
AND MONTH(publish_time) = MONTH(CURDATE())
21:47:32 - article_server - INFO - [SQL参数] (1,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'month_count': 3}]
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:32 - article_server - INFO - [SQL参数] (26,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:32 - article_server - INFO - [SQL参数] (13,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
21:47:32 - article_server - INFO - [SQL参数] (1,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT COUNT(DISTINCT created_user_id) as employee_count
FROM ai_article_published_records
WHERE enterprise_id = %s
21:47:32 - article_server - INFO - [SQL参数] (1,)
21:47:32 - article_server - INFO - 获取提示词列表成功,总数: 8
21:47:32 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 36.27.52.26 - 状态码: 200
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'employee_count': 1}]
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:32 - article_server - INFO - [SQL参数] (24,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:32 - article_server - INFO - [SQL参数] (12,)
21:47:32 - article_server - INFO - 获取统计概览成功
21:47:32 - article_server - INFO - [API响应] GET /api/statistics/overview - IP: 36.27.52.26 - 状态码: 200
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [API访问] GET /api/statistics/by-product - 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:47:32 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:32 - article_server - INFO - [SQL参数] (24,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT r.product_id, p.name as product_name,
COUNT(*) as count,
ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM ai_article_published_records WHERE r.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 count DESC
21:47:32 - article_server - INFO - [SQL参数] [1, 1]
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:32 - article_server - INFO - [SQL参数] (11,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'count': 1, 'percentage': Decimal('14')}, {'product_id': 4, 'product_name': '口红套装', 'count': 1, 'percentage': Decimal('14')}, {'product_id': 5, 'product_name': '洗面奶', 'count': 1, 'percentage': Decimal('14')}]
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - 按产品统计成功
21:47:32 - article_server - INFO - [API响应] GET /api/statistics/by-product - IP: 36.27.52.26 - 状态码: 200
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:32 - article_server - INFO - [SQL参数] (22,)
21:47:32 - article_server - INFO - [API访问] GET /api/statistics/employee-rank - 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:47:32 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
21:47:32 - article_server - INFO - [SQL参数] (1,)
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT r.created_user_id as employee_id, u.real_name as employee_name,
COUNT(*) as count,
ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) as `rank`
FROM ai_article_published_records r
LEFT JOIN ai_users u ON r.created_user_id = u.id
WHERE r.enterprise_id = %s
GROUP BY r.created_user_id, u.real_name
ORDER BY count DESC
LIMIT %s
21:47:32 - article_server - INFO - [SQL参数] [1, 5]
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'employee_id': 18, 'employee_name': '测试员工API', 'count': 3, 'rank': 1}]
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:32 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:32 - article_server - INFO - [SQL参数] (22,)
21:47:32 - article_server - INFO - 获取员工排行成功
21:47:32 - article_server - INFO - [API响应] GET /api/statistics/employee-rank - IP: 36.27.52.26 - 状态码: 200
21:47:32 - article_server - INFO - [获取产品列表] 查询成功, 总数: 4, 当前页: 1, 每页: 100, 返回数量: 4, 企业ID: 1, IP: 36.27.52.26
21:47:32 - article_server - INFO - [API响应] GET /api/products/list - IP: 36.27.52.26 - 状态码: 200
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:32 - article_server - INFO - [SQL参数] (20,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:32 - article_server - INFO - [SQL参数] (20,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:32 - article_server - INFO - [SQL参数] (18,)
21:47:32 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:32 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:32 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:32 - article_server - INFO - [SQL参数] (18,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:33 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:33 - article_server - INFO - [SQL参数] (16,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:33 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:33 - article_server - INFO - [SQL参数] (16,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:33 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:33 - article_server - INFO - [SQL参数] (14,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:33 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:33 - article_server - INFO - [SQL参数] (14,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:33 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:33 - article_server - INFO - [SQL参数] (12,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:33 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:33 - article_server - INFO - [SQL参数] (12,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:33 - article_server - INFO - [SQL语句]
SELECT id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id = %s
ORDER BY sort_order ASC, created_at ASC
21:47:33 - article_server - INFO - [SQL参数] (1,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:33 - article_server - INFO - [SQL语句]
SELECT id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id = %s
21:47:33 - article_server - INFO - [SQL参数] (1,)
21:47:33 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:47:33 - article_server - INFO - [获取文章列表] 查询成功, 总数: 12, 当前页: 1, 每页: 20, 返回数量: 12, 企业ID: 1, IP: 36.27.52.26
21:47:33 - article_server - INFO - [API响应] GET /api/articles/list - IP: 36.27.52.26 - 状态码: 200
21:47:34 - article_server - INFO - [API访问] GET /api/dashboard/overview - 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:47:34 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:34 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - 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:47:34 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - 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:47:34 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:34 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:34 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:34 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
21:47:34 - article_server - INFO - [SQL参数] (1,)
21:47:34 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:34 - 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
21:47:34 - article_server - INFO - [SQL参数] (1, 5)
21:47:34 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:34 - 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
21:47:34 - article_server - INFO - [SQL参数] (1, 1, 4)
21:47:34 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:34 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0}]
21:47:34 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:34 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
21:47:34 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
21:47:34 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
21:47:34 - article_server - INFO - 获取最近发布成功
21:47:34 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 36.27.52.26 - 状态码: 200
21:47:34 - article_server - INFO - 获取热门产品成功
21:47:34 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 36.27.52.26 - 状态码: 200
21:47:34 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:34 - 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())
21:47:34 - article_server - INFO - [SQL参数] (1,)
21:47:34 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:34 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
21:47:34 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:34 - 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))
21:47:34 - article_server - INFO - [SQL参数] (1,)
21:47:34 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:34 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
21:47:34 - article_server - INFO - 获取工作台概览成功
21:47:34 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 36.27.52.26 - 状态码: 200
21:47:36 - article_server - INFO - [API访问] GET /api/enterprises/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:47:36 - article_server - INFO - [Token验证成功] 用户ID: 4
21:47:36 - article_server - INFO - [获取企业列表] 开始处理请求, IP: 36.27.52.26
21:47:36 - article_server - INFO - [获取企业列表] 查询参数: page=1, pageSize=100, keyword=, status=, IP: 36.27.52.26
21:47:36 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:36 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_enterprises WHERE 1=1
21:47:36 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:47:36 - article_server - INFO - [SQL数据] 查询结果: [{'total': 11}]
21:47:36 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:47:36 - 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
21:47:36 - article_server - INFO - [SQL参数] [100, 0]
21:47:36 - article_server - INFO - [SQL结果] 查询完成,返回 11 条记录
21:47:36 - article_server - INFO - [获取企业列表] 查询成功, 总数: 11, 当前页: 1, 每页: 100, 返回数量: 11, IP: 36.27.52.26
21:47:36 - article_server - INFO - [API响应] GET /api/enterprises/list - IP: 36.27.52.26 - 状态码: 200
21:48:02 - article_server - INFO - [API访问] POST /api/enterprises/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:48:02 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:02 - article_server - INFO - [创建企业] 开始处理创建企业请求, IP: 36.27.52.26
21:48:02 - article_server - INFO - [创建企业] 收到创建请求, 企业名称: fasdfasdf, 简称: fasdfdsaf, 手机号: 13621242433, IP: 36.27.52.26
21:48:02 - article_server - INFO - [创建企业] 检查ai_enterprises表手机号是否已存在: 13621242433
21:48:02 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:02 - article_server - INFO - [SQL语句] SELECT id FROM ai_enterprises WHERE phone = %s
21:48:02 - article_server - INFO - [SQL参数] ('13621242433',)
21:48:02 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:48:02 - article_server - INFO - [创建企业] 检查ai_users表手机号是否已存在: 13621242433
21:48:02 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:02 - article_server - INFO - [SQL语句] SELECT id FROM ai_users WHERE phone = %s
21:48:02 - article_server - INFO - [SQL参数] ('13621242433',)
21:48:02 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
21:48:02 - article_server - INFO - [创建企业] 生成企业ID: ENT-20251216-6562C639, 企业名称: fasdfasdf
21:48:02 - article_server - INFO - [创建企业] 开始插入ai_enterprises表, 企业ID: ENT-20251216-6562C639, 名称: fasdfasdf
21:48:02 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:48:02 - article_server - INFO - [SQL语句]
INSERT INTO ai_enterprises
(enterprise_ID, name, short_name, icon, phone, email, website, address, status,
users_total, products_total, published_total, articles_total, released_month_total, linked_to_xhs_num)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
21:48:02 - article_server - INFO - [SQL参数] ('ENT-20251216-6562C639', 'fasdfasdf', 'fasdfdsaf', '', '13621242433', 'raowenlong@baidu.com', '', '', 'active', 0, 0, 0, 0, 0, 0)
21:48:02 - article_server - INFO - [SQL结果] 插入完成新记录ID: 13
21:48:02 - article_server - INFO - [创建企业] ai_enterprises表插入成功, 数据库ID: 13, 企业ID: ENT-20251216-6562C639
21:48:02 - article_server - INFO - [创建企业] 开始创建企业管理员用户, 手机号: 13621242433, 角色: enterprise
21:48:02 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:48:02 - article_server - INFO - [SQL语句]
INSERT INTO ai_users
(enterprise_id, enterprise_name, username, password, real_name, email, phone,
department, role, status)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
21:48:02 - article_server - INFO - [SQL参数] (13, 'fasdfasdf', '13621242433', '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'fasdfdsaf', 'raowenlong@baidu.com', '13621242433', '', 'enterprise', 'active')
21:48:02 - article_server - INFO - [SQL结果] 插入完成新记录ID: 19
21:48:02 - article_server - INFO - [创建企业] ai_users表插入成功, 用户ID: 19, 用户名: 13621242433, 角色: enterprise
21:48:02 - article_server - INFO - [创建企业] 企业创建成功, 企业DB_ID: 13, 企业ID: ENT-20251216-6562C639, 名称: fasdfasdf, 管理员用户ID: 19, IP: 36.27.52.26
21:48:02 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:48: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:48:02 - article_server - INFO - [SQL参数] (4, 'create_enterprise', 'enterprise', 13, '创建企业: fasdfasdf, 同时创建企业管理员用户', '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": "fasdfasdf", "short_name": "fasdfdsaf", "phone": "13621242433", "password": "***", "email": "raowenlong@baidu.com"}', '{"enterprise_id": 13, "enterprise_ID": "ENT-20251216-6562C639", "user_id": 19}', 'success', None)
21:48:02 - article_server - INFO - [SQL结果] 插入完成新记录ID: 14
21:48:02 - article_server - INFO - [业务日志] 操作: create_enterprise | 用户ID: 4 | 目标: enterprise#13 | 状态: success | IP: 36.27.52.26 | 日志ID: 14
21:48:02 - article_server - INFO - [API响应] POST /api/enterprises/create - IP: 36.27.52.26 - 状态码: 200
21:48:02 - article_server - INFO - [API访问] GET /api/enterprises/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:48:02 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:02 - article_server - INFO - [获取企业列表] 开始处理请求, IP: 36.27.52.26
21:48:02 - article_server - INFO - [获取企业列表] 查询参数: page=1, pageSize=100, keyword=, status=, IP: 36.27.52.26
21:48:02 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:02 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_enterprises WHERE 1=1
21:48:02 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:02 - article_server - INFO - [SQL数据] 查询结果: [{'total': 12}]
21:48:02 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:02 - 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
21:48:02 - article_server - INFO - [SQL参数] [100, 0]
21:48:02 - article_server - INFO - [SQL结果] 查询完成,返回 12 条记录
21:48:02 - article_server - INFO - [获取企业列表] 查询成功, 总数: 12, 当前页: 1, 每页: 100, 返回数量: 12, IP: 36.27.52.26
21:48:02 - article_server - INFO - [API响应] GET /api/enterprises/list - IP: 36.27.52.26 - 状态码: 200
21:48:06 - article_server - INFO - [API访问] GET /api/enterprises/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:48:06 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:06 - article_server - INFO - [获取企业列表] 开始处理请求, IP: 36.27.52.26
21:48:06 - article_server - INFO - [获取企业列表] 查询参数: page=1, pageSize=100, keyword=, status=, IP: 36.27.52.26
21:48:06 - 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:48:06 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:06 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:48:06 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:48:06 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:06 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:06 - 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:48:06 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_enterprises WHERE 1=1
21:48:06 - article_server - INFO - [SQL参数] (4,)
21:48:06 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:06 - 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:48:06 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:06 - article_server - INFO - [SQL数据] 查询结果: [{'total': 12}]
21:48:06 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:48:06 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:48:06 - 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:48:06 - 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:48:06 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:06 - 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
21:48:06 - article_server - INFO - [SQL参数] [100, 0]
21:48:06 - article_server - INFO - [SQL结果] 插入完成新记录ID: 15
21:48:06 - article_server - INFO - [SQL结果] 查询完成,返回 12 条记录
21:48:06 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 15
21:48:06 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:48:06 - article_server - INFO - [获取企业列表] 查询成功, 总数: 12, 当前页: 1, 每页: 100, 返回数量: 12, IP: 36.27.52.26
21:48:06 - article_server - INFO - [API响应] GET /api/enterprises/list - IP: 36.27.52.26 - 状态码: 200
21:48:34 - article_server - INFO - [API访问] PUT /api/enterprises/13 - 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:48:34 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:34 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:34 - article_server - INFO - [SQL语句] SELECT id FROM ai_enterprises WHERE id = %s
21:48:34 - article_server - INFO - [SQL参数] (13,)
21:48:34 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:34 - article_server - INFO - [SQL数据] 查询结果: [{'id': 13}]
21:48:34 - article_server - INFO - [SQL执行] 开始执行更新SQL
21:48:34 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET name = %s, short_name = %s, email = %s, password = %s, updated_at = NOW() WHERE id = %s
21:48:34 - article_server - INFO - [SQL参数] ['fasdfasdf1饶', 'fasdfasdf1饶', 'raowenlong@baidu.com', '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 13]
21:48:34 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:48:34 - article_server - ERROR - [SQL执行失败] 更新SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:48:34 - article_server - ERROR - [SQL语句] UPDATE ai_enterprises SET name = %s, short_name = %s, email = %s, password = %s, updated_at = NOW() WHERE id = %s
21:48:34 - article_server - ERROR - [SQL参数] ['fasdfasdf1饶', 'fasdfasdf1饶', 'raowenlong@baidu.com', '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 13]
21:48:34 - article_server - ERROR - [更新企业] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 305, in update_enterprise
db_manager.execute_update(sql, params)
File "/home/work/ai_wht/database_config.py", line 226, in execute_update
return self._execute_with_retry(_update_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 212, in _update_operation
affected_rows = cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:48:34 - article_server - INFO - [API响应] PUT /api/enterprises/13 - IP: 36.27.52.26 - 状态码: 500
21:48:43 - article_server - INFO - [API访问] PUT /api/enterprises/13 - 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:48:43 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:43 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:43 - article_server - INFO - [SQL语句] SELECT id FROM ai_enterprises WHERE id = %s
21:48:43 - article_server - INFO - [SQL参数] (13,)
21:48:43 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:43 - article_server - INFO - [SQL数据] 查询结果: [{'id': 13}]
21:48:43 - article_server - INFO - [SQL执行] 开始执行更新SQL
21:48:43 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET name = %s, short_name = %s, email = %s, password = %s, updated_at = NOW() WHERE id = %s
21:48:43 - article_server - INFO - [SQL参数] ['fasdfasdf1饶', 'fasdfasdf1饶', 'raowenlong@baidu.com', '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 13]
21:48:43 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:48:43 - article_server - ERROR - [SQL执行失败] 更新SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:48:43 - article_server - ERROR - [SQL语句] UPDATE ai_enterprises SET name = %s, short_name = %s, email = %s, password = %s, updated_at = NOW() WHERE id = %s
21:48:43 - article_server - ERROR - [SQL参数] ['fasdfasdf1饶', 'fasdfasdf1饶', 'raowenlong@baidu.com', '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 13]
21:48:43 - article_server - ERROR - [更新企业] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 305, in update_enterprise
db_manager.execute_update(sql, params)
File "/home/work/ai_wht/database_config.py", line 226, in execute_update
return self._execute_with_retry(_update_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 212, in _update_operation
affected_rows = cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:48:43 - article_server - INFO - [API响应] PUT /api/enterprises/13 - IP: 36.27.52.26 - 状态码: 500
21:48:49 - article_server - INFO - [API访问] GET /api/enterprises/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:48:49 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:49 - article_server - INFO - [获取企业列表] 开始处理请求, IP: 36.27.52.26
21:48:49 - article_server - INFO - [获取企业列表] 查询参数: page=1, pageSize=100, keyword=, status=, IP: 36.27.52.26
21:48: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:48:49 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:49 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:48:49 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:48:49 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:49 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_enterprises WHERE 1=1
21:48:49 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48: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:48:49 - article_server - INFO - [SQL参数] (4,)
21:48:49 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:49 - article_server - INFO - [SQL数据] 查询结果: [{'total': 12}]
21:48:49 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48: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:48:49 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:48:49 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:49 - 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
21:48:49 - article_server - INFO - [SQL参数] [100, 0]
21:48:49 - article_server - INFO - [SQL结果] 查询完成,返回 12 条记录
21:48:49 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:48:49 - 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:48:49 - 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:48:49 - article_server - INFO - [获取企业列表] 查询成功, 总数: 12, 当前页: 1, 每页: 100, 返回数量: 12, IP: 36.27.52.26
21:48:49 - article_server - INFO - [API响应] GET /api/enterprises/list - IP: 36.27.52.26 - 状态码: 200
21:48:49 - article_server - INFO - [SQL结果] 插入完成新记录ID: 16
21:48:49 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 16
21:48:49 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:48:54 - article_server - INFO - [API访问] DELETE /api/enterprises/13 - 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:48:54 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:54 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:54 - article_server - INFO - [SQL语句] SELECT id, name FROM ai_enterprises WHERE id = %s
21:48:54 - article_server - INFO - [SQL参数] (13,)
21:48:54 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:54 - article_server - INFO - [SQL数据] 查询结果: [{'id': 13, 'name': 'fasdfasdf'}]
21:48:54 - article_server - INFO - [SQL执行] 开始执行更新SQL
21:48:54 - article_server - INFO - [SQL语句] DELETE FROM ai_enterprises WHERE id = %s
21:48:54 - article_server - INFO - [SQL参数] (13,)
21:48:54 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
21:48:54 - article_server - INFO - 删除企业成功: fasdfasdf
21:48:54 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:48: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:48:54 - article_server - INFO - [SQL参数] (4, 'delete_enterprise', 'enterprise', 13, '删除企业: fasdfasdf', '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:48:54 - article_server - INFO - [SQL结果] 插入完成新记录ID: 17
21:48:54 - article_server - INFO - [业务日志] 操作: delete_enterprise | 用户ID: 4 | 目标: enterprise#13 | 状态: success | IP: 36.27.52.26 | 日志ID: 17
21:48:54 - article_server - INFO - [API响应] DELETE /api/enterprises/13 - IP: 36.27.52.26 - 状态码: 200
21:48:54 - article_server - INFO - [API访问] GET /api/enterprises/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:48:54 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:54 - article_server - INFO - [获取企业列表] 开始处理请求, IP: 36.27.52.26
21:48:54 - article_server - INFO - [获取企业列表] 查询参数: page=1, pageSize=100, keyword=, status=, IP: 36.27.52.26
21:48:54 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:54 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_enterprises WHERE 1=1
21:48:54 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:54 - article_server - INFO - [SQL数据] 查询结果: [{'total': 11}]
21:48:54 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:54 - 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
21:48:54 - article_server - INFO - [SQL参数] [100, 0]
21:48:54 - article_server - INFO - [SQL结果] 查询完成,返回 11 条记录
21:48:54 - article_server - INFO - [获取企业列表] 查询成功, 总数: 11, 当前页: 1, 每页: 100, 返回数量: 11, IP: 36.27.52.26
21:48:54 - article_server - INFO - [API响应] GET /api/enterprises/list - IP: 36.27.52.26 - 状态码: 200
21:48:56 - article_server - INFO - [API访问] GET /api/enterprises/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:48:56 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:56 - article_server - INFO - [获取企业列表] 开始处理请求, IP: 36.27.52.26
21:48:56 - article_server - INFO - [获取企业列表] 查询参数: page=1, pageSize=100, keyword=, status=, IP: 36.27.52.26
21:48:56 - 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:48:56 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:56 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:48:56 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:48:56 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:56 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_enterprises WHERE 1=1
21:48:56 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:56 - 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:48:56 - article_server - INFO - [SQL参数] (4,)
21:48:56 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:56 - 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:48:56 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:56 - article_server - INFO - [SQL数据] 查询结果: [{'total': 11}]
21:48:56 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:48:56 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:48:56 - 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:48:56 - 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:48:56 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48:56 - 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
21:48:56 - article_server - INFO - [SQL参数] [100, 0]
21:48:56 - article_server - INFO - [SQL结果] 插入完成新记录ID: 18
21:48:56 - article_server - INFO - [SQL结果] 查询完成,返回 11 条记录
21:48:56 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 18
21:48:56 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:48:56 - article_server - INFO - [获取企业列表] 查询成功, 总数: 11, 当前页: 1, 每页: 100, 返回数量: 11, IP: 36.27.52.26
21:48:56 - article_server - INFO - [API响应] GET /api/enterprises/list - IP: 36.27.52.26 - 状态码: 200
21:48:59 - article_server - INFO - [API访问] GET /api/enterprises/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:48:59 - article_server - INFO - [Token验证成功] 用户ID: 4
21:48:59 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:48: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
21:48:59 - article_server - INFO - [SQL参数] (1,)
21:48:59 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:48:59 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'enterprise_ID': 'ENT-2024-0001', 'name': '乐航', 'short_name': '企业1222', 'phone': '13800138001', 'email': 'raowenlong@vizee.cn', 'status': 'active', 'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 13, 9, 39, 53)}]
21:48:59 - article_server - INFO - 获取企业信息成功: ID 1
21:48:59 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 36.27.52.26 - 状态码: 200
21:49:05 - article_server - INFO - [API访问] PUT /api/enterprises/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:49:05 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:05 - article_server - INFO - [SQL执行] 开始执行更新SQL
21:49:05 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET short_name = %s, email = %s, updated_at = NOW() WHERE id = %s
21:49:05 - article_server - INFO - [SQL参数] ['企业1222333', 'raowenlong@vizee.cn', 1]
21:49:05 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
21:49:05 - article_server - INFO - 企业管理员更新企业信息成功: ID 1
21:49:05 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:49: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:49:05 - article_server - INFO - [SQL参数] (4, 'update_enterprise', 'enterprise', 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', '{"short_name": "企业1222333", "email": "raowenlong@vizee.cn"}', None, 'success', None)
21:49:05 - article_server - INFO - [SQL结果] 插入完成新记录ID: 19
21:49:05 - article_server - INFO - [业务日志] 操作: update_enterprise | 用户ID: 4 | 目标: enterprise#1 | 状态: success | IP: 36.27.52.26 | 日志ID: 19
21:49:05 - article_server - INFO - [API响应] PUT /api/enterprises/info - IP: 36.27.52.26 - 状态码: 200
21:49:08 - article_server - INFO - [API访问] GET /api/enterprises/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:49:08 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:08 - 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:49:08 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:08 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:49:08 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:49:08 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:08 - 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:49:08 - article_server - INFO - [SQL参数] (4,)
21:49:08 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:08 - 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
21:49:08 - article_server - INFO - [SQL参数] (1,)
21:49:08 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:49:08 - 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:49:08 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:49:08 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'enterprise_ID': 'ENT-2024-0001', 'name': '乐航', 'short_name': '企业1222333', 'phone': '13800138001', 'email': 'raowenlong@vizee.cn', 'status': 'active', 'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 49, 5)}]
21:49:08 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:49:08 - article_server - INFO - 获取企业信息成功: ID 1
21:49:08 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 36.27.52.26 - 状态码: 200
21:49:08 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:49:08 - 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:49:08 - 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:49:08 - article_server - INFO - [SQL结果] 插入完成新记录ID: 20
21:49:08 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 20
21:49:08 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:49:21 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:21 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:21 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:21 - article_server - INFO - [SQL参数] (1,)
21:49:21 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:21 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:21 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:21 - article_server - ERROR - [SQL参数] (1,)
21:49:21 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:21 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:23 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:23 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:23 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:23 - article_server - INFO - [SQL参数] (1,)
21:49:23 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:23 - article_server - ERROR - [SQL参数] (1,)
21:49:23 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:23 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:23 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:23 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:23 - article_server - INFO - [SQL参数] (1,)
21:49:23 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:23 - article_server - ERROR - [SQL参数] (1,)
21:49:23 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:23 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:23 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:23 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:23 - article_server - INFO - [SQL参数] (1,)
21:49:23 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:23 - article_server - ERROR - [SQL参数] (1,)
21:49:23 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:23 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:23 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:23 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:23 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:23 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:23 - article_server - INFO - [SQL参数] (1,)
21:49:24 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - ERROR - [SQL参数] (1,)
21:49:24 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:24 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:24 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:24 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - INFO - [SQL参数] (1,)
21:49:24 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - ERROR - [SQL参数] (1,)
21:49:24 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:24 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:24 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:24 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - INFO - [SQL参数] (1,)
21:49:24 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - ERROR - [SQL参数] (1,)
21:49:24 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:24 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:24 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:24 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - INFO - [SQL参数] (1,)
21:49:24 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - ERROR - [SQL参数] (1,)
21:49:24 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:24 - article_server - INFO - [API访问] PUT /api/enterprises/change-password - 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:49:24 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:24 - article_server - INFO - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - INFO - [SQL参数] (1,)
21:49:24 - article_server - ERROR - 数据库操作失败: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL执行失败] 查询SQL执行异常: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - ERROR - [SQL语句] SELECT password FROM ai_enterprises WHERE id = %s
21:49:24 - article_server - ERROR - [SQL参数] (1,)
21:49:24 - article_server - ERROR - [修改密码] 处理请求时发生错误: (1054, "Unknown column 'password' in 'field list'")
Traceback (most recent call last):
File "/home/work/ai_wht/enterprise_routes.py", line 641, in change_password
result = db_manager.execute_query(sql, (enterprise_id,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 199, in execute_query
return self._execute_with_retry(_query_operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 103, in _execute_with_retry
return operation(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/ai_wht/database_config.py", line 182, in _query_operation
cursor.execute(sql, params)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/work/keyword_crawl/venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'password' in 'field list'")
21:49:24 - article_server - INFO - [API响应] PUT /api/enterprises/change-password - IP: 36.27.52.26 - 状态码: 500
21:49:27 - article_server - INFO - [API访问] GET /api/enterprises/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:49:27 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:27 - 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:49:27 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:27 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 36.27.52.26
21:49:27 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 36.27.52.26
21:49:27 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:27 - 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
21:49:27 - article_server - INFO - [SQL参数] (1,)
21:49:27 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:27 - 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:49:27 - article_server - INFO - [SQL参数] (4,)
21:49:27 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:49:27 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'enterprise_ID': 'ENT-2024-0001', 'name': '乐航', 'short_name': '企业1222333', 'phone': '13800138001', 'email': 'raowenlong@vizee.cn', 'status': 'active', 'users_total': 2, 'products_total': 1, 'articles_total': 12, 'published_total': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 49, 5)}]
21:49:27 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:49:27 - 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:49:27 - article_server - INFO - 获取企业信息成功: ID 1
21:49:27 - article_server - INFO - [API响应] GET /api/enterprises/info - IP: 36.27.52.26 - 状态码: 200
21:49:27 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 36.27.52.26
21:49:27 - article_server - INFO - [SQL执行] 开始执行插入SQL
21:49:27 - 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:49:27 - 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:49:27 - article_server - INFO - [SQL结果] 插入完成新记录ID: 21
21:49:27 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 36.27.52.26 | 日志ID: 21
21:49:27 - article_server - INFO - [API响应] GET /api/users/info - IP: 36.27.52.26 - 状态码: 200
21:49:29 - 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:49:29 - 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:49:29 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:29 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:29 - 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:49:29 - article_server - INFO - [SQL参数] (1,)
21:49:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:29 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_users WHERE enterprise_id = %s AND status != 'deleted'
21:49:29 - article_server - INFO - [SQL参数] [1]
21:49:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:49:29 - article_server - INFO - [SQL数据] 查询结果: [{'total_count': 5, 'active_count': Decimal('5'), 'bound_xhs_count': Decimal('4')}]
21:49:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
21:49:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
21:49:29 - article_server - INFO - 获取员工统计成功
21:49:29 - article_server - INFO - [API响应] GET /api/employees/stats - IP: 36.27.52.26 - 状态码: 200
21:49:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
21:49:29 - 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:49:29 - article_server - INFO - [SQL参数] [1, 20, 0]
21:49:29 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
21:49:29 - article_server - INFO - 获取员工列表成功,总数: 5
21:49:29 - article_server - INFO - [API响应] GET /api/employees/list - IP: 36.27.52.26 - 状态码: 200
21:49:35 - 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:49:35 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:35 - article_server - WARNING - [权限检查失败] 用户角色 enterprise 不在允许的角色 ('enterprise_admin',) 中
21:49:35 - article_server - INFO - [API响应] DELETE /api/employees/18 - IP: 36.27.52.26 - 状态码: 403
21:49:37 - 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:49:37 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:37 - article_server - WARNING - [权限检查失败] 用户角色 enterprise 不在允许的角色 ('enterprise_admin',) 中
21:49:37 - article_server - INFO - [API响应] DELETE /api/employees/18 - IP: 36.27.52.26 - 状态码: 403
21:49:44 - 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:49:44 - article_server - INFO - [Token验证成功] 用户ID: 4
21:49:44 - article_server - WARNING - [权限检查失败] 用户角色 enterprise 不在允许的角色 ('enterprise_admin',) 中
21:49:44 - article_server - INFO - [API响应] DELETE /api/employees/18 - IP: 36.27.52.26 - 状态码: 403