|
@@ -9,10 +9,12 @@ import java.util.stream.Collectors;
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.*;
|
|
|
import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.SubjectService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
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 org.redisson.api.RMap;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
@@ -36,30 +38,11 @@ import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.TeacherDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.req.TeacherSubmitReq;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.Student;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.StudentStar;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.Subject;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.Teacher;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.TeacherAuthMusicianRecord;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.UserAccount;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.TeacherTypeEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.StudentService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.StudentStarService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.SysConfigService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.SysMessageService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.TeacherAuthEntryRecordService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.TeacherAuthMusicianRecordService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.TeacherService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.TeacherStyleVideoService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.TeacherTotalService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.UserAccountService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.UserFirstTimeService;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.HotTeacherVo;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.MyFens;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo;
|
|
@@ -120,6 +103,18 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
@Autowired
|
|
|
private SysMessageService sysMessageService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TenantInfoService tenantInfoService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ImGroupService imGroupService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ImGroupMemberService imGroupMemberService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ImUserFriendService imUserFriendService;
|
|
|
+
|
|
|
@Override
|
|
|
public TeacherVo detail(Long userId) {
|
|
|
TeacherVo detail = baseMapper.detail(userId);
|
|
@@ -167,6 +162,19 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
teacherVo.setSubjectName(subjectNames);
|
|
|
}
|
|
|
|
|
|
+ // 设置机构名称
|
|
|
+ List<Long> tenantIdList = teacherVos.stream().map(TeacherVo::getTenantId)
|
|
|
+ .filter(next -> next != null && !next.equals(-1L)).distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (!tenantIdList.isEmpty()) {
|
|
|
+ Map<Long, String> tenantIdNameMap = tenantInfoService.lambdaQuery().in(TenantInfo::getId, tenantIdList)
|
|
|
+ .list().stream().collect(Collectors.toMap(TenantInfo::getId, TenantInfo::getName));
|
|
|
+ tenantIdNameMap.put(-1L, "平台老师");
|
|
|
+ for (TeacherVo next : teacherVos) {
|
|
|
+ next.setTenantName(tenantIdNameMap.getOrDefault(next.getTenantId(), ""));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return page.setRecords(teacherVos);
|
|
|
}
|
|
|
|
|
@@ -384,6 +392,26 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
.eq(Teacher::getUserId, teacher.getUserId())
|
|
|
);
|
|
|
}
|
|
|
+
|
|
|
+ // 机构发生变化
|
|
|
+ if (!teacher.getTenantId().equals(teacherSubmitReq.getTenantId())) {
|
|
|
+ // 老师建立的班级群解散,并解除好友关系
|
|
|
+ List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
|
|
|
+ .eq(ImGroupMember::getIsAdmin,true)
|
|
|
+ .eq(ImGroupMember::getUserId, teacher.getUserId()).list();
|
|
|
+ if (!groupMembers.isEmpty()) {
|
|
|
+ List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId).distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ groupIdList.forEach(next -> {
|
|
|
+ try {
|
|
|
+ imGroupService.dismiss(next);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("解散群聊失败,", e);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ imUserFriendService.delFriendByTenantId(teacher.getTenantId(), teacher.getUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return teacher;
|
|
@@ -446,6 +474,12 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
teacher.setMusicianDate(null);
|
|
|
teacher.setIsSettlement(teacherSubmitReq.getIsSettlement());
|
|
|
teacher.setIsTestUser(teacherSubmitReq.getIsTestUser());
|
|
|
+ teacher.setTenantId(teacherSubmitReq.getTenantId() == null ? -1L : teacherSubmitReq.getTenantId());
|
|
|
+ if (teacher.getTenantId() == -1L) {
|
|
|
+ teacher.setSettlementFrom(ESettlementFrom.TEACHER);
|
|
|
+ } else {
|
|
|
+ teacher.setSettlementFrom(teacherSubmitReq.getSettlementFrom());
|
|
|
+ }
|
|
|
if (StringUtil.isEmpty(teacherSubmitReq.getTeacherType())) {
|
|
|
return teacher;
|
|
|
}
|
|
@@ -647,6 +681,7 @@ 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());
|
|
|
return page.setRecords(teacherVos);
|