Bläddra i källkod

Merge remote-tracking branch 'origin/feature/0721-tenant' into feature/0721-tenant

zouxuan 1 år sedan
förälder
incheckning
49a9c2dd0c

+ 4 - 3
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java

@@ -208,15 +208,16 @@ public class StudentController extends BaseController {
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        if (user.getTenantId() == null || user.getTenantId() == -1L) {
-            return failed("非机构用户不允许更换机构");
-        }
 
         Student student = studentService.getById(user.getId());
         if (student == null) {
             return failed("未查询到学生的信息");
         }
 
+        if (student.getTenantId() == null || student.getTenantId() == -1L) {
+            return failed("非机构用户不允许更换机构");
+        }
+
         studentService.updateTenant(student, updateTenant.getTenantId());
         return succeed();
     }

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

@@ -498,10 +498,11 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void updateTenant(Student student, Long toTenantId) {
-        if (student.getTenantId().equals(toTenantId)) {
+        Long tenantId = student.getTenantId();
+        if (tenantId.equals(toTenantId)) {
             return;
         }
-        if (!student.getTenantId().equals(-1L)) {
+        if (!tenantId.equals(-1L)) {
             List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
                     .eq(ImGroupMember::getUserId, student.getUserId())
                     .eq(ImGroupMember::getRoleType, ClientEnum.STUDENT.getCode())
@@ -515,6 +516,19 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                     log.error("退出群聊失败", e);
                 }
             }
+            // 删除机构好友关系
+            imUserFriendService.delFriendByTenantId(tenantId, student.getUserId());
+        }
+        if (toTenantId != null && toTenantId != -1L) {
+            // 加好友
+            QueryWrapper<Teacher> query = new QueryWrapper<>();
+            query.lambda().eq(Teacher::getTenantId, toTenantId);
+            List<Teacher> teachers = teacherDao.selectList(query);
+            for (Teacher teacher : teachers) {
+                HashSet<Long> studentIds = new HashSet<>();
+                studentIds.add(student.getUserId());
+                imUserFriendService.saveUserFriend(teacher.getUserId(), studentIds);
+            }
         }
         this.lambdaUpdate().set(Student::getTenantId, toTenantId)
                 .eq(Student::getUserId, student.getUserId())
@@ -526,12 +540,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     public void addStudent(StudentWrapper.Student student) {
         // 更新头像
         if (StringUtils.isEmpty(student.getAvatar())) {
-            String avatar;
-            if (student.getGender().equals(1)) {
-                avatar = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD_BOY);
-            } else {
-                avatar = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD_GIRL);
-            }
+            String avatar = sysConfigService.findConfigValue(SysConfigConstant.STUDENT_AVATAR);
             student.setAvatar(avatar);
         }
         SysUser sysUser = employeeDao.querySysUserByPhone(student.getPhone());
@@ -550,6 +559,9 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             //插入
             employeeDao.insertSysUser(sysUser);
         } else {
+            if(StringUtils.isNotEmpty(sysUser.getUserType()) && sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())){
+                throw new BizException("手机号已经注册学生账号");
+            }
             if (StringUtil.isEmpty(sysUser.getUserType())) {
                 sysUser.setUserType(ClientEnum.STUDENT.getCode());
             } else if (!sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())) {

+ 10 - 8
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -102,17 +102,18 @@ public class StudentController extends BaseController {
         });
 
 
-        Map<Long, List<TenantActivationCode>> groupByUserId = new HashMap<>();
+        Map<String, List<TenantActivationCode>> groupByPhone = new HashMap<>();
         if (!rows.isEmpty() && query.getTenantAlbumPurchaseId() != null) {
-            List<String> studentPhones = rows.stream().map(StudentVo::getPhone).collect(Collectors.toList());
-             groupByUserId = tenantActivationCodeService.lambdaQuery()
+            List<String> studentPhones =
+                    rows.stream().map(StudentVo::getPhone).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
+             groupByPhone = tenantActivationCodeService.lambdaQuery()
                     .eq(TenantActivationCode::getId, query.getTenantAlbumPurchaseId())
                     .in(TenantActivationCode::getActivationPhone, studentPhones)
-                    .list().stream().collect(Collectors.groupingBy(TenantActivationCode::getActivationUserId));
+                    .list().stream().collect(Collectors.groupingBy(TenantActivationCode::getActivationPhone));
         }
 
         for (StudentVo vo : rows) {
-            vo.setSendActiveCodeNum(groupByUserId.getOrDefault(vo.getUserId(), new ArrayList<>()).size());
+            vo.setSendActiveCodeNum(groupByPhone.getOrDefault(vo.getPhone(), new ArrayList<>()).size());
             if (StringUtils.isNotEmpty(vo.getPhone())) {
                 vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"));
             }
@@ -163,11 +164,12 @@ public class StudentController extends BaseController {
         studentService.save(studentInfo);
 
         // 加好友
-        if (studentInfo.getId() == null) {
-            SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
+        SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
+        Student newStudent = studentService.getById(sysUser.getId());
+        if (newStudent.getTenantId()!= null && newStudent.getTenantId()!=-1L) {
             // 自动与机构老师成为好友
             List<Teacher> teacherList = teacherService.lambdaQuery()
-                    .eq(Teacher::getTenantId, studentInfo.getTenantId()).list();
+                    .eq(Teacher::getTenantId, newStudent.getTenantId()).list();
             teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
                     new HashSet<>(ImmutableList.of(sysUser.getId()))));
         }

+ 5 - 2
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

@@ -134,6 +134,8 @@ public class OpenStudentController extends BaseController {
                                 log.error("学生注册,切换机构退群失败:{}", e.getMessage());
                             }
                         });
+                        // 删除好友
+                        imUserFriendService.delFriendByTenantId(tenantId, one.getUserId());
                     }
                 }
 
@@ -151,8 +153,9 @@ public class OpenStudentController extends BaseController {
         studentService.save(studentInfo);
 
         // 加好友
-        if (student.getId() == null) {
-            SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
+        SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
+        Student newStudent = studentService.getById(sysUser.getId());
+        if (newStudent.getTenantId()!= null && newStudent.getTenantId()!=-1L) {
             // 自动与机构老师成为好友
             List<Teacher> teacherList = teacherService.lambdaQuery()
                     .eq(Teacher::getTenantId, tenantId).list();