|
@@ -8,14 +8,18 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.mapper.TenantUnbindHistoryMapper;
|
|
|
+import com.yonge.cooleshow.biz.dal.mapper.TenantUnbindRecordMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
|
|
|
import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.MusicSheetUploadCountVo;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper;
|
|
|
import com.yonge.cooleshow.common.enums.ESettlementFrom;
|
|
|
+import com.yonge.cooleshow.common.enums.ETenantUnBindAuditStatus;
|
|
|
import org.redisson.api.RMap;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
@@ -94,13 +98,13 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
|
|
|
@Autowired
|
|
|
private SubjectService subjectService;
|
|
|
-
|
|
|
+
|
|
|
@Autowired
|
|
|
private StudentStarDao studentStarDao;
|
|
|
-
|
|
|
+
|
|
|
@Autowired
|
|
|
private StudentService studentService;
|
|
|
-
|
|
|
+
|
|
|
@Autowired
|
|
|
private SysMessageService sysMessageService;
|
|
|
|
|
@@ -119,6 +123,13 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
@Autowired
|
|
|
private MusicSheetService musicSheetService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TenantUnbindRecordMapper tenantUnbindRecordMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TenantUnbindHistoryMapper tenantUnbindHistoryMapper;
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public TeacherVo detail(Long userId) {
|
|
|
TeacherVo detail = baseMapper.detail(userId);
|
|
@@ -155,7 +166,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
return page.setRecords(teacherVos);
|
|
|
}
|
|
|
//设置声部
|
|
|
- List<Long> subjectIds = teacherVos.stream().filter(o -> o.getSubjectId() != null).flatMap(o -> Arrays.stream(o.getSubjectId().split(","))).map(Long::parseLong).collect(Collectors.toList());
|
|
|
+ List<Long> subjectIds =
|
|
|
+ teacherVos.stream().filter(o -> o.getSubjectId() != null).flatMap(o -> Arrays.stream(o.getSubjectId().split(","))).map(Long::parseLong).collect(Collectors.toList());
|
|
|
List<Subject> subjects = subjectService.findBySubjectByIdList(subjectIds);
|
|
|
|
|
|
Map<Long, String> subjectMap = subjects.stream().collect(Collectors.toMap(Subject::getId, Subject::getName));
|
|
@@ -277,15 +289,18 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
|
|
|
@Override
|
|
|
public HttpResponseResult<Boolean> openLive(Long id) {
|
|
|
- TeacherTotal teacherTotal = (TeacherTotal) redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(id)).get();
|
|
|
+ TeacherTotal teacherTotal =
|
|
|
+ (TeacherTotal) redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(id)).get();
|
|
|
if (null == teacherTotal) {
|
|
|
teacherTotal = new TeacherTotal();
|
|
|
}
|
|
|
|
|
|
//开通直播需要粉丝数
|
|
|
- Integer fansNum = Integer.parseInt(sysConfigService.findByParamName(SysConfigConstant.OPEN_LIVE_FANS_NUM).getParamValue());
|
|
|
+ Integer fansNum =
|
|
|
+ Integer.parseInt(sysConfigService.findByParamName(SysConfigConstant.OPEN_LIVE_FANS_NUM).getParamValue());
|
|
|
//开通直播需要已完成课时数
|
|
|
- Integer overClass = Integer.parseInt(sysConfigService.findByParamName(SysConfigConstant.OPEN_LIVE_OVER_CLASS).getParamValue());
|
|
|
+ Integer overClass =
|
|
|
+ Integer.parseInt(sysConfigService.findByParamName(SysConfigConstant.OPEN_LIVE_OVER_CLASS).getParamValue());
|
|
|
//根据老师规则,判断老师直播权限
|
|
|
if (teacherTotal.getFansNum() >= fansNum && teacherTotal.getExpTime() >= overClass) {
|
|
|
Teacher teacher = new Teacher();
|
|
@@ -401,7 +416,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
if (teacher.getTenantId() != -1L && Boolean.FALSE.equals(teacherSubmitReq.getBindTenant())) {
|
|
|
// 老师建立的班级群解散,并解除好友关系
|
|
|
List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
|
|
|
- .eq(ImGroupMember::getIsAdmin,true)
|
|
|
+ .eq(ImGroupMember::getIsAdmin, true)
|
|
|
.eq(ImGroupMember::getUserId, teacher.getUserId()).list();
|
|
|
if (!groupMembers.isEmpty()) {
|
|
|
List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId).distinct()
|
|
@@ -439,7 +454,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
realNameAuthDto.setRealName(teacherSubmitReq.getRealName());
|
|
|
realNameAuthDto.setSave(false);
|
|
|
|
|
|
- HttpResponseResult<IdcardInfoExtractor> idcardInfoExtractorResult = userFeignService.realNameAuth(realNameAuthDto);
|
|
|
+ HttpResponseResult<IdcardInfoExtractor> idcardInfoExtractorResult =
|
|
|
+ userFeignService.realNameAuth(realNameAuthDto);
|
|
|
if (!idcardInfoExtractorResult.getStatus() || null == idcardInfoExtractorResult.getData()) {
|
|
|
throw new BizException("实名认证未通过");
|
|
|
}
|
|
@@ -584,15 +600,17 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean updateStyleVideo(Long userId, List<TeacherStyleVideo> styleVideo, String message) {
|
|
|
|
|
|
- if(styleVideo == null){
|
|
|
+ if (styleVideo == null) {
|
|
|
styleVideo = new ArrayList<TeacherStyleVideo>();
|
|
|
}
|
|
|
//修改老师信息
|
|
|
-
|
|
|
- List<TeacherStyleVideo> teacherStyleVideoList = teacherStyleVideoService.list(Wrappers.<TeacherStyleVideo>lambdaQuery()
|
|
|
- .eq(TeacherStyleVideo::getUserId, userId));
|
|
|
|
|
|
- Map<Long, TeacherStyleVideo> oldMap = teacherStyleVideoList.stream().collect(Collectors.toMap(TeacherStyleVideo::getId, o -> o));
|
|
|
+ List<TeacherStyleVideo> teacherStyleVideoList =
|
|
|
+ teacherStyleVideoService.list(Wrappers.<TeacherStyleVideo>lambdaQuery()
|
|
|
+ .eq(TeacherStyleVideo::getUserId, userId));
|
|
|
+
|
|
|
+ Map<Long, TeacherStyleVideo> oldMap =
|
|
|
+ teacherStyleVideoList.stream().collect(Collectors.toMap(TeacherStyleVideo::getId, o -> o));
|
|
|
|
|
|
List<TeacherStyleVideo> createList = styleVideo.stream().filter(o -> o.getId() == null)
|
|
|
.collect(Collectors.toList());
|
|
@@ -605,9 +623,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
|
|
|
List<Long> oldIds = styleVideo.stream().filter(o -> o.getId() != null)
|
|
|
.map(TeacherStyleVideo::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
- for(TeacherStyleVideo tv : teacherStyleVideoList){
|
|
|
- if(tv.getAuthStatus() == AuthStatusEnum.DOING){
|
|
|
+
|
|
|
+ for (TeacherStyleVideo tv : teacherStyleVideoList) {
|
|
|
+ if (tv.getAuthStatus() == AuthStatusEnum.DOING) {
|
|
|
oldIds.add(tv.getId());
|
|
|
}
|
|
|
}
|
|
@@ -628,7 +646,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
.eq(TeacherStyleVideo::getId, o.getId()));
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
//发送推送
|
|
|
try {
|
|
|
// 发送消息
|
|
@@ -637,7 +655,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
Map<Long, String> receivers = new HashMap<>();
|
|
|
receivers.put(userId, user.getPhone());
|
|
|
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.CUSTOME_MESSAGE_PUSH, receivers, null, 0,
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
+ MessageTypeEnum.CUSTOME_MESSAGE_PUSH, receivers, null, 0,
|
|
|
null, ClientEnum.TEACHER.getCode(), message);
|
|
|
|
|
|
} catch (Exception e) {
|
|
@@ -691,7 +710,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
|
|
|
@Override
|
|
|
public IPage<MyFens> queryMyFans(IPage<MyFens> page, Long teacherId) {
|
|
|
- List<MyFens> teacherVos = baseMapper.queryMyFans(page, TeacherQueryInfo.FansQuery.builder().teacherId(teacherId).build());
|
|
|
+ List<MyFens> teacherVos = baseMapper.queryMyFans(page,
|
|
|
+ TeacherQueryInfo.FansQuery.builder().teacherId(teacherId).build());
|
|
|
return page.setRecords(teacherVos);
|
|
|
}
|
|
|
|
|
@@ -734,19 +754,19 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
List<Long> watchTeacherIdList = new ArrayList<Long>();
|
|
|
|
|
|
List<StudentStar> studentStarList = studentStarDao.queryByStudentId(userId);
|
|
|
- if(studentStarList != null && studentStarList.size() > 0){
|
|
|
- watchTeacherIdList = studentStarList.stream().map(StudentStar :: getTeacherId).collect(Collectors.toList());
|
|
|
+ if (studentStarList != null && studentStarList.size() > 0) {
|
|
|
+ watchTeacherIdList = studentStarList.stream().map(StudentStar::getTeacherId).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
Student student = studentService.getById(userId);
|
|
|
Long subjectId = null;
|
|
|
- if (student.getSubjectId()!= null) {
|
|
|
+ if (student.getSubjectId() != null) {
|
|
|
subjectId = Long.parseLong(student.getSubjectId());
|
|
|
}
|
|
|
|
|
|
List<HotTeacherVo> hotTeacherList = baseMapper.queryHotTeacherList(subjectId);
|
|
|
- for(HotTeacherVo vo : hotTeacherList){
|
|
|
- if(watchTeacherIdList.contains(vo.getUserId())){
|
|
|
+ for (HotTeacherVo vo : hotTeacherList) {
|
|
|
+ if (watchTeacherIdList.contains(vo.getUserId())) {
|
|
|
vo.setWatch(true);
|
|
|
}
|
|
|
}
|
|
@@ -806,8 +826,10 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
}
|
|
|
|
|
|
// 老师学生人数统计
|
|
|
- Map<Long, Integer> studentNumsMap = getBaseMapper().selectTeacherStudentNumberStatInfo(Lists.newArrayList(teacherId)).stream()
|
|
|
- .collect(Collectors.toMap(StatGroupWrapper::getId, StatGroupWrapper::getTotal, (o, n) -> n));
|
|
|
+ Map<Long, Integer> studentNumsMap =
|
|
|
+ getBaseMapper().selectTeacherStudentNumberStatInfo(Lists.newArrayList(teacherId)).stream()
|
|
|
+ .collect(Collectors.toMap(StatGroupWrapper::getId, StatGroupWrapper::getTotal,
|
|
|
+ (o, n) -> n));
|
|
|
|
|
|
teacherInfo.setStudentNums(studentNumsMap.getOrDefault(teacherId, 0));
|
|
|
}
|
|
@@ -856,4 +878,34 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
return wrapper;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void updateTenant(TeacherWrapper.UpdateTenant updateTenant) {
|
|
|
+ Teacher teacher = this.getById(updateTenant.getTeacherId());
|
|
|
+ if (teacher.getTenantId().equals(updateTenant.getTenantId())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Long oldTenantId = teacher.getTenantId();
|
|
|
+ if (oldTenantId != -1L) {
|
|
|
+ //todo 退群,解散群,删好友
|
|
|
+ }
|
|
|
+
|
|
|
+ teacher.setTenantId(updateTenant.getTenantId());
|
|
|
+ this.updateById(teacher);
|
|
|
+
|
|
|
+ List<TenantUnbindRecord> tenantUnbindRecords = tenantUnbindRecordMapper.getRecord(oldTenantId,
|
|
|
+ updateTenant.getTeacherId(), "TEACHER");
|
|
|
+ Optional<TenantUnbindRecord> first = tenantUnbindRecords.stream()
|
|
|
+ .filter(next -> next.getStatus().equals(ETenantUnBindAuditStatus.DOING)).findFirst();
|
|
|
+ if (first.isPresent()) {
|
|
|
+ TenantUnbindRecord tenantUnbindRecord = first.get();
|
|
|
+ tenantUnbindRecord.setStatus(ETenantUnBindAuditStatus.CLOSE);
|
|
|
+ tenantUnbindRecordMapper.updateById(tenantUnbindRecord);
|
|
|
+
|
|
|
+ TenantUnbindHistory history = JSON.parseObject(JSON.toJSONString(tenantUnbindRecord),
|
|
|
+ TenantUnbindHistory.class);
|
|
|
+ tenantUnbindHistoryMapper.insert(history);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|