Ver Fonte

add: 通过机构申请

xuexiaobo há 6 anos atrás
pai
commit
0adb224c87

+ 8 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/EvaluationAgency.java

@@ -1,5 +1,7 @@
 package com.mooctest.crowd.domain.domainobject;
 
+import com.mooctest.crowd.domain.exception.BaseException;
+import com.mooctest.crowd.domain.factory.UserFactory;
 import lombok.Data;
 
 import java.sql.Timestamp;
@@ -55,4 +57,10 @@ public class EvaluationAgency {
         this.setCreateTime(new Timestamp(System.currentTimeMillis()));
         return this;
     }
+
+    public void passAuthentication(){
+        if (this.getIsAuthentication()==AuthenticationStatus.isAuthenticated)
+            throw new BaseException("该用户已通过认证,请勿重复操作!");
+        this.setIsAuthentication(AuthenticationStatus.isAuthenticated);
+    }
 }

+ 1 - 0
core/src/main/java/com/mooctest/crowd/domain/factory/UserFactory.java

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.domain.factory;
 
 import com.mooctest.crowd.domain.domainobject.EvaluationAgency;
+import com.mooctest.crowd.domain.domainobject.Role;
 import com.mooctest.crowd.domain.domainobject.User;
 
 /**

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/repository/UserRepo.java

@@ -222,7 +222,7 @@ public class UserRepo implements IUserRepo {
         List<UserToRolePO> userToRolePOList = userToRoleDao.findByUserId(userPO.getId());
         if(roleList != null){
             for(Role role : roleList){
-                if (!userToRolePOList.stream().filter(userToRolePO -> userToRolePO.getRoleId() == role.getId()).findFirst().isPresent()) {
+                if (userToRolePOList.stream().noneMatch(userToRolePO -> userToRolePO.getRoleId().equals(role.getId()))) {
                     UserToRolePO userToRolePO = new UserToRolePO();
                     userToRolePO.setRoleId(role.getId());
                     userToRolePO.setUserId(userPO.getId());

+ 10 - 1
site/src/main/java/com/mooctest/crowd/site/controller/AgencyController.java

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.site.controller;
 
 import com.mooctest.crowd.domain.exception.BaseException;
+import com.mooctest.crowd.site.annotation.LoginRequired;
 import com.mooctest.crowd.site.command.AgencyUpdateCommand;
 import com.mooctest.crowd.site.command.ApplyAgencyAuthCommand;
 import com.mooctest.crowd.site.command.GenerateAgencyCommand;
@@ -12,6 +13,7 @@ import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpSession;
 import java.util.List;
 
 /**
@@ -57,13 +59,20 @@ public class AgencyController {
      * @param status
      * @return
      */
-    @RequestMapping(value = "/user/{userId}/agency/status/{status}", method = RequestMethod.PUT)
+    @RequestMapping(value = "/user/{userId}/agency/status/", method = RequestMethod.PUT)
     public UserDTO checkAuth(@PathVariable("userId") Long userId, @PathVariable("status") Integer status){
         if (status > 1 || status < -1)
             throw new BaseException("错误的状态信息,无法更新认证状态为所选状态");
         return agencyService.updateAgencyStatus(userId, status);
     }
 
+    @LoginRequired
+    @RequestMapping(value = "/user/{userId}/agency/status/accept", method = RequestMethod.PUT)
+    public UserDTO passAuth(@PathVariable("userId") Long userId, HttpSession session){
+        Long operatorId = Long.parseLong((String)session.getAttribute("userId"));
+        return agencyService.passAuth(userId, operatorId);
+    }
+
     /**
      * 测评机构修改能力和资源信息
      * @param userId

+ 5 - 0
site/src/main/java/com/mooctest/crowd/site/service/AgencyService.java

@@ -23,4 +23,9 @@ public interface AgencyService {
     UserDTO updateAgencyInfo(Long userId, AgencyUpdateCommand command);
 
     List<EvolutionAgencyVO> getAgencyList();
+
+    UserDTO passAuth(Long userId, Long operatorId);
+
+    void rejectAuth(Long userId, Long operatorId);
+
 }

+ 16 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/AgencyServiceImpl.java

@@ -2,6 +2,7 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.BaseException;
+import com.mooctest.crowd.domain.exception.UnauthorizedException;
 import com.mooctest.crowd.domain.exception.UserNotExistException;
 import com.mooctest.crowd.domain.repository.EvaluationAgencyRepo;
 import com.mooctest.crowd.domain.repository.UserRepo;
@@ -107,4 +108,19 @@ public class AgencyServiceImpl implements AgencyService {
     public List<EvolutionAgencyVO> getAgencyList() {
         return mediator.renderAgencyList();
     }
+
+    @Override
+    public UserDTO passAuth(Long userId, Long operatorId) {
+        User operator = userRepo.getByID(operatorId);
+        if (operator.getRoleList().stream().noneMatch(role -> role.getName().equals("SystemAdministrator")))
+            throw new UnauthorizedException("无权限进行此操作");
+        User user = userRepo.getByID(userId);
+        if (user.getEvaluationAgency() == null)
+            throw new BaseException("该用户未申请机构认证!");
+        user.getEvaluationAgency().passAuthentication();
+        user.getRoleList().add(userRepo.getRole("evaluationAgency"));
+        return mediator.renderUser(userRepo.saveUser(user));
+    }
+
+
 }

+ 1 - 1
site/src/main/resources/application.yml

@@ -72,7 +72,7 @@ spring:
     username: root
     password: crowd
   redis:
-    database: 7
+    database: 6
 user:
   service:
     baseUrl: http://118.25.48.10:8081