Просмотр исходного кода

Merge branch 'package-purchase' into 'DEV'

添加 获取开通套餐的用户信息的 接口



See merge request !529

梅杰 7 лет назад
Родитель
Сommit
d5b537dfb4

+ 7 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/UserDao.java

@@ -11,9 +11,7 @@ import org.springframework.data.repository.query.Param;
 import javax.transaction.Transactional;
 import java.util.List;
 
-/**
- * @author liuzicong
- */
+
 @Transactional
 public interface UserDao extends PagingAndSortingRepository<User, Long>, JpaSpecificationExecutor<User> {
 
@@ -31,4 +29,10 @@ public interface UserDao extends PagingAndSortingRepository<User, Long>, JpaSpec
 
     @Query("SELECT id FROM User u where email in :emails")
     List<Long> findIdByEmail(@Param("emails")List<String> emails);
+
+    @Query("SELECT u FROM User u, User2SalesPackage u2p WHERE u.id = u2p.userId AND u2p.salesServiceId = :serviceId")
+    Page<User> findByServiceId(@Param("serviceId") Long serviceId, Pageable pageable);
+
+    @Query("SELECT u FROM User u, User2SalesPackage u2p WHERE u.id = u2p.userId AND u2p.salesServiceId = :serviceId AND u2p.salesPackageId = :packageId")
+    Page<User> findByServiceIdAndPackageId(@Param("serviceId") Long serviceId, @Param("packageId") Long packageId, Pageable pageable);
 }

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/UserService.java

@@ -36,4 +36,6 @@ public interface UserService {
     Page<User> findByRoleId(Long roleId, Pageable pageable);
 
     Page<User> getUserOfFuzzySearch(Map<String, String> condition, Pageable pageable);
+
+    Page<User> getByUserPackage(Long serviceId, Long packageId, Pageable pageable);
 }

+ 7 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/UserServiceImpl.java

@@ -133,5 +133,12 @@ public class UserServiceImpl extends BaseService implements UserService {
         };
     }
 
+    public Page<User> getByUserPackage(Long serviceId, Long packageId, Pageable pageable) {
+
+        if (packageId == null) {
+            return userDao.findByServiceId(serviceId, pageable);
+        }
+        return userDao.findByServiceIdAndPackageId(serviceId, packageId, pageable);
+    }
 
 }

+ 16 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/UserController.java

@@ -256,6 +256,22 @@ public class UserController {
         return userListByRoleId;
     }
 
+    @RequiresRoles("admin")
+    @RequestMapping(value = UrlConstants.API + "users", method = RequestMethod.GET)
+    public Page<UserVO> getUserByPackage(@RequestParam(value="serviceId") Long serviceId,
+                                    @RequestParam (required = false) Long packageId,
+                                    @RequestParam(value = "sortBy", required = false, defaultValue = "id") String sortBy,
+                                    @RequestParam(value = "sortOrder", required = false, defaultValue = "desc") String sortOrder,
+                                    HttpServletRequest request){
+        String activePageStr = request.getHeader("activePage");
+        String rowsOnPageStr = request.getHeader("rowsOnPage");
+        if (activePageStr == null || activePageStr.isEmpty() || rowsOnPageStr == null || rowsOnPageStr.isEmpty())
+            throw new IllegalOperationException();
+        Integer activePage = Integer.parseInt(activePageStr);
+        Integer rowsOnPage = Integer.parseInt(rowsOnPageStr);
+        Sort sort = this.generageSort(sortBy, sortOrder);
+        return userLogic.getByUserPackage(serviceId, packageId, new PageRequest(activePage - 1, rowsOnPage, sort));
+    }
 
     @RequestMapping(value = UrlConstants.API_COMMON + "forgetPassword/email", method = RequestMethod.POST)
     public UserVO forgetPasswordByEmail(@RequestBody UserVO userVO, HttpServletRequest request) {

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/UserLogic.java

@@ -63,6 +63,8 @@ public interface UserLogic {
 
     Page<UserVO> getUserListOfFuzzySearch(Map<String, String> condition, Pageable pageable);
 
+    Page<UserVO> getByUserPackage(Long serviceId, Long packageId, Pageable pageable);
+
     UserPackageVO getUserPackage(String email);
 
     UserPackageVO saveUserPackage(UserPackageVO userPackageVO);

+ 5 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/UserLogicImpl.java

@@ -514,6 +514,11 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
     }
 
     @Override
+    public Page<UserVO> getByUserPackage(Long serviceId, Long packageId, Pageable pageable) {
+        Page<User> userList = userService.getByUserPackage(serviceId, packageId, pageable);
+        return userVOWrapper.wrap(userList);
+    }
+    @Override
     public Page<UserVO> getUserListOfFuzzySearch(Map<String, String> condition, Pageable pageable) {
         Page<User> users = userService.getUserOfFuzzySearch(condition, pageable);
         Page<UserVO> userVOs = userVOWrapper.wrap(users);