From 42ce1f4b6f9df984d14e29f9d9ff188de7f3c6d7 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 07 五月 2026 09:45:33 +0800
Subject: [PATCH] #地图更新
---
src/main/java/com/zy/system/controller/ConfigController.java | 69 +++++++++++++++++++++++++++++-----
1 files changed, 58 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/system/controller/ConfigController.java b/src/main/java/com/zy/system/controller/ConfigController.java
index 8eb9f90..58acb70 100644
--- a/src/main/java/com/zy/system/controller/ConfigController.java
+++ b/src/main/java/com/zy/system/controller/ConfigController.java
@@ -17,7 +17,9 @@
import com.zy.core.enums.RedisKeyType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
import java.util.*;
@RestController
@@ -31,12 +33,7 @@
@RequestMapping(value = "/config/refreshCache")
@ManagerAuth
public R refreshCache(){
- HashMap<String, String> systemConfigMap = new HashMap<>();
- List<Config> configList = configService.list(new QueryWrapper<>());
- for (Config config : configList) {
- systemConfigMap.put(config.getCode(), config.getValue());
- }
- redisUtil.set(RedisKeyType.SYSTEM_CONFIG_MAP.key, systemConfigMap);
+ refreshCacheData();
return R.ok();
}
@@ -70,12 +67,14 @@
private void convert(Map<String, Object> map, QueryWrapper wrapper){
for (Map.Entry<String, Object> entry : map.entrySet()){
- if (entry.getKey().endsWith(">")) {
- wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
- } else if (entry.getKey().endsWith("<")) {
- wrapper.le(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
+ String val = String.valueOf(entry.getValue());
+ String column = humpToLine(entry.getKey());
+ if (val.contains(" - ")) {
+ String[] dates = val.split(" - ");
+ wrapper.ge(column, DateUtils.convert(dates[0]));
+ wrapper.le(column, DateUtils.convert(dates[1]));
} else {
- wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
+ wrapper.like(column, val);
}
}
}
@@ -83,6 +82,7 @@
@RequestMapping(value = "/config/updateBatch")
@ManagerAuth
public R updateBatch(@RequestBody List<ConfigUpdateBatchParam> params){
+ boolean updated = false;
for (ConfigUpdateBatchParam param : params) {
String code = param.getCode();
String value = param.getValue();
@@ -90,9 +90,20 @@
if (config == null) {
continue;
}
+ if (Short.valueOf((short) 2).equals(config.getType()) && !checkJson(value)) {
+ return R.error(config.getCode() + " json瑙f瀽澶辫触");
+ }
+ if (Objects.equals(config.getValue(), value)) {
+ continue;
+ }
config.setValue(value);
configService.updateById(config);
+ updated = true;
+ }
+ if (updated) {
+ Parameter.reset();
+ refreshCacheData();
}
return R.ok();
}
@@ -217,6 +228,38 @@
return R.ok(types);
}
+ @PostMapping("/config/uploadLogo/auth")
+ @ManagerAuth
+ public R uploadLogo(@RequestParam("file") MultipartFile file) {
+ if (file == null || file.isEmpty()) {
+ return R.error("璇烽�夋嫨鏂囦欢");
+ }
+ String originalName = file.getOriginalFilename();
+ if (originalName == null) {
+ return R.error("鏂囦欢鍚嶄负绌�");
+ }
+ String ext = originalName.contains(".") ? originalName.substring(originalName.lastIndexOf(".") + 1).toLowerCase() : "";
+ String mimeType;
+ switch (ext) {
+ case "png": mimeType = "image/png"; break;
+ case "jpg":
+ case "jpeg": mimeType = "image/jpeg"; break;
+ case "svg": mimeType = "image/svg+xml"; break;
+ case "ico": mimeType = "image/x-icon"; break;
+ default: return R.error("浠呮敮鎸� png/jpg/jpeg/svg/ico 鏍煎紡");
+ }
+ try {
+ String base64 = Base64.getEncoder().encodeToString(file.getBytes());
+ String dataUri = "data:" + mimeType + ";base64," + base64;
+ configService.saveConfigValue("system.logo", dataUri);
+ Parameter.reset();
+ configService.refreshSystemConfigCache();
+ return R.ok().add(dataUri);
+ } catch (IOException e) {
+ return R.error("涓婁紶澶辫触锛�" + e.getMessage());
+ }
+ }
+
private static boolean checkJson(String val){
Object parse = null;
@@ -227,4 +270,8 @@
return parse != null;
}
+ private void refreshCacheData() {
+ configService.refreshSystemConfigCache();
+ }
+
}
--
Gitblit v1.9.1