|
@@ -1,5 +1,20 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentRegistration;
|
|
|
+import com.ym.mec.biz.dal.entity.Subject;
|
|
|
+import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.school.dto.MusicGroupQuitDetailDto;
|
|
|
+import com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto;
|
|
|
+import com.ym.mec.biz.dal.school.page.MusicGroupQuitQueryInfo;
|
|
|
+import com.ym.mec.biz.service.SysUserService;
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
|
+import com.ym.mec.common.page.PageInfo;
|
|
|
+import com.ym.mec.util.collection.MapUtil;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -8,16 +23,110 @@ import com.ym.mec.biz.dal.entity.MusicGroupQuit;
|
|
|
import com.ym.mec.biz.service.MusicGroupQuitService;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class MusicGroupQuitServiceImpl extends BaseServiceImpl<Long, MusicGroupQuit> implements MusicGroupQuitService {
|
|
|
|
|
|
@Autowired
|
|
|
private MusicGroupQuitDao musicGroupQuitDao;
|
|
|
+ @Autowired
|
|
|
+ private TeacherDao teacherDao;
|
|
|
+ @Autowired
|
|
|
+ private SubjectDao subjectDao;
|
|
|
+ @Autowired
|
|
|
+ private StudentRegistrationDao studentRegistrationDao;
|
|
|
+ @Autowired
|
|
|
+ private SysUserService sysUserService;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, MusicGroupQuit> getDAO() {
|
|
|
return musicGroupQuitDao;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageInfo<MusicGroupQuitPageDto> queryPageBySchool(MusicGroupQuitQueryInfo queryInfo) {
|
|
|
+ PageInfo<MusicGroupQuitPageDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+
|
|
|
+ List<MusicGroupQuitPageDto> dataList = null;
|
|
|
+ int count = musicGroupQuitDao.countBySchool(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = musicGroupQuitDao.queryPageBySchool(params);
|
|
|
+ if(CollectionUtils.isNotEmpty(dataList)){
|
|
|
+ List<Integer> studentIds = dataList.stream().map(e -> e.getStudentId()).collect(Collectors.toList());
|
|
|
+ List<SimpleUserDto> usersSimpleInfo = teacherDao.getUsersSimpleInfo(studentIds);
|
|
|
+ Map<Integer, SimpleUserDto> simpleUserDtoMap = usersSimpleInfo.stream().collect(Collectors.groupingBy(e -> e.getUserId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
|
|
|
+ List<Integer> subjectIds = dataList.stream().map(e -> e.getSubjectId()).distinct().collect(Collectors.toList());
|
|
|
+ Map<Integer, String> subjectNameMap = subjectDao.findBySubjectIds(subjectIds).stream().collect(Collectors.groupingBy(e -> e.getId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0).getName())));
|
|
|
+ for (MusicGroupQuitPageDto dto : dataList) {
|
|
|
+ dto.setSubjectName(subjectNameMap.get(dto.getSubjectId()));
|
|
|
+ SimpleUserDto userDto = simpleUserDtoMap.get(dto.getStudentId());
|
|
|
+ if(Objects.nonNull(userDto)){
|
|
|
+ dto.setStudentAvatar(userDto.getAvatar());
|
|
|
+ dto.setStudentName(userDto.getNickName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public MusicGroupQuitDetailDto getDetailBySchool(Long musicGroupQuitId) {
|
|
|
+ MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(musicGroupQuitId);
|
|
|
+ if(Objects.isNull(musicGroupQuit)){
|
|
|
+ throw new BizException("退团申请不存在");
|
|
|
+ }
|
|
|
+ MusicGroupQuitDetailDto detailDto = new MusicGroupQuitDetailDto();
|
|
|
+ StudentRegistration studentRegistration = studentRegistrationDao.getStudentRegister(musicGroupQuit.getMusicGroupId(),musicGroupQuit.getUserId());
|
|
|
+ Subject subject = subjectDao.get(studentRegistration.getActualSubjectId());
|
|
|
+ SimpleUserDto simpleUser = teacherDao.getSimpleUser(musicGroupQuit.getUserId());
|
|
|
+ detailDto.setStudentId(musicGroupQuit.getUserId());
|
|
|
+ detailDto.setReasonEnum(musicGroupQuit.getReasonEnum());
|
|
|
+ detailDto.setUserComment(musicGroupQuit.getUserComment());
|
|
|
+ detailDto.setSchoolStaffAuditReason(musicGroupQuit.getSchoolStaffAuditReason());
|
|
|
+ detailDto.setStudentName(simpleUser.getNickName());
|
|
|
+ detailDto.setStudentAvatar(simpleUser.getAvatar());
|
|
|
+ detailDto.setCreateTime(musicGroupQuit.getCreateTime());
|
|
|
+ detailDto.setSubjectName(subject.getName());
|
|
|
+ return detailDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void auditPassBySchool(Long musicGroupQuitId,String reason) {
|
|
|
+ this.schoolAudit(musicGroupQuitId,reason,EQuitGroupAuditStatusEnum.PASS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void auditRejectBySchool(Long musicGroupQuitId,String reason) {
|
|
|
+ this.schoolAudit(musicGroupQuitId,reason,EQuitGroupAuditStatusEnum.REJECT);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void schoolAudit(Long musicGroupQuitId,String reason,EQuitGroupAuditStatusEnum status){
|
|
|
+ MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(musicGroupQuitId);
|
|
|
+ if(Objects.isNull(musicGroupQuit)){
|
|
|
+ throw new BizException("退团申请不存在");
|
|
|
+ }
|
|
|
+ if(musicGroupQuit.getSchoolStaffAuditStatus() != EQuitGroupAuditStatusEnum.ING){
|
|
|
+ throw new BizException("当前审批状态不支持此操作");
|
|
|
+ }
|
|
|
+ Integer userId = sysUserService.getUserId();
|
|
|
+ musicGroupQuit.setAuditSchoolStaff(userId);
|
|
|
+ musicGroupQuit.setSchoolStaffAuditStatus(status);
|
|
|
+ musicGroupQuit.setSchoolStaffAuditReason(reason);
|
|
|
+ musicGroupQuitDao.update(musicGroupQuit);
|
|
|
+ }
|
|
|
}
|