feat: 公众网站数据接口调整

This commit is contained in:
han0
2024-09-11 15:43:10 +08:00
parent f9875687c9
commit 59347898b8
4 changed files with 11 additions and 8 deletions

View File

@@ -154,8 +154,6 @@ public class BudgetController {
return FuHttpResponse.Builder().dataResponse(budgetItemList).build(); return FuHttpResponse.Builder().dataResponse(budgetItemList).build();
} }
// todo-1 发布编码替换
// todo-1 公众网站数据
// todo-1 公众网站历史数据 // todo-1 公众网站历史数据
// todo-1 地图里程数据 // todo-1 地图里程数据
// todo-1 价格权重调整 // todo-1 价格权重调整

View File

@@ -45,13 +45,12 @@ public class MaterialController {
@ApiParam("类型") @RequestParam(value="type") Integer type @ApiParam("类型") @RequestParam(value="type") Integer type
) { ) {
LambdaQueryWrapper<Material> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Material> query = new LambdaQueryWrapper<>();
query.eq(Material::getIsTree, 1); //query.eq(Material::getIsTree, 1);
query.eq(Material::getType, type); query.eq(Material::getType, type);
List<Map<String, Object>> maps = materialService.listMaps(query); List<Map<String, Object>> maps = materialService.listMaps(query);
maps = maps.stream().map(map -> convertKeysToLowercase(map)).collect(Collectors.toList()); // maps = maps.stream().map(map -> convertKeysToLowercase(map)).collect(Collectors.toList());
// todo-3 列转树改为泛型对象入参 // List<Map<String, Object>> result = CommonUtil.listToTree(maps, Material.Fields.id, StrUtil.toUnderlineCase(Material.Fields.parentId), "00.00.00.00");
List<Map<String, Object>> result = CommonUtil.listToTree(maps, Material.Fields.id, StrUtil.toUnderlineCase(Material.Fields.parentId), "00.00.00.00"); return FuHttpResponse.Builder().dataResponse(maps).build();
return FuHttpResponse.Builder().dataResponse(result).build();
} }
private Map<String, Object> convertKeysToLowercase(Map<String, Object> originalMap) { private Map<String, Object> convertKeysToLowercase(Map<String, Object> originalMap) {

View File

@@ -52,6 +52,7 @@ public class PublicController {
@ApiParam(value = "父id") @RequestParam(value="parent_id", required = false) String parentId @ApiParam(value = "父id") @RequestParam(value="parent_id", required = false) String parentId
) throws Exception { ) throws Exception {
LambdaQueryWrapper<PricePublish> query = pricePublishService.getQuery(year, month, null, name, spec, PricePublishType.CURRENT); LambdaQueryWrapper<PricePublish> query = pricePublishService.getQuery(year, month, null, name, spec, PricePublishType.CURRENT);
query.isNotNull(PricePublish::getMaterialId); // 材料编号禁止为空
if (keyword != null && ObjectUtil.isNotEmpty(keyword)) { if (keyword != null && ObjectUtil.isNotEmpty(keyword)) {
query.and(e -> e query.and(e -> e
.like(PricePublish::getName, keyword).or() .like(PricePublish::getName, keyword).or()
@@ -66,6 +67,7 @@ public class PublicController {
var currentData = pricePublishService.list(query); var currentData = pricePublishService.list(query);
LambdaQueryWrapper<PricePublish> queryPrevious = pricePublishService.getQuery(year - 1, month, null, name, spec, PricePublishType.CURRENT); LambdaQueryWrapper<PricePublish> queryPrevious = pricePublishService.getQuery(year - 1, month, null, name, spec, PricePublishType.CURRENT);
queryPrevious.isNotNull(PricePublish::getMaterialId); // 材料编号禁止为空
var previousData = pricePublishService.list(queryPrevious); var previousData = pricePublishService.list(queryPrevious);
// 计算同比, 组合 // 计算同比, 组合

View File

@@ -68,7 +68,11 @@ public class PublicResponse {
private Float yoy; private Float yoy;
static public List<PublicResponse> list(List<PricePublish> currentData, List<PricePublish> previousData, String region) { static public List<PublicResponse> list(List<PricePublish> currentData, List<PricePublish> previousData, String region) {
var previousPriceMap = previousData.stream().collect(Collectors.toMap(PricePublish::getMaterialId, item -> item.getRegionPrice(region))); var previousPriceMap = previousData.stream().collect(Collectors.toMap(
PricePublish::getMaterialId,
item -> item.getRegionPrice(region),
(v1, v2) -> (BigDecimal)v2
));
var result = currentData.stream().map(item -> new PublicResponse(item, previousPriceMap, region)).collect(Collectors.toList()); var result = currentData.stream().map(item -> new PublicResponse(item, previousPriceMap, region)).collect(Collectors.toList());
return result; return result;
} }