Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

周箭河 5 vuotta sitten
vanhempi
commit
67b440f68a

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java

@@ -99,4 +99,17 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 * @param subjectId
 	 */
     void updateCourseFee(@Param("musicGroupId") String musicGroupId, @Param("subjectId") Integer subjectId,@Param("courseFee") BigDecimal courseFee);
+
+	/**
+	 * 初始化学员缴费信息
+	 * @param musicGroupId
+	 */
+	List<MusicGroupStudentFee> initMusicGroupStudentFee(String musicGroupId);
+
+	/**
+	 * 批量新增学员缴费信息
+	 * @param musicGroupStudentFees
+	 * @param nextPaymentDate
+	 */
+	void batchInsert(@Param("musicGroupStudentFees") List<MusicGroupStudentFee> musicGroupStudentFees, @Param("nextPaymentDate") Date nextPaymentDate);
 }

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

@@ -647,6 +647,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupSubjectPlanDao.delByMusicGroupId(musicGroupId);
             //删除原有的声部商品组合
             musicGroupSubjectGoodsGroupDao.delByMusicGroupId(subFeeSettingDto.getMusicGroupId());
+            //如果是进行中,补充缴费信息
+            if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
+                List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
+                if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
+                    Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
+                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate);
+                }
+            }
             List<MusicGroupSubjectPlan> musicGroupSubjectPlans = subFeeSettingDto.getMusicGroupSubjectPlans();
             if (musicGroupSubjectPlans != null && musicGroupSubjectPlans.size() > 0) {
                 musicGroupSubjectPlans.forEach(e->{

+ 14 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -38,6 +38,14 @@
 		VALUES(#{id},#{musicGroupId},#{userId},#{courseFee},now(),now(),#{nextPaymentDate},#{latestPaidTime},#{continuousAbsenteeismTimes},#{subjectId},#{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{temporaryCourseFee})
 	</insert>
 
+    <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupStudentFee">
+        INSERT INTO music_group_student_fee_ (music_group_id_,user_id_,create_time_,update_time_,next_payment_date_,subject_id_,payment_status_)
+		VALUES
+		<foreach collection="musicGroupStudentFees" item="item" separator=",">
+            (#{item.musicGroupId},#{item.userId},NOW(),NOW(),#{nextPaymentDate},#{item.subjectId},'NON_PAYMENT')
+        </foreach>
+    </insert>
+
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupStudentFee">
         UPDATE music_group_student_fee_
@@ -155,6 +163,12 @@
             </foreach>
     </select>
 
+    <select id="initMusicGroupStudentFee" resultMap="MusicGroupStudentFee">
+        SELECT sr.music_group_id_,sr.user_id_,sr.actual_subject_id_ subject_id_ FROM student_registration sr
+        LEFT JOIN music_group_student_fee_ mgsf ON sr.user_id_ = mgsf.user_id_
+        WHERE sr.music_group_status_ != 'QUIT' AND sr.payment_status_ = 2 AND mgsf.id_ IS NULL AND sr.music_group_id_ = #{musicGroupId}
+    </select>
+
     <update id="batchUpdate" parameterType="java.util.List">
     	<foreach collection="list" item="item" index="index" open="" close="" separator=";">
         UPDATE music_group_student_fee_