2026-06-06T15:01:42.450+08:00 TRACE 20572 --- [gym-manage-api] [ctor-http-nio-3] o.s.w.s.adapter.HttpWebHandlerAdapter : [a300293b-3] HTTP GET "/api/stats/member/range?startDate=2026-06-01&endDate=2026-06-05", headers={masked} 2026-06-06T15:01:42.453+08:00 DEBUG 20572 --- [gym-manage-api] [ parallel-5] o.s.w.s.s.DefaultWebSessionManager : Created new WebSession. 2026-06-06T15:01:42.454+08:00 INFO 20572 --- [gym-manage-api] [ parallel-5] c.n.g.m.sys.audit.OperationLogWebFilter : WebFilter 拦截请求: GET /api/stats/member/range 2026-06-06T15:01:42.454+08:00 INFO 20572 --- [gym-manage-api] [ parallel-5] c.n.g.m.sys.audit.OperationLogWebFilter : 未匹配到操作日志配置,跳过: GET /api/stats/member/range 2026-06-06T15:01:42.454+08:00 INFO 20572 --- [gym-manage-api] [ parallel-5] c.n.g.m.sys.audit.OperationLogWebFilter : WebFilter 拦截请求: GET /api/stats/member/range 2026-06-06T15:01:42.455+08:00 INFO 20572 --- [gym-manage-api] [ parallel-5] c.n.g.m.sys.audit.OperationLogWebFilter : 未匹配到操作日志配置,跳过: GET /api/stats/member/range 2026-06-06T15:01:42.455+08:00 TRACE 20572 --- [gym-manage-api] [ parallel-5] o.s.w.r.f.server.RequestPredicates : Method "GET" matches against value "GET" 2026-06-06T15:01:42.455+08:00 TRACE 20572 --- [gym-manage-api] [ parallel-5] o.s.w.r.f.server.RequestPredicates : Pattern "/api/stats/member/date/{date}" does not match against value "/api/stats/member/range" 2026-06-06T15:01:42.455+08:00 TRACE 20572 --- [gym-manage-api] [ parallel-5] o.s.w.r.f.server.RequestPredicates : Method "GET" matches against value "GET" 2026-06-06T15:01:42.455+08:00 TRACE 20572 --- [gym-manage-api] [ parallel-5] o.s.w.r.f.server.RequestPredicates : Pattern "/api/stats/member/range" matches against value "/api/stats/member/range" 2026-06-06T15:01:42.455+08:00 TRACE 20572 --- [gym-manage-api] [ parallel-5] o.s.w.r.function.server.RouterFunctions : [a300293b-3] Matched (GET && /api/stats/member/range) 2026-06-06T15:01:42.455+08:00 DEBUG 20572 --- [gym-manage-api] [ parallel-5] o.s.w.r.f.s.s.RouterFunctionMapping : [a300293b-3] Mapped to cn.novalon.gym.manage.datacount.config.DataCountRouter$$Lambda/0x00000230b4931ec0@4746b319 2026-06-06T15:01:42.455+08:00 DEBUG 20572 --- [gym-manage-api] [ parallel-5] o.s.r2dbc.core.DefaultDatabaseClient : Executing SQL statement [SELECT DATE(m.created_at) as date, COUNT(*) as new_members FROM member_user m WHERE m.is_deleted = FALSE AND DATE(m.created_at) BETWEEN $1 AND $2 GROUP BY DATE(m.created_at) ORDER BY date] 2026-06-06T15:01:42.460+08:00 TRACE 20572 --- [gym-manage-api] [actor-tcp-nio-2] org.springframework.web.HttpLogging : [a300293b-3] Encoding [{success=false, message=Cannot decode value of type java.sql.Date with OID 1082}] 2026-06-06T15:01:42.461+08:00 TRACE 20572 --- [gym-manage-api] [actor-tcp-nio-2] o.s.w.s.adapter.HttpWebHandlerAdapter : [a300293b-3] Completed 400 BAD_REQUEST, headers={masked} 2026-06-06T15:01:42.461+08:00 TRACE 20572 --- [gym-manage-api] [actor-tcp-nio-2] org.springframework.web.HttpLogging : [f8ae8809, L:/[0:0:0:0:0:0:0:1]:8084 ! R:/[0:0:0:0:0:0:0:1]:63191] Handling completed 2026-06-06T15:02:07.299+08:00 INFO 20572 --- [gym-manage-api] [ scheduling-1] c.n.g.m.g.s.i.GroupCourseBookingService : 开始处理已开始课程但未到场会员的预约记录 2026-06-06T15:02:07.301+08:00 DEBUG 20572 --- [gym-manage-api] [ scheduling-1] o.s.r2dbc.core.DefaultDatabaseClient : Executing SQL statement [SELECT b.* FROM group_course_booking b JOIN group_course c ON b.course_id = c.id WHERE b.status = '0' AND b.deleted_at IS NULL AND c.deleted_at IS NULL AND c.status = '0' AND c.start_time < CURRENT_TIMESTAMP] 2026-06-06T15:02:07.305+08:00 INFO 20572 --- [gym-manage-api] [actor-tcp-nio-2] c.n.g.m.g.s.i.GroupCourseBookingService : 没有需要处理的缺席会员记录