瀏覽代碼

添加刷新状态

yuanliang 11 月之前
父節點
當前提交
fc208e34be

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImUserFriendDao.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
+import com.yonge.cooleshow.biz.dal.enums.im.EImUserFriendSourceForm;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java

@@ -75,5 +75,7 @@ public interface ImUserFriendService extends IService<ImUserFriend> {
     void delTeacherFriendByTenantId(Long tenantId, Long userId, String clientType);
 
     void delStudentFriendByTenantId(Long tenantId, Long userId, String clientType);
+
+    void refreshCustomer(Long userId, ClientEnum userClientType, List<Long> friendIds, ClientEnum friendClientType);
 }
 

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -1202,6 +1202,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         studentIds.add(studentId);
         try {
             imUserFriendService.saveUserFriend(teacherId, studentIds, EImUserFriendSourceForm.TEACHER);
+            imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
             log.info("保存用户通讯录成功,teacherId:{},studentIds:{}", teacherId, studentIds);
         } catch (Exception e) {
             log.error("保存用户通讯录失败,teacherId:{},studentIds:{},e:{}", teacherId, studentIds, e);

+ 8 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -392,7 +392,12 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                         .eq(ImGroupMember::getGroupId, groupId)
                         .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.TEACHER)
                         .list();
-                    teacherList.forEach(teacher -> imUserFriendService.saveUserFriend(teacher.getUserId(), studentIdList, EImUserFriendSourceForm.TEACHER));
+                    teacherList.forEach(teacher ->
+                            {
+                                imUserFriendService.saveUserFriend(teacher.getUserId(), studentIdList, EImUserFriendSourceForm.TEACHER);
+                                imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIdList), ClientEnum.STUDENT);
+                            }
+                    );
                 }
             } catch (Exception e) {
                 log.error("加入群组失败,{}", e.getMessage(), e);
@@ -423,6 +428,8 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         Long teacherId = courseGroup.getTeacherId();
         //保存老师学员关联的通讯录xz
         imUserFriendService.saveUserFriend(teacherId, Sets.newHashSet(studentIds),EImUserFriendSourceForm.TEACHER);
+        imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
+
 
         // 直播课、琴房课校验群成员人数限制
         if (CourseScheduleEnum.PIANO_ROOM_CLASS.getCode().equals(courseGroupType)

+ 20 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java

@@ -2,7 +2,6 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -52,13 +51,10 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.tritonus.share.ArraySet;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Date;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -627,5 +623,25 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
     public void delStudentFriendByTenantId(Long tenantId, Long userId, String clientType) {
         this.baseMapper.delStudentFriendByTenantId(tenantId, userId, clientType);
     }
+
+    @Override
+    public void refreshCustomer(Long userId, ClientEnum userClientType, List<Long> friendIds, ClientEnum friendClientType) {
+
+        imUserFriendService.lambdaUpdate()
+                .set(ImUserFriend::getSourceForm, EImUserFriendSourceForm.TEACHER)
+                .eq(ImUserFriend::getUserId, userId)
+                .eq(ImUserFriend::getClientType, userClientType)
+                .in(ImUserFriend::getFriendId, friendIds)
+                .eq(ImUserFriend::getFriendType, friendClientType)
+                .update();
+
+        imUserFriendService.lambdaUpdate()
+                .set(ImUserFriend::getSourceForm, EImUserFriendSourceForm.TEACHER)
+                .in(ImUserFriend::getUserId, friendIds)
+                .eq(ImUserFriend::getClientType, friendClientType)
+                .eq(ImUserFriend::getFriendId, userId)
+                .eq(ImUserFriend::getFriendType, userClientType)
+                .update();
+    }
 }
 

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentDivMemberRecordServiceImpl.java

@@ -465,6 +465,7 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         studentIds.add(studentId);
         try {
             imUserFriendService.saveUserFriend(teacherId, studentIds, EImUserFriendSourceForm.TEACHER);
+            imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
             log.info("保存用户通讯录成功,teacherId:{},studentIds:{}", teacherId, studentIds);
         } catch (Exception e) {
             log.error("保存用户通讯录失败,teacherId:{},studentIds:{},e:{}", teacherId, studentIds, e);

+ 11 - 23
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -386,27 +386,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             studentIds.add(studentVo.getUserId());
             imUserFriendService.saveUserFriend(userId, studentIds, EImUserFriendSourceForm.TEACHER);
         }
-        Long customerId = studentVo.getCustomerId();
-        if (userId.equals(customerId)) {
-//            Set<Long> studentIds = new HashSet<>();
-//            studentIds.add(studentVo.getUserId());
-//            imUserFriendService.saveUserFriend(userId, studentIds, EImUserFriendSourceForm.TEACHER);
-            imUserFriendService.lambdaUpdate()
-                    .set(ImUserFriend::getSourceForm, EImUserFriendSourceForm.TEACHER)
-                    .eq(ImUserFriend::getUserId, userId)
-                    .eq(ImUserFriend::getClientType, ClientEnum.TEACHER)
-                    .eq(ImUserFriend::getFriendId, studentVo.getUserId())
-                    .eq(ImUserFriend::getFriendType, ClientEnum.STUDENT)
-                    .update();
-
-            imUserFriendService.lambdaUpdate()
-                    .set(ImUserFriend::getSourceForm, EImUserFriendSourceForm.TEACHER)
-                    .eq(ImUserFriend::getUserId, studentVo.getUserId())
-                    .eq(ImUserFriend::getClientType, ClientEnum.STUDENT)
-                    .eq(ImUserFriend::getFriendId, userId)
-                    .eq(ImUserFriend::getFriendType, ClientEnum.TEACHER)
-                    .update();
-        }
+        imUserFriendService.refreshCustomer(userId, ClientEnum.TEACHER, Collections.singletonList(studentVo.getUserId()), ClientEnum.STUDENT);
+//        }
         resMap.put("now", detail);
         return HttpResponseResult.succeed(resMap);
     }
@@ -668,6 +649,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 HashSet<Long> studentIds = new HashSet<>();
                 studentIds.add(student.getUserId());
                 imUserFriendService.saveUserFriend(teacher.getUserId(), studentIds, EImUserFriendSourceForm.TEACHER);
+                imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
             }
             addBindUnBindRecord(student.getUserId(),student.getTenantId(),true);
         }
@@ -759,6 +741,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 HashSet<Long> studentIds = new HashSet<>();
                 studentIds.add(student.getUserId());
                 imUserFriendService.saveUserFriend(teacher.getUserId(), studentIds,EImUserFriendSourceForm.TEACHER);
+                imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
             }
 
             addBindUnBindRecord(student.getUserId(),studentInfo.getTenantId(),true);
@@ -926,8 +909,13 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             QueryWrapper<Teacher> queryWrapper = new QueryWrapper<>();
             queryWrapper.lambda().eq(Teacher::getTenantId, student.getTenantId());
             List<Teacher> teacherList = teacherDao.selectList(queryWrapper);
-            teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
-                    new HashSet<>(ImmutableList.of(sysUser.getId())),EImUserFriendSourceForm.TEACHER));
+            teacherList.forEach(next ->
+                    {
+                        imUserFriendService.saveUserFriend(next.getUserId(), new HashSet<>(ImmutableList.of(sysUser.getId())), EImUserFriendSourceForm.TEACHER);
+                        imUserFriendService.refreshCustomer(next.getUserId(), ClientEnum.TEACHER, Collections.singletonList(sysUser.getId()), ClientEnum.STUDENT);
+                    }
+            );
+
 
             addBindUnBindRecord(student.getUserId(), student.getTenantId(), true);
         }

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

@@ -971,7 +971,10 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         teacherFriendMap.forEach((teacherId, teacherIds) -> {
             List<Long> sameTenant = getSameTenant(teacherId, teacherIds, ClientEnum.TEACHER);
             Set<Long> same = teacherIds.stream().filter(sameTenant::contains).collect(Collectors.toSet());
-            imUserFriendService.saveUserTeacherFriend(teacherId, same, EImUserFriendSourceForm.TEACHER);
+            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);
 
@@ -986,7 +989,10 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         studentFriendMap.forEach((teacherId, studentIds) -> {
             List<Long> sameTenant = getSameTenant(teacherId, studentIds, ClientEnum.STUDENT);
             Set<Long> same = studentIds.stream().filter(sameTenant::contains).collect(Collectors.toSet());
-            imUserFriendService.saveUserFriend(teacherId, same, EImUserFriendSourceForm.TEACHER);
+            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);
 
@@ -1489,10 +1495,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());
@@ -1516,7 +1519,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
                     .collect(Collectors.toSet());
 
             if (!collect.isEmpty()) {
-                imUserFriendService.saveUserFriend(teacher.getUserId(), collect,EImUserFriendSourceForm.TEACHER);
+                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());

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantUnbindRecordServiceImpl.java

@@ -16,6 +16,7 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.im.EImUserFriendSourceForm;
 import com.yonge.cooleshow.biz.dal.mapper.SysAreaMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantUnbindRecordMapper;