教师转入
This commit is contained in:
@@ -3,6 +3,7 @@ package com.yunhai.bschclassmanage.service;
|
||||
import com.yunhai.bschclassmanage.entity.SchStudent;
|
||||
import com.yunhai.bschclassmanage.entity.SchTeacher;
|
||||
import com.yunhai.bschclassmanage.enums.NodeType;
|
||||
import com.yunhai.bschclassmanage.enums.TransferStatus;
|
||||
import com.yunhai.bschclassmanage.model.dto.SchStudentDTO;
|
||||
import com.yunhai.bschclassmanage.model.dto.SchTeacherDTO;
|
||||
import com.yunhai.bschclassmanage.model.dto.SendMoveGroupUserDTO;
|
||||
@@ -53,7 +54,7 @@ public interface ISendUserBaseService {
|
||||
List<BoaUser> batchAddTeacher(List<SchTeacherDTO> teacherList);
|
||||
|
||||
/** 学生转出:将平台用户状态置为转出(state=1) */
|
||||
void setUserGroupState(Integer userId, Integer groupId, Integer schoolId);
|
||||
void setUserGroupState(Integer userId, Integer groupId, Integer schoolId, TransferStatus status);
|
||||
|
||||
/** 学生转入:将用户转移到目标学校/班级,返回平台用户信息 */
|
||||
BoaUser transferUserToSchool(Integer userId, Integer fromSchoolId, Integer schoolId, Integer groupId);
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.yunhai.bschclassmanage.service.impl.com;
|
||||
import com.yunhai.bschclassmanage.entity.SchStudent;
|
||||
import com.yunhai.bschclassmanage.entity.SchTeacher;
|
||||
import com.yunhai.bschclassmanage.enums.NodeType;
|
||||
import com.yunhai.bschclassmanage.enums.TransferStatus;
|
||||
import com.yunhai.bschclassmanage.enums.UserRole;
|
||||
import com.yunhai.bschclassmanage.annotation.SyncOpLog;
|
||||
import com.yunhai.bschclassmanage.enums.SyncDataType;
|
||||
@@ -337,14 +338,14 @@ public class SendUserBaseService implements ISendUserBaseService {
|
||||
|
||||
@SyncOpLog(SyncDataType.SEND_TRANSFER_OUT)
|
||||
@Override
|
||||
public void setUserGroupState(Integer userId,Integer groupId,Integer schoolId)
|
||||
public void setUserGroupState(Integer userId, Integer groupId, Integer schoolId,TransferStatus status)
|
||||
{
|
||||
//状态设置成1(转出)
|
||||
SysUserGroupStateRequest request = new SysUserGroupStateRequest();
|
||||
request.setUserId(userId);
|
||||
request.setGroupId(groupId);
|
||||
request.setSchoolId(schoolId);
|
||||
request.setState(1);
|
||||
request.setState(status.getId());
|
||||
openApiUserClient.setUserGroupState(request);
|
||||
}
|
||||
|
||||
|
||||
+14
-13
@@ -167,7 +167,7 @@ public class SchStudentTransferService {
|
||||
|
||||
for (SchStudent stu:students)
|
||||
{
|
||||
sendUserBaseService.setUserGroupState(stu.getStuId(),stu.getGroupId(),stu.getSchId());
|
||||
sendUserBaseService.setUserGroupState(stu.getStuId(),stu.getGroupId(),stu.getSchId(),TransferStatus.OUT);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -206,21 +206,22 @@ public class SchStudentTransferService {
|
||||
cacheKeysToDelete.add(RedisConstants.SCHOOL_CLASS_STUDENT + "_"
|
||||
+ targetSchId + "_" + targetClassId);
|
||||
|
||||
// 执行批量更新(更新学校和班级,transferStatus 置为转入 0)
|
||||
int updated = schStudentRepository.batchUpdateSchIdAndClassId(
|
||||
Collections.singletonList(student.getId()),
|
||||
targetSchId,
|
||||
targetClassId,
|
||||
now,
|
||||
user.getUserId()
|
||||
);
|
||||
if (updated != 1) {
|
||||
throw new DException("更新失败,可能学生已被删除或修改,请刷新后重试");
|
||||
}
|
||||
|
||||
// 已在目标学校且已在目标班级的学生 转入
|
||||
if (student.getSchId().equals(targetSchId) && targetClassId.equals(student.getClassId())) {
|
||||
sendUserBaseService.changeUserStatus(student.getStuId(),true);
|
||||
sendUserBaseService.setUserGroupState(student.getStuId(),student.getClassId(),student.getSchId(),TransferStatus.IN);
|
||||
}else {
|
||||
// 执行批量更新(更新学校和班级,transferStatus 置为转入 0)
|
||||
int updated = schStudentRepository.batchUpdateSchIdAndClassId(
|
||||
Collections.singletonList(student.getId()),
|
||||
targetSchId,
|
||||
targetClassId,
|
||||
now,
|
||||
user.getUserId()
|
||||
);
|
||||
if (updated != 1) {
|
||||
throw new DException("更新失败,可能学生已被删除或修改,请刷新后重试");
|
||||
}
|
||||
// 平台同步:转入目标学校/班级(fromSchoolId 取转入前的原学校)
|
||||
sendUserBaseService.transferUserToSchool(student.getStuId(), student.getSchId(), targetSchId, targetClassId);
|
||||
}
|
||||
|
||||
+7
-2
@@ -124,7 +124,7 @@ public class SchTeacherRelationService {
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (groupId != null) {
|
||||
sendUserBaseService.setUserGroupState(tea.getTeaId(), groupId, schId);
|
||||
sendUserBaseService.setUserGroupState(tea.getTeaId(), groupId, schId,TransferStatus.OUT);
|
||||
} else {
|
||||
log.warn("教师 teaId={} 在当前学校无组关联,跳过平台转出同步", tea.getTeaId());
|
||||
}
|
||||
@@ -168,7 +168,12 @@ public class SchTeacherRelationService {
|
||||
boolean alreadyInTarget = oldRelations.stream()
|
||||
.anyMatch(r -> targetSchId.equals(r.getSchId()) && targetGroupId.equals(r.getGroupId()));
|
||||
if (alreadyInTarget) {
|
||||
sendUserBaseService.changeUserStatus(teaId, true);
|
||||
schTeacherGroupRepository.batchUpdateTransferStatus(
|
||||
Arrays.asList(teaId),
|
||||
targetSchId,
|
||||
TransferStatus.OUT.getId()
|
||||
);
|
||||
sendUserBaseService.setUserGroupState(teaId,targetGroupId,targetSchId,TransferStatus.IN);
|
||||
}else {
|
||||
// 删除原学校旧关联
|
||||
schTeacherGroupRepository.deleteAll(oldRelations);
|
||||
|
||||
Reference in New Issue
Block a user