|
|
@@ -408,6 +408,7 @@ public class PointActivityServiceImpl extends ServiceImpl<PointActivityMapper, P
|
|
|
signedLogMap.put(signDate, log);
|
|
|
}
|
|
|
}
|
|
|
+ boolean hasSignHistory = (status != null && status.getLastSignDate() != null) || CollUtil.isNotEmpty(signedLogMap);
|
|
|
|
|
|
// 8. 生成 7 天面板数据
|
|
|
List<SignDayVo> voList = new ArrayList<>(7);
|
|
|
@@ -441,8 +442,8 @@ public class PointActivityServiceImpl extends ServiceImpl<PointActivityMapper, P
|
|
|
} else if (date.isAfter(today)) {
|
|
|
vo.setStatus(0);
|
|
|
} else {
|
|
|
- // 过去未签:昨天算断签(3),更早算过期(4)
|
|
|
- vo.setStatus(date.equals(today.minusDays(1)) ? 3 : 4);
|
|
|
+ // 过去未签:只有“存在历史签到”的情况下,昨天才算断签(3);否则一律过期(4)
|
|
|
+ vo.setStatus(hasSignHistory && date.equals(today.minusDays(1)) ? 3 : 4);
|
|
|
}
|
|
|
|
|
|
// 8.3 积分计算(基础分 + 阶梯累加)
|
|
|
@@ -467,8 +468,8 @@ public class PointActivityServiceImpl extends ServiceImpl<PointActivityMapper, P
|
|
|
points = calcCumulativeSignPoints(basePoints, nextContinuousDays, rewardList);
|
|
|
nextContinuousDays++;
|
|
|
} else {
|
|
|
- // 断签/过期:未签到不展示可得积分
|
|
|
- points = 0;
|
|
|
+ // 断签/过期:过期仍展示基础分,断签展示 0
|
|
|
+ points = (vo.getStatus() != null && vo.getStatus() == 4) ? basePoints : 0;
|
|
|
}
|
|
|
|
|
|
vo.setPoints(points);
|