From 966b2063e6268a407e5655410c366e821023bbb8 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Thu, 15 Jun 2023 19:15:42 +0800 Subject: [PATCH] bug fix --- .../common/utils/FileUploadUtil.java | 70 +++++++++++++++++++ .../business/controller/ReportController.java | 55 ++++++++++++++- .../modules/business/mapper/AppealMapper.xml | 25 ++++--- .../business/mapper/AppealRegMapper.xml | 31 +++----- .../impl/AppealMediationServiceImpl.java | 1 + .../service/impl/AppealRegServiceImpl.java | 2 + .../service/impl/LargeScreenServiceImpl.java | 31 ++++---- .../business/vo/AppealMediationVO.java | 1 + .../resource/endpoint/OssEndpoint.java | 17 ++++- src/main/resources/application-dev.yml | 11 +-- 10 files changed, 181 insertions(+), 63 deletions(-) create mode 100644 src/main/java/org/springblade/common/utils/FileUploadUtil.java diff --git a/src/main/java/org/springblade/common/utils/FileUploadUtil.java b/src/main/java/org/springblade/common/utils/FileUploadUtil.java new file mode 100644 index 0000000..182b978 --- /dev/null +++ b/src/main/java/org/springblade/common/utils/FileUploadUtil.java @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.common.utils; + +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.time.LocalDate; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; + +/** + * 通用工具类 + * + * @author Chill + */ +public class FileUploadUtil { + static final String FILE_SAVE_PATH = "/root/docker-nginx/html/mpimg"; + + /** + * 上传文件 + * + * @param file + * @return + */ + public static String UploadFile(MultipartFile file) { + String dirPath = "/" + LocalDate.now().getYear() + "-" + LocalDate.now().getMonthValue(); + //判断该路径是否存在 + File dir = new File(FILE_SAVE_PATH + dirPath); + if (!dir.exists()) { + //如果这个文件夹不存在的话,就创建这个文件 + dir.mkdirs(); + } + + //获取文件名 + String fileName = file.getOriginalFilename(); + //获取文件后缀名 + String suffixName = fileName.substring(fileName.lastIndexOf(".")); + //重新生成文件名 + fileName = UUID.randomUUID() + suffixName; + + //完成文件上传 + try { + file.transferTo(new File(FILE_SAVE_PATH + dirPath + "/" + fileName)); + } catch (IOException e) { + e.printStackTrace(); + } + + return dirPath + "/" + fileName; + } + +} diff --git a/src/main/java/org/springblade/modules/business/controller/ReportController.java b/src/main/java/org/springblade/modules/business/controller/ReportController.java index b04bff7..b63d95d 100644 --- a/src/main/java/org/springblade/modules/business/controller/ReportController.java +++ b/src/main/java/org/springblade/modules/business/controller/ReportController.java @@ -19,6 +19,8 @@ package org.springblade.modules.business.controller; import com.github.xiaoymin.knife4j.annotations.ApiSort; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; +import org.springblade.common.cache.DictBizCache; +import org.springblade.common.constant.BusinessConstant; import org.springblade.common.constant.CommonConstant; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; @@ -26,11 +28,16 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tenant.annotation.TenantDS; import org.springblade.core.tool.api.R; import org.springblade.modules.business.service.ILargeScreenService; +import org.springblade.modules.system.entity.DictBiz; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.text.ParseException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 控制器 @@ -92,7 +99,8 @@ public class ReportController extends BladeController { */ @GetMapping("/getAppealSubmitCountByLoc") public R getAppealSubmitCountByLoc(Integer timeFrame, String startTime, String endTime) throws ParseException { - return R.data(largeScreenService.getAppealSubmitCountByLoc(timeFrame, startTime, endTime)); + Map dataList = largeScreenService.getAppealSubmitCountByLoc(timeFrame, startTime, endTime); + return R.data(getSortAndData(dataList)); } /** @@ -100,7 +108,8 @@ public class ReportController extends BladeController { */ @GetMapping("/getAppealFinishCountByLoc") public R getAppealFinishCountByLoc(Integer timeFrame, String startTime, String endTime) throws ParseException { - return R.data(largeScreenService.getAppealFinishCountByLoc(timeFrame, startTime, endTime)); + Map dataList = largeScreenService.getAppealFinishCountByLoc(timeFrame, startTime, endTime); + return R.data(getSortAndData(dataList)); } /** @@ -108,7 +117,8 @@ public class ReportController extends BladeController { */ @GetMapping("/getImmediateCountByLoc") public R getImmediateCountByLoc(Integer timeFrame, String startTime, String endTime) throws ParseException { - return R.data(largeScreenService.getImmediateCountByLoc(timeFrame, startTime, endTime)); + Map dataList = largeScreenService.getImmediateCountByLoc(timeFrame, startTime, endTime); + return R.data(getSortAndData(dataList)); } /** @@ -127,4 +137,43 @@ public class ReportController extends BladeController { return R.data(largeScreenService.getAppealHot()); } + private Map> getSortAndData(Map dataList) { + // 获取全部街道 + List streetDictList = DictBizCache.getList(BusinessConstant.DICT_KEY_STREET); + + // 先将数据根据value做个排名 + List> list = new ArrayList<>(dataList.entrySet()); + list.sort((o1, o2) -> (int) o2.getValue() - (int) o1.getValue()); + + // 构建返回数据 + Map levelMap = new HashMap<>(); + Map dataMap = new HashMap<>(); + + for (int idx = 0; idx < list.size(); idx++) { + String streetName = list.get(idx).getKey(); + Object streetValue = list.get(idx).getValue(); + if (idx < 4) { + levelMap.put(streetName, 3); + } else if (idx < 8) { + levelMap.put(streetName, 2); + } else { + levelMap.put(streetName, 1); + } + dataMap.put(streetName, streetValue); + } + + // 遍历全部街道列表, 将未添加的街道数据添加上 + streetDictList.forEach(street -> { + String streetName = street.getDictValue(); + if (!levelMap.containsKey(streetName)) { + levelMap.put(streetName, 1); + dataMap.put(streetName, 0); + } + }); + + Map> resultMap = new HashMap<>(); + resultMap.put("levelList", levelMap); + resultMap.put("dataList", dataMap); + return resultMap; + } } diff --git a/src/main/java/org/springblade/modules/business/mapper/AppealMapper.xml b/src/main/java/org/springblade/modules/business/mapper/AppealMapper.xml index 557806b..78241dd 100644 --- a/src/main/java/org/springblade/modules/business/mapper/AppealMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/AppealMapper.xml @@ -3,21 +3,20 @@ diff --git a/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml b/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml index b5ea9be..319f053 100644 --- a/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml @@ -3,29 +3,16 @@