diff --git a/positions/src/main/java/cc/winboll/studio/positions/models/PositionTaskModel.java b/positions/src/main/java/cc/winboll/studio/positions/models/PositionTaskModel.java index 722c33d..1e9dd47 100644 --- a/positions/src/main/java/cc/winboll/studio/positions/models/PositionTaskModel.java +++ b/positions/src/main/java/cc/winboll/studio/positions/models/PositionTaskModel.java @@ -26,19 +26,22 @@ public class PositionTaskModel extends BaseBean { boolean isLessThan; // 任务条件距离(单位:米) int discussDistance; + // 任务开始启用时间 + long startTime; // 任务是否已触发 boolean isBingo = false; // 是否启用任务 boolean isEnable; // 带参构造(强制传入positionId,确保任务与位置绑定) - public PositionTaskModel(String taskId, String positionId, String taskDescription, boolean isGreaterThan, int discussDistance, boolean isEnable) { + public PositionTaskModel(String taskId, String positionId, String taskDescription, boolean isGreaterThan, int discussDistance, long startTime, boolean isEnable) { this.taskId = (taskId == null || taskId.trim().isEmpty()) ? genTaskId() : taskId; // 空ID自动生成 this.positionId = positionId; // 强制绑定位置ID this.taskDescription = (taskDescription == null || taskDescription.trim().isEmpty()) ? "新任务" : taskDescription; this.isGreaterThan = isGreaterThan; this.isLessThan = !isGreaterThan; // 确保互斥 this.discussDistance = Math.max(discussDistance, 1); // 距离最小1米,避免无效值 + this.startTime = startTime; this.isEnable = isEnable; } @@ -50,9 +53,18 @@ public class PositionTaskModel extends BaseBean { this.isGreaterThan = true; this.isLessThan = false; // 初始互斥 this.discussDistance = 100; // 默认100米 + this.startTime = System.currentTimeMillis(); this.isEnable = true; } + public void setStartTime(long startTime) { + this.startTime = startTime; + } + + public long getStartTime() { + return startTime; + } + public void setIsBingo(boolean isBingo) { this.isBingo = isBingo; } @@ -144,6 +156,7 @@ public class PositionTaskModel extends BaseBean { jsonWriter.name("isGreaterThan").value(isGreaterThan()); jsonWriter.name("isLessThan").value(isLessThan()); jsonWriter.name("discussDistance").value(getDiscussDistance()); + jsonWriter.name("startTime").value(getStartTime()); jsonWriter.name("isEnable").value(isEnable()); } @@ -165,6 +178,8 @@ public class PositionTaskModel extends BaseBean { setIsLessThan(jsonReader.nextBoolean()); } else if (name.equals("discussDistance")) { setDiscussDistance(jsonReader.nextInt()); + } else if (name.equals("startTime")) { + setStartTime(jsonReader.nextLong()); } else if (name.equals("isEnable")) { setIsEnable(jsonReader.nextBoolean()); } else {