|
|
@@ -290,14 +290,23 @@ public class TRechargeServiceImpl extends ServiceImpl<TRechargeMapper, TRecharge
|
|
|
|
|
|
@Override
|
|
|
public int countSuccessRecharges(String openId, Date rechargeQueryTime) {
|
|
|
- // 统计用户在指定时间之前成功的充值次数
|
|
|
- // 支付状态为1表示已支付(充值成功)
|
|
|
+ // 统计用户在指定时间起(含)之后成功的充值次数
|
|
|
+ // 支付状态为 1 表示已支付(充值成功)
|
|
|
+ if (StrUtil.isBlank(openId)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
LambdaQueryWrapper<TRecharge> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(TRecharge::getcOpenId, openId)
|
|
|
- .eq(TRecharge::getPayStatus, 1)
|
|
|
- .lt(TRecharge::getDtCreateTime, rechargeQueryTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
|
|
-
|
|
|
- return Math.toIntExact(this.count(queryWrapper));
|
|
|
+ .eq(TRecharge::getPayStatus, 1);
|
|
|
+
|
|
|
+ // rechargeQueryTime 为 null 表示不限制起点(永久活动/全量统计)
|
|
|
+ if (rechargeQueryTime != null) {
|
|
|
+ LocalDateTime start = LocalDateTime.ofInstant(rechargeQueryTime.toInstant(), ZoneId.systemDefault());
|
|
|
+ queryWrapper.ge(TRecharge::getDtCreateTime, start);
|
|
|
+ }
|
|
|
+
|
|
|
+ long cnt = this.count(queryWrapper);
|
|
|
+ return cnt > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) cnt;
|
|
|
}
|
|
|
|
|
|
/**
|