154670742cca8ade7383d6e8a82da2b1ad03ecc4
此前完全没有时间段判断:用户在非打卡时间点执行,会把注定被学校端 拒绝的请求发出去,白扣次数且报错含义不清。 用真实用户(学号 2364400108)拉 detailSignInstance 确认字段: rateSignDate = "2026-10-25 (周日)" rateTaskBeginTime = "18:30" rateTaskEndTime = "23:00" singleTaskBeginTime/EndTime 单次任务的时间段 currentTime = "2026-10-19 11:31:21" 该任务实际打卡时段是 10-25 18:30~23:00,而当时是 10-19,明显时段外。 新增(internal/service/cpdaily/task.go): - SignWindow + ParseSignWindow:解析上述字段,singleTask* 存在时优先用它; 解析失败一律 Parsed=false,调用方放行,避免因时间格式差异误杀 - CheckSignWindow:明确在窗口外才返回错误;起止时刻本身算在窗口内 - ErrOutsideSignWindow + signWindowError:可 errors.Is 识别, 但 Error() 只输出用户可读文案,不暴露内部标记 接入 handler(执行打卡流程):取到详情后、填充表单前校验; 拦截时写任务状态为 fail、记录日志、发 task_error 事件并带 outsideWindow 标记, 不扣减次数。 测试用实测真实字段值:解析正确性、时段外拦截、时段内放行、 边界(开始/结束时刻放行、结束后一分钟拦截)、信息缺失不拦截、 singleTask* 优先级。
Description
No description provided
Languages
Go
58.2%
Vue
35.3%
TypeScript
4.1%
CSS
1.5%
JavaScript
0.6%
Other
0.2%