宋悦 8 роки тому
батько
коміт
467aa7eb1a

+ 4 - 4
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/CourseApi.java

@@ -69,10 +69,10 @@ public class CourseApi {
     @ApiOperation(value="查询课程不分页带查询",notes = "不分页带查询")
     @GetMapping("/all")
     public ResponseEntity getAllExam(@ModelAttribute Course course,HttpServletRequest request){
-//    	if(null == course.getOrgId()){
-//    		AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-//    		course.setOrgId(accessUser.getRootOrgId());
-//    	}
+        AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+        if(accessUser != null){
+            course.setOrgId(accessUser.getRootOrgId());
+        }
         return new ResponseEntity(courseService.findAll(course), HttpStatus.OK);
     }
     

+ 8 - 2
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/UserApi.java

@@ -57,11 +57,17 @@ public class UserApi {
                                      @PathVariable Integer curPage,
                                      @PathVariable Integer pageSize,
                                      HttpServletRequest request){
+
+        userCriteria.setType(UserType.NOT_STUDENT);
         AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
         if(accessUser != null){
-            userCriteria.setRootOrgId(accessUser.getRootOrgId());
+            if(accessUser.getRootOrgId() == 0){
+                return new ResponseEntity(userService.findOrgUser(userCriteria,
+                        new PageRequest(curPage - 1,pageSize)), HttpStatus.OK);
+            }else{
+                userCriteria.setRootOrgId(accessUser.getRootOrgId());
+            }
         }
-        userCriteria.setType(UserType.NOT_STUDENT);
         return new ResponseEntity(userService.findAll(userCriteria,
                 new PageRequest(curPage - 1,pageSize)), HttpStatus.OK);
     }

+ 33 - 5
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/UserService.java

@@ -2,11 +2,7 @@ package cn.com.qmth.examcloud.service.core.service;
 
 import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.contains;
 
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import cn.com.qmth.examcloud.common.uac.AccessUserOps;
@@ -19,6 +15,7 @@ import org.springframework.data.domain.Example;
 import org.springframework.data.domain.ExampleMatcher;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
@@ -30,6 +27,8 @@ import cn.com.qmth.examcloud.service.core.enums.UserScope;
 import cn.com.qmth.examcloud.service.core.enums.UserType;
 import cn.com.qmth.examcloud.service.core.params.UserParam;
 
+import javax.persistence.criteria.Predicate;
+
 /**
  * 用户服务类
  * Created by songyue on 17/1/13.
@@ -65,6 +64,12 @@ public class UserService {
         this.accessUserOps = new AccessUserOpsForRedis(redisTemplate);
     }
 
+    /**
+     * 查询所有用户
+     * @param userCriteria
+     * @param pageable
+     * @return
+     */
     public Page<User> findAll(User userCriteria, Pageable pageable){
         ExampleMatcher exampleMatcher = ExampleMatcher.matching()
                 .withMatcher("name", contains())
@@ -74,6 +79,29 @@ public class UserService {
         return users;
     }
 
+    /**
+     * 查询所有机构用户
+     * @param userCriteria
+     * @param pageable
+     * @return
+     */
+    public Page<User> findOrgUser(User userCriteria,Pageable pageable){
+        Specification<User> userSpecification = (root, query, cb) -> {
+            List<Predicate> predicates = new ArrayList<>();
+            predicates.add(cb.equal(root.get("rootOrgId"),root.get("orgId")));
+            predicates.add(cb.equal(root.get("type"),userCriteria.getType()));
+            if(StringUtils.isNotEmpty(userCriteria.getLoginName())){
+                predicates.add(cb.like(root.get("loginName"),"%"+userCriteria.getLoginName()+"%"));
+            }
+            if(StringUtils.isNotEmpty(userCriteria.getName())){
+                predicates.add(cb.like(root.get("name"),"%"+userCriteria.getName()+"%"));
+            }
+            return cb.and(predicates.toArray(new Predicate[predicates.size()]));
+        };
+        Page<User> users = userRepo.findAll(userSpecification, pageable);
+        return users;
+    }
+
     /**
      * 初始化密码
      * @param userId

+ 5 - 2
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/repo/UserRepo.java

@@ -2,7 +2,11 @@ package cn.com.qmth.examcloud.service.core.repo;
 
 import java.util.List;
 
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
@@ -14,7 +18,7 @@ import cn.com.qmth.examcloud.service.core.entity.User;
 /**
  * Created by songyue on 17/1/13.
  */
-public interface UserRepo extends JpaRepository<User,Long>,QueryByExampleExecutor<User>{
+public interface UserRepo extends JpaRepository<User,Long>,QueryByExampleExecutor<User>,JpaSpecificationExecutor<User>{
 
     User findByRootOrgIdAndLoginName(long rootOrgId,String loginName);
 
@@ -35,5 +39,4 @@ public interface UserRepo extends JpaRepository<User,Long>,QueryByExampleExecuto
 	
 	@Query(nativeQuery = true,value = "SELECT DISTINCT * FROM ecs_core_user us, ecs_core_user_role ur WHERE us.id = ur.user_id And us.root_org_id = ? And ur.role_code = 'MARKER' And us.enable = 1")
 	List<User> findMarkerByRootOrgId(Long rootOrgId);
-
 }

+ 5 - 0
core-main/pom.xml

@@ -16,6 +16,11 @@
             <artifactId>core-api</artifactId>
             <version>0.1.0</version>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 0
pom.xml

@@ -78,6 +78,7 @@
                     <version>${maven-surefire-plugin.version}</version>
                     <configuration>
                         <testFailureIgnore>true</testFailureIgnore>
+                        <skipTests>true</skipTests>
                     </configuration>
                 </plugin>