فهرست منبع

feat:新增用户提交实名认证审核的接口

yangyi 4 ماه پیش
والد
کامیت
7fcf016dc1

+ 1 - 1
src/main/java/com/campus/trade/common/FileUploadUtil.java

@@ -40,7 +40,7 @@ public class FileUploadUtil {
         } catch (IOException e) {
             throw new BusinessException(StatusCode.SERVER_ERROR, "文件上传失败");
         }
-        return "/upload/" + filename;
+        return "http://localhost:8090/upload/" + filename;
     }
 
     public List<String> uploadBatch(List<MultipartFile> files) {

+ 8 - 0
src/main/java/com/campus/trade/controller/AuthController.java

@@ -45,6 +45,14 @@ public class AuthController {
         return Result.success();
     }
 
+    @Operation(summary = "提交实名认证", description = "上传校园卡照片进行实名审核;被拒后可重新提交")
+    @PostMapping(value = "/submit-auth", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public Result<Void> submitAuth(@RequestParam("campusCardImage") org.springframework.web.multipart.MultipartFile campusCardImage,
+                                   HttpSession session) {
+        authService.submitAuth(campusCardImage, session);
+        return Result.success();
+    }
+
     @Operation(summary = "修改密码", description = "需提供旧密码验证")
     @PostMapping("/change-password")
     public Result<Void> changePassword(@Valid @RequestBody ChangePasswordRequest req, HttpSession session) {

+ 1 - 0
src/main/java/com/campus/trade/mapper/UserMapper.java

@@ -9,6 +9,7 @@ public interface UserMapper {
     User selectById(Long id);
     int insert(User user);
     int updateAuthStatus(User user);
+    int updateCampusCardAndAuthStatus(User user);
     int updatePassword(User user);
     int updateProfile(User user);
     int updateStatus(User user);

+ 17 - 0
src/main/java/com/campus/trade/service/AuthService.java

@@ -83,6 +83,23 @@ public class AuthService {
         return vo;
     }
 
+    // 提交实名认证(重新提交校园卡照片)
+    public void submitAuth(org.springframework.web.multipart.MultipartFile campusCardImage, HttpSession session) {
+        Long userId = (Long) session.getAttribute("userId");
+        User user = userMapper.selectById(userId);
+        if (user == null) throw new BusinessException(StatusCode.NOT_FOUND, "用户不存在");
+        // 已认证用户不可再次提交
+        if ("AUTHENTICATED".equals(user.getAuthStatus())) {
+            throw new BusinessException(StatusCode.BAD_REQUEST, "已通过实名认证,无需重复提交");
+        }
+        // 上传新校园卡照片
+        String campusCardUrl = fileUploadUtil.upload(campusCardImage);
+        // 更新校园卡照片并重新置为待审核
+        user.setCampusCardUrl(campusCardUrl);
+        user.setAuthStatus("PENDING");
+        userMapper.updateCampusCardAndAuthStatus(user);
+    }
+
     // 修改密码
     public void changePassword(ChangePasswordRequest req, HttpSession session) {
         Long userId = (Long) session.getAttribute("userId");

+ 4 - 0
src/main/resources/mapper/UserMapper.xml

@@ -23,6 +23,10 @@
     <update id="updateAuthStatus">
         UPDATE user SET auth_status = #{authStatus} WHERE id = #{id}
     </update>
+    <update id="updateCampusCardAndAuthStatus">
+        UPDATE user SET campus_card_url = #{campusCardUrl}, auth_status = #{authStatus}
+        WHERE id = #{id}
+    </update>
     <update id="updatePassword">
         UPDATE user SET password_hash = #{passwordHash} WHERE id = #{id}
     </update>