diff options
| author | zhanghongqing <[email protected]> | 2022-08-09 16:54:16 +0800 |
|---|---|---|
| committer | zhanghongqing <[email protected]> | 2022-08-09 16:54:16 +0800 |
| commit | b3fa11d4b1b5a68d7b04fde5eb6cfbda557927eb (patch) | |
| tree | a49d344e49fc427fbf4cf00aa4963c4d04cd98a4 /src/main/java/com/mesasoft/cn/config | |
| parent | d8a2be0d094ac9ba2d47c81ebf03b3fe6e34a078 (diff) | |
Diffstat (limited to 'src/main/java/com/mesasoft/cn/config')
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(); + } +} |
