6c
8 小时以前 2f1913cbfd84fe580cdd48b810251fdf2ad29112
src/main/java/com/product/file/service/FileManagerService.java
@@ -31,6 +31,7 @@
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import org.apache.commons.codec.binary.Base64;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -472,7 +473,7 @@
        String fileFinalName = "";
      for (Map.Entry<Object, Object> entry : map.entrySet()) {
         fieldFse = fieldMetaEntity.getFieldMeta(fieldName);
            if (fieldFse == null || !Arrays.asList(CmnConst.ATTACHMENT_TYPE, "file-image", FieldType.FILE_ATTACHMENT.getDictValue()).contains(fieldFse.getString(CmnConst.FIELD_TYPE))) {
            if (fieldFse == null || !Arrays.asList(CmnConst.ATTACHMENT_TYPE, "file-image", FieldType.FILE_ATTACHMENT.getDictValue(), FieldType.SIGNATURE.getDictValue()).contains(fieldFse.getString(CmnConst.FIELD_TYPE))) {
                fse.setValue(entry.getKey().toString(), null);
            continue;
         }
@@ -504,7 +505,7 @@
               }
            }
                boolean saveInDbFlag = FieldType.FILE_ATTACHMENT.getDictValue().equals(fieldFse.getString("field_type"));
                boolean saveInDbFlag = FieldType.checkSaveInDB(fieldFse.getString("field_type"));
                if (!saveInDbFlag) {
                    fileFinalName = FileUtils.uploadFile(tempFile, templateType, clientUuid);
                } else {
@@ -954,6 +955,19 @@
      return this.getFileContent(attachmentFse);
   }
    /**
     * 获取用户签名
     * @return
     * @throws BaseException
     */
    public String getSignature(FieldSetEntity fse) throws BaseException {
        String bytes = Base64.encodeBase64String(getFileContent(fse.getUUID()));
        if (bytes == null) {
            return null;
        }
        return "data:image/png;base64," + bytes;
    }
   /**
    * 根据附件uuid获取文件
    * 用完之后需要删除返回的 file (临时文件)
@@ -1250,4 +1264,28 @@
      return flag;
   }
    /**
     * 验证是否可以预览
     * @param fse
     * @return
     */
    public Object checkPreview(FieldSetEntity fse) {
        String fileName = fse.getString("file_name");
        boolean allowPreviewFlag = Global.getPropertyToBoolean("file.view.online", "true");
        List<String> canTransferFormatList = Lists.newArrayList(Arrays.asList(Global.getSystemConfig("can.transfer.format", "").split(",")));
        List<String> canDirectPreviewList = Lists.newArrayList(Arrays.asList(Global.getSystemConfig("can.direct.view.online.format", "").split(",")));
        List<String> canPreviewList = Lists.newArrayList();
        canPreviewList.addAll(canTransferFormatList);
        canPreviewList.addAll(canDirectPreviewList);
        if (StringUtils.isEmpty(fileName)) {
            if (allowPreviewFlag) {
                return BaseUtil.collection2String(canPreviewList);
            } else {
                return "";
            }
        } else {
            String tail = fileName.substring(fileName.lastIndexOf(".") + 1);
            return allowPreviewFlag && canPreviewList.contains(tail);
        }
    }
}