From e4c11b6fcdb60975d6030ddb615130c44c3bdfa4 Mon Sep 17 00:00:00 2001 From: wanghu Date: Wed, 19 Aug 2026 10:43:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=85=A8=E9=83=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/SchStudentController.java | 3 +- .../model/dto/SchStudentDTO.java | 15 +++ .../model/dto/SchTeacherDTO.java | 2 + .../model/vo/SchStudentVO.java | 4 +- .../service/ISchBinSchsystemService.java | 1 - .../service/ISchStudentService.java | 3 +- .../service/ISyncUserBaseService.java | 29 +++-- .../service/impl/SchBinSchsystemService.java | 21 ++-- .../service/impl/SchStudentService.java | 3 +- .../impl/student/SchStudentInfoService.java | 15 +-- .../impl/sync/SyncUserBaseService.java | 113 ++++++++++++++++-- .../impl/teacher/SchTeacherInfoService.java | 10 +- 12 files changed, 174 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/yunhai/bschclassmanage/model/dto/SchStudentDTO.java diff --git a/src/main/java/com/yunhai/bschclassmanage/controller/api/SchStudentController.java b/src/main/java/com/yunhai/bschclassmanage/controller/api/SchStudentController.java index 8de6338..0c9fc2d 100644 --- a/src/main/java/com/yunhai/bschclassmanage/controller/api/SchStudentController.java +++ b/src/main/java/com/yunhai/bschclassmanage/controller/api/SchStudentController.java @@ -7,6 +7,7 @@ import com.yunhai.bschclassmanage.config.Config; import com.yunhai.bschclassmanage.controller.BaseController; import com.yunhai.bschclassmanage.entity.SchClass; import com.yunhai.bschclassmanage.enums.StuAbnormalStatus; +import com.yunhai.bschclassmanage.model.dto.SchStudentDTO; import com.yunhai.bschclassmanage.model.dto.StuAbnormalStatusDTO; import com.yunhai.bschclassmanage.model.dto.StuTransferClassDTO; import com.yunhai.bschclassmanage.model.excel.ImportRuleExcelColumn; @@ -94,7 +95,7 @@ public class SchStudentController extends BaseController { @PostMapping("save") - public void saveStudent(@Valid @RequestBody SchStudentVO model) { + public void saveStudent(@Valid @RequestBody SchStudentDTO model) { schStudentService.saveStudent(UserContext.getCurrentUser(),model); } diff --git a/src/main/java/com/yunhai/bschclassmanage/model/dto/SchStudentDTO.java b/src/main/java/com/yunhai/bschclassmanage/model/dto/SchStudentDTO.java new file mode 100644 index 0000000..fa06a2e --- /dev/null +++ b/src/main/java/com/yunhai/bschclassmanage/model/dto/SchStudentDTO.java @@ -0,0 +1,15 @@ +package com.yunhai.bschclassmanage.model.dto; + +import com.yunhai.bschclassmanage.model.vo.SchStudentVO; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +public class SchStudentDTO extends SchStudentVO { + + private String pwd; + +} diff --git a/src/main/java/com/yunhai/bschclassmanage/model/dto/SchTeacherDTO.java b/src/main/java/com/yunhai/bschclassmanage/model/dto/SchTeacherDTO.java index 2f7db8a..d19fba3 100644 --- a/src/main/java/com/yunhai/bschclassmanage/model/dto/SchTeacherDTO.java +++ b/src/main/java/com/yunhai/bschclassmanage/model/dto/SchTeacherDTO.java @@ -21,4 +21,6 @@ public class SchTeacherDTO extends SchTeacher { @Min(value = 1, message = "至少选择一个组") private Integer groupId; + private String pwd; + } diff --git a/src/main/java/com/yunhai/bschclassmanage/model/vo/SchStudentVO.java b/src/main/java/com/yunhai/bschclassmanage/model/vo/SchStudentVO.java index 4322447..5496d7f 100644 --- a/src/main/java/com/yunhai/bschclassmanage/model/vo/SchStudentVO.java +++ b/src/main/java/com/yunhai/bschclassmanage/model/vo/SchStudentVO.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; @@ -17,9 +18,8 @@ import java.util.Date; * @Description: */ @Data -@Builder +@SuperBuilder @NoArgsConstructor -@AllArgsConstructor public class SchStudentVO { private Integer id; diff --git a/src/main/java/com/yunhai/bschclassmanage/service/ISchBinSchsystemService.java b/src/main/java/com/yunhai/bschclassmanage/service/ISchBinSchsystemService.java index 08f644a..adc3363 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/ISchBinSchsystemService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/ISchBinSchsystemService.java @@ -37,5 +37,4 @@ public interface ISchBinSchsystemService { Map getSchBinSchsystemMap(Integer schId); - } diff --git a/src/main/java/com/yunhai/bschclassmanage/service/ISchStudentService.java b/src/main/java/com/yunhai/bschclassmanage/service/ISchStudentService.java index 8220630..633a8fa 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/ISchStudentService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/ISchStudentService.java @@ -1,6 +1,7 @@ package com.yunhai.bschclassmanage.service; import com.yunhai.bschclassmanage.entity.SchStudent; +import com.yunhai.bschclassmanage.model.dto.SchStudentDTO; import com.yunhai.bschclassmanage.model.dto.StuAbnormalStatusDTO; import com.yunhai.bschclassmanage.model.dto.StuTransferClassDTO; import com.yunhai.bschclassmanage.model.vo.PageVO; @@ -41,7 +42,7 @@ public interface ISchStudentService { List searchSchClassStudentVO(Integer schId, Integer gradeId, Integer classId, boolean onlyNormal); - void saveStudent(UserContext.UserInfo user, SchStudentVO entity); + void saveStudent(UserContext.UserInfo user, SchStudentDTO entity); void deleteStudent(UserContext.UserInfo user, String ids); diff --git a/src/main/java/com/yunhai/bschclassmanage/service/ISyncUserBaseService.java b/src/main/java/com/yunhai/bschclassmanage/service/ISyncUserBaseService.java index 6c42f30..7260eb6 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/ISyncUserBaseService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/ISyncUserBaseService.java @@ -1,5 +1,8 @@ package com.yunhai.bschclassmanage.service; +import com.yunhai.bschclassmanage.enums.NodeType; +import com.yunhai.bschclassmanage.model.dto.SchStudentDTO; +import com.yunhai.bschclassmanage.model.dto.SchTeacherDTO; import com.yunhai.bschclassmanage.model.tool.DeleteUser; import com.yunhai.bschclassmanage.model.tool.SyncUserDTO; import com.yunhai.platform.utils.model.BoaGroup; @@ -11,17 +14,17 @@ import java.util.List; @Service public interface ISyncUserBaseService { -// BoaGroup addGroup(); -// -// void deleteGroup(List ids); -// -// BoaUser addUser(BoaUser user); -// -// void updateUser(BoaUser user); -// -// List addUserList(List user); -// -// void updateUserList(List user); -// -// void deleteUserList(List ids); + BoaGroup addGroup(String name,Integer parentId,Integer sort, NodeType type); + + void editGroup(Integer id,String name,Integer parentId,Integer sort, NodeType type); + + BoaUser addTeacher(SchTeacherDTO teacher); + + BoaUser addStudent(SchStudentDTO student); + + BoaUser editTeacher(SchTeacherDTO teacher); + + void deleteTeacherList(List teacherList); + + } diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/SchBinSchsystemService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/SchBinSchsystemService.java index a4c4d80..1f3868c 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/SchBinSchsystemService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/SchBinSchsystemService.java @@ -14,6 +14,7 @@ import com.yunhai.bschclassmanage.model.vo.TreeSelectVO; import com.yunhai.bschclassmanage.service.IBaseSchsystemGradeService; import com.yunhai.bschclassmanage.service.IBaseSchsystemService; import com.yunhai.bschclassmanage.service.ISchBinSchsystemService; +import com.yunhai.bschclassmanage.service.ISyncUserBaseService; import com.yunhai.bschclassmanage.utils.RedisConstants; import com.yunhai.bschclassmanage.utils.RedisUtil; import com.yunhai.platform.utils.exception.DException; @@ -38,6 +39,8 @@ public class SchBinSchsystemService implements ISchBinSchsystemService { @Autowired private IBaseSchsystemService baseSchsystemService; + @Autowired + private ISyncUserBaseService syncUserBaseService; @Autowired private RedisUtil redisUtil; @@ -133,9 +136,8 @@ public class SchBinSchsystemService implements ISchBinSchsystemService { schBinSchsystemRepository.saveAll(newList); } String cacheKey = RedisConstants.SCHOOL_GRAGE+"_"+schId; + SchGroupInitialization(schId); redisUtil.del(cacheKey); - - } @@ -239,14 +241,14 @@ public class SchBinSchsystemService implements ISchBinSchsystemService { return list; } - public void SchGroupInitialization(Integer schId) + private void SchGroupInitialization(Integer schId) { //添加学生组 - BoaGroup teaGroup= CreateGroup(NodeType.TEACHER.getId(),"教师组",schId,1); - BoaGroup stuGroup= CreateGroup(NodeType.STUDENT.getId(),"学生组",schId,2); + BoaGroup teaGroup= syncUserBaseService.addGroup("教师组",schId,1,NodeType.TEACHER); + BoaGroup stuGroup= syncUserBaseService.addGroup("学生组",schId,2,NodeType.STUDENT); //创建校长室 - CreateGroup(NodeType.NORMAL.getId(),"校长室", teaGroup.getId(),1); + syncUserBaseService.addGroup("校长室", teaGroup.getId(),1,NodeType.NORMAL); //获取学制 List schsystemBinList=getSchBinSchsystemList(schId); @@ -259,7 +261,7 @@ public class SchBinSchsystemService implements ISchBinSchsystemService { Integer scort=1; for (SchBinSchsystem schsystem:schsystemBinList) { //添加学段组 - BoaGroup sectionGroup= CreateGroup(NodeType.SECTION.getId(),schsystemMap.get(schsystem.getId()),stuGroup.getId(),scort); + BoaGroup sectionGroup= syncUserBaseService.addGroup(schsystemMap.get(schsystem.getId()),stuGroup.getId(),scort,NodeType.SECTION); schsystem.setGroupId(sectionGroup.getId()); scort++; } @@ -269,9 +271,6 @@ public class SchBinSchsystemService implements ISchBinSchsystemService { } - public BoaGroup CreateGroup(Integer NodeType,String name,Integer parentId,Integer scort) - { - return new BoaGroup(); - } + } diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/SchStudentService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/SchStudentService.java index 83791ae..92dedd0 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/SchStudentService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/SchStudentService.java @@ -3,6 +3,7 @@ package com.yunhai.bschclassmanage.service.impl; import com.yunhai.bschclassmanage.annotation.OperationLog; import com.yunhai.bschclassmanage.entity.SchStudent; import com.yunhai.bschclassmanage.model.constant.LogModule; +import com.yunhai.bschclassmanage.model.dto.SchStudentDTO; import com.yunhai.bschclassmanage.model.dto.StuAbnormalStatusDTO; import com.yunhai.bschclassmanage.model.dto.StuTransferClassDTO; import com.yunhai.bschclassmanage.model.vo.PageVO; @@ -89,7 +90,7 @@ public class SchStudentService implements ISchStudentService { @OperationLog(module = LogModule.STUDENT) @Transactional(rollbackFor = Exception.class) @Override - public void saveStudent(UserContext.UserInfo user, SchStudentVO entityVO) { + public void saveStudent(UserContext.UserInfo user, SchStudentDTO entityVO) { infoService.saveStudent(user, entityVO); } diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentInfoService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentInfoService.java index ce2dbbf..507a58a 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentInfoService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentInfoService.java @@ -5,6 +5,7 @@ import com.yunhai.bschclassmanage.entity.SchStudent; import com.yunhai.bschclassmanage.enums.StuAbnormalStatus; import com.yunhai.bschclassmanage.enums.TransferStatus; import com.yunhai.bschclassmanage.enums.UserStatus; +import com.yunhai.bschclassmanage.model.dto.SchStudentDTO; import com.yunhai.bschclassmanage.model.entityField.EntityFieldNames; import com.yunhai.bschclassmanage.model.vo.SchStudentVO; import com.yunhai.bschclassmanage.utils.LogContextHolder; @@ -43,21 +44,21 @@ public class SchStudentInfoService { /** * 保存学生信息(新增或修改) */ - public void saveStudent(UserContext.UserInfo user, SchStudentVO entityVO) { + public void saveStudent(UserContext.UserInfo user, SchStudentDTO entityDTO) { // 1. 基础校验 - if (entityVO == null) { + if (entityDTO == null) { throw new DException("学生数据不能为空"); } - if (StringUtils.isBlank(entityVO.getName())) { + if (StringUtils.isBlank(entityDTO.getName())) { throw new DException("学生名称不能为空"); } Integer schId = user.getSchId(); - String name = entityVO.getName(); - Integer id = entityVO.getId(); - Integer classId = entityVO.getClassId(); + String name = entityDTO.getName(); + Integer id = entityDTO.getId(); + Integer classId = entityDTO.getClassId(); - SchStudent entity = ModelMapperUtil.map(entityVO, SchStudent.class); + SchStudent entity = ModelMapperUtil.map(entityDTO, SchStudent.class); if (StringUtils.isNotBlank(entity.getStuClassNo())) { try { diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/sync/SyncUserBaseService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/sync/SyncUserBaseService.java index efba75b..9e4fafc 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/sync/SyncUserBaseService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/sync/SyncUserBaseService.java @@ -1,25 +1,124 @@ package com.yunhai.bschclassmanage.service.impl.sync; +import com.yunhai.bschclassmanage.entity.SchTeacher; +import com.yunhai.bschclassmanage.enums.NodeType; +import com.yunhai.bschclassmanage.enums.UserRole; +import com.yunhai.bschclassmanage.enums.UserType; +import com.yunhai.bschclassmanage.model.dto.SchStudentDTO; +import com.yunhai.bschclassmanage.model.dto.SchTeacherDTO; +import com.yunhai.bschclassmanage.model.vo.SchStudentVO; import com.yunhai.bschclassmanage.service.ISyncUserBaseService; +import com.yunhai.bschclassmanage.utils.OtherUtil; +import com.yunhai.platform.openapi.client.YschBaseOpenApi; +import com.yunhai.platform.openapi.model.SysGroupRequest; +import com.yunhai.platform.openapi.model.SysUserMoveRequest; +import com.yunhai.platform.openapi.model.SysUserRequest; +import com.yunhai.platform.utils.exception.DException; import com.yunhai.platform.utils.model.BoaGroup; import com.yunhai.platform.utils.model.BoaUser; +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.Array; +import java.util.Arrays; +import java.util.List; public class SyncUserBaseService implements ISyncUserBaseService { - public BoaGroup addGroup(){ - - return new BoaGroup(); + public BoaGroup addGroup(String name,Integer parentId,Integer sort, NodeType type){ + SysGroupRequest group=new SysGroupRequest(); + group.setName(name); + group.setParentId(parentId); + group.setSort(sort); + group.setType(type.getId()); + return YschBaseOpenApi.addGroup(group); } - public void deleteGroup(){ + public void editGroup(Integer id,String name,Integer parentId,Integer sort, NodeType type){ + SysGroupRequest group=new SysGroupRequest(); + group.setName(name); + group.setParentId(parentId); + group.setSort(sort); + group.setType(type.getId()); + YschBaseOpenApi.editGroup(id,group); } - public BoaUser addUserList(){ - return new BoaUser(); + public void deleteGroup(Integer id){ + YschBaseOpenApi.deleteGroup(id); } - public void deleteUserList(){ + public BoaUser addTeacher(SchTeacherDTO teacher){ + SysUserRequest user=new SysUserRequest(); + user.setAccount(teacher.getAccount()); + user.setRealName(teacher.getName()); + user.setGender(teacher.getGender()); + user.setIdcard(teacher.getIdCard()); + user.setPhone(teacher.getTel()); + user.setGroupId(teacher.getGroupId()); + + user.setRoles(Arrays.asList(UserRole.TEACHER_USER.getValue())); + if (StringUtils.isNotBlank(teacher.getPwd())) { + user.setPassword(teacher.getPwd()); + } + return YschBaseOpenApi.addUser(user); } + + public BoaUser addStudent(SchStudentDTO student){ + SysUserRequest user=new SysUserRequest(); + user.setAccount(student.getAccount()); + user.setRealName(student.getName()); + user.setGender(student.getGender()); + user.setIdcard(student.getIdCard()); + user.setGroupId(student.getGroupId()); + user.setRoles(Arrays.asList(UserRole.STU_USER.getValue())); + if (StringUtils.isNotBlank(student.getPwd())) { + user.setPassword(student.getPwd()); + } + return YschBaseOpenApi.addUser(user); + } + + public BoaUser editTeacher(SchTeacherDTO teacher){ + if (teacher.getTeaId()==null||teacher.getTeaId()<=0){ + throw new DException("教师Id不允许为null"); + } + SysUserRequest user=new SysUserRequest(); + user.setAccount(teacher.getAccount()); + user.setRealName(teacher.getName()); + user.setGender(teacher.getGender()); + user.setIdcard(teacher.getIdCard()); + user.setPhone(teacher.getTel()); + user.setGroupId(teacher.getGroupId()); + user.setRoles(Arrays.asList(UserRole.TEACHER_USER.getValue())); + if (StringUtils.isNotBlank(teacher.getPwd())) { + user.setPassword(teacher.getPwd()); + } + return YschBaseOpenApi.editUser(teacher.getTeaId(),user); + } + + public void deleteTeacherList(List teacherList){ + for (SchTeacherDTO teacher :teacherList) { + YschBaseOpenApi.deleteUser(teacher.getTeaId(),teacher.getGroupId()); + } + } + +// public void moveTeachertToGroup(List teacherList){ +// for (SchTeacherDTO teacher :teacherList) { +// SysUserMoveRequest move=new SysUserMoveRequest(); +// move.setUserId(); +// move.setGroupId(); +// move.setSchoolId(); +// YschBaseOpenApi.moveUserToGroup(teacher.getTeaId(),teacher.getGroupId()); +// } +// } +// +// public void moveStudentToGroup(List teacherList){ +// for (SchTeacherDTO teacher :teacherList) { +// SysUserMoveRequest move=new SysUserMoveRequest(); +// move.setUserId(); +// move.setGroupId(); +// move.setSchoolId(); +// YschBaseOpenApi.moveUserToGroup(teacher.getTeaId(),teacher.getGroupId()); +// } +// } } diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/teacher/SchTeacherInfoService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/teacher/SchTeacherInfoService.java index bea6f34..a3bc294 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/teacher/SchTeacherInfoService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/teacher/SchTeacherInfoService.java @@ -10,10 +10,12 @@ import com.yunhai.bschclassmanage.enums.UserStatus; import com.yunhai.bschclassmanage.model.dto.SchTeacherDTO; import com.yunhai.bschclassmanage.model.entityField.EntityFieldNames; import com.yunhai.bschclassmanage.service.IComSchTreeService; +import com.yunhai.bschclassmanage.service.ISyncUserBaseService; import com.yunhai.bschclassmanage.utils.LogContextHolder; import com.yunhai.bschclassmanage.utils.OtherUtil; import com.yunhai.bschclassmanage.utils.UserContext; import com.yunhai.platform.utils.exception.DException; +import com.yunhai.platform.utils.model.BoaUser; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -46,6 +48,9 @@ public class SchTeacherInfoService { @Autowired private SchTeacherCacheService cacheService; + @Autowired + private ISyncUserBaseService syncUserBaseService; + @Autowired private SchTeacherLogService logService; // 用于构建日志描述 @@ -89,7 +94,9 @@ public class SchTeacherInfoService { SchTeacher teacher = new SchTeacher(); BeanUtils.copyProperties(dto, teacher); savedTeacher = schTeacherRepository.save(teacher); - Integer generatedId = savedTeacher.getId(); + + BoaUser syncTeacher= syncUserBaseService.addTeacher(dto); + Integer generatedId = syncTeacher.getId(); savedTeacher.setTeaId(generatedId); savedTeacher = schTeacherRepository.save(savedTeacher); @@ -135,6 +142,7 @@ public class SchTeacherInfoService { EntityFieldNames.createUserId, EntityFieldNames.status ); + syncUserBaseService.editTeacher(dto); schTeacherRepository.save(existing); savedTeacher = existing; }