|
@@ -1,10 +1,15 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
|
|
|
+import com.yonge.cooleshow.common.enums.CacheNameEnum;
|
|
|
import com.yonge.toolset.base.page.PageInfo;
|
|
|
+import com.yonge.toolset.base.util.StringUtil;
|
|
|
import com.yonge.toolset.mybatis.service.impl.BaseServiceImpl;
|
|
|
+import org.redisson.api.RedissonClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -22,6 +27,8 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
|
|
|
|
|
|
@Autowired
|
|
|
private SubjectDao subjectDao;
|
|
|
+ @Autowired
|
|
|
+ private RedissonClient redissonClient;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, Subject> getDAO() {
|
|
@@ -81,16 +88,36 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<Subject> subjectSelect() {
|
|
|
- List<Subject> allList = subjectDao.findAll(new HashMap<>());
|
|
|
+ public List<Subject> subjectSelect(String type) {
|
|
|
+ Object cacheRes = redissonClient.getBucket(CacheNameEnum.SUBJECT_ITEM.getRedisKey(type)).get();
|
|
|
+ if (null != cacheRes) {
|
|
|
+ List<Subject> resList = (List<Subject>) cacheRes;
|
|
|
+ if (!CollectionUtils.isEmpty(resList)) {
|
|
|
+ return resList;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Subject> parents;
|
|
|
+ List<Subject> subjects;
|
|
|
+
|
|
|
+ if(StringUtil.isEmpty(type)){
|
|
|
+ List<Subject> allList = subjectDao.findAll(new HashMap<>());
|
|
|
|
|
|
- List<Subject> parents = allList.stream()
|
|
|
- .filter(o -> (null == o.getParentSubjectId() || o.getParentSubjectId().equals(0L)))
|
|
|
- .collect(Collectors.toList());
|
|
|
+ parents = allList.stream()
|
|
|
+ .filter(o -> (null == o.getParentSubjectId() || o.getParentSubjectId().equals(0L)))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ subjects = allList.stream()
|
|
|
+ .filter(o -> !(null == o.getParentSubjectId() || o.getParentSubjectId().equals(0L)))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }else{
|
|
|
+ subjects = subjectDao.subjectSelect(type);
|
|
|
+
|
|
|
+ List<Long> parentIds = subjects.stream().map(Subject::getParentSubjectId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ parents = findBySubjectByIdList(parentIds);
|
|
|
+ }
|
|
|
|
|
|
- List<Subject> subjects = allList.stream()
|
|
|
- .filter(o -> !(null == o.getParentSubjectId() || o.getParentSubjectId().equals(0L)))
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
for (Subject parent : parents) {
|
|
|
if (null == parent.getId()) {
|
|
@@ -110,6 +137,9 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ redissonClient.getBucket(CacheNameEnum.SUBJECT_ITEM.getRedisKey(type)).set(parents,
|
|
|
+ CacheNameEnum.STUDENT_SUBJECT_ITEM.getDuration().toHours(),TimeUnit.HOURS);
|
|
|
return parents;
|
|
|
}
|
|
|
|