summaryrefslogtreecommitdiff
path: root/src/main/java/com/mesasoft/cn/config
diff options
context:
space:
mode:
authorzhanghongqing <[email protected]>2022-08-09 16:54:16 +0800
committerzhanghongqing <[email protected]>2022-08-09 16:54:16 +0800
commitb3fa11d4b1b5a68d7b04fde5eb6cfbda557927eb (patch)
treea49d344e49fc427fbf4cf00aa4963c4d04cd98a4 /src/main/java/com/mesasoft/cn/config
parentd8a2be0d094ac9ba2d47c81ebf03b3fe6e34a078 (diff)
initializeHEADmain
Diffstat (limited to 'src/main/java/com/mesasoft/cn/config')
-rw-r--r--src/main/java/com/mesasoft/cn/config/SettingConfig.java100
-rw-r--r--src/main/java/com/mesasoft/cn/config/TokenConfig.java80
-rw-r--r--src/main/java/com/mesasoft/cn/config/WebMvcConfig.java63
3 files changed, 243 insertions, 0 deletions
diff --git a/src/main/java/com/mesasoft/cn/config/SettingConfig.java b/src/main/java/com/mesasoft/cn/config/SettingConfig.java
new file mode 100644
index 0000000..a78197a
--- /dev/null
+++ b/src/main/java/com/mesasoft/cn/config/SettingConfig.java
@@ -0,0 +1,100 @@
+package com.mesasoft.cn.config;
+
+import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.modules.constant.ConfigConsts;
+import com.mesasoft.cn.util.CommonUtils;
+import com.zhazhapan.modules.constant.ValueConsts;
+import com.zhazhapan.util.Checker;
+import com.zhazhapan.util.FileExecutor;
+import com.zhazhapan.util.Formatter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+
+/**
+ * @author pantao
+ * @since 2018/1/26
+ */
+public class SettingConfig {
+
+ private static final String WINDOWS = "windows";
+
+ private static final String MAC = "mac";
+
+ private static final String LINUX = "linux";
+
+ private static Logger logger = LoggerFactory.getLogger(SettingConfig.class);
+
+ private static OsName currentOS;
+
+ static {
+ if (Checker.isWindows()) {
+ currentOS = OsName.WINDOWS;
+ } else if (Checker.isMacOS()) {
+ currentOS = OsName.MAC;
+ } else {
+ currentOS = OsName.LINUX;
+ }
+ }
+
+ public static int[] getAuth(String jsonPath) {
+ int[] auth = new int[5];
+ for (int i = 0; i < ConfigConsts.AUTH_OF_SETTINGS.length; i++) {
+ String key = jsonPath + ValueConsts.DOT_SIGN + ConfigConsts.AUTH_OF_SETTINGS[i];
+ auth[i] = SketchApplication.settings.getBooleanUseEval(key) ? 1 : 0;
+ }
+ return auth;
+ }
+
+ public static String getUploadStoragePath() {
+ String parent = getStoragePath(ConfigConsts.UPLOAD_PATH_OF_SETTING);
+ String formatWay = SketchApplication.settings.getStringUseEval(ConfigConsts.UPLOAD_FORM_OF_SETTING);
+ String childPath = ValueConsts.SEPARATOR + Formatter.datetimeToCustomString(new Date(), formatWay);
+ String path = parent + childPath;
+ if (!FileExecutor.createFolder(path)) {
+ path = ConfigConsts.DEFAULT_UPLOAD_PATH + childPath;
+ FileExecutor.createFolder(path);
+ }
+ logger.info("upload path: " + path);
+ return path;
+ }
+
+ public static String getAvatarStoragePath() {
+ String path = getStoragePath(ConfigConsts.UPLOAD_PATH_OF_SETTING) + ValueConsts.SEPARATOR + "avatar";
+ FileExecutor.createFolder(path);
+ return path;
+ }
+
+ public static String getStoragePath(String path) {
+ path += ValueConsts.DOT_SIGN;
+ if (currentOS == OsName.WINDOWS) {
+ path += WINDOWS;
+ } else if (currentOS == OsName.MAC) {
+ path += MAC;
+ } else {
+ path += LINUX;
+ }
+ return CommonUtils.checkPath(SketchApplication.settings.getStringUseEval(path));
+ }
+
+ /**
+ * 当前系统名称
+ */
+ public enum OsName {
+ /**
+ * windows系统
+ */
+ WINDOWS,
+
+ /**
+ * MacOS系统
+ */
+ MAC,
+
+ /**
+ * Linux系统
+ */
+ LINUX
+ }
+}
diff --git a/src/main/java/com/mesasoft/cn/config/TokenConfig.java b/src/main/java/com/mesasoft/cn/config/TokenConfig.java
new file mode 100644
index 0000000..7a83572
--- /dev/null
+++ b/src/main/java/com/mesasoft/cn/config/TokenConfig.java
@@ -0,0 +1,80 @@
+package com.mesasoft.cn.config;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.modules.constant.ConfigConsts;
+import com.zhazhapan.modules.constant.ValueConsts;
+import com.zhazhapan.util.Checker;
+import com.zhazhapan.util.FileExecutor;
+import com.zhazhapan.util.Formatter;
+import com.zhazhapan.util.RandomUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Hashtable;
+
+/**
+ * @author pantao
+ * @since 2018/1/26
+ */
+public class TokenConfig {
+
+ private static Logger logger = LoggerFactory.getLogger(TokenConfig.class);
+
+ public static String generateToken(String token, int userId) {
+ if (Checker.isNotEmpty(token)) {
+ SketchApplication.tokens.remove(token);
+ }
+ return generateToken(userId);
+ }
+
+ public static String generateToken(int userId) {
+ String token = RandomUtils.getRandomStringOnlyLetter(ValueConsts.THIRTY_TWO_INT);
+ SketchApplication.tokens.put(token, userId);
+ saveToken();
+ return token;
+ }
+
+ public static void saveToken() {
+ String tokens = Formatter.mapToJson(SketchApplication.tokens);
+ try {
+ FileExecutor.saveFile(SettingConfig.getStoragePath(ConfigConsts.TOKEN_OF_SETTINGS), tokens);
+ } catch (Exception e) {
+ logger.error("save token error: " + e.getMessage());
+ }
+ }
+
+ public static Hashtable<String, Integer> loadToken() {
+ Hashtable<String, Integer> tokens = new Hashtable<>(ValueConsts.SIXTEEN_INT);
+ try {
+ String token = FileExecutor.readFile(SettingConfig.getStoragePath(ConfigConsts.TOKEN_OF_SETTINGS));
+ JSONArray array = JSON.parseArray(token);
+ array.forEach(object -> {
+ JSONObject jsonObject = (JSONObject) object;
+ tokens.put(jsonObject.getString(ValueConsts.KEY_STRING), jsonObject.getInteger(ValueConsts
+ .VALUE_STRING));
+ });
+ } catch (Exception e) {
+ logger.error("load token error: " + e.getMessage());
+ }
+ return tokens;
+ }
+
+ public static void removeTokenByValue(int userId) {
+ if (userId > 0) {
+ String removeKey = "";
+ for (String key : SketchApplication.tokens.keySet()) {
+ if (SketchApplication.tokens.get(key) == userId) {
+ removeKey = key;
+ break;
+ }
+ }
+ if (Checker.isNotEmpty(removeKey)) {
+ SketchApplication.tokens.remove(removeKey);
+ TokenConfig.saveToken();
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/mesasoft/cn/config/WebMvcConfig.java b/src/main/java/com/mesasoft/cn/config/WebMvcConfig.java
new file mode 100644
index 0000000..51380b4
--- /dev/null
+++ b/src/main/java/com/mesasoft/cn/config/WebMvcConfig.java
@@ -0,0 +1,63 @@
+package com.mesasoft.cn.config;
+
+import com.alibaba.fastjson.JSONObject;
+import com.mesasoft.cn.exception.GlobalExceptionHandler;
+import com.mesasoft.cn.interceptor.WebInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.config.annotation.*;
+import org.springframework.web.servlet.view.InternalResourceViewResolver;
+
+import java.util.List;
+
+/**
+ * @author pantao
+ * @since 2018/1/22
+ */
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+ @Override
+ public void configureViewResolvers(ViewResolverRegistry registry) {
+ InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
+ viewResolver.setPrefix("/");
+ viewResolver.setSuffix(".html");
+ registry.viewResolver(viewResolver);
+ }
+
+ @Override
+ public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
+ resolvers.add(globalExceptionHandler());
+ }
+
+ @Override
+ public void configurePathMatch(PathMatchConfigurer configurer) {
+ configurer.setUseSuffixPatternMatch(false);
+ }
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(webInterceptor());
+ }
+
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("/assets/**").addResourceLocations("classpath:/assets/");
+ }
+
+ @Bean
+ public WebInterceptor webInterceptor() {
+ return new WebInterceptor();
+ }
+
+ @Bean
+ public GlobalExceptionHandler globalExceptionHandler() {
+ return new GlobalExceptionHandler();
+ }
+
+ @Bean
+ public JSONObject jsonObject() {
+ return new JSONObject();
+ }
+}