Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

周箭河 5 tahun lalu
induk
melakukan
5ab8f41cad

+ 29 - 31
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -1,21 +1,19 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
-
 import com.ym.mec.util.date.DateUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {
@@ -44,29 +42,29 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		List<MusicGroupPaymentCalender> musicGroupPaymentCalenderList = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
 		if (musicGroupPaymentCalenderList != null && musicGroupPaymentCalenderList.size() > 0) {
 			Date date = new Date();
-			List<Integer> months = musicGroupPaymentCalenderList.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
-			//获取当前月份
-			int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
-			int nextMonth = currentMonth;
-			for (int i = 0;i < months.size();i++){
-				if(i == months.size()-1 && months.get(i) <= currentMonth){
-					nextMonth = months.get(0);
-					break;
-				}else if(months.get(i) > currentMonth){
-					nextMonth = months.get(i);
-					break;
+			List<Integer> months = musicGroupPaymentCalenderList.stream().map(e -> e.getPaymentMonth()).sorted().collect(Collectors.toList());
+
+			if (months.size() > 0) {
+				// 获取当前月份
+				int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
+				int nextMonth = months.get(0);
+				for (int i = 0; i < months.size(); i++) {
+					if (currentMonth < months.get(i)) {
+						nextMonth = months.get(i);
+						break;
+					}
 				}
+				// 修改学员付费周期
+				Date nextPaymentDate = null;
+				if (nextMonth > currentMonth) {
+					nextPaymentDate = DateUtil.addMonths(date, nextMonth - currentMonth);
+				} else if (nextMonth < currentMonth) {
+					nextPaymentDate = DateUtil.addMonths(date, 12 - currentMonth + nextMonth);
+				} else {
+					nextPaymentDate = DateUtil.addMonths(date, 12);
+				}
+				return DateUtil.getFirstDayOfMonth(nextPaymentDate);
 			}
-			// 修改学员付费周期
-			Date nextPaymentDate = null;
-			if(nextMonth > currentMonth){
-				nextPaymentDate = DateUtil.addMonths(date, nextMonth - currentMonth);
-			}else if(nextMonth < currentMonth) {
-				nextPaymentDate = DateUtil.addMonths(date, 12 - currentMonth + nextMonth);
-			}else {
-				nextPaymentDate = DateUtil.addMonths(date, 12);
-			}
-			return DateUtil.getFirstDayOfMonth(nextPaymentDate);
 		}
 		return null;
 	}

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

@@ -1784,13 +1784,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			if (months != null && months.size() > 0) {
 				// 批量插入
 				musicGroupPaymentCalenderDao.batchAdd(months, musicGroupId);
-				
-				//生成学员费用表
-		        List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
-		        if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-		            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
-		        }
 			}
+			
+			//生成学员费用表
+	        List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
+	        if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
+	            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+	        }
 		}
         musicGroupDao.update(musicGroup);
         //修改课程里面的教学点

+ 4 - 2
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -378,7 +378,7 @@
                 AND sr.music_group_status_ = #{studentStatus}
             </if>
             <if test="paymentStatus != null">
-                AND sr.payment_status_ = #{paymentStatus}
+                AND mgsf.payment_status_ = #{paymentStatus}
             </if>
             <if test="musicGroupId != null and musicGroupId != ''">
                 AND sr.music_group_id_ = #{musicGroupId}
@@ -408,7 +408,7 @@
         <result property="isActive" column="isActive_"/>
     </resultMap>
     <select id="queryMusicGroupStudent" resultMap="MusicGroupStudentsDto">
-        SELECT sr.user_id_,su.username_ real_name_,su.gender_,su.phone_ parents_phone_,sr.current_grade_,sr.payment_status_,
+        SELECT sr.user_id_,su.username_ real_name_,su.gender_,su.phone_ parents_phone_,sr.current_grade_,mgsf.payment_status_,
         sr.current_class_,sr.music_group_status_,mgsf.next_payment_date_,mgsf.course_fee_,
         s.name_ subject_name_,sr.music_group_id_,case when su.password_ is null then 0 else 1 end isActive_,
         IF(DATE_FORMAT(sr.create_time_,'%Y-%m-%d') > DATE_FORMAT(mg.payment_expire_date_,'%Y-%m-%d'),1,0) is_new_student_
@@ -427,6 +427,8 @@
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
+        LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
+        LEFT JOIN music_group_student_fee_ mgsf ON mgsf.music_group_id_ = mg.id_ AND mgsf.user_id_ = su.id_
         <include refid="queryMusicGroupStudentSql"/>
     </select>