| 
					
				 | 
			
			
				@@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /*** 
			 |