|
@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -27,6 +28,7 @@ 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.enums.im.EImGroupMemberRoleType;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.im.EImUserFriendSourceForm;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.UserTenantBindRecordMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
|
|
@@ -328,8 +330,13 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResponseResult<Boolean> submit(TeacherSubmitReq teacherSubmitReq) throws BizException {
|
|
|
+ Long tenantId = teacherSubmitReq.getTenantId();
|
|
|
+ Boolean customerService = teacherSubmitReq.getCustomerService();
|
|
|
+ if (tenantId != null && tenantId > 0 && Boolean.TRUE.equals(customerService)) {
|
|
|
+ throw new BizException("客服不能有机构老师身份");
|
|
|
+ }
|
|
|
// todo 暂时不上客服相关
|
|
|
- teacherSubmitReq.setCustomerService(null);
|
|
|
+// teacherSubmitReq.setCustomerService(null);
|
|
|
if (null == teacherSubmitReq.getUserId()) {
|
|
|
|
|
|
if (StringUtils.isNoneBlank(teacherSubmitReq.getPhone(), teacherSubmitReq.getCode())) {
|
|
@@ -540,7 +547,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
.eq(Student::getTenantId, teacher.getTenantId()).list().stream()
|
|
|
.map(Student::getUserId).collect(Collectors.toSet());
|
|
|
|
|
|
- imUserFriendService.saveUserFriend(teacher.getUserId(), collect);
|
|
|
+ imUserFriendService.saveUserFriend(teacher.getUserId(), collect, EImUserFriendSourceForm.TEACHER);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -626,10 +633,11 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
|
|
|
// 与客服建立好友
|
|
|
if (!Boolean.TRUE.equals(teacher.getCustomerService())) {
|
|
|
- Teacher customerServiceTeacher = getCustomerServiceByFriendLeast();
|
|
|
- if (customerServiceTeacher != null) {
|
|
|
+ List<TeacherWrapper.TeacherFriend> customerServiceFriendNums = this.getBaseMapper().getCustomerServiceFriendNums();
|
|
|
+ if (!customerServiceFriendNums.isEmpty()) {
|
|
|
+ Long teacherId = customerServiceFriendNums.get(0).getTeacherId();
|
|
|
imUserFriendService.registerUserBindCustomerService(teacher.getUserId(),
|
|
|
- Collections.singletonList(customerServiceTeacher.getUserId()), ClientEnum.TEACHER);
|
|
|
+ Collections.singletonList(teacherId), ClientEnum.TEACHER);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -637,7 +645,12 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
Boolean customerService = teacher.getCustomerService();
|
|
|
List<TeacherWrapper.CustomerServiceSendMsg2User> customerServiceSendMsg2User = new ArrayList<>();
|
|
|
if (Boolean.TRUE.equals(customerService) && Boolean.FALSE.equals(teacherSubmitReq.getCustomerService())) {
|
|
|
- customerServiceSendMsg2User.addAll(transferFriend(teacher.getUserId(), true));
|
|
|
+ customerServiceSendMsg2User.addAll(transferFriendV2(teacher.getUserId(), true));
|
|
|
+ clearUserCustomerRelation(teacherSubmitReq.getUserId());
|
|
|
+ this.update(null, new UpdateWrapper<Teacher>().lambda()
|
|
|
+ .set(Teacher::getCustomerId, null)
|
|
|
+ .eq(Teacher::getUserId, teacherSubmitReq.getUserId()));
|
|
|
+ teacher.setCustomerId(null);
|
|
|
}
|
|
|
// 如果机构解绑,更新机构ID为-1
|
|
|
if (Boolean.TRUE.equals(teacherSubmitReq.getBindTenant())) {
|
|
@@ -690,8 +703,17 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
return teacher;
|
|
|
}
|
|
|
|
|
|
- // 客服好友移交给其他客服
|
|
|
- private List<TeacherWrapper.CustomerServiceSendMsg2User> transferFriend(Long userId, boolean saveGroupFriend) {
|
|
|
+ // 清除专属客服信息
|
|
|
+ private void clearUserCustomerRelation(Long userId) {
|
|
|
+ this.update(null, new UpdateWrapper<Teacher>().lambda()
|
|
|
+ .eq(Teacher::getCustomerId, userId)
|
|
|
+ .set(Teacher::getCustomerId, null));
|
|
|
+ studentService.update(null, new UpdateWrapper<Student>().lambda()
|
|
|
+ .eq(Student::getCustomerId, userId)
|
|
|
+ .set(Student::getCustomerId, null));
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<TeacherWrapper.CustomerServiceSendMsg2User> transferFriendV2(Long userId, boolean saveGroupFriend){
|
|
|
List<TeacherWrapper.CustomerServiceSendMsg2User> result = new ArrayList<>();
|
|
|
// 所有的好友
|
|
|
List<ImUserFriend> userFriendList = imUserFriendService.lambdaQuery()
|
|
@@ -699,6 +721,25 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
.eq(ImUserFriend::getClientType, ClientEnum.TEACHER)
|
|
|
.list();
|
|
|
|
|
|
+ // 好友保留
|
|
|
+ userFriendList.stream().filter(n -> Boolean.FALSE.equals(saveGroupFriend) || EImUserFriendSourceForm.CUSTOMER.equals(n.getSourceForm()))
|
|
|
+ .collect(Collectors.groupingBy(ImUserFriend::getFriendType)).forEach((client, friends) -> {
|
|
|
+ List<Long> friendIds = friends.stream().map(ImUserFriend::getFriendId).collect(Collectors.toList());
|
|
|
+ imUserFriendService.lambdaUpdate()
|
|
|
+ .eq(ImUserFriend::getUserId, userId)
|
|
|
+ .eq(ImUserFriend::getClientType, ClientEnum.TEACHER)
|
|
|
+ .in(ImUserFriend::getFriendId, friendIds)
|
|
|
+ .eq(ImUserFriend::getFriendType, client)
|
|
|
+ .remove();
|
|
|
+
|
|
|
+ imUserFriendService.lambdaUpdate()
|
|
|
+ .eq(ImUserFriend::getFriendId, userId)
|
|
|
+ .eq(ImUserFriend::getFriendType, ClientEnum.TEACHER)
|
|
|
+ .in(ImUserFriend::getUserId, friendIds)
|
|
|
+ .eq(ImUserFriend::getClientType, client)
|
|
|
+ .remove();
|
|
|
+ });
|
|
|
+
|
|
|
// 其他客服
|
|
|
List<TeacherWrapper.TeacherFriend> customerServiceFriendNums = this.getBaseMapper().getCustomerServiceFriendNums();
|
|
|
customerServiceFriendNums.removeIf(n -> n.getTeacherId().equals(userId));
|
|
@@ -708,117 +749,34 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- List<ImUserFriend> removeFriendList = userFriendList;
|
|
|
- if (saveGroupFriend) {
|
|
|
- // 群里的好友保留
|
|
|
- List<String> groupIdList = imGroupMemberService.lambdaQuery()
|
|
|
- .eq(ImGroupMember::getUserId, userId)
|
|
|
- .eq(ImGroupMember::getIsAdmin, true)
|
|
|
- .eq(ImGroupMember::getGroupRoleType, EImGroupMemberRoleType.Owner)
|
|
|
- .list()
|
|
|
- .stream()
|
|
|
- .map(ImGroupMember::getGroupId).collect(Collectors.toList());
|
|
|
-
|
|
|
- List<Long> savedTeacherIdList = new ArrayList<>();
|
|
|
- List<Long> savedStudentIdList = new ArrayList<>();
|
|
|
-
|
|
|
- if (!groupIdList.isEmpty()) {
|
|
|
- List<ImGroupMember> savedMemberList = imGroupMemberService.lambdaQuery()
|
|
|
- .in(ImGroupMember::getGroupId, groupIdList)
|
|
|
- .eq(ImGroupMember::getIsAdmin, false)
|
|
|
- .ne(ImGroupMember::getGroupRoleType, EImGroupMemberRoleType.Owner)
|
|
|
- .list();
|
|
|
-
|
|
|
- savedTeacherIdList.addAll(savedMemberList.stream()
|
|
|
- .filter(n -> ImGroupMemberRoleType.TEACHER.equals(n.getRoleType()))
|
|
|
- .map(ImGroupMember::getUserId)
|
|
|
- .collect(Collectors.toList()));
|
|
|
-
|
|
|
- savedStudentIdList.addAll(savedMemberList.stream()
|
|
|
- .filter(n -> ImGroupMemberRoleType.STUDENT.equals(n.getRoleType()))
|
|
|
- .map(ImGroupMember::getUserId)
|
|
|
- .collect(Collectors.toList()));
|
|
|
- }
|
|
|
-
|
|
|
- // 机构好友保留
|
|
|
- Teacher teacher = this.getById(userId);
|
|
|
- List<Long> tenantTeacherIds = new ArrayList<>();
|
|
|
- List<Long> tenantStudentIds = new ArrayList<>();
|
|
|
- if (teacher.getTenantId() > 0) {
|
|
|
- List<Long> teacherIdList = userFriendList.stream().filter(n -> ClientEnum.TEACHER.equals(n.getFriendType())).map(ImUserFriend::getFriendId).collect(Collectors.toList());
|
|
|
- List<Long> studentIdList = userFriendList.stream().filter(n -> ClientEnum.STUDENT.equals(n.getFriendType())).map(ImUserFriend::getFriendId).collect(Collectors.toList());
|
|
|
- if (!teacherIdList.isEmpty()) {
|
|
|
- List<Long> tenantTeacherIdsTemp = this.lambdaQuery().in(Teacher::getUserId, teacherIdList)
|
|
|
- .eq(Teacher::getTenantId, teacher.getTenantId())
|
|
|
- .list()
|
|
|
- .stream().filter(n -> n.getTenantId() > 0).map(Teacher::getUserId).collect(Collectors.toList());
|
|
|
- tenantTeacherIds.addAll(tenantTeacherIdsTemp);
|
|
|
- }
|
|
|
- if (!studentIdList.isEmpty()) {
|
|
|
- List<Long> tenantStudentIdsTemp = studentService.lambdaQuery().in(Student::getUserId, studentIdList)
|
|
|
- .eq(Student::getTenantId, teacher.getTenantId())
|
|
|
- .list()
|
|
|
- .stream().filter(n -> n.getTenantId() > 0).map(Student::getUserId).collect(Collectors.toList());
|
|
|
- tenantStudentIds.addAll(tenantStudentIdsTemp);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 删除的好友
|
|
|
- removeFriendList = userFriendList.stream().filter(n -> {
|
|
|
- if (ClientEnum.STUDENT.equals(n.getFriendType())) {
|
|
|
- if (tenantStudentIds.contains(n.getFriendId())) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- return !savedStudentIdList.contains(n.getFriendId());
|
|
|
- }
|
|
|
- if (ClientEnum.TEACHER.equals(n.getFriendType())) {
|
|
|
- if (tenantTeacherIds.contains(n.getFriendId())) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- return !savedTeacherIdList.contains(n.getFriendId());
|
|
|
- }
|
|
|
- return false;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- }
|
|
|
-
|
|
|
- // 删除好友
|
|
|
- removeFriendList.stream().collect(Collectors.groupingBy(ImUserFriend::getFriendType)).forEach((client, friends) -> {
|
|
|
- List<Long> friendIds = friends.stream().map(ImUserFriend::getFriendId).collect(Collectors.toList());
|
|
|
- imUserFriendService.lambdaUpdate()
|
|
|
- .eq(ImUserFriend::getUserId, userId)
|
|
|
- .eq(ImUserFriend::getClientType, ClientEnum.TEACHER)
|
|
|
- .in(ImUserFriend::getFriendId, friendIds)
|
|
|
- .eq(ImUserFriend::getFriendType, client)
|
|
|
- .remove();
|
|
|
-
|
|
|
- imUserFriendService.lambdaUpdate()
|
|
|
- .eq(ImUserFriend::getFriendId, userId)
|
|
|
- .eq(ImUserFriend::getFriendType, ClientEnum.TEACHER)
|
|
|
- .in(ImUserFriend::getUserId, friendIds)
|
|
|
- .eq(ImUserFriend::getClientType, client)
|
|
|
- .remove();
|
|
|
- });
|
|
|
-
|
|
|
if (customerIds.isEmpty()) {
|
|
|
return result;
|
|
|
}
|
|
|
- // 去除好友里面存在其他客服关系的好友,只有没有客服好友的好友,才需要与客服建立好友关系
|
|
|
+
|
|
|
+ // 好友分配
|
|
|
+ // 存在专属客服的好友不需要分配
|
|
|
List<ImUserFriend> teacherFriends = userFriendList.stream().filter(n -> ClientEnum.TEACHER.equals(n.getFriendType())).collect(Collectors.toList());
|
|
|
if (!teacherFriends.isEmpty()) {
|
|
|
- String teacherFriendIds = teacherFriends.stream().map(n -> n.getFriendId().toString()).distinct().collect(Collectors.joining(","));
|
|
|
- List<Long> existFriendIds = imUserFriendService.getDao().queryExistCustomerServiceFriend(teacherFriendIds, ClientEnum.TEACHER.getCode())
|
|
|
+ List<Long> teacherFriendIds = teacherFriends.stream().map(ImUserFriend::getFriendId).distinct().collect(Collectors.toList());
|
|
|
+ List<Long> existFriendIds = this.lambdaQuery()
|
|
|
+ .in(Teacher::getUserId, teacherFriendIds)
|
|
|
+ .list()
|
|
|
.stream()
|
|
|
- .map(ImUserFriend::getUserId)
|
|
|
+ .filter(n -> customerIds.contains(n.getCustomerId()))
|
|
|
+ .map(Teacher::getUserId)
|
|
|
.collect(Collectors.toList());
|
|
|
userFriendList.removeIf(n -> ClientEnum.TEACHER.equals(n.getFriendType()) && existFriendIds.contains(n.getFriendId()));
|
|
|
}
|
|
|
|
|
|
List<ImUserFriend> studentFriends = userFriendList.stream().filter(n -> ClientEnum.STUDENT.equals(n.getFriendType())).collect(Collectors.toList());
|
|
|
if (!studentFriends.isEmpty()) {
|
|
|
- String studentFriendIds = studentFriends.stream().map(n -> n.getFriendId().toString()).distinct().collect(Collectors.joining(","));
|
|
|
- List<Long> existFriendIds = imUserFriendService.getDao().queryExistCustomerServiceFriend(studentFriendIds, ClientEnum.STUDENT.getCode())
|
|
|
+ List<Long> studentFriendIds = studentFriends.stream().map(ImUserFriend::getFriendId).distinct().collect(Collectors.toList());
|
|
|
+ List<Long> existFriendIds = studentService.lambdaQuery()
|
|
|
+ .in(Student::getUserId, studentFriendIds)
|
|
|
+ .list()
|
|
|
.stream()
|
|
|
- .map(ImUserFriend::getUserId)
|
|
|
+ .filter(n -> customerIds.contains(n.getCustomerId()))
|
|
|
+ .map(Student::getUserId)
|
|
|
.collect(Collectors.toList());
|
|
|
userFriendList.removeIf(n -> ClientEnum.STUDENT.equals(n.getFriendType()) && existFriendIds.contains(n.getFriendId()));
|
|
|
}
|
|
@@ -846,7 +804,16 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
}
|
|
|
|
|
|
teacherFriendMap.forEach((teacherId, teacherIds) -> {
|
|
|
- imUserFriendService.saveUserTeacherFriend(teacherId, teacherIds);
|
|
|
+ List<Long> sameTenant = getSameTenant(teacherId, teacherIds, ClientEnum.TEACHER);
|
|
|
+ Set<Long> same = teacherIds.stream().filter(sameTenant::contains).collect(Collectors.toSet());
|
|
|
+ if (!same.isEmpty()) {
|
|
|
+ imUserFriendService.saveUserTeacherFriend(teacherId, same, EImUserFriendSourceForm.TEACHER);
|
|
|
+ imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(same), ClientEnum.TEACHER);
|
|
|
+ }
|
|
|
+ Set<Long> notSame = teacherIds.stream().filter(n->!sameTenant.contains(n)).collect(Collectors.toSet());
|
|
|
+ imUserFriendService.saveUserTeacherFriend(teacherId, notSame, EImUserFriendSourceForm.CUSTOMER);
|
|
|
+
|
|
|
+ this.lambdaUpdate().set(Teacher::getCustomerId,teacherId).in(Teacher::getUserId,teacherIds).update();
|
|
|
// 发送消息
|
|
|
TeacherWrapper.CustomerServiceSendMsg2User customerServiceSendMsg2User = new TeacherWrapper.CustomerServiceSendMsg2User();
|
|
|
customerServiceSendMsg2User.setCustomerId(teacherId);
|
|
@@ -855,16 +822,43 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
// imUserFriendService.sendCustomerServiceAddFriendMessage(teacherId, customerTitle, customerMessage, new ArrayList<>(teacherIds), ClientEnum.TEACHER);
|
|
|
});
|
|
|
studentFriendMap.forEach((teacherId, studentIds) -> {
|
|
|
- imUserFriendService.saveUserFriend(teacherId, studentIds);
|
|
|
+ List<Long> sameTenant = getSameTenant(teacherId, studentIds, ClientEnum.STUDENT);
|
|
|
+ Set<Long> same = studentIds.stream().filter(sameTenant::contains).collect(Collectors.toSet());
|
|
|
+ if (!same.isEmpty()) {
|
|
|
+ imUserFriendService.saveUserFriend(teacherId, same, EImUserFriendSourceForm.TEACHER);
|
|
|
+ imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(same), ClientEnum.STUDENT);
|
|
|
+ }
|
|
|
+ Set<Long> notSame = studentIds.stream().filter(n->!sameTenant.contains(n)).collect(Collectors.toSet());
|
|
|
+ imUserFriendService.saveUserFriend(teacherId, notSame, EImUserFriendSourceForm.CUSTOMER);
|
|
|
+
|
|
|
+ studentService.lambdaUpdate().set(Student::getCustomerId, teacherId).in(Student::getUserId, studentIds).update();
|
|
|
TeacherWrapper.CustomerServiceSendMsg2User customerServiceSendMsg2User = new TeacherWrapper.CustomerServiceSendMsg2User();
|
|
|
customerServiceSendMsg2User.setCustomerId(teacherId);
|
|
|
- customerServiceSendMsg2User.getTeacherIds().addAll(studentIds);
|
|
|
+ customerServiceSendMsg2User.getStudentIds().addAll(studentIds);
|
|
|
result.add(customerServiceSendMsg2User);
|
|
|
// imUserFriendService.sendCustomerServiceAddFriendMessage(teacherId, customerTitle, customerMessage, new ArrayList<>(studentIds), ClientEnum.STUDENT);
|
|
|
});
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ private List<Long> getSameTenant(Long teacherId, Set<Long> userIds, ClientEnum clientEnum) {
|
|
|
+ Teacher teacher = this.getById(teacherId);
|
|
|
+ Long tenantId = teacher.getTenantId();
|
|
|
+ if (tenantId == null || tenantId <= 0) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ if (ClientEnum.STUDENT.equals(clientEnum)) {
|
|
|
+ return studentService.lambdaQuery().in(Student::getUserId, userIds).list()
|
|
|
+ .stream().filter(n -> tenantId.equals(n.getTenantId()))
|
|
|
+ .map(Student::getUserId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (ClientEnum.TEACHER.equals(clientEnum)) {
|
|
|
+ return this.lambdaQuery().in(Teacher::getUserId, userIds).list()
|
|
|
+ .stream().filter(n -> tenantId.equals(n.getTenantId()))
|
|
|
+ .map(Teacher::getUserId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
/***
|
|
|
* 封装用户信息
|
|
|
* @author liweifan
|
|
@@ -1336,10 +1330,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
});
|
|
|
}
|
|
|
// 删除好友关系
|
|
|
- Boolean customerService = teacher.getCustomerService();
|
|
|
- if (Boolean.FALSE.equals(customerService)) {
|
|
|
- imUserFriendService.delStudentFriendByTenantId(teacher.getTenantId(), teacher.getUserId(), ClientEnum.TEACHER.getCode());
|
|
|
- }
|
|
|
+ imUserFriendService.delStudentFriendByTenantId(teacher.getTenantId(), teacher.getUserId(), ClientEnum.TEACHER.getCode());
|
|
|
addBindUnBindRecord(teacher.getUserId(), teacher.getTenantId(), false);
|
|
|
SysUser sysUser = sysUserMapper.getByUserId(teacher.getUserId());
|
|
|
sendBindUnBindSMS(teacher.getUserId(), sysUser.getPhone(), MessageTypeEnum.TEACHER_UNBIND_TENANT, teacher.getTenantId());
|
|
@@ -1363,7 +1354,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
.collect(Collectors.toSet());
|
|
|
|
|
|
if (!collect.isEmpty()) {
|
|
|
- imUserFriendService.saveUserFriend(teacher.getUserId(), collect);
|
|
|
+ imUserFriendService.saveUserFriend(teacher.getUserId(), collect, EImUserFriendSourceForm.TEACHER);
|
|
|
+ imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(collect), ClientEnum.STUDENT);
|
|
|
}
|
|
|
addBindUnBindRecord(teacher.getUserId(),updateTenant.getTenantId(),true);
|
|
|
SysUser sysUser = sysUserMapper.getByUserId(teacher.getUserId());
|
|
@@ -1511,16 +1503,23 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
|
if (teacher == null) {
|
|
|
throw new BizException("无效的老师账号");
|
|
|
}
|
|
|
+ Long tenantId = teacher.getTenantId();
|
|
|
+ Boolean customerService = teacher.getCustomerService();
|
|
|
+ if (tenantId != null && tenantId > 0 && Boolean.TRUE.equals(customerService)) {
|
|
|
+ throw new BizException("客服不能有机构老师身份");
|
|
|
+ }
|
|
|
|
|
|
- // todo 暂时不上,逻辑调整
|
|
|
// 冻结客服,移交好友给其他客服
|
|
|
-// Boolean customerService = teacher.getCustomerService();
|
|
|
- Boolean customerService = null;
|
|
|
if (UserLockFlag.NORMAL.equals(teacher.getLockFlag()) && Boolean.TRUE.equals(customerService)) {
|
|
|
- List<TeacherWrapper.CustomerServiceSendMsg2User> customerServiceSendMsg2User = transferFriend(teacherId, false);
|
|
|
- String customerMessage = sysConfigService.findConfigValue(SysConfigConstant.CUSTOMER_SERVICE_ADD_MSG);
|
|
|
- String customerTitle = sysConfigService.findConfigValue(SysConfigConstant.CUSTOMER_SERVICE_ADD_MSG_TITLE);
|
|
|
+ List<TeacherWrapper.CustomerServiceSendMsg2User> customerServiceSendMsg2User = transferFriendV2(teacherId, false);
|
|
|
+ clearUserCustomerRelation(teacherId);
|
|
|
+ this.update(null, new UpdateWrapper<Teacher>().lambda()
|
|
|
+ .set(Teacher::getCustomerId, null)
|
|
|
+ .eq(Teacher::getUserId, teacherId));
|
|
|
+ teacher.setCustomerId(null);
|
|
|
for (TeacherWrapper.CustomerServiceSendMsg2User serviceSendMsg2User : customerServiceSendMsg2User) {
|
|
|
+ String customerMessage = sysConfigService.findConfigValue(SysConfigConstant.CUSTOMER_SERVICE_ADD_MSG);
|
|
|
+ String customerTitle = sysConfigService.findConfigValue(SysConfigConstant.CUSTOMER_SERVICE_ADD_MSG_TITLE);
|
|
|
imUserFriendService.sendCustomerServiceAddFriendMessage(serviceSendMsg2User.getCustomerId(), customerTitle, customerMessage, serviceSendMsg2User.getTeacherIds(),
|
|
|
ClientEnum.TEACHER);
|
|
|
imUserFriendService.sendCustomerServiceAddFriendMessage(serviceSendMsg2User.getCustomerId(), customerTitle, customerMessage, serviceSendMsg2User.getStudentIds(),
|