这个方法的主要目的是根据给定的起始日期和结束日期,循环插入每个月对从开始时间到当前时间为止的记录。代码首先解析了起始日期和结束日期,然后使用while
循环逐月插入记录,直到startDate
大于或等于endDate
。
这种设计适用于需要写主题表,从开始时间到结束时间之内(每个月)插入数据的场景。
@Override
public Integer insertJZSP(TopicHomePageRequestVo topicHomePageRequestVo) {
// 获取当前的jssj和kssj
String jssj = topicHomePageRequestVo.getJssj();
String kssj = topicHomePageRequestVo.getKssj();
// 使用DateTimeFormatter解析日期字符串
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate endDate = LocalDate.parse(jssj, formatter);
LocalDate startDate = LocalDate.parse(kssj, formatter);
int count = 0;
// 每次减一个月,直到startDate大于等于endDate
while (startDate.isBefore(endDate) || startDate.isEqual(endDate)) {
// 设置当前循环的jssj和kssj
topicHomePageRequestVo.setJssj(endDate.format(formatter));
System.out.println("jssj: " + topicHomePageRequestVo.getJssj());
topicHomePageRequestVo.setKssj(startDate.format(formatter));
System.out.println("kssj: " + topicHomePageRequestVo.getKssj());
// 调用DataService进行插入操作
TopicHomePageDataService.insertJZSP(topicHomePageRequestVo);
// 日期减一个月
endDate = endDate.minusMonths(1);
// 日期加一个月
//startDate = startDate.plusMonths(1);
count++;
}
return count; // 返回插入的记录数
}