Sfoglia il codice sorgente

Merge branch 'Dev' into 'Test'

Dev

See merge request crowd-2019/crowd-test-service-backend!87
郭超 5 anni fa
parent
commit
3e1a27f973
26 ha cambiato i file con 311 aggiunte e 144 eliminazioni
  1. 13 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java
  2. 14 0
      core/src/main/java/com/mooctest/crowd/domain/exception/UserTaskCountNoExistException.java
  3. 1 0
      core/src/main/java/com/mooctest/crowd/domain/repository/ApplicationTypeRepo.java
  4. 3 0
      core/src/main/java/com/mooctest/crowd/domain/repository/IUserRepo.java
  5. 16 3
      core/src/main/java/com/mooctest/crowd/domain/repository/UserRepo.java
  6. 4 0
      site/src/main/java/com/mooctest/crowd/site/command/ApplyPersonalAuthCommand.java
  7. 2 0
      site/src/main/java/com/mooctest/crowd/site/constants/CommonConstant.java
  8. 1 1
      site/src/main/java/com/mooctest/crowd/site/controller/AgencyController.java
  9. 0 0
      site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java
  10. 10 5
      site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java
  11. 4 4
      site/src/main/java/com/mooctest/crowd/site/controller/UserController.java
  12. 2 0
      site/src/main/java/com/mooctest/crowd/site/controller/advice/ExceptionAdvice.java
  13. 3 3
      site/src/main/java/com/mooctest/crowd/site/data/enums/RoleType.java
  14. 0 1
      site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdProjectVO.java
  15. 4 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/ResourceVO.java
  16. 1 2
      site/src/main/java/com/mooctest/crowd/site/data/vo/UserVO.java
  17. 5 1
      site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java
  18. 107 39
      site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java
  19. 2 2
      site/src/main/java/com/mooctest/crowd/site/service/CommonService.java
  20. 1 1
      site/src/main/java/com/mooctest/crowd/site/service/CrowdProjectService.java
  21. 1 4
      site/src/main/java/com/mooctest/crowd/site/service/ResidentAgencyService.java
  22. 14 14
      site/src/main/java/com/mooctest/crowd/site/service/impl/AgencyServiceImpl.java
  23. 21 4
      site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java
  24. 70 36
      site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java
  25. 12 24
      site/src/main/java/com/mooctest/crowd/site/service/impl/ResidentServiceImpl.java
  26. 0 0
      site/src/main/java/com/mooctest/crowd/site/service/impl/UserServiceImpl.java

+ 13 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java

@@ -1,5 +1,6 @@
 package com.mooctest.crowd.domain.domainobject;
 
+import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskException;
 import com.mooctest.crowd.domain.exception.UnauthorizedException;
 import lombok.Data;
@@ -90,6 +91,18 @@ public class CrowdTestTask {
      * @return
      */
     public void receive(User user){
+        //判断用户是否为接包用户
+    List<Role>  roles=  user.getRoleList();
+    List<String> roleNames=new ArrayList<>();
+    for(int i=0;i<roles.size();i++){
+        roleNames.add(roles.get(i).getName());
+    }
+    if(!roleNames.contains("evaluationUser")&&!roleNames.contains("evaluationAgency")&&!roleNames.contains("RegionalManager")){
+         throw  new BaseException("当前用户没有接包权限");
+    }
+
+
+
         //判断是否为测评机构
         EvaluationAgency evaluationAgency = user.getEvaluationAgency();
         if(evaluationAgency == null){

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/exception/UserTaskCountNoExistException.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.domain.exception;
+
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.5 14:36
+ */
+@NoArgsConstructor
+public class UserTaskCountNoExistException extends BaseException {
+    public UserTaskCountNoExistException(String msg){
+        super(msg);
+    }
+}

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

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.domain.repository;
 
 import com.mooctest.crowd.domain.dao.ApplicationTypeDao;
+import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
 import com.mooctest.crowd.domain.domainobject.ApplicationType;
 import com.mooctest.crowd.domain.model.ApplicationTypePO;
 import com.mooctest.crowd.domain.util.Converter;

+ 3 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/IUserRepo.java

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.domain.repository;
 
 import com.mooctest.crowd.domain.domainobject.User;
+import com.mooctest.crowd.domain.domainobject.UserTaskCount;
 import com.mooctest.crowd.domain.exception.UserNotExistException;
 import com.mooctest.crowd.domain.model.UserPO;
 
@@ -26,6 +27,8 @@ public interface IUserRepo {
 
     ArrayList<UserPO> getAllUserInfo() throws RoleNotFoundException;
 
+    UserTaskCount getUserTaskCountByUserId(Long userId);
+
 //    User getByEvaluationAgencyByUserId(Long userId) throws UserNotExistException, com.mooctest.crowd.domain.exception.RoleNotFoundException;
 
     void removeUser(User user);

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

@@ -6,13 +6,13 @@ import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.PermissionNotFoundException;
 import com.mooctest.crowd.domain.exception.RoleNotFoundException;
 import com.mooctest.crowd.domain.exception.UserNotExistException;
+import com.mooctest.crowd.domain.exception.UserTaskCountNoExistException;
 import com.mooctest.crowd.domain.model.*;
 import com.mooctest.crowd.domain.util.Converter;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import javax.security.auth.login.Configuration;
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.List;
@@ -41,6 +41,9 @@ public class UserRepo implements IUserRepo {
     private UserToRoleDao userToRoleDao;
 
     @Autowired
+    private UserTaskCountDao userTaskCountDao;
+
+    @Autowired
     private RoleToPermissionDao roleToPermissionDao;
 
     @Autowired
@@ -133,12 +136,22 @@ public class UserRepo implements IUserRepo {
     }
 
     @Override
-    public ArrayList<UserPO> getAllUserInfo() throws RoleNotFoundException {
+    public ArrayList<UserPO> getAllUserInfo() throws RoleNotFoundException{
         Iterable<UserPO> allUserPO = userDao.findAll();
         ArrayList<UserPO> userPOArrayList = Lists.newArrayList(allUserPO);
         return userPOArrayList;
     }
 
+    @Override
+    public UserTaskCount getUserTaskCountByUserId(Long userId){
+        Optional<UserTaskCountPO> userTaskCountPO = userTaskCountDao.findByUserId(userId);
+        if(!userTaskCountPO.isPresent()){
+            throw new UserTaskCountNoExistException();
+        }else{
+            return Converter.convert(UserTaskCount.class, userTaskCountPO.get());
+        }
+    }
+
 
     //add
 //    @Override
@@ -349,7 +362,7 @@ public class UserRepo implements IUserRepo {
      * @return
      * @throws RoleNotFoundException
      */
-    private User getUserAndRoleAndPermissionByUserPO(UserPO userPO) throws RoleNotFoundException {
+    private User getUserAndRoleAndPermissionByUserPO(UserPO userPO) throws RoleNotFoundException{
         User userResult = Converter.convert(User.class, userPO);
         List<UserToRolePO> userToRolePOList = userToRoleDao.findByUserId(userResult.getId());
         List<Role> roleResultList = new ArrayList<>();

+ 4 - 0
site/src/main/java/com/mooctest/crowd/site/command/ApplyPersonalAuthCommand.java

@@ -8,6 +8,7 @@ import org.springframework.beans.BeanUtils;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
 import java.sql.Timestamp;
+import java.util.*;
 
 /**
  * @author: Diors.Po
@@ -17,6 +18,9 @@ import java.sql.Timestamp;
 @Data
 public class ApplyPersonalAuthCommand {
 
+    @NotNull(message = "请选择成为接包用户还是发包用户")
+    private  List<Integer> roleList;
+
     private String  userId;
 
     @NotNull(message = "请填写真实姓名")

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/constants/CommonConstant.java

@@ -12,6 +12,8 @@ public class CommonConstant {
 
     public static final Integer SQUARE_ROWS_ON_PAGE = 9;
 
+    public static final Integer HOT_CROWD_ROWS_ON_PAGE = 10;
+
     public static final Integer SQUARE_ROWS_ON_PAGE_MODIFY = 12;
 
     public static final Integer TECHNOLOGY_ROWS_ON_PAGE = 5;

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

@@ -159,7 +159,7 @@ public class AgencyController extends BaseSearchController {
     @RequestMapping(value = "resident/agency/more", method = RequestMethod.POST)
     public ResponseVO getMoreResidentList(@RequestBody SearchConditionVO searchConditionVO) {
         Pageable pageable = this.getPageable(searchConditionVO);
-        return new ResponseVO(ServerCode.SUCCESS, residentAgencyService.findAll(pageable));
+        return new ResponseVO(ServerCode.SUCCESS, residentAgencyService.findAll(pageable, searchConditionVO.getKeyword()));
     }
 
     @RequestMapping(value = "agency/{agencyId}", method = RequestMethod.GET)

File diff suppressed because it is too large
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


+ 10 - 5
site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java

@@ -28,7 +28,7 @@ import java.util.List;
  */
 @Slf4j
 @RestController
-public class CrowdProjectController {
+public class CrowdProjectController{
 
     @Autowired
     private CrowdProjectService projectService;
@@ -39,14 +39,19 @@ public class CrowdProjectController {
      * @param result
      * @return
      */
-    @RequestMapping(value = "/api/project", method = RequestMethod.POST)
-    public ProjectDetailsDTO createProject(@Validated @RequestBody CrowdTestProjectCommand crowdTestProjectCommand, BindingResult result){
-        if (result.hasErrors())
+    @RequestMapping(value = "/api/project/", method = RequestMethod.POST)
+    public ProjectDetailsDTO createProject(@Validated @RequestBody CrowdTestProjectCommand crowdTestProjectCommand, BindingResult result,HttpSession session){
+
+
+        long  userId=Long.parseLong((String) session.getAttribute("userId"));
+
+        if (result.hasErrors()) {
             throw new BaseException(result.getFieldErrors().toString());
+        }
         else if (!crowdTestProjectCommand.isLegal())
             throw new BaseException("信息不合法,项目可见性必须选择指定的市");
 //            throw new BaseException("信息不合法,项目可见性存在问题");
-        return projectService.createCrowdProject(crowdTestProjectCommand);
+        return projectService.createCrowdProject(crowdTestProjectCommand,userId);
     }
 
     /**

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

@@ -35,7 +35,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/api")
-public class UserController extends BaseController {
+public class UserController extends BaseController{
     @Autowired
     private PersonalAuthService personalAuthService;
     @Autowired
@@ -146,8 +146,8 @@ public class UserController extends BaseController {
     public PersonalAuthVO applyPersonalAuthentication(@PathVariable("userId") Long userId,
                                                       @Validated @RequestBody ApplyPersonalAuthCommand command,
                                                       BindingResult result, HttpSession session) {
-//        if (!userId.equals(Long.parseLong((String) session.getAttribute("userId"))))
-//            throw new UnauthorizedException("没有权限对他人账号进行操作!");
+        if (!userId.equals(Long.parseLong((String) session.getAttribute("userId"))))
+            throw new UnauthorizedException("没有权限对他人账号进行操作!");
         LOG.info("当前用户申请的认证信息为" + command);
         if (result.hasErrors())
             throw new BaseException(result.getFieldError().getDefaultMessage());
@@ -313,7 +313,7 @@ public class UserController extends BaseController {
      * @return
      */
     @RequestMapping(value = "index/address", method = RequestMethod.GET)
-    public Area getAddressByIp(HttpServletRequest request) throws UnsupportedEncodingException {
+    public Area getAddressByIp(HttpServletRequest request) throws UnsupportedEncodingException{
         String ip = DataUtils.getClientIp(request);
         LOG.info("ip地址是========" + ip);
         Area area = AddressUtils.getProvinceName(ip);

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/controller/advice/ExceptionAdvice.java

@@ -47,6 +47,8 @@ public class ExceptionAdvice {
             return "领域不存在";
         } else if (e instanceof ResourceNoExistException){
             return "资源不存在";
+        } else if (e instanceof UserTaskCountNoExistException) {
+            return "当前用户没有参与接包";
         } else
             return e.getMessage();
     }

+ 3 - 3
site/src/main/java/com/mooctest/crowd/site/data/enums/RoleType.java

@@ -13,12 +13,12 @@ import lombok.NoArgsConstructor;
 public enum RoleType {
 
     GENERAL_USER(1L, "generalUser"),        // 注册后的普通用户
-    AGENCY(2L, "evaluationAgency"),         // 注册为测评机构
+    AGENCY(2L, "evaluationAgency"),         // 注册为测评机构接包
     REGIONAL_MANAGER(3L, "RegionalManager"),
     SYSTEM_ADMIN(4L, "RegionalManager"),
     ENTERPRISE_USER(5L, "enterpriseUser"),
-    EVALUATION_USER(6L, "evaluationUser"),  // 注册为测评用户
-    PARTY_USER(7L, "partyUser"),            // 注册为发包用户
+    EVALUATION_USER(6L, "evaluationUser"),  // 注册为测评用户接包
+    PARTY_USER(7L, "partyUser"),            // 注册为发包用户发包
     PARTY_AGENCY(8L, "partyAgency");        // 注册为发包机构
 
     private Long id;

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

@@ -105,6 +105,5 @@ public class CrowdProjectVO implements Serializable {
             this.statusVO.setText("已截止");
             this.statusVO.setStyle("warning");
         }
-
     }
 }

+ 4 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/ResourceVO.java

@@ -1,6 +1,8 @@
 package com.mooctest.crowd.site.data.vo;
 
+import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
 import com.mooctest.crowd.domain.domainobject.Resource;
+import com.mooctest.crowd.domain.domainobject.ResourceStatus;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -30,6 +32,7 @@ public class ResourceVO implements Serializable {
     private Timestamp startTime;
     private String personnel;
     private String remarks;
+    private StatusVO statusVO;
 
     public ResourceVO(Resource resource){
         code = resource.getCode();
@@ -47,4 +50,5 @@ public class ResourceVO implements Serializable {
         personnel=resource.getPersonnel();
         remarks=resource.getRemarks();
     }
+
 }

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

@@ -41,10 +41,9 @@ public class UserVO implements Serializable {
     private String address;
 
 
-
     public UserVO(User user) {
         BeanUtils.copyProperties(user, this);
-        this.address=this.province+this.city;
+        this.address = this.province + this.city;
         this.password = "********";
         if (user.getEvaluationAgency() != null) {
             this.authType = "agency";

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

@@ -5,6 +5,7 @@ import com.mooctest.crowd.domain.domainobject.User;
 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.command.ApplyPersonalAuthCommand;
 import com.mooctest.crowd.site.command.LoginCommand;
 import com.mooctest.crowd.site.command.RegisterCommand;
 import com.mooctest.crowd.site.data.dto.*;
@@ -20,7 +21,10 @@ import java.util.List;
  */
 public interface ViewMediator {
 
-    List<UserVO> renderMoreUser(Pageable pageable);
+
+    void    saveUserRole(User user, ApplyPersonalAuthCommand command);
+
+    List<UserVO> renderMoreUser(Pageable pageable,String keyword);
 
 
     List<CrowdTaskVO> findMoreHotTasks();

+ 107 - 39
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -10,6 +10,7 @@ import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.domain.repository.EvaluationAgencyRepo;
 import com.mooctest.crowd.domain.repository.UserRepo;
 import com.mooctest.crowd.domain.util.Converter;
+import com.mooctest.crowd.site.command.ApplyPersonalAuthCommand;
 import com.mooctest.crowd.site.command.LoginCommand;
 import com.mooctest.crowd.site.command.RegisterCommand;
 import com.mooctest.crowd.site.data.ProjectOperationControl;
@@ -21,6 +22,7 @@ import com.mooctest.crowd.site.mediator.ViewMediator;
 import lombok.extern.slf4j.Slf4j;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -113,9 +115,48 @@ public class WebMediatorImpl implements ViewMediator {
 
     @Value("${agency}")
     private String agencyId;
+    @Autowired
+    private UserToRoleDao userToRoleDao;
+
+    @Override
+    public void saveUserRole(User user, ApplyPersonalAuthCommand command) {
+        if (command.getRoleList().size() == 0 || command.getRoleList() == null) {
+            throw new BaseException("请选择成为发包或者接包用户");
+        }
+        //如果选择成为发包用户
+        UserPO userPO = userDao.save(Converter.convert(UserPO.class, user));
+        if (command.getRoleList().contains(0)) {
+            UserToRolePO u2r = new UserToRolePO();
+            u2r.setUserId(userPO.getId());
+            u2r.setRoleId(7L);
+            userToRoleDao.save(u2r);
+        }
+        //如果选择成为接包用户
+        if (command.getRoleList().contains(1)) {
+            UserToRolePO u2r = new UserToRolePO();
+            u2r.setUserId(userPO.getId());
+            u2r.setRoleId(6L);
+            userToRoleDao.save(u2r);
+
+            //如果两个都选择那么权限都给
+        } else if (command.getRoleList().contains(1) && command.getRoleList().contains(0)) {
+            UserToRolePO u2r = new UserToRolePO();
+            u2r.setUserId(userPO.getId());
+            u2r.setRoleId(7L);
+            userToRoleDao.save(u2r);
+            UserToRolePO u2rl = new UserToRolePO();
+            u2r.setUserId(userPO.getId());
+            u2r.setRoleId(6L);
+            userToRoleDao.save(u2rl);
+
+        }
+
+
+
+    }
 
     @Override
-    public List<UserVO> renderMoreUser(Pageable pageable) {
+    public List<UserVO> renderMoreUser(Pageable pageable,String keyword) {
         //获取众测人员排名
 //        String agencyName = agencyDao.findById(Long.parseLong(agencyId)).get().getEvaluationAgencyName();
 //        List<UserVO> userVOS = taskToUserDao.findTotalCountOfUser().stream().map(rankInfo -> {
@@ -128,17 +169,18 @@ public class WebMediatorImpl implements ViewMediator {
 //            }
 //            return null;
 //        }).filter(Objects::nonNull).collect(Collectors.toList());
-
-
         List<UserVO> userVOS = userTaskCountDao.findByType(RoleType.EVALUATION_USER.getId())
                 .stream().sorted(Comparator.comparing(UserTaskCountPO::getCount)).collect(Collectors.toList())
                 .stream().map(userTaskCountPO -> {
                     User user = userRepo.getByIDJustInfo(userTaskCountPO.getUserId());
                     UserVO userVO = new UserVO(user);
                     userVO.setTaskCount(userTaskCountPO.getCount());
-                    return userVO;
+                       return userVO;
                 }).collect(Collectors.toList());
-        return userVOS;
+        if (keyword != null && keyword.trim() != "") {
+            return  userVOS.stream().filter(userVO -> userVO.getName().contains(keyword)).collect(Collectors.toList());
+        }
+        return  userVOS;
     }
 
     @Override
@@ -279,13 +321,7 @@ public class WebMediatorImpl implements ViewMediator {
         IndexInfoDTO indexInfoDTO = new IndexInfoDTO();
         Pageable pageable = PageRequest.of(0, 3);
         int top = 3;
-        //获取热门众测
-        List<ApplicationTypeVO> applicationTypeRank = projectDao.findTotalCountOfApplicationType(pageable).stream().map(rankInfos -> {
-            ApplicationType applicationType = commonRepo.getApplicationTypeByAppCode(rankInfos.getCode());
-            ApplicationTypeVO applicationTypeVO = new ApplicationTypeVO(applicationType);
-            applicationTypeVO.setCount(rankInfos.getCount());
-            return applicationTypeVO;
-        }).filter(Objects::nonNull).collect(Collectors.toList());
+        List<ApplicationTypeVO> applicationTypeRank = getApplicationTypeRankVOS(pageable);
         List<ApplicationTypeVO> applicationTypeRanks = new ArrayList<>();
         if (applicationTypeRanks.size() > top) {
             for (int i = 0; i < top; i++) {
@@ -312,7 +348,7 @@ public class WebMediatorImpl implements ViewMediator {
 //        }).filter(Objects::nonNull).collect(Collectors.toList());
 
         List<EvaluationAgencyVO> agencyRanks = userTaskCountDao.findByType(RoleType.AGENCY.getId())
-                .stream().sorted(Comparator.comparing(UserTaskCountPO::getCount)).limit(top).collect(Collectors.toList())
+                .stream().sorted(Comparator.comparing(UserTaskCountPO::getCount).reversed()).limit(top).collect(Collectors.toList())
                 .stream().map(userTaskCountPO -> {
                     EvaluationAgencyPO agency = agencyDao.findByUserId(userTaskCountPO.getUserId());
                     EvaluationAgencyVO agencyVO = new EvaluationAgencyVO();
@@ -346,13 +382,13 @@ public class WebMediatorImpl implements ViewMediator {
 //        }).filter(Objects::nonNull).collect(Collectors.toList());
 
         List<UserVO> userRanks = userTaskCountDao.findByType(RoleType.EVALUATION_USER.getId())
-                .stream().sorted(Comparator.comparing(UserTaskCountPO::getCount)).limit(top).collect(Collectors.toList())
+                .stream().sorted(Comparator.comparing(UserTaskCountPO::getCount).reversed()).limit(top).collect(Collectors.toList())
                 .stream().map(userTaskCountPO -> {
-            User user = userRepo.getByIDJustInfo(userTaskCountPO.getUserId());
-            UserVO userVO = new UserVO(user);
-            userVO.setTaskCount(userTaskCountPO.getCount());
-            return userVO;
-        }).collect(Collectors.toList());
+                    User user = userRepo.getByIDJustInfo(userTaskCountPO.getUserId());
+                    UserVO userVO = new UserVO(user);
+                    userVO.setTaskCount(userTaskCountPO.getCount());
+                    return userVO;
+                }).collect(Collectors.toList());
 
 //        List<UserVO> userRanks = new ArrayList<>();
 //        if (userRank.size() > top) {
@@ -378,6 +414,17 @@ public class WebMediatorImpl implements ViewMediator {
         return indexInfoDTO;
     }
 
+    @NotNull
+    public List<ApplicationTypeVO> getApplicationTypeRankVOS(Pageable pageable) {
+        //获取热门众测
+        return projectDao.findTotalCountOfApplicationType(pageable).stream().map(rankInfos -> {
+            ApplicationType applicationType = commonRepo.getApplicationTypeByAppCode(rankInfos.getCode());
+            ApplicationTypeVO applicationTypeVO = new ApplicationTypeVO(applicationType);
+            applicationTypeVO.setCount(rankInfos.getCount());
+            return applicationTypeVO;
+        }).filter(Objects::nonNull).collect(Collectors.toList());
+    }
+
     @Override
     public IndexDTO renderIndex() {
         Pageable pageable = PageRequest.of(0, 10);
@@ -736,7 +783,7 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public ReportDetailsDTO renderProjectReportDetails(String projectCode, String reportCode, Long userId){
+    public ReportDetailsDTO renderProjectReportDetails(String projectCode, String reportCode, Long userId) {
         CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
         CrowdTestReport report = project.getCrowdTestReportForProject();
         if (report == null)
@@ -745,7 +792,7 @@ public class WebMediatorImpl implements ViewMediator {
         /*
          如果该项目是已经完成的那么报告是不能修改的这边我在Vo上面加了一个属性Updated
          */
-        if (project.getStatus() == CrowdTestProjectStatus.HAS_FINISHED){
+        if (project.getStatus() == CrowdTestProjectStatus.HAS_FINISHED) {
             report.setUpdated(false);
         }
         reportDetailsDTO.setCrowdReportVO(new CrowdReportVO(report));
@@ -1023,6 +1070,7 @@ public class WebMediatorImpl implements ViewMediator {
         if (userVO.getUnit() == null || userVO.getUnit().length() <= 0) {
             throw new HttpBadRequestException("请输入企业简称");
         }
+        userPO.get().setPhotoUrl(userVO.getPhotoUrl());
         userPO.get().setUnit(userVO.getUnit());
         userPO.get().setGender(userVO.getGender());
         userPO.get().setBirthday(userVO.getBirthday());
@@ -1056,9 +1104,9 @@ public class WebMediatorImpl implements ViewMediator {
     @Override
     public QualificationDTO addQualification(long userId, QualificationVO qualificationVO) {
         QualificationPO qualificationPO = new QualificationPO();
-        List<QualificationPO>  qualificationPOList=qualificationDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted);
-        for(int i=0;i<qualificationPOList.size();i++){
-            if(qualificationVO.getName().equals(qualificationPOList.get(i).getName())){
+        List<QualificationPO> qualificationPOList = qualificationDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted);
+        for (int i = 0; i < qualificationPOList.size(); i++) {
+            if (qualificationVO.getName().equals(qualificationPOList.get(i).getName())) {
                 throw new HttpBadRequestException("资质已存在");
             }
         }
@@ -1100,16 +1148,16 @@ public class WebMediatorImpl implements ViewMediator {
             BankCardVO bankCardVO = new BankCardVO();
             bankCardVO.setId(bankCardPO.getId());
             bankCardVO.setUser(bankCardPO.getUser());
-            int length=bankCardPO.getNumber().length();
+            int length = bankCardPO.getNumber().length();
             int afterLength = 4;
             String replaceSymbol = "*";
             StringBuffer sb = new StringBuffer();
             for (int i = 0; i < length; i++) {
                 if (i >= (length - afterLength)) {
-                            sb.append(bankCardPO.getNumber().charAt(i));
+                    sb.append(bankCardPO.getNumber().charAt(i));
                 } else {
-                            sb.append(replaceSymbol);
-                        }
+                    sb.append(replaceSymbol);
+                }
                 bankCardVO.setNumber(sb.toString());
             }
             Optional<BankLogoPO> bankLogo = bankLogoDao.findByCode(bankCardPO.getCode());
@@ -1135,13 +1183,13 @@ public class WebMediatorImpl implements ViewMediator {
             throw new HttpBadRequestException("请输入正确的卡号");
         }
         String bank = String.valueOf(json.get("bank"));
-        Optional<BankLogoPO> bankLogoPO=bankLogoDao.findByName(bankCardVO.getName());
-        if(!bank.equals(bankLogoPO.get().getName())){
+        Optional<BankLogoPO> bankLogoPO = bankLogoDao.findByName(bankCardVO.getName());
+        if (!bank.equals(bankLogoPO.get().getName())) {
             throw new HttpBadRequestException("请输入与选定银行一致的账号");
         }
-        List<BankCardPO> bankCardPOList=bankCardDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted);
-        for(int i=0;i<bankCardPOList.size();i++){
-            if(bankCardVO.getNumber().equals(bankCardPOList.get(i).getNumber())){
+        List<BankCardPO> bankCardPOList = bankCardDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted);
+        for (int i = 0; i < bankCardPOList.size(); i++) {
+            if (bankCardVO.getNumber().equals(bankCardPOList.get(i).getNumber())) {
                 throw new HttpBadRequestException("银行卡已存在");
             }
         }
@@ -1186,6 +1234,20 @@ public class WebMediatorImpl implements ViewMediator {
             resourceVO.setStandard(resourcePO.getStandard());
             resourceVO.setUnit(resourcePO.getUnit());
             resourceVO.setState(resourcePO.getState());
+            StatusVO statusVO = new StatusVO();
+            if(resourcePO.getState()==0){
+                statusVO.setText("空闲");
+                resourceVO.setStatusVO(statusVO);
+            }else if(resourcePO.getState()==1){
+                statusVO.setText("占用");
+                resourceVO.setStatusVO(statusVO);
+            }else if(resourcePO.getState()==2){
+                statusVO.setText("可用");
+                resourceVO.setStatusVO(statusVO);
+            }else if(resourcePO.getState()==3){
+                statusVO.setText("故障");
+                resourceVO.setStatusVO(statusVO);
+            }
             resourceVO.setStartTime(resourcePO.getStartTime());
             resourceVO.setPersonnel(resourcePO.getPersonnel());
             resourceVO.setRemarks(resourcePO.getRemarks());
@@ -1210,14 +1272,20 @@ public class WebMediatorImpl implements ViewMediator {
         resourceVO.setUnitWork(resourcePO.get().getUnitWork());
         resourceVO.setStandard(resourcePO.get().getStandard());
         resourceVO.setUnit(resourcePO.get().getUnit());
+        resourceVO.setState(resourcePO.get().getState());
+        StatusVO statusVO = new StatusVO();
         if(resourcePO.get().getState()==0){
-            resourceVO.setState(ResourceStatus.R_FREE);
+            statusVO.setText("空闲");
+            resourceVO.setStatusVO(statusVO);
         }else if(resourcePO.get().getState()==1){
-            resourceVO.setState(ResourceStatus.R_OCCUPY);
+            statusVO.setText("占用");
+            resourceVO.setStatusVO(statusVO);
         }else if(resourcePO.get().getState()==2){
-            resourceVO.setState(ResourceStatus.R_USABLE);
-        }else {
-            resourceVO.setState(ResourceStatus.R_FAULT);
+            statusVO.setText("可用");
+            resourceVO.setStatusVO(statusVO);
+        }else if(resourcePO.get().getState()==3){
+            statusVO.setText("故障");
+            resourceVO.setStatusVO(statusVO);
         }
         resourceVO.setStartTime(resourcePO.get().getStartTime());
         resourceVO.setPersonnel(resourcePO.get().getPersonnel());
@@ -1264,7 +1332,7 @@ public class WebMediatorImpl implements ViewMediator {
         qualificationVO.setIsPublic(qualificationPO.get().getIsPublic());
         qualificationDTO.setQualificationVO(qualificationVO);
         return qualificationDTO;
-}
+    }
 
     @Override
     public BankCardDTO getBankType() {

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

@@ -14,7 +14,7 @@ import java.util.Map;
 public interface CommonService {
 
 
-    List<UserVO> getMoreUser(Pageable pageable);
+    List<UserVO> getMoreUser(Pageable pageable,String keyword);
 
     IndexDTO getIndexInfo();
 
@@ -32,7 +32,7 @@ public interface CommonService {
 
     Page<CrowdTaskVO> getTaskinfo(Pageable pageable, String keyword, int deletedStatus);
 
-    Page<ApplicationTypeVO> getHotTesting(Pageable pageable,String keyword);
+    List<ApplicationTypeVO> getHotTesting(String keyword);
 
     Page<CompetitionVO> getCompetition(Pageable pageable,String keyword);
 

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

@@ -28,7 +28,7 @@ public interface CrowdProjectService {
 
     ProjectDetailsDTO getProjectDetails(String projectCode, Long userId);
 
-    ProjectDetailsDTO createCrowdProject(CrowdTestProjectCommand command);
+    ProjectDetailsDTO createCrowdProject(CrowdTestProjectCommand command,long userId);
 
     ProjectDetailsDTO updateProject(String projectCode, CrowdTestProjectCommand crowdTestProjectCommand);
 

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

@@ -1,16 +1,13 @@
 package com.mooctest.crowd.site.service;
 
 
-import com.mooctest.crowd.domain.model.ResidentAgencyPO;
 import com.mooctest.crowd.site.data.vo.ResidentAgencyVO;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 
-import java.awt.*;
-
 public interface ResidentAgencyService {
 
-    Page<ResidentAgencyVO> findAll(Pageable pageable);
+    Page<ResidentAgencyVO> findAll(Pageable pageable, String keyword);
 
 
 }

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

@@ -91,8 +91,13 @@ public class AgencyServiceImpl implements AgencyService {
         return agencyVO;
     }
 
+    /**
+     * 获取首页机构 more模糊查询
+     * @param keyword
+     * @return
+     */
     @Override
-    public List<EvaluationAgencyVO> findMoreAgencyVO(String keyword) {
+    public List<EvaluationAgencyVO> findMoreAgencyVO(String keyword){
         List<EvaluationAgencyVO> list = userTaskCountDao.findByType(RoleType.AGENCY.getId())
                 .stream().sorted(Comparator.comparing(UserTaskCountPO::getCount)).collect(Collectors.toList())
                 .stream().map(userTaskCountPO -> {
@@ -106,10 +111,15 @@ public class AgencyServiceImpl implements AgencyService {
                     agencyVO.setAddress(agency.getAddress());
                     return agencyVO;
                 }).collect(Collectors.toList());
-        return list.stream().sorted(Comparator.comparing(EvaluationAgencyVO::getTaskCount).reversed()).collect(Collectors.toList());
-    }
+        if (keyword == null) {
+            return list.stream().sorted(Comparator.comparing(EvaluationAgencyVO::getTaskCount).reversed()).collect(Collectors.toList());
+        } else {
+            list=list.stream().sorted(Comparator.comparing(EvaluationAgencyVO::getTaskCount).reversed()).collect(Collectors.toList());
 
+            return list.stream().filter(evaluationAgencyVO-> evaluationAgencyVO.getEvaluationAgencyName().contains(keyword)).collect(Collectors.toList());
+        }
 
+    }
     @Override
     public UserDTO applyAgency(Long userId, ApplyAgencyAuthCommand command) {
         EvaluationAgency agency = command.toAgency();
@@ -208,17 +218,7 @@ public class AgencyServiceImpl implements AgencyService {
         if (agency == null)
             throw new EvaluationAgencyNotExistException("当前用户未申请机构认证");
         AgencyVO agencyVO = new AgencyVO(user.getEvaluationAgency());
-
-        List<RankCountInfo> rankCountInfoList = taskToUserDao.findTotalCountOfUser();
-        long ids[] = new long[rankCountInfoList.size()];
-        for (int i = 0; i < ids.length; i++) {
-            ids[i] = rankCountInfoList.get(i).getEntityId();
-            if (ids[i] == agencyVO.getUserId()) {
-                agencyVO.setTaskCount(rankCountInfoList.get(i).getCount());
-            }
-        }
+        agencyVO.setTaskCount(userRepo.getUserTaskCountByUserId(userId).getCount());
         return agencyVO;
     }
-
-
 }

+ 21 - 4
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -1,5 +1,6 @@
 package com.mooctest.crowd.site.service.impl;
 
+import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.repository.*;
 import com.mooctest.crowd.site.constants.CommonConstant;
@@ -10,6 +11,7 @@ import com.mooctest.crowd.site.data.response.ResponseVO;
 import com.mooctest.crowd.site.data.response.ServerCode;
 import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
+import com.mooctest.crowd.site.mediator.impl.WebMediatorImpl;
 import com.mooctest.crowd.site.service.CommonService;
 import com.mooctest.crowd.site.util.DataUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,17 +46,23 @@ public class CommonServiceImpl implements CommonService {
     private EvaluationAgencyRepo agencyRepo;
 
     @Autowired
+    private CrowdTestProjectDao projectDao;
+
+    @Autowired
     private CommonRepo commonRepo;
 
     @Autowired
     private ApplicationTypeRepo applicationTypeRepo;
 
+    @Autowired
+    private WebMediatorImpl webMediator;
+
 //    @Autowired
 //    private CacheUtil cacheUtil;
 
     @Override
-    public List<UserVO> getMoreUser(Pageable pageable) {
-        return  viewMediator.renderMoreUser(pageable);
+    public List<UserVO> getMoreUser(Pageable pageable,String keyword) {
+        return  viewMediator.renderMoreUser(pageable,keyword);
     }
 
     @Override
@@ -114,8 +122,17 @@ public class CommonServiceImpl implements CommonService {
     }
 
     @Override
-    public Page<ApplicationTypeVO> getHotTesting(Pageable pageable,String keyword) {
-        return applicationTypeRepo.getHotTesting(pageable,keyword).map(applicationType -> new ApplicationTypeVO(applicationType));
+    public List<ApplicationTypeVO> getHotTesting(String keyword) {
+
+        Pageable pageable = PageRequest.of(0, CommonConstant.HOT_CROWD_ROWS_ON_PAGE);
+        //获取热门众测
+        List<ApplicationTypeVO> applicationTypeRank = webMediator.getApplicationTypeRankVOS(pageable);
+
+        if (keyword != null && keyword.trim() != "") {
+            return applicationTypeRank.stream().filter(applicationTypeVO -> applicationTypeVO.getName().contains(keyword)).collect(Collectors.toList());
+        }else{
+            return applicationTypeRank;
+        }
     }
 
     @Override

+ 70 - 36
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -1,16 +1,15 @@
 package com.mooctest.crowd.site.service.impl;
 
 import com.google.common.collect.Lists;
-import com.mooctest.crowd.domain.dao.ApplicationTypeDao;
-import com.mooctest.crowd.domain.dao.FieldDao;
-import com.mooctest.crowd.domain.dao.TestTypeDao;
-import com.mooctest.crowd.domain.dao.UserTaskCountDao;
+import com.mooctest.crowd.domain.dao.*;
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.BadRequestException;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.Excel2ProjectException;
 import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
+import com.mooctest.crowd.domain.model.RolePO;
 import com.mooctest.crowd.domain.model.UserTaskCountPO;
+import com.mooctest.crowd.domain.model.UserToRolePO;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.domain.repository.UserRepo;
 import com.mooctest.crowd.domain.util.Converter;
@@ -55,6 +54,11 @@ import java.util.stream.Collectors;
 @Slf4j
 @Service
 public class CrowdProjectServiceImpl implements CrowdProjectService {
+    @Autowired
+    private RoleDao roleDao;
+    @Autowired
+
+    private UserToRoleDao userToRoleDao;
 
     @Autowired
     private ViewMediator viewMediator;
@@ -76,7 +80,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Autowired
     private FieldDao fieldDao;
-    
+
     @Autowired
     private UserTaskCountDao userTaskCountDao;
 
@@ -85,19 +89,18 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Override
     public List<CrowdTestProjectVO> findAllMoreHotProjects() {
-        List<CrowdTestProjectVO> list=viewMediator.findMoreHotProjects();//根据创建时间已经倒叙排序好
+        List<CrowdTestProjectVO> list = viewMediator.findMoreHotProjects();//根据创建时间已经倒叙排序好
         //根据参与人数倒叙排序
-        List<CrowdTestProjectVO>  moreHotProjects=list.stream().sorted(Comparator.comparing(CrowdTestProjectVO::getJoinCount).reversed()).collect(Collectors.toList());
-        return   moreHotProjects;
+        List<CrowdTestProjectVO> moreHotProjects = list.stream().sorted(Comparator.comparing(CrowdTestProjectVO::getJoinCount).reversed()).collect(Collectors.toList());
+        return moreHotProjects;
     }
 
     @Override
     public List<CrowdTestProjectVO> findByNameLike(String name) {
-        if(name==null||name.trim().equals("")){
-            return  viewMediator.crowdTestProjects().stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList());
+        if (name == null || name.trim().equals("")) {
+            return viewMediator.crowdTestProjects().stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList());
         }
-       return  viewMediator.findByNameLike(name).stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList());
-
+        return viewMediator.findByNameLike(name).stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList());
 
 
     }
@@ -111,12 +114,10 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
     @Override
     public List<CrowdTestProjectVO> findAll(Pageable pageable) {
 
-        return  viewMediator.crowdTestProjects();
+        return viewMediator.crowdTestProjects();
     }
 
 
-
-
     @Override
     public List<CrowdTestProjectVO> findAll() {
         return viewMediator.crowdTestProjects();
@@ -131,20 +132,53 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
     }
 
     @Override
-    public ProjectDetailsDTO createCrowdProject(CrowdTestProjectCommand command) {
-        CrowdTestProject project = command.toCrowdProject();
-        project.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
-        log.info("\n" + project.toString() + "\n");
-        String projectCode = GenerateFlowCodeUtil.generateFlowCode("PROJ");
-        project.setCode(projectCode);
-        if(project.getCreateTime() == null){
-            project.setCreateTime(new Timestamp(System.currentTimeMillis()));
+    public ProjectDetailsDTO createCrowdProject(CrowdTestProjectCommand command, long userId) {
+        boolean canCreateProject = false;//当前用户是否能接包
+        // 获取用户所有角色
+        List<UserToRolePO> usertoRole = userToRoleDao.findByUserId(userId);
+        //用户所有角色PO
+        List<RolePO> rolePOS = new ArrayList<>();//用户所有角色列表
+        //用户所有角色id
+        long rolIdArray[] = new long[usertoRole.size()];
+        for (int i = 0; i < rolIdArray.length; i++) {
+            rolIdArray[i] = usertoRole.get(i).getRoleId();
+            Optional<RolePO> role = roleDao.findById(rolIdArray[i]);
+            rolePOS.add(role.get());
         }
-        ProjectDetailsDTO projectDetailsDTO = new ProjectDetailsDTO();
-        projectRepo.saveCrowdTestProject(project);
-        projectDetailsDTO.setProjectDetails(new CrowdProjectVO(project));
-        themeSchedulerService.createNewThemeScheduler(project);
-        return projectDetailsDTO;
+        //获取用户角色列表所有的角色name;
+        List<String> roleNames = new ArrayList<>();
+        for (int i = 0; i < rolePOS.size(); i++) {
+            roleNames.add(rolePOS.get(i).getName());
+        }
+
+        for (int i = 0; i < roleNames.size(); i++) {
+            if (roleNames.get(i).equals("RegionalManager") || roleNames.get(i).equals("SystemAdministrator")
+                    || roleNames.get(i).equals("enterpriseUser") || roleNames.get(i).equals("partyUser") || roleNames.get(i).equals("partyAgency")) {
+                canCreateProject = true;
+            } else {
+                canCreateProject = false;
+                throw new BaseException("用户权限不足无法创建项目");
+
+            }
+        }
+
+
+        if (canCreateProject) {
+            CrowdTestProject project = command.toCrowdProject();
+            project.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
+            log.info("\n" + project.toString() + "\n");
+            String projectCode = GenerateFlowCodeUtil.generateFlowCode("PROJ");
+            project.setCode(projectCode);
+            if (project.getCreateTime() == null) {
+                project.setCreateTime(new Timestamp(System.currentTimeMillis()));
+            }
+            ProjectDetailsDTO projectDetailsDTO = new ProjectDetailsDTO();
+            projectRepo.saveCrowdTestProject(project);
+            projectDetailsDTO.setProjectDetails(new CrowdProjectVO(project));
+            themeSchedulerService.createNewThemeScheduler(project);
+            return projectDetailsDTO;
+        }
+        return null;
     }
 
     @Override
@@ -155,7 +189,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         if (!project.getUserId().equals(crowdTestProjectCommand.getUserId()))
             throw new BaseException("UserId不一致, newUserId: " + crowdTestProjectCommand.getUserId() + ", oldUserId: " + project.getUserId());
         //todo 后面需要加入是否有权限进行更新
-        if(project.getCreateTime() == null){
+        if (project.getCreateTime() == null) {
             project.setCreateTime(new Timestamp(System.currentTimeMillis()));
         }
         projectRepo.saveCrowdTestProject(operationMediator.updateProject(project, crowdTestProjectCommand));
@@ -327,12 +361,12 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
                 // 对用户判断认证类型 测评机构为1 测试人员为2
 
                 Optional<UserTaskCountPO> userTaskCountPOOptional = userTaskCountDao.findByUserId(user.getId());
-                if(!userTaskCountPOOptional.isPresent()){
+                if (!userTaskCountPOOptional.isPresent()) {
                     UserTaskCount userTaskCount = new UserTaskCount(user.getId(), 1L, RoleType.EVALUATION_USER.getId());
                     userTaskCountDao.save(Converter.convert(UserTaskCountPO.class, userTaskCount));
-                }else{
+                } else {
                     UserTaskCountPO userTaskCountPO = userTaskCountPOOptional.get();
-                    userTaskCountPO.setCount(userTaskCountPO.getCount()+1);
+                    userTaskCountPO.setCount(userTaskCountPO.getCount() + 1);
                     userTaskCountDao.save(userTaskCountPO);
                 }
                 return null;
@@ -446,7 +480,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
                         project.setName(cell.getStringCellValue().trim());
                         break;
                     case 1:
-                        if(fieldDao.findAll().stream().noneMatch(fieldPO -> fieldPO.getName().equals(cell.getStringCellValue().trim()))){
+                        if (fieldDao.findAll().stream().noneMatch(fieldPO -> fieldPO.getName().equals(cell.getStringCellValue().trim()))) {
                             logList.add("错误 - 行: " + (i + 1) + "; 列: " + (j + 1) + "; 原因: " + "领域类型数据不合法:" + cell.getStringCellValue());
                             break;
                         }
@@ -454,7 +488,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 //                        project.setFieldType(fieldDao.findByName(cell.getStringCellValue().trim()).get().getCode());
                         break;
                     case 2:
-                        if(applicationTypeDao.findAll().stream().noneMatch(applicationTypePO -> applicationTypePO.getName().equals(cell.getStringCellValue().trim()))){
+                        if (applicationTypeDao.findAll().stream().noneMatch(applicationTypePO -> applicationTypePO.getName().equals(cell.getStringCellValue().trim()))) {
                             logList.add("错误 - 行: " + (i + 1) + "; 列: " + (j + 1) + "; 原因: " + "应用类型数据不合法:" + cell.getStringCellValue());
                             break;
                         }
@@ -462,7 +496,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 //                        project.setApplicationType(applicationTypeDao.findByName(cell.getStringCellValue().trim()).get().getCode());
                         break;
                     case 3:
-                        if(testTypeDao.findAll().stream().noneMatch(testTypePO -> testTypePO.getName().equals(cell.getStringCellValue().trim()))){
+                        if (testTypeDao.findAll().stream().noneMatch(testTypePO -> testTypePO.getName().equals(cell.getStringCellValue().trim()))) {
                             logList.add("错误 - 行: " + (i + 1) + "; 列: " + (j + 1) + "; 原因: " + "测试类型数据不合法:" + cell.getStringCellValue());
                             break;
                         }
@@ -475,7 +509,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
                         project.setLinkMan(cell.getStringCellValue().trim());
                         break;
                     case 6:
-                        if(!cell.getStringCellValue().trim().contains("*")){
+                        if (!cell.getStringCellValue().trim().contains("*")) {
                             if (!isRightPhone(cell.getStringCellValue().trim())) {
                                 logList.add("错误 - 行: " + (i + 1) + "; 列: " + (j + 1) + "; 原因: " + "不合法的手机号码:" + cell.getStringCellValue());
                                 break;

+ 12 - 24
site/src/main/java/com/mooctest/crowd/site/service/impl/ResidentServiceImpl.java

@@ -5,9 +5,6 @@ import com.mooctest.crowd.domain.dao.ResidentAgencyDao;
 import com.mooctest.crowd.domain.dao.TaskToUserDao;
 import com.mooctest.crowd.domain.dao.UserDao;
 import com.mooctest.crowd.domain.model.EvaluationAgencyPO;
-import com.mooctest.crowd.domain.model.RankCountInfo;
-import com.mooctest.crowd.domain.model.ResidentAgencyPO;
-import com.mooctest.crowd.domain.model.UserPO;
 import com.mooctest.crowd.site.data.vo.ResidentAgencyVO;
 import com.mooctest.crowd.site.service.ResidentAgencyService;
 import com.mooctest.crowd.site.util.DataUtils;
@@ -17,9 +14,8 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * @author:xx
@@ -40,30 +36,22 @@ public class ResidentServiceImpl implements ResidentAgencyService {
 
 
     @Override
-    public Page<ResidentAgencyVO> findAll(Pageable pageable) {
-        List<ResidentAgencyVO> list = new ArrayList<>();
-        List<RankCountInfo> totalCountOfUser = taskToUserDao.findTotalCountOfUser();
-        long ids[] = new long[totalCountOfUser.size()];
-        List<ResidentAgencyPO> residentAgencyPOS = residentAgencyDao.findAll();
-        //获取品牌机构的用户id
-        long resagency[] = new long[residentAgencyPOS.size()];
-        for (int i = 0; i < residentAgencyPOS.size(); i++) {
+    public Page<ResidentAgencyVO> findAll(Pageable pageable, String keyword) {
+        List<ResidentAgencyVO> residentAgencyVOList = residentAgencyDao.findAll().stream().map(residentAgencyPO -> {
             ResidentAgencyVO residentAgencyVO = new ResidentAgencyVO();
-            Optional<UserPO> userPO = userDao.findById(residentAgencyPOS.get(i).getUserId());
-            resagency[i] = residentAgencyPOS.get(i).getUserId();
-            EvaluationAgencyPO evaluationAgencyPO = agencyDao.findByUserId(resagency[i]);
+            EvaluationAgencyPO evaluationAgencyPO = agencyDao.findByUserId(residentAgencyPO.getUserId());
             residentAgencyVO.setName(evaluationAgencyPO.getEvaluationAgencyName());
             residentAgencyVO.setAgencyPhoto(evaluationAgencyPO.getAgencyPhoto());
-            residentAgencyVO.setTaskCount(totalCountOfUser.get(i).getCount());
             residentAgencyVO.setAddress(evaluationAgencyPO.getAddress());
-            residentAgencyVO.setAgencyId(residentAgencyPOS.get(i).getAgencyId());
-            residentAgencyVO.setId(residentAgencyPOS.get(i).getId());
-            residentAgencyVO.setUserId(residentAgencyPOS.get(i).getUserId());
-            list.add(residentAgencyVO);
+            residentAgencyVO.setAgencyId(evaluationAgencyPO.getId());
+            residentAgencyVO.setId(residentAgencyPO.getId());
+            residentAgencyVO.setUserId(residentAgencyPO.getUserId());
+            return residentAgencyVO;
+        }).collect(Collectors.toList());
+        if(keyword != null && keyword != ""){
+            residentAgencyVOList = residentAgencyVOList.stream().filter(residentAgencyVO -> residentAgencyVO.getName().contains(keyword)).collect(Collectors.toList());
         }
-
-
-        Page<ResidentAgencyVO> page = DataUtils.listToPage(list, pageable);
+        Page<ResidentAgencyVO> page = DataUtils.listToPage(residentAgencyVOList, pageable);
         return page;
     }
 }

File diff suppressed because it is too large
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/UserServiceImpl.java


Some files were not shown because too many files changed in this diff