Browse Source

user信息返回时添加RoleList

xuexiaobo 6 years ago
parent
commit
e922781779

+ 6 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java

@@ -6,6 +6,7 @@ import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
 import com.mooctest.crowd.site.command.GenerateProjectCommand;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
+import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
 import com.mooctest.crowd.site.service.CrowdProjectService;
 import com.mooctest.crowd.site.util.FileUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -123,4 +124,9 @@ public class CrowdProjectController {
     @RequestMapping(value = "/api/project/{projectCode}/status/accept")
     public void acceptProject(@PathVariable("projectCode") String projectCode, HttpServletRequest request){
     }
+
+    @RequestMapping(value = "/api/regionalManager", method = RequestMethod.GET)
+    public List<RegionalManagerVO> getRegionalManagerList(){
+        return projectService.getRegionalManagerList();
+    }
 }

+ 2 - 1
site/src/main/java/com/mooctest/crowd/site/controller/UserController.java

@@ -5,6 +5,7 @@ import com.mooctest.crowd.site.data.dto.UserDTO;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
 import com.mooctest.crowd.domain.exception.BadRequestException;
 import com.mooctest.crowd.domain.exception.PasswordErrorException;
+import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
@@ -47,7 +48,7 @@ public class UserController {
 
     @RequestMapping(value = "/user/{userId}", method = RequestMethod.GET)
     public UserDTO getUser(@PathVariable Long userId){
-        return null;
+        return userService.getUser(userId);
     }
 
     @RequestMapping(value = "/user", method = RequestMethod.GET)

+ 1 - 0
site/src/main/java/com/mooctest/crowd/site/data/dto/UserDTO.java

@@ -22,6 +22,7 @@ public class UserDTO {
     private AgencyVO agencyVO;
     private List<Permission> permissions;
     private List<CrowdProjectVO> crowdProjectVOS;
+    private List<String> roleList;
 
     public UserDTO(UserVO userVO) {
         this.userVO = userVO;

+ 18 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/RegionalManagerVO.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.site.data.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-08-20 14:05
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class RegionalManagerVO {
+    private Long id;        //此ID为RegionalManager对应的UserID
+    private String name;
+}

+ 5 - 0
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -7,6 +7,9 @@ import com.mooctest.crowd.site.data.dto.*;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
 import com.mooctest.crowd.domain.exception.BadRequestException;
 import com.mooctest.crowd.domain.exception.PasswordErrorException;
+import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
+
+import java.util.List;
 
 /**
  * @Author: xuexb
@@ -32,4 +35,6 @@ public interface ViewMediator {
 
     UserDTO renderUser(User user);
 
+    List<RegionalManagerVO> renderRegionManager();
+
 }

+ 19 - 81
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -1,12 +1,10 @@
 package com.mooctest.crowd.site.mediator.impl;
 
-import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
-import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
-import com.mooctest.crowd.domain.dao.EvaluationAgencyDao;
-import com.mooctest.crowd.domain.dao.UserDao;
+import com.mooctest.crowd.domain.dao.*;
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
 import com.mooctest.crowd.domain.model.EvaluationAgencyPO;
+import com.mooctest.crowd.domain.model.RegionalManagerPO;
 import com.mooctest.crowd.domain.model.UserPO;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.domain.repository.EvaluationAgencyRepo;
@@ -49,6 +47,9 @@ public class WebMediatorImpl implements ViewMediator {
     private UserDao userDao;
 
     @Autowired
+    private RegionalManagerDao regionalManagerDao;
+
+    @Autowired
     private EvaluationAgencyDao agencyDao;
 
     @Autowired
@@ -100,83 +101,6 @@ public class WebMediatorImpl implements ViewMediator {
             return new CrowdTaskVO(task);
         }).collect(Collectors.toList());
 
-//        ArrayList<CrowdTaskVO> allTasks = new ArrayList<>();
-//        List<CrowdTestProject> allProjects = projectRepo.getAllCrowdTestProject();
-//        allProjects.forEach(project -> {
-//            allTasks.addAll(project.getCrowdTestTaskList()
-//                    .stream().filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_RELEASED)
-//                    .map(crowdTestTask -> new CrowdTaskVO(crowdTestTask)).collect(Collectors.toList()));
-//        });
-
-//        //对Project按照UserId进行分组
-//        Map<Long, List<CrowdTestProject>> projectsGroup = new HashMap<>();
-//        allProjects.forEach(project -> {
-//            if (!projectsGroup.keySet().contains(project.getUserId()))
-//                projectsGroup.put(project.getUserId(), new ArrayList<>());
-//            projectsGroup.get(project.getUserId()).add(project);
-//        });
-//        //根据组的项目总价进行排序,提取UserId
-//        List<Long> userIds = projectsGroup.entrySet().stream().sorted((o1, o2) -> {
-//            Double sumPrice1 = o1.getValue().stream().mapToDouble(CrowdTestProject::getQuotedPrice).sum();
-//            Double sumPrice2 = o2.getValue().stream().mapToDouble(CrowdTestProject::getQuotedPrice).sum();
-//            if (sumPrice1 > sumPrice2)
-//                return -1;
-//            else if (sumPrice1 < sumPrice2)
-//                return 1;
-//            else
-//                return 0;
-//        }).map(Map.Entry::getKey).collect(Collectors.toList());
-//        for (Long id : userIds)
-//            log.info("UserId from Project: " + id);
-//        if (userIds.size()>10)
-//            userIds = userIds.subList(0,9);
-//        List<UserVO> userRanks = userIds.stream().map(id -> new UserVO(userRepo.getByID(id))).collect(Collectors.toList());
-//        userRanks.forEach(userVO -> userVO.setAllProjectPrice(projectsGroup.get(userVO.getId()).stream().mapToDouble(CrowdTestProject::getQuotedPrice).sum()));
-//
-//        allTasks.sort(Comparator.comparing(CrowdTaskVO::getQuotePrice).reversed());
-//        List<CrowdTaskVO> hotTasks = allTasks.subList(0,3);
-//        List<EvolutionAgencyVO> agencyVOS = new ArrayList<>();
-//        EvolutionAgencyVO agency1 = new EvolutionAgencyVO();
-//        agency1.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency1.setName("agency1");
-//        EvolutionAgencyVO agency2 = new EvolutionAgencyVO();
-//        agency2.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency2.setName("agency2");
-//        EvolutionAgencyVO agency3 = new EvolutionAgencyVO();
-//        agency3.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency3.setName("agency3");
-//        EvolutionAgencyVO agency4 = new EvolutionAgencyVO();
-//        agency4.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency4.setName("agency4");
-//        EvolutionAgencyVO agency5 = new EvolutionAgencyVO();
-//        agency5.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency5.setName("agency5");
-//        EvolutionAgencyVO agency6 = new EvolutionAgencyVO();
-//        agency6.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency6.setName("agency6");
-//        EvolutionAgencyVO agency7 = new EvolutionAgencyVO();
-//        agency7.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency7.setName("agency7");
-//        EvolutionAgencyVO agency8 = new EvolutionAgencyVO();
-//        agency8.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency8.setName("agency8");
-//        EvolutionAgencyVO agency9 = new EvolutionAgencyVO();
-//        agency9.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency9.setName("agency9");
-//        EvolutionAgencyVO agency10 = new EvolutionAgencyVO();
-//        agency10.setLogo("http://www.mooctest.net/assets/img/mooctest.png");
-//        agency10.setName("agency10");
-//        agencyVOS.add(agency1);
-//        agencyVOS.add(agency2);
-//        agencyVOS.add(agency3);
-//        agencyVOS.add(agency4);
-//        agencyVOS.add(agency5);
-//        agencyVOS.add(agency6);
-//        agencyVOS.add(agency7);
-//        agencyVOS.add(agency8);
-//        agencyVOS.add(agency9);
-//        agencyVOS.add(agency10);
-
         IndexDTO indexDTO = new IndexDTO();
         indexDTO.setHotTaskList(hotTasks);
         indexDTO.setUserRank(userRanks);
@@ -261,9 +185,23 @@ public class WebMediatorImpl implements ViewMediator {
     @Override
     public UserDTO renderUser(User user) {
         UserDTO userDTO = new UserDTO();
+        userDTO.setRoleList(user.getRoleList().stream().map(Role::getName).collect(Collectors.toList()));
         userDTO.setUserVO(new UserVO(user));
         if (user.getEvaluationAgency() != null)
             userDTO.setAgencyVO(new AgencyVO(user.getEvaluationAgency()));
         return userDTO;
     }
+
+    @Override
+    public List<RegionalManagerVO> renderRegionManager() {
+        List<RegionalManagerVO> regionalManagerVOList = new ArrayList<>();
+        regionalManagerDao.findAll().forEach(regionalManagerPO -> {
+            RegionalManagerVO regionalManagerVO = new RegionalManagerVO();
+            regionalManagerVO.setId(regionalManagerPO.getUserId());
+            regionalManagerVO.setName(userDao.findById(regionalManagerPO.getUserId()).get().getName());
+            regionalManagerVOList.add(regionalManagerVO);
+        });
+        List<RegionalManagerVO> results = regionalManagerVOList.stream().distinct().collect(Collectors.toList());
+        return results;
+    }
 }

+ 3 - 0
site/src/main/java/com/mooctest/crowd/site/service/CrowdProjectService.java

@@ -4,6 +4,7 @@ import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
 import com.mooctest.crowd.site.command.GenerateProjectCommand;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
+import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -27,4 +28,6 @@ public interface CrowdProjectService {
     List<ProjectDetailsDTO> importMultiProjectsByExcel(List<CrowdTestProject> projects);
 
     List<CrowdTestProject> generateProjectByExcel(Long userId, MultipartFile file);
+
+    List<RegionalManagerVO> getRegionalManagerList();
 }

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/service/UserService.java

@@ -1 +1 @@
-package com.mooctest.crowd.site.service;

import com.mooctest.crowd.site.command.LoginCommand;
import com.mooctest.crowd.site.command.RegisterCommand;
import com.mooctest.crowd.site.data.dto.UserDTO;
import com.mooctest.crowd.domain.exception.AccountNotExistException;
import com.mooctest.crowd.domain.exception.BadRequestException;
import com.mooctest.crowd.domain.exception.PasswordErrorException;
import com.mooctest.crowd.site.data.vo.EvolutionAgencyVO;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:52
 */
public interface UserService {
    UserDTO register(RegisterCommand registerCommand) throws AccountNotExistException;

    UserDTO loginByMobileAndPwd(LoginCommand loginCommand) throws PasswordErrorException, AccountNotExistException, BadRequestException;

    List<EvolutionAgencyVO> getAgencies();
}
+package com.mooctest.crowd.site.service;

import com.mooctest.crowd.site.command.LoginCommand;
import com.mooctest.crowd.site.command.RegisterCommand;
import com.mooctest.crowd.site.data.dto.UserDTO;
import com.mooctest.crowd.domain.exception.AccountNotExistException;
import com.mooctest.crowd.domain.exception.BadRequestException;
import com.mooctest.crowd.domain.exception.PasswordErrorException;
import com.mooctest.crowd.site.data.vo.EvolutionAgencyVO;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:52
 */
public interface UserService {
    UserDTO register(RegisterCommand registerCommand) throws AccountNotExistException;

    UserDTO loginByMobileAndPwd(LoginCommand loginCommand) throws PasswordErrorException, AccountNotExistException, BadRequestException;

    List<EvolutionAgencyVO> getAgencies();

    UserDTO getUser(Long userId);
}

+ 6 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -14,6 +14,7 @@ import com.mooctest.crowd.site.command.GenerateProjectCommand;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
 import com.mooctest.crowd.site.data.enums.ProjectType;
 import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
+import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
 import com.mooctest.crowd.site.mediator.OperationMediator;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CrowdProjectService;
@@ -167,6 +168,11 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         return projects;
     }
 
+    @Override
+    public List<RegionalManagerVO> getRegionalManagerList() {
+        return viewMediator.renderRegionManager();
+    }
+
     private List<CrowdTestProject> transferExcel2Projects(MultipartFile file){
         List<String> logList = new ArrayList<>();
         List<CrowdTestProject> projects = new ArrayList<>();

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/service/impl/UserServiceImpl.java

@@ -1 +1 @@
-package com.mooctest.crowd.site.service.impl;

import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
import com.mooctest.crowd.domain.repository.UserRepo;
import com.mooctest.crowd.site.command.LoginCommand;
import com.mooctest.crowd.site.command.RegisterCommand;
import com.mooctest.crowd.site.data.dto.UserDTO;

import com.mooctest.crowd.domain.exception.AccountNotExistException;
import com.mooctest.crowd.domain.exception.BadRequestException;
import com.mooctest.crowd.domain.exception.PasswordErrorException;
import com.mooctest.crowd.site.data.vo.EvolutionAgencyVO;
import com.mooctest.crowd.site.mediator.ViewMediator;
import com.mooctest.crowd.site.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:53
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    @Qualifier("WebMediator")
    private ViewMediator viewMediator;

    @Autowired
    private UserRepo userRepo;

    @Autowired
    private CrowdTestProjectRepo projectRepo;

    @Override
    public UserDTO register(RegisterCommand registerCommand) throws AccountNotExistException {
        return viewMediator.register(registerCommand);
    }

    @Override
    public UserDTO loginByMobileAndPwd(LoginCommand loginCommand) throws PasswordErrorException, AccountNotExistException, BadRequestException {
        return viewMediator.loginByMobileAndPwd(loginCommand);
    }

    @Override
    public List<EvolutionAgencyVO> getAgencies() {
        return null;
    }
}
+package com.mooctest.crowd.site.service.impl;

import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
import com.mooctest.crowd.domain.repository.UserRepo;
import com.mooctest.crowd.site.command.LoginCommand;
import com.mooctest.crowd.site.command.RegisterCommand;
import com.mooctest.crowd.site.data.dto.UserDTO;

import com.mooctest.crowd.domain.exception.AccountNotExistException;
import com.mooctest.crowd.domain.exception.BadRequestException;
import com.mooctest.crowd.domain.exception.PasswordErrorException;
import com.mooctest.crowd.site.data.vo.EvolutionAgencyVO;
import com.mooctest.crowd.site.mediator.ViewMediator;
import com.mooctest.crowd.site.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:53
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    @Qualifier("WebMediator")
    private ViewMediator viewMediator;

    @Autowired
    private UserRepo userRepo;

    @Autowired
    private CrowdTestProjectRepo projectRepo;


    @Override
    public UserDTO register(RegisterCommand registerCommand) throws AccountNotExistException {
        return viewMediator.register(registerCommand);
    }

    @Override
    public UserDTO loginByMobileAndPwd(LoginCommand loginCommand) throws PasswordErrorException, AccountNotExistException, BadRequestException {
        return viewMediator.loginByMobileAndPwd(loginCommand);
    }

    @Override
    public List<EvolutionAgencyVO> getAgencies() {
        return null;
    }

    @Override
    public UserDTO getUser(Long userId) {
        return viewMediator.renderUser(userRepo.getByID(userId));
    }
}

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

@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: pre
   cache:
     guava:
       spec: expireAfterWrite=30s
@@ -62,7 +62,7 @@ spring:
     database: 6
 user:
   service:
-    baseUrl: http://111.231.143.6:8081
+    baseUrl: http://118.25.48.10:8081
 
 ---
 spring:
@@ -75,7 +75,7 @@ spring:
     database: 7
 user:
   service:
-    baseUrl: http://111.231.143.6:8081
+    baseUrl: http://118.25.48.10:8081