TRX 1 rok temu
rodzic
commit
31e733990b

+ 20 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/user/ForgotPassWordController.java

@@ -3,17 +3,21 @@ package com.zhongshu.card.server.core.controller.user;
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.base.ProjectOidParam;
 import com.zhongshu.card.client.model.forgotPassword.ForgotPasswordParam;
 import com.zhongshu.card.client.model.forgotPassword.ValidateUserModel;
 import com.zhongshu.card.client.model.forgotPassword.ValidateUserParam;
 import com.zhongshu.card.server.core.service.user.ForgotPassWordService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
 
 /**
  *
@@ -42,6 +46,18 @@ public class ForgotPassWordController {
         return forgotPassWordService.verifyUserExitByFace(param);
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @RequestMapping(value = "verifyUserExitByImage", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, method = RequestMethod.POST)
+    @Operation(summary = "用人脸图片判断用户是否存在", description = "用人脸图片判断用户是否存在")
+    public ResultContent verifyUserExitByImage(
+            HttpServletRequest request, HttpServletResponse response,
+            @RequestPart("file") MultipartFile file, ProjectOidParam param) throws IOException {
+        if (file == null || file.isEmpty()) {
+            return ResultContent.buildFail("文件不能为空");
+        }
+        return forgotPassWordService.verifyUserExitByImage(file);
+    }
+
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "重置密码", description = "验证用户")
     @RequestMapping(value = {"resetPassword"}, method = {RequestMethod.POST})

+ 22 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/user/ForgotPassWordService.java

@@ -22,6 +22,7 @@ import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  *
@@ -88,10 +89,31 @@ public class ForgotPassWordService extends SuperService {
             return ResultContent.buildFail("faceUrl is empty");
         }
         String faceBase64 = commonService.getUrlFileBase64(param.getFaceUrl());
+        return ResultContent.buildSuccess(model);
+    }
 
+    public ResultContent<ValidateUserModel> verifyUserExitByImage(MultipartFile file) {
+        ValidateUserModel model = new ValidateUserModel();
+        com.github.microservice.auth.client.content.ResultContent<Object> resultContent = userFaceService.matches(file);
+        if (resultContent.isFailed()) {
+            return ResultContent.buildFail(resultContent.getMsg());
+        }
+
+        String userId = "";
+        UserAccount userAccount = userCountDao.findTopByUserId(userId);
+        if (ObjectUtils.isEmpty(userAccount)) {
+            return ResultContent.buildFail("用户不存在");
+        }
+        String uuid = CommonUtil.UUID();
+        String name = userAccount.getName();
+        name = CommonUtil.turnNameDesen(name);
+        model.setId(uuid);
+        model.setUserName(name);
+        redisService.setValueSecond(uuid, userId, keyTime);
         return ResultContent.buildSuccess(model);
     }
 
+
     public ResultContent resetPassword(ForgotPasswordParam param) {
         String id = param.getId();
         String password = param.getPassword();