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