but was:<400>
at com.etotem.cfc.controller.mind.MindFortuneControllerTest.testGetTodayFortuneWithoutAuth(MindFortuneControllerTest.java:23)
]]>
Preparing: SELECT id,order_no,family_id,user_id,child_id AS memberId,guide_id,package_id,guide_name,package_name,total_price,discount_amount,actual_price,appointment_id,status,pay_time,pay_type,transaction_id,created_at,updated_at FROM assessment_orders WHERE (status = ? AND created_at < ?)
2026-11-05 06:38:40.320 DEBUG 15436 --- [cfc-scheduler-3] c.e.c.m.A.selectList : ==> Parameters: pending(String), 2026-11-05 06:08:40.319(Timestamp)
2026-11-05 06:38:40.321 DEBUG 15436 --- [cfc-scheduler-4] c.e.c.m.ProductOrderMapper.selectList : ==> Preparing: SELECT id,order_no,product_id,product_name,product_type,sku_id,buyer_id,family_id,quantity,unit_price,total_amount,status,payment_method,remark,discount_amount,coupon_id,cancel_at,transaction_id,cover_image,address_snapshot,logistics_no,logistics_company,tracking_number,express_company,delivery_method,pickup_code,confirm_time,paid_at,refund_status,refund_reason,refund_amount,refund_time,supply_system_id,supplier_id,supply_commission,points_used,points_cost,money_amount,consignee_id,purchase_info,activity_id,provision_status,auditor_id,audited_at,audit_reason,shipping_cost,gift_amount,pickup_location_id,pickup_location_snapshot,time_slot_id,time_slot_snapshot,service_person_id,service_person_snapshot,fulfill_status,fulfill_confirmed_at,received_at,created_at,updated_at,special_deal_id FROM product_orders WHERE (status = ? AND created_at < ?)
2026-11-05 06:38:40.321 DEBUG 15436 --- [cfc-scheduler-4] c.e.c.m.ProductOrderMapper.selectList : ==> Parameters: pending(String), 2026-11-05 06:08:40.32(Timestamp)
2026-11-05 06:38:40.322 DEBUG 15436 --- [cfc-scheduler-3] c.e.c.m.A.selectList : <== Total: 0
2026-11-05 06:38:40.322 DEBUG 15436 --- [cfc-scheduler-4] c.e.c.m.ProductOrderMapper.selectList : <== Total: 0
2026-11-05 06:38:40.323 DEBUG 15436 --- [cfc-scheduler-3] c.e.c.m.PaymentOrderMapper.selectList : ==> Preparing: SELECT id,order_no,family_id,level_code,payment_type,period,amount,user_coupon_id,status,group_no,period_no,pay_method,transaction_id,paid_at,created_at,updated_at FROM payment_orders WHERE (status = ? AND created_at < ?)
2026-11-05 06:38:40.323 DEBUG 15436 --- [cfc-scheduler-3] c.e.c.m.PaymentOrderMapper.selectList : ==> Parameters: pending(String), 2026-11-05 06:08:40.319(Timestamp)
2026-11-05 06:38:40.324 DEBUG 15436 --- [cfc-scheduler-3] c.e.c.m.PaymentOrderMapper.selectList : <== Total: 0
2026-11-05 06:38:40.325 DEBUG 15436 --- [cfc-scheduler-3] c.e.c.m.M.selectList : ==> Preparing: SELECT id,family_id,level,amount,status,payment_type,transaction_id,order_no,created_at,paid_at FROM member_subscription_order WHERE (status = ? AND created_at < ?)
2026-11-05 06:38:40.325 DEBUG 15436 --- [cfc-scheduler-3] c.e.c.m.M.selectList : ==> Parameters: pending(String), 2026-11-05 06:08:40.319(Timestamp)
2026-11-05 06:38:40.326 DEBUG 15436 --- [cfc-scheduler-3] c.e.c.m.M.selectList : <== Total: 0
2026-11-05 06:38:40.326 INFO 15436 --- [cfc-scheduler-3] c.etotem.cfc.task.VirtualPayTimeoutTask : 虚拟支付超时兜底扫描完成: 测评=0/0, 会员=0/0, 订阅=0/0
2026-11-05 06:38:40.456 DEBUG 15436 --- [cfc-scheduler-1] c.e.c.m.H.listPendingRetry : ==> Preparing: SELECT * FROM health_report_drafts WHERE status = 'pending' AND parse_status = 'collecting' AND ((next_retry_at IS NOT NULL AND next_retry_at <= ?) OR (next_retry_at IS NULL AND (parse_started_at IS NULL OR parse_started_at < DATE_SUB(?, INTERVAL 30 MINUTE)))) ORDER BY updated_at ASC LIMIT ?
2026-11-05 06:38:40.457 DEBUG 15436 --- [cfc-scheduler-1] c.e.c.m.H.listPendingRetry : ==> Parameters: 2026-11-05 06:38:40.456(Timestamp), 2026-11-05 06:38:40.456(Timestamp), 20(Integer)
2026-11-05 06:38:40.458 DEBUG 15436 --- [cfc-scheduler-1] c.e.c.m.H.listPendingRetry : <== Total: 0
2026-11-05 06:38:40.967 WARN 15436 --- [ 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 06:38:40.969 DEBUG 15436 --- [ 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 06:38:40.969 DEBUG 15436 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-05 06:38:40.971 DEBUG 15436 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-05 06:38:40.982 DEBUG 15436 --- [ 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 06:38:40.983 DEBUG 15436 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-05 06:38:40.984 DEBUG 15436 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-05 06:38:40.991 DEBUG 15436 --- [ 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 06:38:40.991 DEBUG 15436 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-05 06:38:40.993 DEBUG 15436 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-05 06:38:40.994 DEBUG 15436 --- [ 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 06:38:40.994 DEBUG 15436 --- [ 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 06:38:40.991(Timestamp)
2026-11-05 06:38:40.996 DEBUG 15436 --- [ 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 = []
]]>