Browse Source

管理后台新增修改老师

liweifan 3 years ago
parent
commit
a1bc074af9

+ 70 - 34
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

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