Sfoglia il codice sorgente

Merge branch 'master' of git.mooctest.net:summer/mooctest-user

zhangxin 7 anni fa
parent
commit
e6d902da73

+ 2 - 0
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/dao/User2MedalDao.java

@@ -17,4 +17,6 @@ import java.util.List;
 public interface User2MedalDao extends CrudRepository<User2Medal, Long> ,JpaSpecificationExecutor<User2Medal>{
 
     List<User2Medal> findByUserId(long userId);
+
+    List<User2Medal> findByUserIdAndMedalId(long userId,long medalId);
 }

+ 2 - 3
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/rpc/IntegralRPC.java

@@ -50,11 +50,10 @@ public class IntegralRPC implements IntegralService {
     /**
      * get user's integral ranking list
      * @param keyword search for single task
-     * @param pageable
      * @return medalTO
      */
     @Override
-    public Page<UserIntegralDTO> getUserIntegrals(String keyword, Pageable pageable){
-        return integralLogic.getUserIntegrals(keyword,pageable);
+    public List<UserIntegralDTO> getUserIntegrals(String keyword){
+        return integralLogic.getUserIntegrals(keyword);
     }
 }

+ 6 - 4
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/rpc/MedalRPC.java

@@ -10,6 +10,8 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @Author ROKG
  * @Description
@@ -60,8 +62,8 @@ public class MedalRPC implements MedalService{
      * @return medalTO
      */
     @Override
-    public Page<MedalDTO> getMedals(String keyword, Pageable pageable){
-        return medalLogic.getMedals(keyword,pageable);
+    public List<MedalDTO> getMedals(String keyword,Long userId){
+        return medalLogic.getMedals(keyword,userId);
     }
 
     /**
@@ -80,7 +82,7 @@ public class MedalRPC implements MedalService{
      * @return medalCaughtDTO
      */
     @Override
-    public Page<MedalCaughtDTO> getMedalList(long userId, Pageable pageable){
-        return medalLogic.getMedalList(userId,pageable);
+    public List<MedalCaughtDTO> getMedalList(long userId){
+        return medalLogic.getMedalList(userId);
     }
 }

+ 1 - 1
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/service/IntegralService.java

@@ -19,7 +19,7 @@ public interface IntegralService {
 
     UserIntegral saveIntegral(UserIntegral userIntegral);
 
-    Page<UserIntegral> findPage(String keyword, Pageable pageable);
+    List<UserIntegral> findPage(String keyword);
 
     List<User2Integral> findByTime(long userId, long startTime, long endTime);
 

+ 6 - 4
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/service/MedalService.java

@@ -2,8 +2,8 @@ package cn.iselab.mooctest.user.service;
 
 import cn.iselab.mooctest.user.model.Medal;
 import cn.iselab.mooctest.user.model.User2Medal;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
+
+import java.util.List;
 
 /**
  * @Author ROKG
@@ -19,7 +19,9 @@ public interface MedalService {
 
     User2Medal saveUser2Medal(User2Medal medal);
 
-    Page<User2Medal> findByPage(long userId, Pageable pageable);
+    User2Medal findByUserIdAndMedalId(long userId, long medalId);
+
+    List<User2Medal> findByPage(long userId);
 
-    Page<Medal> findByPage2(String word, Pageable pageable);
+    List<Medal> findByPage2(String word);
 }

+ 2 - 2
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/service/impl/IntegralServiceImpl.java

@@ -51,9 +51,9 @@ public class IntegralServiceImpl implements IntegralService {
     }
 
     @Override
-    public Page<UserIntegral> findPage(String keyword, Pageable pageable){
+    public List<UserIntegral> findPage(String keyword){
         Specifications<UserIntegral> where=Specifications.where(getUserIntegral(keyword));
-        return userIntegralDao.findAll(where,pageable);
+        return userIntegralDao.findAll(where);
     }
 
     @Override

+ 14 - 16
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/service/impl/MedalServiceImpl.java

@@ -17,6 +17,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import java.util.List;
 
 /**
  * @Author ROKG
@@ -49,27 +50,24 @@ public class MedalServiceImpl implements MedalService {
     }
 
     @Override
-    public Page<User2Medal> findByPage(long userId, Pageable pageable){
-        Specifications<User2Medal> where=Specifications.where(getUser2Medal(userId));
-        return user2MedalDao.findAll(where, pageable);
+    public User2Medal findByUserIdAndMedalId(long userId, long medalId){
+        List<User2Medal> user2Medals = user2MedalDao.findByUserIdAndMedalId(userId,medalId);
+        if(user2Medals!=null && user2Medals.size()>0){
+            return user2Medals.get(0);
+        }else {
+            return null;
+        }
     }
 
     @Override
-    public Page<Medal> findByPage2(String word, Pageable pageable){
-        Specifications<Medal> where=Specifications.where(getMedal(word));
-        return medalDao.findAll(where, pageable);
+    public List<User2Medal> findByPage(long userId){
+        return user2MedalDao.findByUserId(userId);
     }
 
-    private Specification<User2Medal> getUser2Medal(long userId){
-        return new Specification<User2Medal>() {
-            @Override
-            public Predicate toPredicate(Root<User2Medal> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
-                Predicate p=criteriaBuilder.conjunction();
-                p.getExpressions()
-                        .add(criteriaBuilder.equal(root.get("userId"),userId));
-                return p;
-            }
-        };
+    @Override
+    public List<Medal> findByPage2(String word){
+        Specifications<Medal> where=Specifications.where(getMedal(word));
+        return medalDao.findAll(where);
     }
 
     private Specification<Medal> getMedal(String keyword){

+ 3 - 6
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/IntegralController.java

@@ -48,12 +48,9 @@ public class IntegralController extends BaseController{
     }
 
     @RequestMapping(value = UrlConstants.API_MEDAL,method = RequestMethod.GET)
-    public Page<MedalDTO> getIntegrals(@RequestParam(value = "userId")String userId,
+    public List<MedalDTO> getIntegrals(@RequestParam(value = "userId")Long userId,
+                                       @RequestParam(value = "keyword")String keyword,
                                        HttpServletRequest request){
-        Integer activePage = Integer.parseInt(request.getHeader("activePage"));
-        Integer rowsOnPage = Integer.parseInt(request.getHeader("rowsOnPage"));
-        Sort sort=new Sort(Sort.Direction.DESC,"createTime");
-        Pageable pageable=new PageRequest(activePage-1, rowsOnPage,sort);
-        return medalLogic.getMedals(userId,pageable);
+        return medalLogic.getMedals(keyword,userId);
     }
 }

+ 1 - 1
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/logic/IntegralLogic.java

@@ -19,5 +19,5 @@ public interface IntegralLogic {
 
     List<IntegralCaughtDTO> getIntegralCaughts(long userId, long startTime, long endTime);
 
-    Page<UserIntegralDTO> getUserIntegrals(String keyword, Pageable pageable);
+    List<UserIntegralDTO> getUserIntegrals(String keyword);
 }

+ 4 - 4
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/logic/MedalLogic.java

@@ -2,8 +2,8 @@ package cn.iselab.mooctest.user.web.logic;
 
 import cn.iselab.mooctest.rpc.user.data.MedalCaughtDTO;
 import cn.iselab.mooctest.rpc.user.data.MedalDTO;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
+
+import java.util.List;
 
 /**
  * @Author ROKG
@@ -19,9 +19,9 @@ public interface MedalLogic {
 
     void deleteMedal(long medalId);
 
-    Page<MedalDTO> getMedals(String keyword, Pageable pageable);
+    List<MedalDTO> getMedals(String keyword, Long userId);
 
     MedalCaughtDTO saveMedalCaughtDTO(MedalCaughtDTO dto);
 
-    Page<MedalCaughtDTO> getMedalList(long userId, Pageable pageable);
+    List<MedalCaughtDTO> getMedalList(long userId);
 }

+ 4 - 8
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/logic/impl/IntegralLogicImpl.java

@@ -55,13 +55,9 @@ public class IntegralLogicImpl extends BaseLogic implements IntegralLogic {
     }
 
     @Override
-    public Page<UserIntegralDTO> getUserIntegrals(String keyword, Pageable pageable){
-        Page<UserIntegral> integrals=integralService.findPage(keyword, pageable);
-        return integrals.map(new Converter<UserIntegral, UserIntegralDTO>() {
-            @Override
-            public UserIntegralDTO convert(UserIntegral userIntegral) {
-                return userIntegralWrapper.wrap(userIntegral);
-            }
-        });
+    public List<UserIntegralDTO> getUserIntegrals(String keyword){
+        List<UserIntegral> integrals=integralService.findPage(keyword);
+        return integrals.parallelStream()
+                .map(userIntegral -> userIntegralWrapper.wrap(userIntegral)).collect(Collectors.toList());
     }
 }

+ 18 - 19
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/logic/impl/MedalLogicImpl.java

@@ -18,6 +18,9 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
 import java.sql.Timestamp;
+import java.util.List;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
 
 /**
  * @Author ROKG
@@ -70,14 +73,13 @@ public class MedalLogicImpl extends BaseLogic implements MedalLogic {
     }
 
     @Override
-    public Page<MedalDTO> getMedals(String keyword, Pageable pageable){
-        Page<Medal> medals=medalService.findByPage2(keyword, pageable);
-        return medals.map(new Converter<Medal, MedalDTO>() {
-            @Override
-            public MedalDTO convert(Medal medal) {
-                return medalwrapper.wrap(medal);
-            }
-        });
+    public List<MedalDTO> getMedals(String keyword, Long userId){
+        List<Medal> medals=medalService.findByPage2(keyword);
+        return medals.parallelStream().map(medal -> {
+            MedalDTO medalDTO=medalwrapper.wrap(medal);
+            medalDTO.setCaughted(medalService.findByUserIdAndMedalId(userId, medal.getId())!=null?true:false);
+            return medalDTO;
+        }).collect(Collectors.toList());
     }
 
     @Override
@@ -89,16 +91,13 @@ public class MedalLogicImpl extends BaseLogic implements MedalLogic {
     }
 
     @Override
-    public Page<MedalCaughtDTO> getMedalList(long userId, Pageable pageable){
-        Page<User2Medal> user2Medals=medalService.findByPage(userId,pageable);
-        return user2Medals.map(new Converter<User2Medal, MedalCaughtDTO>() {
-            @Override
-            public MedalCaughtDTO convert(User2Medal user2Medal) {
-                MedalCaughtDTO dto=medalCaughtWrapper.wrap(user2Medal);
-                Medal medal =medalService.findById(user2Medal.getMedalId());
-                dto.setMedalDTO(medalwrapper.wrap(medal));
-                return dto;
-            }
-        });
+    public List<MedalCaughtDTO> getMedalList(long userId){
+        List<User2Medal> user2Medals=medalService.findByPage(userId);
+        return user2Medals.parallelStream().map(user2Medal -> {
+            MedalCaughtDTO dto=medalCaughtWrapper.wrap(user2Medal);
+            Medal medal =medalService.findById(user2Medal.getMedalId());
+            dto.setMedalDTO(medalwrapper.wrap(medal));
+            return dto;
+        }).collect(Collectors.toList());
     }
 }