fix: 修复趋势表时间范围逻辑

This commit is contained in:
han0
2024-07-11 10:50:22 +08:00
parent 0dedf1daf5
commit 227499d541
2 changed files with 17 additions and 3 deletions

View File

@@ -97,7 +97,7 @@ public class PriceResultController {
throw new NcHttpException(HttpErrorResponseEnum.PRICE_RESULT_NOT_FOUND);
}
var query = priceResultService.getQueryByName(data.getName());
query = priceResultService.queryLastYear(query);
query = priceResultService.queryLastYear(query, data);
var result = priceResultService.list(query);
return FuHttpResponse.Builder().dataResponse(result).build();

View File

@@ -1,9 +1,9 @@
package mjkf.xinke.main.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import mjkf.xinke.main.model.db.PriceResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import mjkf.xinke.main.model.db.PriceResult;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
@@ -32,8 +32,22 @@ public class PriceResultService extends ServiceImpl<BaseMapper<PriceResult>, Pri
return this.getQuery(null, null, null, name);
}
public LambdaQueryWrapper<PriceResult> queryLastYear (LambdaQueryWrapper<PriceResult> query, PriceResult data) {
var endDate = LocalDate.of(data.getYear(), data.getMonth(), 1);
var startDate = endDate.minusYears(1);
// 过去一年
query.and(e -> e
.eq(PriceResult::getYear, startDate.getYear())
.between(PriceResult::getMonth, startDate.getMonth(), 12).or()
.eq(PriceResult::getYear, endDate.getYear())
.between(PriceResult::getMonth, 1, endDate.getMonth())
);
query.orderByAsc(PriceResult::getYear, PriceResult::getMonth);
return query;
}
public LambdaQueryWrapper<PriceResult> queryLastYear (LambdaQueryWrapper<PriceResult> query) {
var endDate = LocalDate.now();
var endDate = LocalDate.now().minusMonths(1);
var startDate = endDate.minusYears(1);
// 过去一年
query.and(e -> e