123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- package com.qmth.teachcloud.common.contant;
- import com.qmth.boot.core.uid.service.UidService;
- import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
- import java.io.File;
- import java.nio.charset.Charset;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * @Description: 系统常量
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2019/10/11
- */
- public class SystemConstant {
- /**
- * 系统常量
- */
- public static final String CHARSET_NAME = "UTF-8";
- public static final Charset CHARSET = Charset.forName(CHARSET_NAME);
- public static final String MD5 = "MD5";
- public static final String SUCCESS = "success";
- public static final String EXTEND_COLUMN = "extendColumn";
- public static final String USER_DIR = "user.dir";
- public static final String PDF_TEMP = "pdf-temp";
- public static final String FILE_TEMP = "file-temp";
- public static final String DOWNLOAD_TEMP = "download-temp";
- public static final String SESSION = "session:";
- public static final String TASK = "task";
- public static final String USER = "account";
- public static final String SCHOOL_ID = "schoolId";
- public static final String SCHOOL = "school";
- public static final String ORG = "org";
- public static final String ERROR = "/error";
- public static final String METHOD = "post";
- public static final String DEFAULT_PASSWORD = "MTIzNDU2";
- public static final String DEFAULT_MOBILE_NUMBER = "11111111111";
- public static final String UPDATE_TIME = "updateTime";
- public static final String PATH = "path";
- public static final String PDF_PATH = "pdfPath";
- public static final String HTML_PATH = "htmlPath";
- public static final String TYPE = "type";
- public static final String LOCAL = "local";
- public static final String OSS = "oss";
- public static final String LOGO = "logo";
- public static final String UPLOAD_TYPE = "uploadType";
- public static final String HTTP = "http://";
- public static final String ID = "id";
- public static final String FILE = "file";
- public static final String SIZE = "size";
- public static final String HTML_PREFIX = ".html";
- public static final String PDF_PREFIX = ".pdf";
- public static final String FTL_PREFIX = ".ftl";
- public static final String ZIP_PREFIX = ".zip";
- public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
- public static final int PAGE_NUMBER = 0;
- public static final int PAGE_SIZE = 10000000;
- public static final int ALL_CARD = -1;
- public static final String MANUAL = "manual";
- public static final String DELIMITER = ":";
- public static final int FINAL_SCALE = 1;
- public static final int CALCULATE_SCALE = 4;
- public static final int OPER_SCALE = 8;
- public static final String HYPHEN = "-";
- public static final String DEFAULT_SIGN = "#";
- public static final String COMMA_OF_ENGLISH = ",";
- public static final String COMMA_OF_CHINESE = ",";
- public static final String PAUSE_SIGN = "、";
- public static final String PARENT_ORG = "武汉大学教务处";
- public static final String SCHOOL_CODE = "ggjckcjfx";
- // public static final int MAX_RETRY_CREATE_PDF_COUNT = 5;
- /**
- * oss url过期时间
- */
- public static final int OSS_URL_EXPIRE = 5 * 60 * 1000;//过期时间5分钟
- /**
- * 缓存配置
- */
- public static final String USER_OAUTH_CACHE = "user:oauth:cache";
- public static final String USER_ACCOUNT_CACHE = "user:account:cache";
- public static final String SCHOOL_CACHE = "school:cache";
- public static final String SCHOOL_CODE_CACHE = "school:code:cache";
- public static final String ORG_CACHE = "org:cache";
- public static final String PRIVILEGE_URL_CACHE = "privilege:url:cache";
- public static final String ROLE_PRIVILEGE_CACHE = "role:privilege:cache";
- public static final String USER_ROLE_PRIVILEGE_CACHE = "user:role:privilege:cache";
- /**
- * 报表缓存
- */
- public static final String EXAM_STUDENT_REPORT = "report:cache:examStudent";
- public static final String COLLEGE_DEAN_REPORT = "report:cache:collegeDean";
- public static final String COLLEGE_COURSE_REPORT = "report:cache:collegeCourse";
- public static final String SURVEY_TEACHER_VIEW_REPORT = "report:cache:surveyTeacherView";
- public static final String TEACHER_VIEW_REPORT = "report:cache:teacherView";
- public static final String TEACHER_ANSWER_VIEW_REPORT = "report:cache:teacherAnswerView";
- /**
- * 鉴权
- */
- public static final String HEADER_AUTHORIZATION = "Authorization";
- public static final String HEADER_TIME = "time";
- public static final String HEADER_PLATFORM = "platform";
- public static final String HEADER_DEVICE_ID = "deviceId";
- public static final String TOKEN = "token";
- /**
- * redis
- */
- public static final int DEFAULT_SESSION_EXPIRE = 1;//过期时间1天
- public static final long REDIS_DEFAULT_EXPIRE_TIME = 24 * 60L * 60L;//过期时间24小时
- public static final long REDIS_CREATE_PDF_EXPIRE_TIME = 1 * 60L * 60L;//过期时间1小时
- public static final long REDIS_WHU_USER_AUTH_EXPIRE_TIME = 2 * 60L;//过期时间2分钟
- /**
- * redis mq
- */
- public static final String REDIS_LOCK_GRADE_COURSE_DELETE_PREFIX = "redis:lock:courseInfo:";
- /**
- * redis lock
- */
- public static final int MAX_RETRY_COUNT = 30;
- public static final long REDIS_CACHE_TIME_OUT = 60L;
- public static final long REDIS_LOCK_BATCH_NO_TIME_OUT = 60L * 30;
- /**
- * aes相关
- */
- public static final String AES = "AES";
- public static final String AES_MODE_PKCS5 = "AES/CBC/PKCS5Padding";//用这个模式,规则必须为16位
- public static final String AES_MODE_PKCS7 = "AES/CBC/PKCS7Padding";//用这个模式,规则必须为16位
- public static final String AES_RULE = "1234567890123456";//aes密钥
- /**
- * 变量
- */
- public static String TEMP_FILES_DIR;
- public static String PDF_TEMP_FILES_DIR;
- /**
- * excel相关
- */
- public static String XLSX = "xlsx";
- public static String XLS = "xls";
- /**
- * 线程池配置
- */
- public static final String THREAD_POOL_NAME = "taskThreadPool";
- // public static final int THREAD_POOL_CORE_POOL_SIZE = 5;
- // public static final int THREAD_POOL_MAX_POOL_SIZE = 100;
- public static final int THREAD_POOL_KEEP_ALIVE_SECONDS = 10;
- public static final int THREAD_POOL_QUEUE_CAPACITY = 500;
- /**
- * 初始化附件文件路径
- */
- public static void initTempFiles() {
- StringJoiner localPath = new StringJoiner("").add(System.getProperty(USER_DIR));
- String mkdir = localPath.toString().substring(0, localPath.toString().lastIndexOf(File.separator));
- File fileTempDir = new File(new StringBuffer(mkdir).append(File.separator).append(FILE_TEMP).toString());
- if (!fileTempDir.exists()) {
- fileTempDir.mkdirs();
- }
- File pdfTempDir = new File(new StringBuffer(mkdir).append(File.separator).append(PDF_TEMP).toString());
- if (!pdfTempDir.exists()) {
- pdfTempDir.mkdirs();
- }
- TEMP_FILES_DIR = fileTempDir.getPath();
- PDF_TEMP_FILES_DIR = pdfTempDir.getPath();
- }
- /**
- * id转换为long
- *
- * @return
- */
- public static Long convertIdToLong(String id) {
- return Objects.nonNull(id) && id.length() > 0 ? Long.parseLong(id) : null;
- }
- /**
- * 获取全局uuid
- *
- * @return
- */
- public static String getUuid() {
- return String.valueOf(UUID.randomUUID()).replaceAll("-", "");
- }
- /**
- * 获取数据库uuid
- *
- * @return
- */
- public static Long getDbUuid() {
- UidService uidservice = SpringContextHolder.getBean(UidService.class);
- return uidservice.getId();
- }
- /**
- * enable转换
- *
- * @return
- */
- public static Boolean convertEnable(Boolean enable) {
- return Objects.nonNull(enable) ? enable : true;
- }
- /**
- * 试卷类型转换
- *
- * @param paperType
- * @return
- */
- public static String convertPaperType(String paperType) {
- paperType = paperType.toLowerCase();
- int ascii = (int) paperType.charAt(0);
- return String.valueOf(ascii + 704);
- }
- /**
- * 模糊查询时调用以去除符号"%","_"特殊字符对查询结果的影响
- *
- * @param param 要校验的参数
- * @return 转译后的参数
- */
- public static String translateSpecificSign(String param) {
- if (param == null) {
- return null;
- }
- if (param.contains("%")) {
- param = param.replaceAll("%", "\\\\%");
- }
- if (param.contains("_")) {
- param = param.replaceAll("_", "\\\\_");
- }
- return param;
- }
- public static void verifyLength(String str, int length, String name) {
- if (str == null || str.length() == 0 || str.equals("null")) {
- throw ExceptionResultEnum.ERROR.exception(name + "不能为空");
- }
- if (str.length() > length) {
- throw ExceptionResultEnum.ERROR.exception("[" + name + ":" + str + "]' 超过长度限制 : " + length);
- }
- }
- /**
- * String 类型的参数不为空
- *
- * @param str 参数
- * @return true :不为空、false :为空
- */
- public static boolean strNotNull(String str) {
- return str != null && str.length() > 0 && !str.equals("null");
- }
- /**
- * Long 类型的参数不为空
- *
- * @param x 参数
- * @return true:不为空、false:为空
- */
- public static boolean longNotNull(Long x) {
- return x != null && x > 0;
- }
- /**
- * 跨步数组(将list集合按照数量拆分成多个集合)
- *
- * @param datasource 数据源(初始大数据集合)
- * @param step 跨步(多少个元素一个集合)
- * @param <T> 泛型
- * @return 拆分好地集合的集合
- */
- public static <T> List<List<T>> getStepList(List<T> datasource, int step) {
- List<List<T>> result = new ArrayList<>();
- int size = datasource.size();
- for (int i = 0; i < size; i = i + step) {
- List<T> cell = datasource.stream().skip(i).limit(step).collect(Collectors.toList());
- result.add(cell);
- }
- return result;
- }
- /**
- * 跨步数组(将list集合按照cpu核心数量拆分成多个集合)
- *
- * @param datasource 数据源
- * @param <T> 泛型
- * @return 拆分好地集合的集合
- */
- public static <T> List<List<T>> getStepList(List<T> datasource) {
- int cpuNum = Runtime.getRuntime().availableProcessors();
- int step = datasource.size() / cpuNum + 1;
- List<List<T>> result = new ArrayList<>();
- int size = datasource.size();
- for (int i = 0; i < size; i = i + step) {
- List<T> cell = datasource.stream().skip(i).limit(step).collect(Collectors.toList());
- result.add(cell);
- }
- return result;
- }
- }
|