import Miaoguo from '../src/model/miaoguo.js'; const startDate = new Date(Date.now() - 30 * 86400000).toISOString().slice(0, 10); console.log('startDate =', startDate); // 重算的真实用户集合(与 updateMiaoguoTaskData 完全一致的 SQL) const users = await Miaoguo.RunSql([startDate], "select distinct mc.UserID from MiaoguoLearningRecord mlr inner join MiaoguoCard mc on mc.MiaoguoCardID=mlr.CardID where mlr.Flag=0 and mlr.CreateTime>=?;"); const ids = users.map(u => Number(u.UserID)); console.log('重算用户集合数量:', ids.length); console.log('658 是否在重算集合中:', ids.includes(658)); // 658 最近一个月的学习记录(Flag=0) const lr = await Miaoguo.RunSql([658, startDate], "select count(*) as c, max(mlr.CreateTime) as lastTime from MiaoguoLearningRecord mlr inner join MiaoguoCard mc on mc.MiaoguoCardID=mlr.CardID where mlr.Flag=0 and mc.UserID=? and mlr.CreateTime>=?;"); console.log('658 近30天 Flag=0 学习记录:', JSON.stringify(lr[0])); // 658 的 DayNumber=0 记录数 const zero = await Miaoguo.RunSql([658], "select count(*) as total, sum(case when DayNumber=0 then 1 else 0 end) as zeroCnt, max(CreateTime) as lastTask from MiaoguoTask where CardTask>0 and UserID=?;"); console.log('658 任务总数/其中Day=0/最后一天:', JSON.stringify(zero[0])); // 全库最近30天有任务但 DayNumber=0 的用户规模 const scope = await Miaoguo.RunSql([startDate], "select count(distinct UserID) as users from MiaoguoTask where CardTask>0 and CreateTime>=? and DayNumber=0;"); console.log('近30天存在 DayNumber=0 记录的用户数:', JSON.stringify(scope[0])); process.exit(0);