wangliang 2 лет назад
Родитель
Сommit
7141e965b2

+ 3 - 13
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -254,7 +254,7 @@ public class SysController {
     @ApiOperation(value = "登出")
     @RequestMapping(value = "/logout", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    @OperationLogDetail(detail = "用户登出(注销)",customizedOperationType = CustomizedOperationTypeEnum.LOGOUT)
+    @OperationLogDetail(detail = "用户登出(注销)", customizedOperationType = CustomizedOperationTypeEnum.LOGOUT)
     public Result logout() throws NoSuchAlgorithmException {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         teachcloudCommonService.removeUserInfo(sysUser.getId(), false);
@@ -433,19 +433,9 @@ public class SysController {
             authInfoService.appHasExpired(code);
             SysConfig sysConfig = commonCacheService.addSysConfigCache(basicSchool.getId(), SystemConstant.ACCOUNT_SMS_VERIFY);
             Map<String, Object> map = new HashMap<>();
+
             if (Objects.nonNull(basicSchool.getLogo()) && (!basicSchool.getLogo().startsWith("http") || !basicSchool.getLogo().startsWith("https"))) {
-                String url = null;
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
-                    String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.fssLocalFileDomain().getServer());
-                    String filePath = SystemConstant.getLocalFilePath(hostUrl, basicSchool.getLogo());
-                    if (filePath.startsWith(SystemConstant.ORG_SPLIT)) {
-                        url = hostUrl + filePath;
-                    } else {
-                        url = hostUrl + File.separator + filePath;
-                    }
-                } else {
-                    url = basicSchool.getLogo();
-                }
+                String url = SystemConstant.getLogoFilePath(basicSchool);
                 map.put(SystemConstant.LOGO, url);
             } else {
                 map.put(SystemConstant.LOGO, basicSchool.getLogo());

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

@@ -864,6 +864,35 @@ public class SystemConstant {
         }
     }
 
+    /**
+     * 获取学校logo
+     *
+     * @param basicSchool
+     * @return
+     */
+    public static String getLogoFilePath(BasicSchool basicSchool) {
+        DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
+        boolean oss = dictionaryConfig.sysDomain().isOss();
+        String url = null;
+        if (oss) {
+            url = dictionaryConfig.fssPublicDomain().getServer() + File.separator + basicSchool.getLogo();
+        } else {
+            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
+                String hostUrl = dictionaryConfig.fssLocalFileDomain().getServer();
+                hostUrl = hostUrl.replace(SystemConstant.PATH_MATCH, basicSchool.getCode());
+                String filePath = SystemConstant.getLocalFilePath(hostUrl, basicSchool.getLogo());
+                if (filePath.startsWith(SystemConstant.ORG_SPLIT)) {
+                    url = hostUrl + filePath;
+                } else {
+                    url = hostUrl + File.separator + filePath;
+                }
+            } else {
+                url = dictionaryConfig.fssPublicDomain().getServer() + File.separator + basicSchool.getLogo();
+            }
+        }
+        return url;
+    }
+
     /**
      * 创建txt文件
      *

+ 15 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AuthInfoServiceImpl.java

@@ -13,11 +13,13 @@ import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.TSAuth;
 import com.qmth.teachcloud.common.enums.AuthEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -168,7 +170,12 @@ public class AuthInfoServiceImpl implements AuthInfoService {
             orgCodesMap = new HashMap<>();
         }
 
-        StringJoiner stringJoiner = SystemConstant.getDirName(UploadFileEnum.FILE, true);
+        boolean oss = dictionaryConfig.sysDomain().isOss();
+        StringJoiner stringJoiner = new StringJoiner("");
+        if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+            stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+        }
+        stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
         for (OrgInfo o : orgInfoList) {
             orgCodesMap.put(o.getCode(), o.getCode());
             if (authEnum == AuthEnum.OFF_LINE) {
@@ -195,16 +202,19 @@ public class AuthInfoServiceImpl implements AuthInfoService {
 //                        FileUtils.copyInputStreamToFile(new FileInputStream(fileNew), fileTemp);
 
                         dirName = stringJoiner.toString() + SystemConstant.getNanoId() + "." + FilenameUtils.getExtension(fileTemp.getPath());
-                        fileStoreUtil.ossUpload(dirName, fileTemp, DigestUtils.md5Hex(new FileInputStream(fileTemp)), UploadFileEnum.FILE.getFssType());
+                        String jpgFileMd5 = DigestUtils.md5Hex(new FileInputStream(fileTemp));
+                        if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
+                            fileStoreUtil.localUpload(dirName, new FileInputStream(fileTemp), jpgFileMd5, LocalCatalogEnum.LOCAL_FILE);
+                        } else {
+                            fileStoreUtil.ossUpload(dirName, fileTemp, jpgFileMd5, UploadFileEnum.FILE.getFssType());
+                        }
+                        basicSchool.setLogo(dirName);
                     } catch (Exception e) {
                         log.error(SystemConstant.LOG_ERROR, e);
                     } finally {
                         if (Objects.nonNull(fileTemp)) {
                             fileTemp.delete();
                         }
-                        if (Objects.nonNull(dirName)) {
-                            basicSchool.setLogo(dictionaryConfig.fssPublicDomain().getServer() + File.separator + dirName);
-                        }
                     }
                 } else {
                     basicSchool.setLogo(o.getLogoUrl());

+ 2 - 16
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysController.java

@@ -30,7 +30,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.io.File;
 import java.security.NoSuchAlgorithmException;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -232,24 +231,11 @@ public class SysController {
         }
         if (!Objects.equals(code.toUpperCase(), RoleTypeEnum.ADMIN.name())) {
             BasicSchool basicSchool = commonCacheService.schoolCache(code);
-            if (Objects.isNull(basicSchool)) {
-                throw ExceptionResultEnum.SCHOOL_NO_DATA.exception();
-            }
+            Optional.ofNullable(basicSchool).orElseThrow(() -> ExceptionResultEnum.SCHOOL_NO_DATA.exception());
             authInfoService.appHasExpired(code);
             Map<String, String> map = new HashMap<>();
             if (Objects.nonNull(basicSchool.getLogo()) && (!basicSchool.getLogo().startsWith("http") || !basicSchool.getLogo().startsWith("https"))) {
-                String url = null;
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
-                    String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.fssLocalFileDomain().getServer());
-                    String filePath = SystemConstant.getLocalFilePath(hostUrl, basicSchool.getLogo());
-                    if (filePath.startsWith(SystemConstant.ORG_SPLIT)) {
-                        url = hostUrl + filePath;
-                    } else {
-                        url = hostUrl + File.separator + filePath;
-                    }
-                } else {
-                    url = basicSchool.getLogo();
-                }
+                String url = SystemConstant.getLogoFilePath(basicSchool);
                 map.put(SystemConstant.LOGO, url);
             } else {
                 map.put(SystemConstant.LOGO, basicSchool.getLogo());