|  | @@ -1,6 +1,7 @@
 | 
	
		
			
				|  |  |  package com.yonge.cooleshow.biz.dal.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 | 
	
	
		
			
				|  | @@ -111,8 +112,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 | 
	
		
			
				|  |  |              return HttpResponseResult.failed("未查询到老师信息");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          TeacherHomeVo teacherHomeVo = new TeacherHomeVo();
 | 
	
		
			
				|  |  | -        BeanUtils.copyProperties(teacher,teacherHomeVo);
 | 
	
		
			
				|  |  | -   
 | 
	
		
			
				|  |  | +        BeanUtils.copyProperties(teacher, teacherHomeVo);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          //身份证号、手机号脱敏
 | 
	
		
			
				|  |  |          teacherHomeVo.setIdCardNo(ValueUtil.fuzzyIdCard(teacherHomeVo.getIdCardNo()));
 | 
	
		
			
				|  |  |          teacherHomeVo.setPhone(ValueUtil.fuzzyMobile(teacherHomeVo.getPhone()));
 | 
	
	
		
			
				|  | @@ -186,7 +187,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 | 
	
		
			
				|  |  |              baseMapper.updateById(teacher);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              // 添加标签
 | 
	
		
			
				|  |  | -            this.setTeacherTag(id,TeacherTagEnum.LIVE);
 | 
	
		
			
				|  |  | +            this.setTeacherTag(id, TeacherTagEnum.LIVE);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              return HttpResponseResult.status(true);
 | 
	
		
			
				|  |  |          } else {
 | 
	
	
		
			
				|  | @@ -321,7 +322,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 | 
	
		
			
				|  |  |              sysUser.setUserType(sysUser.getUserType() + ",TEACHER");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //设置默认头像
 | 
	
		
			
				|  |  | -        if(StringUtil.isEmpty(sysUser.getAvatar())){
 | 
	
		
			
				|  |  | +        if (StringUtil.isEmpty(sysUser.getAvatar())) {
 | 
	
		
			
				|  |  |              String defaultHeard = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD);
 | 
	
		
			
				|  |  |              sysUser.setAvatar(defaultHeard);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -422,17 +423,41 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    public List<Subject> querySubjectItem(Long id) {
 | 
	
		
			
				|  |  | -        List<Subject> subjectList = (List<Subject>) redissonClient.getBucket(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(id)).get();
 | 
	
		
			
				|  |  | -        if (null == subjectList) {
 | 
	
		
			
				|  |  | -            subjectList = baseMapper.querySubjectItem(id);
 | 
	
		
			
				|  |  | -            redissonClient.getBucket(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(id))
 | 
	
		
			
				|  |  | -                    .set(subjectList, CacheNameEnum.TEACHER_SUBJECT_ITEM.getDuration().toHours(),
 | 
	
		
			
				|  |  | -                            TimeUnit.HOURS);
 | 
	
		
			
				|  |  | +    public List<Subject> querySubjectItem(Long userId, String type) {
 | 
	
		
			
				|  |  | +        //先查询自己的声部
 | 
	
		
			
				|  |  | +        List<Subject> subjectList = querySubject(userId);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<Subject> cacheByType = getCacheByType(userId, type);
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(cacheByType)) {
 | 
	
		
			
				|  |  | +            subjectList.addAll(cacheByType);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return subjectList;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private List<Subject> getCacheByType(Long userId, String type) {
 | 
	
		
			
				|  |  | +        RMap<String, List<Subject>> map = redissonClient.getMap(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(userId));
 | 
	
		
			
				|  |  | +        //设置过期时间
 | 
	
		
			
				|  |  | +        map.expire(CacheNameEnum.TEACHER_SUBJECT_ITEM.getDuration().toHours(),
 | 
	
		
			
				|  |  | +                TimeUnit.HOURS);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if(StringUtil.isEmpty(type)){
 | 
	
		
			
				|  |  | +            List<Subject> subjectList = map.get("ALL");
 | 
	
		
			
				|  |  | +            if(CollectionUtils.isEmpty(subjectList)){
 | 
	
		
			
				|  |  | +                subjectList = baseMapper.querySubjectItem(userId, null);
 | 
	
		
			
				|  |  | +                map.put("ALL",subjectList);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return subjectList;
 | 
	
		
			
				|  |  | +        }else{
 | 
	
		
			
				|  |  | +            List<Subject> subjectList = map.get(type);
 | 
	
		
			
				|  |  | +            if(CollectionUtils.isEmpty(subjectList)) {
 | 
	
		
			
				|  |  | +                subjectList = baseMapper.querySubjectItem(userId, type);
 | 
	
		
			
				|  |  | +                map.put(type,subjectList);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return subjectList;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      public IPage<MyFens> queryMyFans(IPage<MyFens> page, Long teacherId) {
 | 
	
		
			
				|  |  |          List<MyFens> teacherVos = baseMapper.queryMyFans(page, teacherId);
 | 
	
		
			
				|  |  |          return page.setRecords(teacherVos);
 | 
	
	
		
			
				|  | @@ -446,7 +471,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (StringUtil.isEmpty(teacherVo.getTag())) {
 | 
	
		
			
				|  |  |              teacherVo.setTag(teacherTagEnum.getCode());
 | 
	
		
			
				|  |  | -        } else  if (teacherVo.getTag().contains(teacherTagEnum.getCode())) {
 | 
	
		
			
				|  |  | +        } else if (teacherVo.getTag().contains(teacherTagEnum.getCode())) {
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              teacherVo.setTag(teacherVo.getTag() + "," + teacherTagEnum.getCode());
 |