|
@@ -30,6 +30,8 @@ import com.yonge.cooleshow.biz.dal.dao.VipCardRecordDao;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
+import java.time.LocalTime;
|
|
import java.time.ZoneId;
|
|
import java.time.ZoneId;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.CompletableFuture;
|
|
@@ -390,8 +392,7 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
// 没有会员信息
|
|
// 没有会员信息
|
|
if (vipCardRecordList.isEmpty()) {
|
|
if (vipCardRecordList.isEmpty()) {
|
|
PeriodEnum period = addVipCardRecord.getType();
|
|
PeriodEnum period = addVipCardRecord.getType();
|
|
- LocalDate startLocalDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
|
- Date endDate = plusDate(startLocalDate, period, Long.valueOf(addVipCardRecord.getTimes()));
|
|
|
|
|
|
+ Date endDate = plusDate(startTime, period, Long.valueOf(addVipCardRecord.getTimes()));
|
|
|
|
|
|
VipCardRecord addRecord = JSON.parseObject(JSON.toJSONString(addVipCardRecord), VipCardRecord.class);
|
|
VipCardRecord addRecord = JSON.parseObject(JSON.toJSONString(addVipCardRecord), VipCardRecord.class);
|
|
addRecord.setSourceType(SourceTypeEnum.BACKEND_GIVE);
|
|
addRecord.setSourceType(SourceTypeEnum.BACKEND_GIVE);
|
|
@@ -414,8 +415,7 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- LocalDate startLocalDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
|
- Date endDate = plusDate(startLocalDate, addVipCardRecord.getType(), Long.valueOf(addVipCardRecord.getTimes()));
|
|
|
|
|
|
+ Date endDate = plusDate(startTime, addVipCardRecord.getType(), Long.valueOf(addVipCardRecord.getTimes()));
|
|
// 平移时间
|
|
// 平移时间
|
|
long plusMills = endDate == null ? 0L : (endDate.getTime() - startTime.getTime());
|
|
long plusMills = endDate == null ? 0L : (endDate.getTime() - startTime.getTime());
|
|
for (int i = 0; i < vipCardRecordList.size(); i++) {
|
|
for (int i = 0; i < vipCardRecordList.size(); i++) {
|
|
@@ -606,30 +606,38 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
this.save(vipCardRecord);
|
|
this.save(vipCardRecord);
|
|
}
|
|
}
|
|
|
|
|
|
- private Date plusDate(LocalDate start, PeriodEnum period, long times) {
|
|
|
|
- LocalDate end = null;
|
|
|
|
|
|
+ private Date plusDate(Date start, PeriodEnum period, long times) {
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.setTime(start);
|
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 23);
|
|
|
|
+ calendar.set(Calendar.MINUTE, 59);
|
|
|
|
+ calendar.set(Calendar.SECOND, 59);
|
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
|
+
|
|
|
|
+ LocalDateTime localDateTimeMaxTime = calendar.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
|
+ LocalDateTime end;
|
|
switch (period) {
|
|
switch (period) {
|
|
case DAY:
|
|
case DAY:
|
|
- end = start.minusDays(times);
|
|
|
|
|
|
+ end = localDateTimeMaxTime.plusDays(times);
|
|
break;
|
|
break;
|
|
case MONTH:
|
|
case MONTH:
|
|
- end = start.minusMonths(times);
|
|
|
|
|
|
+ end = localDateTimeMaxTime.plusMonths(times);
|
|
break;
|
|
break;
|
|
case QUARTERLY:
|
|
case QUARTERLY:
|
|
- end = start.minusMonths(times * 3);
|
|
|
|
|
|
+ end = localDateTimeMaxTime.plusMonths(times * 3);
|
|
break;
|
|
break;
|
|
case YEAR_HALF:
|
|
case YEAR_HALF:
|
|
- end = start.minusMonths(times * 6);
|
|
|
|
|
|
+ end = localDateTimeMaxTime.plusMonths(times * 6);
|
|
break;
|
|
break;
|
|
case YEAR:
|
|
case YEAR:
|
|
- end = start.minusYears(times);
|
|
|
|
|
|
+ end = localDateTimeMaxTime.plusYears(times);
|
|
break;
|
|
break;
|
|
case PERPETUAL:
|
|
case PERPETUAL:
|
|
return null;
|
|
return null;
|
|
default:
|
|
default:
|
|
throw new BizException("不支持的扣减类型");
|
|
throw new BizException("不支持的扣减类型");
|
|
}
|
|
}
|
|
- return Date.from(end.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
|
|
|
+ return Date.from(end.atZone(ZoneId.systemDefault()).toInstant());
|
|
}
|
|
}
|
|
|
|
|
|
// 发送会员到期3天消息推送
|
|
// 发送会员到期3天消息推送
|