SchoolRollStudentServiceImpl.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package com.xjrsoft.module.student.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.github.yulichang.base.MPJBaseServiceImpl;
  7. import com.xjrsoft.common.enums.ArchivesStatusEnum;
  8. import com.xjrsoft.common.enums.EnabledMark;
  9. import com.xjrsoft.common.enums.SchoolChangeType;
  10. import com.xjrsoft.common.enums.StudentChangeTypeEnum;
  11. import com.xjrsoft.module.student.dto.SchoolRollStudentPageDto;
  12. import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
  13. import com.xjrsoft.module.student.entity.SchoolRollStudent;
  14. import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
  15. import com.xjrsoft.module.student.mapper.SchoolRollStudentMapper;
  16. import com.xjrsoft.module.student.service.ISchoolRollStudentService;
  17. import com.xjrsoft.module.student.service.IStudentChangeRecordService;
  18. import com.xjrsoft.module.student.vo.SchoolRollStudentPageVo;
  19. import com.xjrsoft.module.student.vo.SchoolRollStudentVo;
  20. import com.xjrsoft.module.teacher.entity.XjrUser;
  21. import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
  22. import lombok.AllArgsConstructor;
  23. import org.springframework.stereotype.Service;
  24. /**
  25. * @title: 学籍异动学生
  26. * @Author dzx
  27. * @Date: 2023-11-30
  28. * @Version 1.0
  29. */
  30. @Service
  31. @AllArgsConstructor
  32. public class SchoolRollStudentServiceImpl extends MPJBaseServiceImpl<SchoolRollStudentMapper, SchoolRollStudent> implements ISchoolRollStudentService {
  33. private final SchoolRollStudentMapper schoolRollStudentMapper;
  34. private final XjrUserMapper xjrUserMapper;
  35. private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
  36. private final IStudentChangeRecordService changeRecordService;
  37. @Override
  38. public Boolean dataHandle(Long dataId) {
  39. SchoolRollStudent schoolRollStudent = schoolRollStudentMapper.selectOne(
  40. Wrappers.lambdaQuery(SchoolRollStudent.class).eq(SchoolRollStudent::getId, dataId)
  41. );
  42. String scholarshipSource = schoolRollStudent.getScholarshipSource();
  43. if(SchoolChangeType.ScOutSchool.getCode().equals(scholarshipSource)){
  44. scOutSchool(schoolRollStudent);
  45. }else if(SchoolChangeType.ScOut.getCode().equals(scholarshipSource)){
  46. scOut(schoolRollStudent);
  47. }else if(SchoolChangeType.ScRecoverSchool.getCode().equals(scholarshipSource)){
  48. scRecoverSchool(schoolRollStudent);
  49. }else if(SchoolChangeType.ScClass.getCode().equals(scholarshipSource)){
  50. scClass(schoolRollStudent);
  51. }
  52. return true;
  53. }
  54. @Override
  55. public Page<SchoolRollStudentPageVo> getPage(Page<SchoolRollStudentPageVo> page, SchoolRollStudentPageDto dto) {
  56. Page<SchoolRollStudentPageVo> result = schoolRollStudentMapper.getPage(page, dto);
  57. return result;
  58. }
  59. @Override
  60. public SchoolRollStudentVo getInfo(Long id) {
  61. return schoolRollStudentMapper.getInfo(id);
  62. }
  63. /**
  64. * 休学:禁用学生账号
  65. */
  66. void scOutSchool(SchoolRollStudent schoolRollStudent){
  67. if(ObjectUtil.isNull(schoolRollStudent.getIsCancelAccount()) || schoolRollStudent.getIsCancelAccount() != 1){
  68. return;
  69. }
  70. XjrUser xjrUser = xjrUserMapper.selectOne(Wrappers.lambdaQuery(XjrUser.class).eq(XjrUser::getId, schoolRollStudent.getStudentId()));
  71. xjrUser.setEnabledMark(EnabledMark.DISABLED.getCode());
  72. xjrUserMapper.updateById(xjrUser);
  73. BaseStudentSchoolRoll studentSchoolRoll = baseStudentSchoolRollMapper.selectOne(
  74. Wrappers.lambdaQuery(BaseStudentSchoolRoll.class).eq(BaseStudentSchoolRoll::getUserId, schoolRollStudent.getStudentId())
  75. );
  76. if(ObjectUtil.isNotNull(studentSchoolRoll)){
  77. //记录异动
  78. changeRecordService.insertData(
  79. studentSchoolRoll.getArchivesStatus(),
  80. ArchivesStatusEnum.fromCode(studentSchoolRoll.getArchivesStatus()),
  81. ArchivesStatusEnum.FB2902.getCode(),
  82. ArchivesStatusEnum.FB2902.getValue(),
  83. studentSchoolRoll.getUserId(),
  84. StpUtil.getLoginIdAsLong(),
  85. StudentChangeTypeEnum.ArchivesStatus.getCode(),
  86. 2
  87. );
  88. studentSchoolRoll.setArchivesStatus(ArchivesStatusEnum.FB2902.getCode());
  89. baseStudentSchoolRollMapper.updateById(studentSchoolRoll);
  90. }
  91. }
  92. /**
  93. * 退学:禁用学生账号
  94. */
  95. void scOut(SchoolRollStudent schoolRollStudent){
  96. if(ObjectUtil.isNull(schoolRollStudent.getIsCancelAccount()) || schoolRollStudent.getIsCancelAccount() != 1){
  97. return;
  98. }
  99. XjrUser xjrUser = xjrUserMapper.selectOne(Wrappers.lambdaQuery(XjrUser.class).eq(XjrUser::getId, schoolRollStudent.getStudentId()));
  100. xjrUser.setEnabledMark(EnabledMark.DISABLED.getCode());
  101. xjrUserMapper.updateById(xjrUser);
  102. BaseStudentSchoolRoll studentSchoolRoll = baseStudentSchoolRollMapper.selectOne(
  103. Wrappers.lambdaQuery(BaseStudentSchoolRoll.class).eq(BaseStudentSchoolRoll::getUserId, schoolRollStudent.getStudentId())
  104. );
  105. if(ObjectUtil.isNotNull(studentSchoolRoll)){
  106. studentSchoolRoll.setArchivesStatus(ArchivesStatusEnum.FB2904.getCode());
  107. baseStudentSchoolRollMapper.updateById(studentSchoolRoll);
  108. }
  109. }
  110. /**
  111. * 复学:恢复学生账号并修改班级
  112. */
  113. void scRecoverSchool(SchoolRollStudent schoolRollStudent){
  114. //启用学生账号
  115. XjrUser xjrUser = xjrUserMapper.selectOne(Wrappers.lambdaQuery(XjrUser.class).eq(XjrUser::getId, schoolRollStudent.getStudentId()));
  116. xjrUser.setEnabledMark(EnabledMark.ENABLED.getCode());
  117. xjrUserMapper.updateById(xjrUser);
  118. //修改学生的年级和班级
  119. BaseStudentSchoolRoll baseStudentSchoolRoll = baseStudentSchoolRollMapper.selectOne(
  120. Wrappers.lambdaQuery(BaseStudentSchoolRoll.class).eq(BaseStudentSchoolRoll::getUserId, schoolRollStudent.getStudentId())
  121. );
  122. if(ObjectUtil.isNotNull(baseStudentSchoolRoll)){
  123. baseStudentSchoolRoll.setClassId(schoolRollStudent.getBackClassId());
  124. baseStudentSchoolRoll.setGradeId(schoolRollStudent.getBackGradeId());
  125. baseStudentSchoolRoll.setArchivesStatus(ArchivesStatusEnum.FB2901.getCode());
  126. baseStudentSchoolRollMapper.updateById(baseStudentSchoolRoll);
  127. }
  128. }
  129. /**
  130. * 转专业(班级):修改班级id
  131. */
  132. void scClass(SchoolRollStudent schoolRollStudent){
  133. //修改学生的年级和班级
  134. BaseStudentSchoolRoll baseStudentSchoolRoll = baseStudentSchoolRollMapper.selectOne(
  135. Wrappers.lambdaQuery(BaseStudentSchoolRoll.class).eq(BaseStudentSchoolRoll::getUserId, schoolRollStudent.getStudentId())
  136. );
  137. baseStudentSchoolRoll.setClassId(schoolRollStudent.getBackClassId());
  138. baseStudentSchoolRoll.setGradeId(schoolRollStudent.getBackGradeId());
  139. baseStudentSchoolRollMapper.updateById(baseStudentSchoolRoll);
  140. }
  141. }