|  | @@ -26,6 +26,7 @@ import com.yonge.toolset.base.util.StringUtil;
 | 
	
		
			
				|  |  |  import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
 | 
	
		
			
				|  |  |  import com.yonge.toolset.utils.string.ValueUtil;
 | 
	
		
			
				|  |  |  import org.apache.commons.beanutils.BeanUtils;
 | 
	
		
			
				|  |  | +import org.redisson.api.RMap;
 | 
	
		
			
				|  |  |  import org.redisson.api.RedissonClient;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 | 
	
	
		
			
				|  | @@ -37,6 +38,8 @@ import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.concurrent.TimeUnit;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import static com.yonge.cooleshow.biz.dal.constant.LiveRoomConstant.TEACHER_TEMP_LIVE_ROOM;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> implements TeacherService {
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
	
		
			
				|  | @@ -147,7 +150,16 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 | 
	
		
			
				|  |  |          teacherHomeVo.setUnExpTime(null == total.getUnExpTime() ? 0 : total.getUnExpTime());
 | 
	
		
			
				|  |  |          teacherHomeVo.setMusicAlbumNum(null == total.getMusicAlbumNum() ? 0 : total.getMusicAlbumNum());
 | 
	
		
			
				|  |  |          teacherHomeVo.setMusicSheetNum(null == total.getMusicSheetNum() ? 0 : total.getMusicSheetNum());
 | 
	
		
			
				|  |  | -        teacherHomeVo.setLiveing(total.getLiveFlag() ? YesOrNoEnum.YES : YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //取直播缓存
 | 
	
		
			
				|  |  | +        RMap<Long, String> liveMap = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
 | 
	
		
			
				|  |  | +        String roomUid = liveMap.get(userId);
 | 
	
		
			
				|  |  | +        if (!StringUtil.isEmpty(roomUid)) {
 | 
	
		
			
				|  |  | +            teacherHomeVo.setLiveing(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +            teacherHomeVo.setRoomUid(roomUid);
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            teacherHomeVo.setLiveing(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          return HttpResponseResult.succeed(teacherHomeVo);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -182,13 +194,32 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 | 
	
		
			
				|  |  |          return subjects;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      private HttpResponseResult<Boolean> doCreate(TeacherSubmitReq teacherSubmitReq) throws BizException {
 | 
	
		
			
				|  |  | -        //判断手机号
 | 
	
		
			
				|  |  | +        //更新sys_user
 | 
	
		
			
				|  |  |          SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());
 | 
	
		
			
				|  |  | -        if (null != sysUser) {
 | 
	
		
			
				|  |  | -            return HttpResponseResult.failed("该手机号已经被注册");
 | 
	
		
			
				|  |  | +        if (null == sysUser) {
 | 
	
		
			
				|  |  | +            sysUser = insertSysUser(teacherSubmitReq);
 | 
	
		
			
				|  |  | +            teacherSubmitReq.setUserId(sysUser.getId());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            teacherSubmitReq.setUserId(sysUser.getId());
 | 
	
		
			
				|  |  | +            updateSysUser(teacherSubmitReq);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        sysUser = new SysUser();
 | 
	
		
			
				|  |  | +        //新增修改老师表
 | 
	
		
			
				|  |  | +        insertOrUpdateTeacher(teacherSubmitReq);
 | 
	
		
			
				|  |  | +        return HttpResponseResult.succeed(true);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private HttpResponseResult<Boolean> doUpdate(TeacherSubmitReq teacherSubmitReq) {
 | 
	
		
			
				|  |  | +        //更新sys_user
 | 
	
		
			
				|  |  | +        updateSysUser(teacherSubmitReq);
 | 
	
		
			
				|  |  | +        //新增修改老师表
 | 
	
		
			
				|  |  | +        insertOrUpdateTeacher(teacherSubmitReq);
 | 
	
		
			
				|  |  | +        return HttpResponseResult.succeed(true);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private SysUser insertSysUser(TeacherSubmitReq teacherSubmitReq) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = new SysUser();
 | 
	
		
			
				|  |  |          sysUser = getUserDetil(sysUser, teacherSubmitReq);
 | 
	
		
			
				|  |  |          sysUser.setUserType(SysUserType.TEACHER.getCode());
 | 
	
		
			
				|  |  |          //初始密码,手机号后6位
 | 
	
	
		
			
				|  | @@ -202,49 +233,54 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 | 
	
		
			
				|  |  |          //设置昵称
 | 
	
		
			
				|  |  |          sysUser.setUsername("游客" + sysUser.getId());
 | 
	
		
			
				|  |  |          employeeDao.updateSysUser(sysUser);
 | 
	
		
			
				|  |  | -        //插入老师表
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        Teacher teacher = new Teacher();
 | 
	
		
			
				|  |  | -        teacher.setUserId(sysUser.getId());
 | 
	
		
			
				|  |  | -        teacher = getTeacherDetil(teacher, teacherSubmitReq);
 | 
	
		
			
				|  |  | -        baseMapper.insert(teacher);
 | 
	
		
			
				|  |  | -        //插入老师账户表
 | 
	
		
			
				|  |  | -        UserAccount oldAcc = userAccountService.getById(sysUser.getId());
 | 
	
		
			
				|  |  | -        if (null == oldAcc) {
 | 
	
		
			
				|  |  | -            UserAccount userAccount = new UserAccount();
 | 
	
		
			
				|  |  | -            userAccount.setUserId(sysUser.getId());
 | 
	
		
			
				|  |  | -            userAccountService.save(userAccount);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        return HttpResponseResult.succeed(true);
 | 
	
		
			
				|  |  | +        return sysUser;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private HttpResponseResult<Boolean> doUpdate(TeacherSubmitReq teacherSubmitReq) {
 | 
	
		
			
				|  |  | +    private SysUser updateSysUser(TeacherSubmitReq teacherSubmitReq) {
 | 
	
		
			
				|  |  |          //判断手机号
 | 
	
		
			
				|  |  |          SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());
 | 
	
		
			
				|  |  |          if (null != sysUser && !teacherSubmitReq.getUserId().equals(sysUser.getId())) {
 | 
	
		
			
				|  |  | -            return HttpResponseResult.failed("该手机号已经被注册");
 | 
	
		
			
				|  |  | +            throw new BizException("该手机号已经被注册");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          sysUser = employeeDao.querySysUserById(teacherSubmitReq.getUserId());
 | 
	
		
			
				|  |  |          if (null == sysUser) {
 | 
	
		
			
				|  |  | -            return HttpResponseResult.failed("未找到用户");
 | 
	
		
			
				|  |  | +            throw new BizException("未找到用户");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          sysUser = getUserDetil(sysUser, teacherSubmitReq);
 | 
	
		
			
				|  |  | +        sysUser.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +        employeeDao.updateSysUser(sysUser);
 | 
	
		
			
				|  |  | +        return sysUser;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private Teacher insertOrUpdateTeacher(TeacherSubmitReq teacherSubmitReq) {
 | 
	
		
			
				|  |  |          Teacher teacher = baseMapper.selectById(teacherSubmitReq.getUserId());
 | 
	
		
			
				|  |  | -        teacher = getTeacherDetil(teacher, teacherSubmitReq);
 | 
	
		
			
				|  |  | -        teacher.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | -        baseMapper.updateById(teacher);
 | 
	
		
			
				|  |  | -        if (null == teacher.getEntryAuthDate() || null == teacher.getMusicianDate()) {
 | 
	
		
			
				|  |  | -            baseMapper.update(teacher, Wrappers.<Teacher>lambdaUpdate()
 | 
	
		
			
				|  |  | -                    .set(Teacher::getEntryAuthDate, teacher.getEntryAuthDate())
 | 
	
		
			
				|  |  | -                    .set(Teacher::getMusicianDate, teacher.getMusicianDate())
 | 
	
		
			
				|  |  | -                    .eq(Teacher::getUserId, teacher.getUserId())
 | 
	
		
			
				|  |  | -            );
 | 
	
		
			
				|  |  | +        if (null == teacher) {
 | 
	
		
			
				|  |  | +            teacher = new Teacher();
 | 
	
		
			
				|  |  | +            teacher.setUserId(teacherSubmitReq.getUserId());
 | 
	
		
			
				|  |  | +            teacher = getTeacherDetil(teacher, teacherSubmitReq);
 | 
	
		
			
				|  |  | +            baseMapper.insert(teacher);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //插入老师账户表
 | 
	
		
			
				|  |  | +            UserAccount oldAcc = userAccountService.getById(teacherSubmitReq.getUserId());
 | 
	
		
			
				|  |  | +            if (null == oldAcc) {
 | 
	
		
			
				|  |  | +                UserAccount userAccount = new UserAccount();
 | 
	
		
			
				|  |  | +                userAccount.setUserId(teacherSubmitReq.getUserId());
 | 
	
		
			
				|  |  | +                userAccountService.save(userAccount);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            teacher.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +            baseMapper.updateById(teacher);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (null == teacher.getEntryAuthDate() || null == teacher.getMusicianDate()) {
 | 
	
		
			
				|  |  | +                baseMapper.update(teacher, Wrappers.<Teacher>lambdaUpdate()
 | 
	
		
			
				|  |  | +                        .set(Teacher::getEntryAuthDate, teacher.getEntryAuthDate())
 | 
	
		
			
				|  |  | +                        .set(Teacher::getMusicianDate, teacher.getMusicianDate())
 | 
	
		
			
				|  |  | +                        .eq(Teacher::getUserId, teacher.getUserId())
 | 
	
		
			
				|  |  | +                );
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        sysUser.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | -        employeeDao.updateSysUser(sysUser);
 | 
	
		
			
				|  |  | -        return HttpResponseResult.succeed(true);
 | 
	
		
			
				|  |  | +        return teacher;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /***
 |