Przeglądaj źródła

Merge branch 'feature/0721-tenant' into develop

# Conflicts:
#	cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
#	cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java
yuanliang 1 rok temu
rodzic
commit
32c69f0183

+ 10 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java

@@ -232,4 +232,14 @@ public class StudentController extends BaseController {
         studentService.save(student);
         return succeed();
     }
+
+    @PostMapping("/update")
+    @ApiOperation(value = "修改", notes = "传入Student")
+    public HttpResponseResult<Boolean> update(@Validated @RequestBody StudentWrapper.Student student) {
+        if (student.getId() == null) {
+            throw new BizException("id 不能为空");
+        }
+        studentService.save(student);
+        return succeed();
+    }
 }

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

@@ -21,6 +21,8 @@ import com.yonge.cooleshow.biz.dal.dto.search.QueryMyFollowSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
 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.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumPurchaseMapper;
@@ -526,21 +528,28 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             return;
         }
         if (!tenantId.equals(-1L)) {
+            // 退群
             List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
+                    .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
+                    .eq(ImGroupMember::getIsAdmin, false)
                     .eq(ImGroupMember::getUserId, student.getUserId())
-                    .eq(ImGroupMember::getRoleType, ClientEnum.STUDENT.getCode())
-                    .eq(ImGroupMember::getIsAdmin, false).list();
-            List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId).distinct()
-                    .collect(Collectors.toList());
-            for (String groupId : groupIdList) {
-                try {
-                    imGroupService.quit(groupId, student.getUserId(), ClientEnum.STUDENT, true);
-                } catch (Exception e) {
-                    log.error("退出群聊失败", e);
-                }
+                    .list();
+            List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
+                    .distinct().collect(Collectors.toList());
+            if (!groupIdList.isEmpty()) {
+                List<String> orgGroupIdList = imGroupService.listByIds(groupIdList).stream()
+                        .filter(next -> ImGroupType.ORG.equals(next.getType())).map(ImGroup::getId)
+                        .collect(Collectors.toList());
+                orgGroupIdList.forEach(groupId -> {
+                    try {
+                        imGroupService.quit(groupId, student.getUserId(), ClientEnum.STUDENT);
+                    } catch (Exception e) {
+                        log.error("学生注册,切换机构退群失败:{}", e.getMessage());
+                    }
+                });
             }
-            // 删除机构好友关系
-            imUserFriendService.delTeacherFriendByTenantId(tenantId, student.getUserId(),ClientEnum.STUDENT.getCode());
+//             删除好友
+            imUserFriendService.delTeacherFriendByTenantId(student.getTenantId(), student.getUserId(),ClientEnum.TEACHER.getCode());
         }
         if (toTenantId != null && toTenantId != -1L) {
             // 加好友
@@ -610,6 +619,34 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         if (student == null) {
             throw new BizException("学生信息不存在");
         }
+        // 是否有修改机构
+        Long newTenantId = studentInfo.getTenantId();
+        if(newTenantId != null && !newTenantId.equals(student.getTenantId()) && student.getTenantId() != -1L){
+            // 退群
+            List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
+                    .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
+                    .eq(ImGroupMember::getIsAdmin, false)
+                    .eq(ImGroupMember::getUserId, student.getUserId())
+                    .list();
+            List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
+                    .distinct().collect(Collectors.toList());
+            if (!groupIdList.isEmpty()) {
+                List<String> orgGroupIdList = imGroupService.listByIds(groupIdList).stream()
+                        .filter(next -> ImGroupType.ORG.equals(next.getType())).map(ImGroup::getId)
+                        .collect(Collectors.toList());
+                orgGroupIdList.forEach(groupId -> {
+                    try {
+                        imGroupService.quit(groupId, student.getUserId(), ClientEnum.STUDENT);
+                    } catch (Exception e) {
+                        log.error("学生注册,切换机构退群失败:{}", e.getMessage());
+                    }
+                });
+            }
+//             删除好友
+            imUserFriendService.delTeacherFriendByTenantId(student.getTenantId(), student.getUserId(),ClientEnum.TEACHER.getCode());
+        }
+
+
         // 手机号码修改
         if (!student.getPhone().equals(studentInfo.getPhone())) {
             com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = getOrCreateAccount(studentInfo);

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

@@ -125,7 +125,7 @@ public class OpenStudentController extends BaseController {
                                 .distinct().collect(Collectors.toList());
                         groupIdList.forEach(groupId -> {
                             try {
-                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT, true);
+                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
                             } catch (Exception e) {
                                 log.error("学生注册,切换机构退群失败:{}", e.getMessage());
                             }