Quellcode durchsuchen

1、人脸上传调整

dzx vor 5 Monaten
Ursprung
Commit
c7e905b967

+ 39 - 2
src/main/java/com/xjrsoft/module/personnel/controller/FaceManagementController.java

@@ -6,13 +6,16 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.ImageUtil;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.personnel.dto.AddFaceManagementDto;
 import com.xjrsoft.module.personnel.dto.FaceManagementPageDto;
@@ -31,6 +34,7 @@ import com.xjrsoft.module.system.vo.ImageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -43,7 +47,10 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/personnel" + "/facemanager")
@@ -151,10 +158,25 @@ public class FaceManagementController {
     @SaCheckPermission("facemanager:add")
     public RT<Boolean> add(AddFaceManagementDto dto, @RequestParam("file") MultipartFile file) {
 
+        String filename = file.getOriginalFilename();
+        String suffix = StringUtils.substringAfterLast(filename, StringPool.DOT);
+        String[] imgSuffix = new String[]{"png", "jpg", "jpeg"};
+
+        if (!Arrays.asList(imgSuffix).contains(suffix)) {
+            throw new MyException("图片格式不正确!");
+        }
+        Map<String, String> map = new HashMap<String, String>() {
+            {
+                put("jpg", "data:image/jpg;base64,");
+                put("jpeg", "data:image/jpeg;base64,");
+                put("png", "data:image/png;base64,");
+            }
+        };
+
         ImageVo imageVo = fileService.addRubAndHand(file);
         dto.setFileId(imageVo.getFolderId());
         FaceManagement faceManagement = BeanUtil.toBean(dto, FaceManagement.class);
-        faceManagement.setRegisterBase64(imageVo.getBase64());
+        faceManagement.setRegisterBase64(map.get(suffix) + imageVo.getBase64());
         boolean isSuccess = faceManagementService.add(faceManagement);
         codeRuleService.useEncode("FACECODE");
         return RT.ok(isSuccess);
@@ -167,10 +189,25 @@ public class FaceManagementController {
     @ApiOperation(value = "修改人脸")
     @SaCheckPermission("facemanager:edit")
     public RT<Boolean> update(UpdateFaceManagementDto dto, @RequestParam(name = "file",required = false) MultipartFile file) {
+        String filename = file.getOriginalFilename();
+        String suffix = StringUtils.substringAfterLast(filename, StringPool.DOT);
+        String[] imgSuffix = new String[]{"png", "jpg", "jpeg"};
+
+        if (!Arrays.asList(imgSuffix).contains(suffix)) {
+            throw new MyException("图片格式不正确!");
+        }
+        Map<String, String> map = new HashMap<String, String>() {
+            {
+                put("jpg", "data:image/jpg;base64,");
+                put("jpeg", "data:image/jpeg;base64,");
+                put("png", "data:image/png;base64,");
+            }
+        };
+
         ImageVo imageVo = fileService.addRubAndHand(file);
         dto.setFileId(imageVo.getFolderId());
         FaceManagement faceManagement = BeanUtil.toBean(dto, FaceManagement.class);
-        faceManagement.setRegisterBase64(imageVo.getBase64());
+        faceManagement.setRegisterBase64(map.get(suffix) + imageVo.getBase64());
         return RT.ok(faceManagementService.update(faceManagement));
 
     }