but was:<400>
at com.etotem.cfc.controller.mind.MindFortuneControllerTest.testGetTodayFortuneWithoutAuth(MindFortuneControllerTest.java:23)
]]>
Preparing: SELECT id,flow_id,flow_version,family_id,family_member_id,trigger_source,status,started_at,finished_at,error_reason,created_at,updated_at FROM task_orchestration_executions WHERE (status = ?) LIMIT 20
2026-11-05 11:45:00.655 DEBUG 12704 --- [eduler_Worker-6] c.e.c.m.T.selectList : ==> Parameters: running(String)
2026-11-05 11:45:00.656 DEBUG 12704 --- [eduler_Worker-6] c.e.c.m.T.selectList : <== Total: 0
2026-11-05 11:45:00.656 INFO 12704 --- [eduler_Worker-6] c.e.cfc.task.OrchestrationPollingJob : 编排轮询结束
2026-11-05 11:45:02.371 WARN 12704 --- [ main] c.e.cfc.config.RateLimitInterceptor : Redis 限流不可用,降级到内存限流: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379
2026-11-05 11:45:02.372 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-05 11:45:02.372 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-05 11:45:02.374 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-05 11:45:02.386 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-05 11:45:02.387 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-05 11:45:02.388 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-05 11:45:02.394 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-05 11:45:02.394 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-05 11:45:02.396 DEBUG 12704 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-05 11:45:02.397 DEBUG 12704 --- [ main] c.e.c.m.UserOperationLogMapper.insert : ==> Preparing: INSERT INTO user_operation_logs ( user_id, operation_type, description, request_path, request_method, response_status, client_ip, created_at ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )
2026-11-05 11:45:02.397 DEBUG 12704 --- [ main] c.e.c.m.UserOperationLogMapper.insert : ==> Parameters: -1(Long), post(String), POST /api/mind/fortune(String), /api/mind/fortune(String), POST(String), 200(Integer), 127.0.0.1(String), 2026-11-05 11:45:02.394(Timestamp)
2026-11-05 11:45:03.134 DEBUG 12704 --- [ main] c.e.c.m.UserOperationLogMapper.insert : <== Updates: 1
MockHttpServletRequest:
HTTP Method = POST
Request URI = /api/mind/fortune
Parameters = {}
Headers = []
Body = null
Session Attrs = {}
Handler:
Type = com.etotem.cfc.controller.mind.MindFortuneController
Method = com.etotem.cfc.controller.mind.MindFortuneController#getTodayFortune(Long)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = java.lang.IllegalArgumentException
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Security-Policy:"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self' http://localhost:* https://*; font-src 'self' data:;", Referrer-Policy:"no-referrer", Permissions-Policy:"geolocation=(), microphone=(), camera=()", Access-Control-Allow-Private-Network:"true", Vary:"Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers", Content-Type:"application/json", X-Content-Type-Options:"nosniff", X-XSS-Protection:"1; mode=block", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY"]
Content type = application/json
Body = {"code":400,"message":"用户不存在","data":null}
Forwarded URL = null
Redirected URL = null
Cookies = []
]]>