|
@@ -19,6 +19,7 @@ import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
|
+import com.ym.mec.biz.dal.dto.*;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -32,16 +33,6 @@ import com.alibaba.fastjson.TypeReference;
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.auth.api.entity.SysUserRole;
|
|
import com.ym.mec.auth.api.entity.SysUserRole;
|
|
-import com.ym.mec.biz.dal.dto.BasicUserDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.CourseFormDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.HighClassGroupDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.MusicCardDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.RegisterPayDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.SporadicPayDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.SubjectRegisterDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
|
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
|
|
import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
|
|
import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
|
|
import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
@@ -2632,4 +2623,50 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
return studentRegistrationList;
|
|
return studentRegistrationList;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public Boolean closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto) {
|
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
|
+ if (sysUser == null) {
|
|
|
|
+ throw new BizException("用户信息获取失败");
|
|
|
|
+ }
|
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(closeMusicGroupDto.getMusicGroupId());
|
|
|
|
+ if (musicGroup == null) {
|
|
|
|
+ throw new BizException("乐团找不到");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (musicGroup.getStatus() != MusicGroupStatusEnum.PROGRESS) {
|
|
|
|
+ throw new BizException("乐团当前状态是{},不能关闭", musicGroup.getStatus().getMsg());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ musicGroup.setStatus(MusicGroupStatusEnum.CLOSE);
|
|
|
|
+ musicGroup.setUpdateTime(new Date());
|
|
|
|
+ musicGroupDao.update(musicGroup);
|
|
|
|
+
|
|
|
|
+ musicGroupBuildLogDao.insert(new MusicGroupBuildLog(closeMusicGroupDto.getMusicGroupId(), "关闭乐团", sysUser.getId(), ""));
|
|
|
|
+
|
|
|
|
+ List<StudentRegistration> musicGroupRegs = studentRegistrationDao.findMusicGroupStudent(closeMusicGroupDto.getMusicGroupId(), null);
|
|
|
|
+ Map<Integer, BigDecimal> userReBackMap = closeMusicGroupDto.getUserReBack();
|
|
|
|
+ //退还没上课程费用
|
|
|
|
+ for (StudentRegistration musicGroupReg : musicGroupRegs) {
|
|
|
|
+ BigDecimal userReBack = userReBackMap.getOrDefault(musicGroupReg.getUserId(), BigDecimal.ZERO);
|
|
|
|
+
|
|
|
|
+ if (userReBack.compareTo(musicGroupReg.getSurplusCourseFee()) > 0) {
|
|
|
|
+ throw new BizException(musicGroupReg.getName() + "退费金额不能大于实际金额");
|
|
|
|
+ }
|
|
|
|
+ //退用户余额
|
|
|
|
+ if (userReBack.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
+ sysUserCashAccountService.updateBalance(musicGroupReg.getUserId(), userReBack, PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭乐团");
|
|
|
|
+ }
|
|
|
|
+ //清除剩余课程费用
|
|
|
|
+ if (musicGroupReg.getSurplusCourseFee().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
+ studentRegistrationService.updateUserSurplusCourseFee(musicGroupReg.getUserId(), musicGroupReg.getMusicGroupId(), musicGroupReg.getSurplusCourseFee().negate(), "关闭乐团", sysUser.getId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //删除未上课表
|
|
|
|
+ courseScheduleDao.logicDeleteCourseSchedulesByMusicGroupID(musicGroup.getId());
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|