Explorar o código

添加mycorwd接口

Diors.Po %!s(int64=6) %!d(string=hai) anos
pai
achega
f941d159c8

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

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

import com.mooctest.crowd.site.data.dto.IndexDTO;
import com.mooctest.crowd.site.service.CommonService;
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;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:51
 */
@RestController
@RequestMapping("/api")
public class CommonController {

    @Autowired
    private CommonService commonService;

    @RequestMapping(value = "/index", method = RequestMethod.GET)
    public IndexDTO index(){
        return commonService.getIndexInfo();
    }

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "Hello, Spring Boot!";
    }
}
+package com.mooctest.crowd.site.controller;

import com.mooctest.crowd.site.data.dto.IndexDTO;
import com.mooctest.crowd.site.data.dto.MyCrowdDTO;
import com.mooctest.crowd.site.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:51
 */
@RestController
@RequestMapping("/api")
public class CommonController {

    @Autowired
    private CommonService commonService;

    @RequestMapping(value = "/index", method = RequestMethod.GET)
    public IndexDTO index(){
        return commonService.getIndexInfo();
    }

    @RequestMapping(value = "/mycrowd/{userId}", method = RequestMethod.GET)
    public MyCrowdDTO mycrowd(@PathVariable("userId") Long userId){
       return commonService.getPersonCrowd(userId);
    }

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

+ 7 - 6
site/src/main/java/com/mooctest/crowd/site/controller/UserController.java

@@ -22,39 +22,40 @@ import java.util.List;
  * @date 2019-07-24 23:50
  */
 @RestController
+@RequestMapping("/api")
 public class UserController {
 
     @Autowired
     private UserService userService;
 
-    @RequestMapping(value = "/api/user", method = RequestMethod.POST)
+    @RequestMapping(value = "/user", method = RequestMethod.POST)
     public UserDTO register(@Validated RegisterCommand registerCommand, BindingResult result) {
         if (result.hasErrors())
             throw new BadRequestException(result.getFieldError().getDefaultMessage());
         return userService.register(registerCommand);
     }
 
-    @RequestMapping(value = "/api/user", method = RequestMethod.PUT)
+    @RequestMapping(value = "/user", method = RequestMethod.PUT)
     public UserDTO updateUser(@Validated UserUpdateCommand command, BindingResult result){
         return null;
     }
 
-    @RequestMapping(value = "/api/user/{userId}", method = RequestMethod.DELETE)
+    @RequestMapping(value = "/user/{userId}", method = RequestMethod.DELETE)
     public boolean deleteUser(@PathVariable("userId") Long userId){
         return true;
     }
 
-    @RequestMapping(value = "/api/user/{userId}", method = RequestMethod.GET)
+    @RequestMapping(value = "/user/{userId}", method = RequestMethod.GET)
     public UserDTO getUser(@PathVariable Long userId){
         return null;
     }
 
-    @RequestMapping(value = "/api/user", method = RequestMethod.GET)
+    @RequestMapping(value = "/user", method = RequestMethod.GET)
     public List<UserDTO> getUsers(){
         return null;
     }
 
-    @RequestMapping(value = "/api/login", method = RequestMethod.GET)
+    @RequestMapping(value = "/login", method = RequestMethod.GET)
     public UserDTO loginByMobileAndPwd(@Validated LoginCommand loginCommand, BindingResult result) throws PasswordErrorException, AccountNotExistException, BadRequestException {
         if (result.hasErrors())
             throw new BadRequestException(result.getFieldError().getDefaultMessage());

+ 1 - 2
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -6,7 +6,6 @@ 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 sun.util.resources.ga.LocaleNames_ga;
 
 /**
  * @Author: xuexb
@@ -20,7 +19,7 @@ public interface ViewMediator {
 
     IndexDTO renderIndex();
 
-    MyCrowdDTO renderMyCrowd(AccountCommand accountCommand);
+    MyCrowdDTO renderMyCrowd(Long userId);
 
     TaskSquareDTO renderTaskSquare(CrowdTestTaskCommand crowdTestTaskCommand);
 

+ 29 - 2
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -2,7 +2,9 @@ package com.mooctest.crowd.site.mediator.impl;
 
 import com.mooctest.crowd.domain.dao.EvaluationAgencyDao;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
 import com.mooctest.crowd.domain.domainobject.CrowdTestTaskStatus;
+import com.mooctest.crowd.domain.domainobject.User;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.domain.repository.UserRepo;
@@ -110,8 +112,33 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public MyCrowdDTO renderMyCrowd(AccountCommand accountCommand) {
-        return new MyCrowdDTO();
+    public MyCrowdDTO renderMyCrowd(Long userId) {
+        User user = userRepo.getByID(userId);
+        List<CrowdProjectVO> proejcts = projectRepo.getCrowdListByUserId(userId).stream()
+                .map(project -> new CrowdProjectVO(project)).collect(Collectors.toList());
+        UserVO userVO = new UserVO(userRepo.getByID(userId));
+        MyCrowdDTO myCrowdDTO = new MyCrowdDTO();
+        myCrowdDTO.setCrowdProjectVOList(proejcts);
+        myCrowdDTO.setUserVO(userVO);
+
+        if (user.getEvaluationAgency() == null)
+            return myCrowdDTO;
+
+        List<CrowdTaskVO> unfinishedTasks = new ArrayList<>();
+        List<CrowdTaskVO> finishedTasks = new ArrayList<>();
+        projectRepo.getAllCrowdTestProject().forEach(project -> {
+            project.getCrowdTestTaskList().forEach(crowdTestTask -> {
+                if (crowdTestTask.getEvaluationAgencyId() == user.getEvaluationAgency().getId())
+                    if (crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
+                        finishedTasks.add(new CrowdTaskVO(crowdTestTask));
+                    else if (CrowdTestTaskStatus.HAS_RECEIVED<=crowdTestTask.getStatus() && crowdTestTask.getStatus() <CrowdTestTaskStatus.HAS_FINISHED)
+                        unfinishedTasks.add(new CrowdTaskVO(crowdTestTask));
+            });
+        });
+
+        myCrowdDTO.setFinishedTasks(finishedTasks);
+        myCrowdDTO.setUnfinishedTasks(unfinishedTasks);
+        return myCrowdDTO;
     }
 
     @Override

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

@@ -1,9 +1,12 @@
 package com.mooctest.crowd.site.service;
 
 import com.mooctest.crowd.site.data.dto.IndexDTO;
+import com.mooctest.crowd.site.data.dto.MyCrowdDTO;
 import org.springframework.stereotype.Service;
 
 @Service
 public interface CommonService {
     IndexDTO getIndexInfo();
+
+    MyCrowdDTO getPersonCrowd(Long userId);
 }

+ 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 org.springframework.stereotype.Service;

/**
 * @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;
}
+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();
}

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

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.site.data.dto.IndexDTO;
+import com.mooctest.crowd.site.data.dto.MyCrowdDTO;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CommonService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,4 +21,9 @@ public class CommonServiceImpl implements CommonService {
     public IndexDTO getIndexInfo() {
         return viewMediator.renderIndex();
     }
+
+    @Override
+    public MyCrowdDTO getPersonCrowd(Long userId) {
+        return viewMediator.renderMyCrowd(userId);
+    }
 }

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

@@ -88,7 +88,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     public TaskSquareDTO getAllTasks() {
         List<CrowdTaskVO> taskVOList = new ArrayList<>();
         projectRepo.getAllCrowdTestProject().stream().forEach(project -> {
-            taskVOList.addAll(project.getCrowdTestTaskList().stream().map(crowdTestTask -> new CrowdTaskVO(crowdTestTask)).collect(Collectors.toList()));
+            taskVOList.addAll(project.getCrowdTestTaskList().stream().filter(crowdTestTask -> crowdTestTask.getStatus()==CrowdTestTaskStatus.HAS_RELEASED).map(crowdTestTask -> new CrowdTaskVO(crowdTestTask)).collect(Collectors.toList()));
         });
         TaskSquareDTO taskSquareDTO = new TaskSquareDTO();
         taskSquareDTO.setCrowdTaskVOList(taskVOList);

+ 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.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.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;

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

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

    @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);
    }
}
+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;
    }
}

+ 0 - 11
site/src/test/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImplTest.java

@@ -57,17 +57,6 @@ public class WebMediatorImplTest {
         assertNotNull(indexDTO);
     }
 
-    @Test
-    public void should_return_mycrowd_dto_when_render_mycrowd_success(){
-        //arrange
-        AccountCommand accountCommand = new AccountCommand();
-        //action
-        MyCrowdDTO myCrowdDTO = viewMediator.renderMyCrowd(accountCommand);
-        //assert
-        assertNotNull(myCrowdDTO);
-    }
-
-
 
     @Test
     public void should_return_task_square_dto_when_render_task_square_success(){