浏览代码

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 年之前
父节点
当前提交
4d65cca55e

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java

@@ -110,6 +110,9 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
      */
 	List<Date> getEnableApplyDates(Date startDay,Date endDay);
 
+
+	List<Date> getEnableApplyDatesIncludeAllTimes(Date startDay,Date endDay);
+
 	/**
 	 * @describe 陪练课预约
 	 * @author Joburgess

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1596,7 +1596,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
                 studentPaymentOrder.setUpdateTime(date);
                 studentPaymentOrder.setOrganId(musicGroup.getOrganId());
-                studentPaymentOrder.setRoutingOrganId(42);
+                studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
                 studentPaymentOrderService.update(studentPaymentOrder);
 
                 sysUserCashAccountService.updateBalance(userId, amount.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "乐团续费");
@@ -1608,6 +1608,17 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
 //                musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, musicGroupStudentFee.getNextPaymentDate(), musicGroupStudentFee));
                 musicGroupStudentFeeDao.update(musicGroupStudentFee);
+                //更新学生的缴费记录状态
+                MusicGroupPaymentCalenderDetail userLastCalenderDetail = musicGroupPaymentCalenderDetailDao.getUserLastCalenderDetail(musicGroupId, userId);
+                if(userLastCalenderDetail == null){
+                    throw new BizException("学生没有续费中的记录");
+                }
+                //更新学生的缴费记录状态
+                userLastCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
+                userLastCalenderDetail.setActualAmount(userLastCalenderDetail.getExpectAmount());
+                userLastCalenderDetail.setPayTime(date);
+                userLastCalenderDetail.setUpdateTime(date);
+                musicGroupPaymentCalenderDetailDao.update(userLastCalenderDetail);
                 return null;
             } else {
                 if (userCashAccount.getBalance().doubleValue() > 0) {

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OnlineMusicGroupServiceImpl.java

@@ -208,7 +208,7 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
             courseScheduleTeacherSalary.setGroupType(GroupType.MUSIC);
             courseScheduleTeacherSalary.setMusicGroupId(musicGroup.getId());
             courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
-            courseScheduleTeacherSalary.setUserId(onlineMusicGroupCourseInfo.getStudentId());
+            courseScheduleTeacherSalary.setUserId(onlineMusicGroupCourseInfo.getTeacherId());
             courseScheduleTeacherSalary.setExpectSalary(teacherDefaultSalary);
             courseScheduleTeacherSalary.setCreateTime(now);
             courseScheduleTeacherSalary.setUpdateTime(now);
@@ -242,7 +242,7 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
         teacherAttendanceDao.batchInsert(teacherAttendances);
 
         try {
-            courseScheduleService.checkNewCourseSchedulesWithoutMusicGroup(courses,false);
+            courseScheduleService.checkNewCourseSchedules(courses,false);
         } catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             String errMessage=new String();
@@ -473,7 +473,7 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
         Date firstMonday = DateUtil.getWeekDayWithDate(applyStartDate, Calendar.MONDAY);
         Date secondSunday = DateUtil.getWeekDayWithDate(applyEndDate, Calendar.SUNDAY);
 
-        List<Date> enableApplyDates = practiceGroupService.getEnableApplyDates(applyStartDate, applyEndDate);
+        List<Date> enableApplyDates = practiceGroupService.getEnableApplyDatesIncludeAllTimes(applyStartDate, applyEndDate);
         List<CourseSchedule> allTeacherCourses = courseScheduleDao.findTeacherCoursesWithDateRange(teacherId, firstMonday, secondSunday);
         allTeacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1625,6 +1625,50 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     }
 
     @Override
+    public List<Date> getEnableApplyDatesIncludeAllTimes(Date startDay, Date endDay) {
+        List<Date> result = new ArrayList<>();
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(startDay);
+        calendar.add(Calendar.DATE, -1);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        SysConfig practiceApplyStartTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_START_TIME);
+        SysConfig practiceApplyEndTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_END_TIME);
+        SysConfig practiceApplyIntervalTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_INTERVAL_TIME);
+        String enableStartTimeStr = practiceApplyStartTimeConfig.getParanValue();
+        String enableEndTimeStr = practiceApplyEndTimeConfig.getParanValue();
+        Integer practiceApplyIntervalMinutes = practiceApplyIntervalTimeConfig.getParanValue(Integer.class);
+        LocalTime dayStartTime=LocalTime.parse("00:00:00",DateUtil.timeFormatter);
+        LocalTime dayEndTime=LocalTime.parse("00:00:00",DateUtil.timeFormatter);
+        List<String> dayApplyTimes=new ArrayList<>();
+        while (true){
+            dayApplyTimes.add(dayStartTime.format(DateUtil.timeFormatter));
+            dayStartTime=dayStartTime.plusMinutes(practiceApplyIntervalMinutes);
+            if(dayStartTime.compareTo(dayEndTime)==0){
+                break;
+            }
+        }
+
+        while (!calendar.getTime().after(endDay)) {
+            calendar.add(Calendar.DATE, 1);
+            calendar.set(Calendar.HOUR_OF_DAY, Integer.valueOf(enableStartTimeStr.split(":")[0]));
+            calendar.set(Calendar.MINUTE, Integer.valueOf(enableStartTimeStr.split(":")[1]));
+            Date enableApplyDayStartTime = calendar.getTime();
+            calendar.set(Calendar.HOUR_OF_DAY, Integer.valueOf(enableEndTimeStr.split(":")[0]));
+            calendar.set(Calendar.MINUTE, Integer.valueOf(enableEndTimeStr.split(":")[1]));
+            Date enableApplyDayEndTime = calendar.getTime();
+            Calendar applyStartCalendar = Calendar.getInstance();
+            applyStartCalendar.setTime(enableApplyDayStartTime);
+            for (String applyDayTime : dayApplyTimes) {
+                String temp = DateUtil.dateToString(applyStartCalendar.getTime(), "yyyy-MM-dd");
+                temp = temp + " " + applyDayTime;
+                result.add(DateUtil.stringToDate(temp, "yyyy-MM-dd HH:mm:ss"));
+            }
+        }
+        return result;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public Map practiceApply(PracticeGroup practiceGroup) {
         if (Objects.isNull(practiceGroup.getUserId())) {

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml

@@ -226,7 +226,8 @@
 	<select id="getUserLastCalenderDetail" resultMap="MusicGroupPaymentCalenderDetail">
 		SELECT * FROM music_group_payment_calender_detail mgpcd
 		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
-		WHERE mgpc.music_group_id_=#{musicGroupId} AND mgpcd.user_id_=#{userId} AND mgpcd.payment_status_ = 'PROCESSING'
+		WHERE mgpc.music_group_id_=#{musicGroupId} AND mgpcd.user_id_=#{userId} AND mgpcd.payment_status_ = 'NON_PAYMENT'
+		AND (mgpc.payment_status_ = '1' OR mgpcd.open_=1)
 		ORDER BY mgpc.start_payment_date_ DESC LIMIT 1
 	</select>
 	<select id="queryCanOpenList" resultMap="MusicGroupPaymentCalenderDetail">

+ 12 - 1
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -2,6 +2,7 @@ package com.ym.mec.student.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dto.RegisterPayDto;
 import com.ym.mec.biz.dal.entity.*;
@@ -50,6 +51,8 @@ public class MusicGroupController extends BaseController {
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
     @Autowired
     private StudentPaymentOrderDetailService studentPaymentOrderDetailService;
+    @Autowired
+    private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
 
     @ApiOperation("获取学生所在乐团列表")
     @GetMapping(value = "/queryUserMusicGroups")
@@ -153,6 +156,10 @@ public class MusicGroupController extends BaseController {
         if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
             throw new BizException("已缴费");
         }
+        MusicGroupPaymentCalenderDetail userLastCalenderDetail = musicGroupPaymentCalenderDetailDao.getUserLastCalenderDetail(musicGroupId, userId);
+        if(userLastCalenderDetail == null){
+            throw new BizException("当前续费时间已截止,请联系指导老师");
+        }
 
         BigDecimal amount = musicGroupStudentFee.getTemporaryCourseFee();
         if (amount == null || amount.doubleValue() == 0) {
@@ -194,7 +201,11 @@ public class MusicGroupController extends BaseController {
 				return failed(HttpStatus.CONTINUE, "您有待支付的订单");
 			}
 		}
-		return succeed(musicGroupService.renew(musicGroupId, userId, isUseBalancePayment));
+        MusicGroupPaymentCalenderDetail userLastCalenderDetail = musicGroupPaymentCalenderDetailDao.getUserLastCalenderDetail(musicGroupId, userId);
+        if(userLastCalenderDetail == null){
+            throw new BizException("当前续费时间已截止,请联系指导老师");
+        }
+        return succeed(musicGroupService.renew(musicGroupId, userId, isUseBalancePayment));
 	}
 
     @ApiOperation(value = "退团")