Explorar o código

3.1.0-改txt编码为"gb2312",浏览器访问不乱码,编码参数化

xiaof %!s(int64=2) %!d(string=hai) anos
pai
achega
375d54fe0f

+ 12 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java

@@ -25,15 +25,9 @@ import com.qmth.distributed.print.business.service.GradeBatchStudentService;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.SysOrg;
-import com.qmth.teachcloud.common.entity.SysRole;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.entity.SysUserRole;
+import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.*;
-import com.qmth.teachcloud.common.service.SysRoleService;
-import com.qmth.teachcloud.common.service.SysUserRoleService;
-import com.qmth.teachcloud.common.service.SysUserService;
-import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.sync.TeachCloudReportTaskUtils;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
@@ -54,7 +48,6 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -346,8 +339,17 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                 stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(TXT_PREFIX);
 
                 JSONObject jsonObject = new JSONObject();
+
+                String charset = SystemConstant.CHARSET_GB2312;
+                SysConfigService sysConfigService = SpringContextHolder.getBean(SysConfigService.class);
+                if (sysConfigService != null) {
+                    SysConfig sysConfig = sysConfigService.getByKey("sys.txt.charset");
+                    if (sysConfig != null && StringUtils.isNotBlank(sysConfig.getConfigValue())) {
+                        charset = sysConfig.getConfigValue();
+                    }
+                }
                 out = new ByteArrayOutputStream();
-                out.write(exception.getBytes("gb2312"));
+                out.write(exception.getBytes(charset));
                 byte[] bookByteAry = out.toByteArray();
                 inputStream = new ByteArrayInputStream(bookByteAry);
 

+ 17 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java

@@ -7,22 +7,25 @@ import com.qmth.distributed.print.business.templete.importData.AsyncImportTaskTe
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.scheduling.annotation.Async;
 
+import javax.annotation.Resource;
 import java.io.*;
-import java.nio.charset.StandardCharsets;
 import java.text.MessageFormat;
 import java.time.LocalDateTime;
 import java.util.Date;
@@ -38,6 +41,9 @@ import java.util.StringJoiner;
  * @Date: 2021/3/29
  */
 public abstract class AsyncExportTaskTemplete {
+    @Resource
+    SysConfigService sysConfigService;
+
     private final static Logger log = LoggerFactory.getLogger(AsyncImportTaskTemplete.class);
     public static final String BEGIN_TITLE = "->开始准备处理导出的";
     public static final String FINISH_TITLE = "->数据处理结束,共处理了";
@@ -92,8 +98,17 @@ public abstract class AsyncExportTaskTemplete {
             path = path.replaceAll("\\\\", "/");
             String type = (String) jsonObject.get(SystemConstant.TYPE);
 
+            String charset = SystemConstant.CHARSET_GB2312;
+            SysConfigService sysConfigService = SpringContextHolder.getBean(SysConfigService.class);
+            if (sysConfigService != null) {
+                SysConfig sysConfig = sysConfigService.getByKey("sys.txt.charset");
+                if (sysConfig != null && StringUtils.isNotBlank(sysConfig.getConfigValue())) {
+                    charset = sysConfig.getConfigValue();
+                }
+            }
+
             out = new ByteArrayOutputStream();
-            out.write(tbTask.getSummary().getBytes("gb2312"));
+            out.write(tbTask.getSummary().getBytes(charset));
             byte[] bookByteAry = out.toByteArray();
             inputStream = new ByteArrayInputStream(bookByteAry);
             StringJoiner stringJoiner = new StringJoiner("");

+ 18 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -5,21 +5,25 @@ import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.scheduling.annotation.Async;
 
+import javax.annotation.Resource;
 import java.io.*;
 import java.nio.charset.StandardCharsets;
 import java.text.MessageFormat;
@@ -37,6 +41,7 @@ import java.util.StringJoiner;
  * @Date: 2021/3/29
  */
 public abstract class AsyncImportTaskTemplete {
+
     private final static Logger log = LoggerFactory.getLogger(AsyncImportTaskTemplete.class);
 
     public static final String BEGIN_TITLE = "->开始准备处理导入的";
@@ -105,11 +110,20 @@ public abstract class AsyncImportTaskTemplete {
                 jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
             }
             String path = (String) jsonObject.get(SystemConstant.PATH);
-            path = path.replaceAll("\\\\","/");
+            path = path.replaceAll("\\\\", "/");
             String type = (String) jsonObject.get(SystemConstant.TYPE);
 
+            String charset = SystemConstant.CHARSET_GB2312;
+            SysConfigService sysConfigService = SpringContextHolder.getBean(SysConfigService.class);
+            if (sysConfigService != null) {
+                SysConfig sysConfig = sysConfigService.getByKey("sys.txt.charset");
+                if (sysConfig != null && StringUtils.isNotBlank(sysConfig.getConfigValue())) {
+                    charset = sysConfig.getConfigValue();
+                }
+            }
+
             out = new ByteArrayOutputStream();
-            out.write(tbTask.getSummary().getBytes("gb2312"));
+            out.write(tbTask.getSummary().getBytes(charset));
             byte[] bookByteAry = out.toByteArray();
             inputStream = new ByteArrayInputStream(bookByteAry);
             StringJoiner stringJoiner = new StringJoiner("");
@@ -143,8 +157,8 @@ public abstract class AsyncImportTaskTemplete {
             stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_CREATE_TXT_TITLE, EXCEPTION_DATA, e.getMessage()));
 
             String summary = stringJoinerSummary.toString();
-            if (summary.length() >= 65535){
-                summary = "Data too long : " + summary.substring(0,100) + "......" + summary.substring(summary.length() - 100);
+            if (summary.length() >= 65535) {
+                summary = "Data too long : " + summary.substring(0, 100) + "......" + summary.substring(summary.length() - 100);
             }
 
             tbTask.setSummary(summary);

+ 13 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/push/AsyncPushTaskTemplate.java

@@ -9,17 +9,20 @@ import com.qmth.distributed.print.business.templete.importData.AsyncImportTaskTe
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -77,8 +80,17 @@ public abstract class AsyncPushTaskTemplate {
         ByteArrayOutputStream out = null;
         InputStream inputStream = null;
         try {
+            String charset = SystemConstant.CHARSET_GB2312;
+            SysConfigService sysConfigService = SpringContextHolder.getBean(SysConfigService.class);
+            if(sysConfigService != null) {
+                SysConfig sysConfig = sysConfigService.getByKey("sys.txt.charset");
+                if (sysConfig != null && StringUtils.isNotBlank(sysConfig.getConfigValue())) {
+                    charset = sysConfig.getConfigValue();
+                }
+            }
+
             out = new ByteArrayOutputStream();
-            out.write(tbSyncTask.getSummary().getBytes("gb2312"));
+            out.write(tbSyncTask.getSummary().getBytes(charset));
             byte[] bookByteAry = out.toByteArray();
             inputStream = new ByteArrayInputStream(bookByteAry);
 

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -35,6 +35,7 @@ public class SystemConstant {
      * 系统常量
      */
     public static final String CHARSET_NAME = "UTF-8";
+    public static final String CHARSET_GB2312= "gb2312";
     public static final Charset CHARSET = Charset.forName(CHARSET_NAME);
     public static final String MD5 = "MD5";
     public static final String SUCCESS = "success";