|
@@ -19,11 +19,6 @@ import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import com.ym.mec.biz.dal.dao.*;
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
|
|
|
-import com.ym.mec.biz.dal.enums.*;
|
|
|
-
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -36,6 +31,42 @@ import com.alibaba.fastjson.TypeReference;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.auth.api.entity.SysUserRole;
|
|
|
+import com.ym.mec.biz.dal.dao.ChargeTypeDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CooperationOrganDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
|
|
|
+import com.ym.mec.biz.dal.dao.EmployeeDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderStudentDetailDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPurchaseListDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupQuitDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
|
|
|
+import com.ym.mec.biz.dal.dao.OrganizationDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SchoolDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentPreRegistrationDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentVisitDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SubjectChangeDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
import com.ym.mec.biz.dal.dto.BasicUserDto;
|
|
|
import com.ym.mec.biz.dal.dto.CloseMusicGroupDto;
|
|
|
import com.ym.mec.biz.dal.dto.CourseFormDto;
|
|
@@ -47,7 +78,53 @@ 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.ApprovalStatus;
|
|
|
+import com.ym.mec.biz.dal.entity.ChargeType;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.CooperationOrgan;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
|
|
|
+import com.ym.mec.biz.dal.entity.Goods;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderStudentDetail;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPurchaseList;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
|
|
|
+import com.ym.mec.biz.dal.entity.Organization;
|
|
|
+import com.ym.mec.biz.dal.entity.School;
|
|
|
+import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
|
|
|
+import com.ym.mec.biz.dal.entity.Student;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPreRegistration;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentRegistration;
|
|
|
+import com.ym.mec.biz.dal.entity.Subject;
|
|
|
+import com.ym.mec.biz.dal.entity.SubjectChange;
|
|
|
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
|
|
|
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
|
|
|
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.GoodsType;
|
|
|
+import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
|
|
|
import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
|
|
|
import com.ym.mec.biz.service.ClassGroupService;
|
|
|
import com.ym.mec.biz.service.ClassGroupStudentMapperService;
|
|
@@ -68,6 +145,7 @@ import com.ym.mec.biz.service.SysMessageService;
|
|
|
import com.ym.mec.biz.service.SysUserCashAccountDetailService;
|
|
|
import com.ym.mec.biz.service.SysUserCashAccountService;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
+import com.ym.mec.common.entity.HttpResponseResult;
|
|
|
import com.ym.mec.common.entity.ImGroupMember;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.page.PageInfo;
|
|
@@ -209,6 +287,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
private StudentVisitDao studentVisitDao;
|
|
|
@Autowired
|
|
|
private SubjectDao subjectDao;
|
|
|
+ @Autowired
|
|
|
+ private SysUserCashAccountDao sysUserCashAccountDao;
|
|
|
|
|
|
@Autowired
|
|
|
private StudentPreRegistrationDao studentPreRegistrationDao;
|
|
@@ -341,30 +421,79 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean preRegister(StudentPreRegistration studentPreRegistration) {
|
|
|
- Integer userId = studentPreRegistration.getUserId();
|
|
|
-
|
|
|
- String musicGroupId = studentPreRegistration.getMusicGroupId();
|
|
|
-
|
|
|
- //查询乐团状态
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
- if(musicGroup == null){
|
|
|
- throw new BizException("乐团信息查询失败");
|
|
|
- }
|
|
|
- if(musicGroup.getStatus() != MusicGroupStatusEnum.PRE_APPLY){
|
|
|
- throw new BizException("乐团当前状态不能预报名");
|
|
|
- }
|
|
|
-
|
|
|
- StudentPreRegistration originRegistration = studentPreRegistrationDao.queryByUserId(userId, musicGroupId);
|
|
|
- if(originRegistration != null){
|
|
|
- throw new BizException("您已预报名成功,请勿重复提交资料");
|
|
|
- }
|
|
|
- Date date = new Date();
|
|
|
-
|
|
|
- studentPreRegistration.setCreateTime(date);
|
|
|
-
|
|
|
- studentPreRegistrationDao.update(studentPreRegistration);
|
|
|
-
|
|
|
+
|
|
|
+ String musicGroupId = studentPreRegistration.getMusicGroupId();
|
|
|
+
|
|
|
+ // 查询乐团状态
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+ if (musicGroup == null) {
|
|
|
+ throw new BizException("乐团信息查询失败");
|
|
|
+ }
|
|
|
+ if (musicGroup.getStatus() != MusicGroupStatusEnum.PRE_APPLY) {
|
|
|
+ throw new BizException("乐团当前状态不能预报名");
|
|
|
+ }
|
|
|
+
|
|
|
+ StudentPreRegistration originRegistration = studentPreRegistrationDao.queryByMusicGroupIdAndPhone(studentPreRegistration.getPhone(), musicGroupId);
|
|
|
+ if (originRegistration != null) {
|
|
|
+ throw new BizException("您已预报名成功,请勿重复提交资料");
|
|
|
+ }
|
|
|
+ Date date = new Date();
|
|
|
+
|
|
|
+ // 判断用户是否存在
|
|
|
+ SysUser user = sysUserFeignService.queryUserByMobile(studentPreRegistration.getPhone());
|
|
|
+ if (user.getId() == null) {
|
|
|
+ user = new SysUser();
|
|
|
+ user.setPhone(studentPreRegistration.getPhone());
|
|
|
+ user.setUsername(studentPreRegistration.getUserName());
|
|
|
+ user.setOrganId(musicGroup.getOrganId());
|
|
|
+ user.setUserType("STUDENT");
|
|
|
+ user.setCreateTime(date);
|
|
|
+ user.setUpdateTime(date);
|
|
|
+ // 注册账户信息
|
|
|
+ HttpResponseResult<Integer> result = sysUserFeignService.addUser(user);
|
|
|
+
|
|
|
+ Integer userId = result.getData();
|
|
|
+ user.setId(userId);
|
|
|
+
|
|
|
+ Student student = new Student();
|
|
|
+ student.setUserId(userId);
|
|
|
+ student.setCreateTime(date);
|
|
|
+ student.setUpdateTime(date);
|
|
|
+ student.setIsNewUser(true);
|
|
|
+ studentDao.insert(student);
|
|
|
+ sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
|
|
|
+ }
|
|
|
+
|
|
|
+ studentPreRegistration.setCreateTime(date);
|
|
|
+ studentPreRegistration.setUserId(user.getId());
|
|
|
+
|
|
|
+ studentPreRegistrationDao.insert(studentPreRegistration);
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean finishPreApply(String musicGroupId, boolean isCheckStudentNum) {
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+ if (musicGroup == null) {
|
|
|
+ throw new BizException("乐团信息查询失败");
|
|
|
+ }
|
|
|
+ if (musicGroup.getStatus() != MusicGroupStatusEnum.PRE_APPLY) {
|
|
|
+ throw new BizException("操作失败:只有乐团在[{}]状态才能操作", MusicGroupStatusEnum.PRE_APPLY.getMsg());
|
|
|
+ }
|
|
|
+ if (isCheckStudentNum) {
|
|
|
+ // 查询乐团已报名人数
|
|
|
+ List<StudentPreRegistration> studentPreRegistrationList = studentPreRegistrationDao.queryByMusicGroupId(musicGroupId);
|
|
|
+ if (studentPreRegistrationList == null || studentPreRegistrationList.size() < 120) {
|
|
|
+ throw new BizException("操作失败:报名人数没有达到120人");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ musicGroup.setStatus(MusicGroupStatusEnum.PRE_BUILD_FEE);
|
|
|
+ musicGroup.setUpdateTime(new Date());
|
|
|
+ musicGroupDao.update(musicGroup);
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -2018,7 +2147,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
throw new BizException("缴费项目不存在");
|
|
|
}
|
|
|
StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, calender.getMusicGroupId());
|
|
|
- if (studentRegistration == null || studentRegistration.getPaymentStatus() != YES) {
|
|
|
+ if (studentRegistration == null) {
|
|
|
throw new BizException("请走报名缴费流程");
|
|
|
}
|
|
|
Integer organId = studentRegistration.getOrganId();
|