Преглед изворни кода

Merge branch 'feature-domain-implement' of ssh://git.mooctest.com:1022/crowd-2019/crowd-test-service-backend into feature-domain-implement

guochao пре 6 година
родитељ
комит
38c47eed94

+ 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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:51
 */
@RestController
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.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!";
    }
}

+ 3 - 2
site/src/main/java/com/mooctest/crowd/site/controller/CrowdTaskController.java

@@ -3,6 +3,7 @@ package com.mooctest.crowd.site.controller;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
 import com.mooctest.crowd.site.data.dto.TaskDetailsDTO;
+import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
 import com.mooctest.crowd.site.service.CrowdTaskService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,8 +46,8 @@ public class CrowdTaskController {
     }
 
     @RequestMapping(value = "/task", method = RequestMethod.GET)
-    public List<TaskDetailsDTO> getTasks(){
-        return null;
+    public TaskSquareDTO getTasks(){
+        return taskService.getAllTasks();
     }
 
     @RequestMapping(value = "/project/{projectCode}/task/{taskCode}", method = RequestMethod.PUT)

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdProjectVO.java

@@ -45,7 +45,7 @@ public class CrowdProjectVO {
         this.contactName = project.getLinkMan();
         this.contactPhone = project.getLinkManMobile();
         this.type = (List<Integer>)JSONArray.parse(project.getType());
-        this.platform = (List<Integer>)JSONArray.parse(project.getType());
+        this.platform = (List<Integer>)JSONArray.parse(project.getPlatform());
         this.desc = project.getDescription();
         this.doc = project.getRequirementFile();
         this.file = project.getProjectFile();

+ 5 - 3
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdTaskVO.java

@@ -25,7 +25,8 @@ public class CrowdTaskVO {
     private String projectId;
     private String title;
     private String description;
-    private Double price;
+    private Double quotePrice;
+    private Double fixedPrice;
     private int resource;
     private Map<String, String> location;
     private Long institution;
@@ -38,14 +39,15 @@ public class CrowdTaskVO {
         projectId = task.getCrowdTestProjectCode();
         title = task.getName();
         description = task.getDescription();
-        price = task.getQuotedPrice();
+        quotePrice = task.getQuotedPrice();
+        fixedPrice = task.getFixedPrice();
         resource = task.getDistributionType();
         location = new HashMap<>();
         location.put("provinceCode", task.getDistributionProvince());
         location.put("cityCode", task.getDistributionCity());
         institution = task.getEvaluationAgencyId();
         serviceType = task.getType();
-        status = task.getStatus()== CrowdTestTaskStatus.HAS_FINISHED?1:0;
+        status = task.getStatus();
         datetime = task.getDeadTime();
     }
 

+ 6 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/EvolutionAgencyVO.java

@@ -1,11 +1,17 @@
 package com.mooctest.crowd.site.data.vo;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * @Author: xuexb
  * @Date: 2019.7.17 10:12
  */
 @Data
+@NoArgsConstructor
+@AllArgsConstructor
 public class EvolutionAgencyVO {
+    private String logo;
+    private String name;
 }

+ 72 - 4
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -1,17 +1,20 @@
 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.CrowdTestTaskStatus;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
+import com.mooctest.crowd.domain.repository.UserRepo;
 import com.mooctest.crowd.site.command.*;
 import com.mooctest.crowd.site.data.dto.*;
-import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
-import com.mooctest.crowd.site.data.vo.CrowdReportVO;
-import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -25,6 +28,12 @@ public class WebMediatorImpl implements ViewMediator {
     @Autowired
     private CrowdTestProjectRepo projectRepo;
 
+    @Autowired
+    private UserRepo userRepo;
+
+    @Autowired
+    private EvaluationAgencyDao agencyDao;
+
 
     @Override
     public UserDTO loginByMobileAndPwd(LoginCommand cmd) {
@@ -38,7 +47,66 @@ public class WebMediatorImpl implements ViewMediator {
 
     @Override
     public IndexDTO renderIndex() {
-        return new IndexDTO();
+        ArrayList<CrowdTaskVO> allTasks = new ArrayList<>();
+        projectRepo.getAllCrowdTestProject().forEach(project -> {
+            allTasks.addAll(project.getCrowdTestTaskList()
+                    .stream().filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_RELEASED)
+                    .map(crowdTestTask -> new CrowdTaskVO(crowdTestTask)).collect(Collectors.toList()));
+        });
+        List<UserVO> userRank = userRepo.getAllUser().stream().map(user -> new UserVO(user)).collect(Collectors.toList());
+        allTasks.sort(Comparator.comparing(CrowdTaskVO::getQuotePrice));
+        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(userRank);
+        indexDTO.setAgencyRank(agencyVOS);
+        List<String> img = new ArrayList<>();
+        img.add("http://www.mooctest.net/assets/img/mooctest.png");
+        img.add("https://docs.alibabagroup.com/assets2/images/cn/global/logo_header.png");
+        indexDTO.setImgList(img);
+        return indexDTO;
     }
 
     @Override

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

@@ -2,6 +2,7 @@ package com.mooctest.crowd.site.service;
 
 import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
 import com.mooctest.crowd.site.data.dto.TaskDetailsDTO;
+import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
 
 /**
  * @author: Diors.Po
@@ -14,4 +15,6 @@ public interface CrowdTaskService {
     TaskDetailsDTO createTask(String projectCode, CrowdTestTaskCommand command);
 
     TaskDetailsDTO updateTask(String projectCode, String taskCode, CrowdTestTaskCommand command);
+
+    TaskSquareDTO getAllTasks();
 }

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

@@ -14,6 +14,8 @@ public class CommonServiceImpl implements CommonService {
     @Qualifier("WebMediator")
     private ViewMediator viewMediator;
 
+
+
     @Override
     public IndexDTO getIndexInfo() {
         return viewMediator.renderIndex();

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

@@ -8,6 +8,7 @@ import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
 import com.mooctest.crowd.site.data.dto.TaskDetailsDTO;
+import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
 import com.mooctest.crowd.site.data.enums.ProjectType;
 import com.mooctest.crowd.site.data.vo.CrowdReportVO;
 import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
@@ -16,6 +17,7 @@ import com.mooctest.crowd.site.util.GenerateFlowCodeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -81,4 +83,15 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         projectRepo.saveCrowdTestProject(project);
         return getTaskDetails(projectCode, taskCode);
     }
+
+    @Override
+    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()));
+        });
+        TaskSquareDTO taskSquareDTO = new TaskSquareDTO();
+        taskSquareDTO.setCrowdTaskVOList(taskVOList);
+        return taskSquareDTO;
+    }
 }