Browse Source

用户排名根据其申请的项目总价排序取前十

xuexiaobo 6 years ago
parent
commit
49d3b5213f

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

@@ -25,6 +25,7 @@ public class UserVO {
     private String province;
     private String city;
     private String photoUrl;
+    private Double allProjectPrice;
 
     public UserVO(User user){
         BeanUtils.copyProperties(user, this);

+ 10 - 5
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -54,11 +54,14 @@ public class WebMediatorImpl implements ViewMediator {
                     .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(allTasks.size()-4,allTasks.size()-1);
+        List<UserVO> allUser = userRepo.getAllUser().stream().map(user -> new UserVO(user)).collect(Collectors.toList());
+        allUser.forEach(userVO -> {
+            userVO.setAllProjectPrice(projectRepo.getCrowdListByUserId(userVO.getId()).stream().mapToDouble(CrowdTestProject::getQuotedPrice).sum());
+        });
+        allUser.sort(Comparator.comparing(UserVO::getAllProjectPrice).reversed());
+        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");
@@ -101,7 +104,9 @@ public class WebMediatorImpl implements ViewMediator {
         agencyVOS.add(agency10);
         IndexDTO indexDTO = new IndexDTO();
         indexDTO.setHotTaskList(hotTasks);
-        indexDTO.setUserRank(userRank);
+        if (allUser.size()>10)
+            allUser = allUser.subList(0, 10);
+        indexDTO.setUserRank(allUser);
         indexDTO.setAgencyRank(agencyVOS);
         List<String> img = new ArrayList<>();
         img.add("http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Image/daylight.jpg");