Sfoglia il codice sorgente

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

yonge 4 anni fa
parent
commit
fe3d17712e
21 ha cambiato i file con 269 aggiunte e 76 eliminazioni
  1. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChargeTypeSubjectMapperDao.java
  2. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GoodsDao.java
  3. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderCourseSettingsDao.java
  4. 29 20
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java
  5. 13 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java
  6. 8 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderService.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java
  8. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java
  9. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  10. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  11. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java
  12. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  13. 8 0
      mec-biz/src/main/resources/config/mybatis/ChargeTypeSubjectMapperMapper.xml
  14. 9 0
      mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml
  15. 1 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderCourseSettingsMapper.xml
  16. 3 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml
  17. 3 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml
  18. 42 38
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  19. 87 0
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupPaymentCalenderController.java
  20. 1 9
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java
  21. 11 2
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChargeTypeSubjectMapperDao.java

@@ -25,4 +25,6 @@ public interface ChargeTypeSubjectMapperDao extends BaseDAO<Long, ChargeTypeSubj
      * @return
      */
     ChargeTypeSubjectMapper getSubjectDiscount(@Param("chargeTypeId") Integer chargeTypeId, @Param("subjectId") Integer subjectId);
-}
+
+    ChargeTypeSubjectMapper getSubjectsDiscount(@Param("chargeTypeId") Integer chargeTypeId, @Param("subjectIds") String subjectIds);
+}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GoodsDao.java

@@ -133,4 +133,6 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
      * @return
      */
     List<MusicGroupGoodsAndDiscountDto> getMusicGroupGoodsAndDiscount(@Param("subjectId") Integer subjectId, @Param("type") String type);
+
+    List<MusicGroupGoodsAndDiscountDto> getMusicGroupGoodsAndDiscountWithSubjects(@Param("subjectIds") String subjectIds, @Param("type") String type);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderCourseSettingsDao.java

@@ -51,5 +51,5 @@ public interface MusicGroupPaymentCalenderCourseSettingsDao extends BaseDAO<Inte
 	 * @param calenderId:
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings>
 	 */
-	List<MusicGroupPaymentCalenderCourseSettings> queryCalenderCourseSettings(Integer calenderId);
+	List<MusicGroupPaymentCalenderCourseSettings> queryCalenderCourseSettings(Long calenderId);
 }

+ 29 - 20
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java

@@ -69,10 +69,11 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
      * @return
      */
     int queryIntersectionByPaymentDate(@Param("musicGroupId") String musicGroupId, @Param("startPaymentDate") Date startPaymentDate,
-                                       @Param("deadlinePaymentDate") Date deadlinePaymentDate,@Param("calenderId") Long calenderId);
+                                       @Param("deadlinePaymentDate") Date deadlinePaymentDate, @Param("calenderId") Long calenderId);
 
     /**
      * 乐团最后一次交费信息
+     *
      * @param musicGroupId
      * @return
      */
@@ -81,15 +82,15 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
     int queryIntersectionByDate(@Param("musicGroupId") String musicGroupId, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     /**
+     * @param musicGroupId:
+     * @param paymentValidStartDate:
+     * @param paymentValidEndDate:
+     * @return int
      * @describe 根据指定乐团的有效日期查询交集
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/21
      * @time 10:46
-     * @param musicGroupId:
-     * @param paymentValidStartDate:
-     * @param paymentValidEndDate:
-     * @return int
      */
     int queryIntersectionByValidDate(@Param("musicGroupId") String musicGroupId,
                                      @Param("paymentValidStartDate") Date paymentValidStartDate,
@@ -97,13 +98,13 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
                                      @Param("calenderId") Long calenderId);
 
     /**
+     * @param configValue:
+     * @return void
      * @describe 获取指定时间后的缴费信息
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/21
      * @time 17:35
-     * @param configValue:
-     * @return void
      */
     List<Map<Long, Long>> queryCalenderByDay(@Param("configValue") String configValue, @Param("format") String format);
 
@@ -116,53 +117,53 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
     List<CalenderPushDto> getMusicCalenderPushDto(@Param("configValue") String configValue, @Param("format") String format);
 
     /**
+     * @param musicGroupId:
+     * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender
      * @describe 获取乐团下未使用的最早的缴费记录
      * @author Joburgess
      * @date 2020.10.27
-     * @param musicGroupId:
-     * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender
      */
     MusicGroupPaymentCalender getMusicGroupUnusedFirstPaymentCalender(@Param("musicGroupId") String musicGroupId,
                                                                       @Param("studentIds") List<Integer> studentIds);
 
     /**
+     * @param calenderIds:
+     * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender
      * @describe 获取指定缴费日历中下未使用的最早的缴费记录
      * @author Joburgess
      * @date 2020.10.27
-     * @param calenderIds:
-     * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender
      */
     MusicGroupPaymentCalender getUnusedFirstPaymentCalenderWithCalenders(@Param("calenderIds") List<Long> calenderIds);
 
     /**
+     * @param batchNo: 批次号
+     * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender>
      * @describe 根据批次号获取缴费日历
      * @author Joburgess
      * @date 2020.10.30
-     * @param batchNo: 批次号
-     * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender>
      */
     List<MusicGroupPaymentCalender> findByBatchNo(@Param("batchNo") String batchNo);
 
 
     /**
+     * @param params:
+     * @return int
      * @describe 乐团缴费日历审核列表
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/10/30
      * @time 13:47
-     * @param params:
-     * @return int
      */
     int countAuditList(Map<String, Object> params);
 
     /**
+     * @param params:
+     * @return int
      * @describe 乐团缴费日历审核列表
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/10/30
      * @time 13:47
-     * @param params:
-     * @return int
      */
     List<MusicGroupPaymentCalenderAuditDto> queryAuditList(Map<String, Object> params);
 
@@ -183,13 +184,21 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
     List<Map<Long, Long>> countActualNum(@Param("id") Long id);
 
     /**
+     * @param calenderId:
+     * @return com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto
      * @describe 获取审核详情
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/11/2
      * @time 17:46
-     * @param calenderId:
-     * @return com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto
      */
-    MusicGroupPaymentCalenderAuditDto getAuditDetail(@Param("calenderId") Integer calenderId);
+    MusicGroupPaymentCalenderAuditDto getAuditDetail(@Param("calenderId") Long calenderId);
+
+    /**
+     * 获取乐团的报名缴费日历
+     *
+     * @param musicGroupId
+     * @return
+     */
+    MusicGroupPaymentCalender findByMusicGroupRegCalender(@Param("musicGroupId") String musicGroupId);
 }

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java

@@ -167,7 +167,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
      * @param musicGroupId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
      */
-	List<SimpleUserDto> querySimpleUserDto(@Param("calenderId") Integer calenderId, @Param("musicGroupId") String musicGroupId);
+	List<SimpleUserDto> querySimpleUserDto(@Param("calenderId") Long calenderId, @Param("musicGroupId") String musicGroupId);
 
 	/**
 	 * 统计实际收款金额
@@ -175,4 +175,16 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 	 * @return
 	 */
 	BigDecimal sumActualAmount(@Param("id") Long id);
+
+	/**
+	 * @describe 获取学员缴费日历详情
+	 * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+	 * @author zouxuan
+	 * @date 2020/11/3
+	 * @time 14:47
+	 * @param calenderId:
+	 * @param userId:
+	 * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail
+	 */
+	MusicGroupPaymentCalenderDetail findByCalenderIdAndUserId(@Param("calenderId") Long calenderId, @Param("userId") Integer userId);
 }

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderService.java

@@ -93,7 +93,7 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 * @param calenderId:
 	 * @return com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDetailDto
 	 */
-	MusicGroupPaymentCalenderAuditDetailDto auditListDetail(Integer calenderId);
+	MusicGroupPaymentCalenderAuditDetailDto auditListDetail(Long calenderId);
 
 	/**
 	 * @describe 审核通过
@@ -116,4 +116,11 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 * @return void
 	 */
 	void auditRefuse(Long calenderId,String auditMemo);
+
+	/**
+	 * 获取乐团报名的缴费日历
+	 * @param musicGroupId
+	 * @return
+	 */
+	MusicGroupPaymentCalender findByMusicGroupRegCalender(String musicGroupId);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java

@@ -83,4 +83,4 @@ public interface MusicGroupSubjectPlanService extends BaseService<Integer, Music
      * @return
      */
     List<MusicGroupGoodsAndDiscountDto> getSubjectGoods(Integer subjectId, String type, Integer chargeTypeId);
-}
+}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -116,6 +116,7 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 						default:
 							throw new BizException("活动类型错误!");
 					}
+                    courseScheduleStudentPayment.setOriginalPrice(vipGroupApplyBaseInfoDto.getOnlineClassesUnitPrice());
 				}else{
 					//学生线下单节课应缴费计算
 					switch (vipGroupActivity.getType()) {
@@ -141,6 +142,7 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 							throw new BizException("活动类型错误!");
 					}
 				}
+                courseScheduleStudentPayment.setOriginalPrice(vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice());
 				courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 			}
 		}

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -423,7 +423,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	}
 
 	@Override
-	public MusicGroupPaymentCalenderAuditDetailDto auditListDetail(Integer calenderId) {
+	public MusicGroupPaymentCalenderAuditDetailDto auditListDetail(Long calenderId) {
 		MusicGroupPaymentCalenderAuditDetailDto calenderAuditDetailDto = new MusicGroupPaymentCalenderAuditDetailDto();
 		MusicGroupPaymentCalenderAuditDto auditDto = musicGroupPaymentCalenderDao.getAuditDetail(calenderId);
 		if(auditDto.getOrganId() != null){
@@ -758,4 +758,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			}
 		}
 	}
+
+	@Override
+	public MusicGroupPaymentCalender findByMusicGroupRegCalender(String musicGroupId) {
+		return musicGroupPaymentCalenderDao.findByMusicGroupRegCalender(musicGroupId);
+	}
+
 }

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

@@ -1047,6 +1047,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setMemo(memo);
         musicGroup.setStatus(MusicGroupStatusEnum.AUDIT_FAILED);
         musicGroupDao.update(musicGroup);
+        //修改缴费项目状态
+        List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
+        if (musicGroupPaymentCalenders != null && musicGroupPaymentCalenders.size() > 0) {
+            musicGroupPaymentCalenders.forEach(e -> {
+                e.setStatus(MusicGroupPaymentCalender.PaymentCalenderStatusEnum.REJECT);
+            });
+            musicGroupPaymentCalenderDao.batchUpdate(musicGroupPaymentCalenders);
+        }
     }
 
     @Override
@@ -1375,6 +1383,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean extensionPaymentExpireDate(String musicGroupId, Date expireDate) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
@@ -1398,6 +1407,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setPaymentExpireDate(expireDate);
         musicGroup.setUpdateTime(date);
         musicGroupDao.update(musicGroup);
+
+        MusicGroupPaymentCalender regCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(musicGroup.getId());
+        if (regCalender != null) {
+            regCalender.setDeadlinePaymentDate(expireDate);
+            musicGroupPaymentCalenderService.update(regCalender);
+        }
+
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "延长缴费", sysUser.getId(), ""));
         Set<Integer> roleIds = new HashSet<>(4);
         roleIds.add(SysUserRole.SECTION_MANAGER);

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

@@ -236,4 +236,4 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
         }
         return goodsList;
     }
-}
+}

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -107,6 +107,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     private GoodsDao goodsDao;
     @Autowired
     private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
+    @Autowired
+    private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -929,6 +931,25 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder, musicGroup);
             }
 
+            //缴费详情 calender detail
+            MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(musicGroup.getId());
+            MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
+            musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
+            musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
+            musicGroupPaymentCalenderDetail.setExpectAmount(studentPaymentOrder.getExpectAmount());
+            musicGroupPaymentCalenderDetail.setActualAmount(studentPaymentOrder.getActualAmount());
+            musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+            musicGroupPaymentCalenderDetail.setUserStatus(null);
+            musicGroupPaymentCalenderDetail.setPayTime(nowDate);
+            musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupRegCalender.getDeadlinePaymentDate());
+            musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupRegCalender.getStartPaymentDate());
+            musicGroupPaymentCalenderDetail.setOpen(1);
+            musicGroupPaymentCalenderDetail.setCreateTime(nowDate);
+            musicGroupPaymentCalenderDetail.setUpdateTime(nowDate);
+            musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+            musicGroupPaymentCalenderDetail.setUseInCourse(0);
+            musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
+
             //三方乐团不发送缴费通知
             if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
                 //发送缴费成功通知(短信 + push)

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/ChargeTypeSubjectMapperMapper.xml

@@ -147,4 +147,12 @@
         WHERE charge_type_id_ = #{chargeTypeId}
           AND subject_id_ = #{subjectId}
     </select>
+
+    <!-- 根据收费类型获取乐团乐器折扣 -->
+    <select id="getSubjectsDiscount" resultMap="ChargeTypeSubjectMapper">
+        SELECT *
+        FROM charge_type_subject_mapper
+        WHERE charge_type_id_ = #{chargeTypeId}
+          AND FIND_IN_SET(subject_id_, #{subjectIds})
+    </select>
 </mapper>

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -378,4 +378,13 @@
             AND g.type_ = #{type}
         </if>
     </select>
+
+    <select id="getMusicGroupGoodsAndDiscountWithSubjects" resultMap="MusicGroupGoods">
+        SELECT g.* FROM subject_goods_mapper sgm
+        LEFT JOIN goods g ON sgm.goods_category_id_ = g.goods_category_id_
+        WHERE FIND_IN_SET(sgm.subject_id_, #{subjectIds}) and g.status_ != 0
+        <if test="type!=null">
+            AND g.type_ = #{type}
+        </if>
+    </select>
 </mapper>

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderCourseSettingsMapper.xml

@@ -120,6 +120,7 @@
 		ON mgpccs.music_group_payment_calender_id_ = mgpc.id_
 		WHERE mgpc.music_group_id_ = #{musicGroupId}
 		AND mgpc.payment_type_ = 'MUSIC_APPLY'
+		AND mgpc.pay_user_type_='STUDENT'
 	</select>
 
     <select id="getCalenderCourseSettings" resultMap="MusicGroupPaymentCalenderCourseSettings">

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml

@@ -360,4 +360,7 @@
 		SELECT SUM(mgpcd.actual_amount_) FROM music_group_payment_calender_detail mgpcd
 		WHERE mgpcd.music_group_payment_calender_id_ = #{id}
 	</select>
+	<select id="findByCalenderIdAndUserId" resultMap="MusicGroupPaymentCalenderDetail">
+		SELECT * FROM music_group_payment_calender_detail WHERE music_group_payment_calender_id_ = #{calenderId} AND user_id_ = #{userId} LIMIT 1
+	</select>
 </mapper>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -437,4 +437,7 @@
         LEFT JOIN music_group_payment_calender_course_settings mgpccs ON mgpc.id_ = mgpccs.music_group_payment_calender_id_
         WHERE mgpc.id_ = #{calenderId} LIMIT 1
     </select>
+    <select id="findByMusicGroupRegCalender" resultMap="MusicGroupPaymentCalender">
+        SELECT * FROM music_group_payment_calender WHERE music_group_id_=#{musicGroupId} AND payment_type_='MUSIC_APPLY'
+    </select>
 </mapper>

+ 42 - 38
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -106,7 +106,7 @@ public class MusicGroupController extends BaseController {
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        return succeed(musicGroupService.findTeachersByStuId(sysUser.getId(),search));
+        return succeed(musicGroupService.findTeachersByStuId(sysUser.getId(), search));
     }
 
 
@@ -154,18 +154,22 @@ public class MusicGroupController extends BaseController {
         if (studentRegistration.getPaymentStatus() != PaymentStatusEnum.OPEN) {
             return failed("乐团还未开启缴费,请等待通知");
         }
-		if (studentRegistration.getTemporaryCourseFee() == null) {
-			if (musicGroup.getStatus() != MusicGroupStatusEnum.APPLY && musicGroup.getStatus() != MusicGroupStatusEnum.PAY) {
-				return failed("乐团在" + musicGroup.getStatus().getMsg() + ",不能缴费");
-			}
-
-			if(musicGroup.getStatus() == MusicGroupStatusEnum.PAY){
-				Date now = new Date();
-				if (DateUtil.daysBetween(musicGroup.getPaymentExpireDate(), now) > 1) {
-					return failed("乐团缴费时间已截止");
-				}
-			}
-		}
+        if (studentRegistration.getTemporaryCourseFee() == null) {
+            if (musicGroup.getStatus() != MusicGroupStatusEnum.APPLY && musicGroup.getStatus() != MusicGroupStatusEnum.PAY) {
+                return failed("乐团在" + musicGroup.getStatus().getMsg() + ",不能缴费");
+            }
+
+            if (musicGroup.getStatus() == MusicGroupStatusEnum.PAY) {
+                Date now = new Date();
+                MusicGroupPaymentCalender regCalender = musicGroupPaymentCalenderDao.findByMusicGroupRegCalender(musicGroupId);
+                if (regCalender != null) {
+                    musicGroup.setPaymentExpireDate(regCalender.getDeadlinePaymentDate());
+                }
+                if (DateUtil.daysBetween(musicGroup.getPaymentExpireDate(), now) > 1) {
+                    return failed("乐团缴费时间已截止");
+                }
+            }
+        }
         studentRegistration.setOwnershipType(musicGroup.getOwnershipType());
         studentRegistration.setChargeTypeId(musicGroup.getChargeTypeId());
 
@@ -174,7 +178,7 @@ public class MusicGroupController extends BaseController {
 
     @ApiOperation(value = "查询续费信息")
     @GetMapping("/queryRenewInfo")
-    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
     public HttpResponseResult queryRenewInfo(String musicGroupId) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         Integer userId = sysUser.getId();
@@ -191,9 +195,9 @@ public class MusicGroupController extends BaseController {
             throw new BizException("已缴费");
         }
         MusicGroupPaymentCalenderDetail userLastCalenderDetail = musicGroupPaymentCalenderDetailDao.getUserLastCalenderDetail(musicGroupId, userId);
-        if(userLastCalenderDetail == null){
+        if (userLastCalenderDetail == null) {
             MusicGroupPaymentCalender lastCalender = musicGroupPaymentCalenderDao.getLastStartOne(musicGroupId);
-           String tips =  (lastCalender != null && lastCalender.getStatus() == PaymentCalenderStatusEnum.OVER)?"当前续费时间已截止,如有问题请联系指导老师":"当前续费未开始,如有问题请联系指导老师";
+            String tips = (lastCalender != null && lastCalender.getStatus() == PaymentCalenderStatusEnum.OVER) ? "当前续费时间已截止,如有问题请联系指导老师" : "当前续费未开始,如有问题请联系指导老师";
             throw new BizException(tips);
         }
 
@@ -210,38 +214,38 @@ public class MusicGroupController extends BaseController {
         model.put("amount", amount);
         model.put("nextPaymentDate", musicGroupStudentFee.getNextPaymentDate());
         model.put("musicGroupSubjectPlan", musicGroupSubjectPlan);
-        model.put("balance",studentRegistration.getBalance());
+        model.put("balance", studentRegistration.getBalance());
 
         return succeed(model);
     }
 
-	@ApiOperation(value = "续费")
-	@GetMapping("/renew")
-	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String"),
-			@ApiImplicitParam(name = "isUseBalancePayment", value = "是否使用余额付款", required = true, dataType = "Boolean") })
-	public HttpResponseResult renew(String musicGroupId, Boolean isUseBalancePayment, boolean isRepeatPay) throws Exception {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		Integer userId = sysUser.getId();
-
-		if (isUseBalancePayment == null) {
-			isUseBalancePayment = false;
-		}
-		if (isRepeatPay == false) {
+    @ApiOperation(value = "续费")
+    @GetMapping("/renew")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "isUseBalancePayment", value = "是否使用余额付款", required = true, dataType = "Boolean")})
+    public HttpResponseResult renew(String musicGroupId, Boolean isUseBalancePayment, boolean isRepeatPay) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Integer userId = sysUser.getId();
+
+        if (isUseBalancePayment == null) {
+            isUseBalancePayment = false;
+        }
+        if (isRepeatPay == false) {
             // 判断是否存在支付中的记录
             List<StudentPaymentOrder> list = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, musicGroupId, userId, DealStatusEnum.ING,
                     OrderTypeEnum.RENEW);
-			if (list.size() > 0) {
-				return failed(HttpStatus.CONTINUE, "您有待支付的订单");
-			}
-		}
+            if (list.size() > 0) {
+                return failed(HttpStatus.CONTINUE, "您有待支付的订单");
+            }
+        }
         MusicGroupPaymentCalenderDetail userLastCalenderDetail = musicGroupPaymentCalenderDetailDao.getUserLastCalenderDetail(musicGroupId, userId);
-        if(userLastCalenderDetail == null){
+        if (userLastCalenderDetail == null) {
             MusicGroupPaymentCalender lastCalender = musicGroupPaymentCalenderDao.getLastStartOne(musicGroupId);
-            String tips =  (lastCalender != null && lastCalender.getStatus() == PaymentCalenderStatusEnum.OVER)?"当前续费时间已截止,如有问题请联系指导老师":"当前续费未开始,如有问题请联系指导老师";
+            String tips = (lastCalender != null && lastCalender.getStatus() == PaymentCalenderStatusEnum.OVER) ? "当前续费时间已截止,如有问题请联系指导老师" : "当前续费未开始,如有问题请联系指导老师";
             throw new BizException(tips);
         }
         return succeed(musicGroupService.renew(musicGroupId, userId, isUseBalancePayment));
-	}
+    }
 
     @ApiOperation(value = "退团")
     @PostMapping("/quitMusicGroup")
@@ -274,7 +278,7 @@ public class MusicGroupController extends BaseController {
             return failed(HttpStatus.CONTINUE, "您有待支付的订单");
         }
         Map payMap = musicGroupService.pay(registerPayDto);
-        if(payMap.containsKey("tradeState")){
+        if (payMap.containsKey("tradeState")) {
             return failed(HttpStatus.CREATED, "恭喜您,报名成功!");
         }
 
@@ -296,7 +300,7 @@ public class MusicGroupController extends BaseController {
             return failed("您已支付成功,请勿重复支付");
         }
         Map payMap = musicGroupService.rePay(registerPayDto);
-        if(payMap.containsKey("tradeState")){
+        if (payMap.containsKey("tradeState")) {
             return failed(HttpStatus.CREATED, "恭喜您,报名成功!");
         }
         return succeed(payMap);

+ 87 - 0
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupPaymentCalenderController.java

@@ -0,0 +1,87 @@
+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.*;
+import com.ym.mec.biz.dal.dto.RegisterPayDto;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
+import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.service.*;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.util.date.DateUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+
+@RequestMapping("musicGroupPaymentCalender")
+@Api(tags = "乐团缴费项目服务")
+@RestController
+public class MusicGroupPaymentCalenderController extends BaseController {
+
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private MusicGroupPaymentCalenderService musicGroupPaymentCalenderService;
+    @Autowired
+    private StudentRegistrationService studentRegistrationService;
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
+    @Autowired
+    private MusicGroupPaymentCalenderCourseSettingsDao musicGroupPaymentCalenderCourseSettingsDao;
+
+
+    @ApiOperation(value = "查询学员缴费详情")
+    @GetMapping("/getCalenderInfo")
+    @ApiImplicitParams({@ApiImplicitParam(name = "calenderId", value = "缴费项目编号", required = true, dataType = "Long")})
+    public HttpResponseResult getCalenderInfo(Long calenderId){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Integer userId = sysUser.getId();
+        MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(calenderId);
+        if (calender == null) {
+            return failed("缴费项目不存在");
+        }
+        String musicGroupId = calender.getMusicGroupId();
+        MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.findByCalenderIdAndUserId(calenderId, userId);
+        if (calenderDetail == null) {
+            throw new BizException("缴费项不存在该学员,请联系教务老师");
+        }
+        if(calenderDetail.getPaymentStatus() == PaymentStatus.PAID_COMPLETED){
+            throw new BizException("当前缴费项已缴费");
+        }else if(calenderDetail.getPaymentStatus() == PaymentStatus.PROCESSING){
+            throw new BizException("当前缴费项存在待处理的订单,请稍候尝试");
+        }
+        if(calender.getStatus() == PaymentCalenderStatusEnum.OPEN){
+            StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId,musicGroupId);
+            if (studentRegistration == null) {
+                return failed("乐团报名信息找不到");
+            }
+            List<MusicGroupPaymentCalenderCourseSettings> calenderCourseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettings(calenderId);
+            ModelMap model = new ModelMap();
+            model.put("musicGroup",musicGroupDao.get(musicGroupId));
+            model.put("amount", calenderDetail.getExpectAmount());
+            model.put("calenderCourseSettings", calenderCourseSettings);
+            model.put("balance",studentRegistration.getBalance());
+            return succeed(model);
+        }else if(calender.getStatus() == PaymentCalenderStatusEnum.OVER){
+            throw new BizException("当前缴费项时间已截止,如有问题请联系指导老师");
+        }else {
+            throw new BizException("当前缴费项未开始,如有问题请联系指导老师");
+        }
+    }
+}

+ 1 - 9
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java

@@ -82,14 +82,6 @@ public class MusicGroupPaymentCalenderController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation(value = "开启缴费的推送(暂时不用,没写完)")
-    @GetMapping("/paymentPush")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/paymentPush')")
-    public Object paymentPush(Long id,String userIds) {
-        musicGroupPaymentCalenderService.paymentPush(id,userIds);
-        return succeed();
-    }
-
     @ApiOperation(value = "乐团缴费日历审核列表")
     @GetMapping("/auditList")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/auditList')")
@@ -117,7 +109,7 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     @ApiOperation(value = "乐团缴费日历审核列表详情")
     @GetMapping("/auditListDetail")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/auditListDetail')")
-    public Object auditListDetail(Integer calenderId) {
+    public Object auditListDetail(Long calenderId) {
         return succeed(musicGroupPaymentCalenderService.auditListDetail(calenderId));
     }
 

+ 11 - 2
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java

@@ -16,7 +16,9 @@ import org.springframework.web.bind.annotation.*;
 import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
 import com.ym.mec.common.controller.BaseController;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @RequestMapping("musicGroupSubjectPlan")
 @Api(tags = "乐团声部计划服务")
@@ -72,8 +74,15 @@ public class MusicGroupSubjectPlanController extends BaseController {
             @ApiImplicitParam(name = "type", value = "INSTRUMENT 乐器, ACCESSORIES 教辅", required = true, dataType = "String"),
             @ApiImplicitParam(name = "chargeTypeId", value = "收费模式id", required = true, dataType = "Integer")
     })
-    public HttpResponseResult<List<MusicGroupGoodsAndDiscountDto>> getSubjectGoods(Integer subjectId, String type, Integer chargeTypeId) {
-        return succeed(musicGroupSubjectPlanService.getSubjectGoods(subjectId, type, chargeTypeId));
+    public HttpResponseResult getSubjectGoods(String subjectIds, String type, Integer chargeTypeId) {
+        if(StringUtils.isBlank(subjectIds)){
+            return succeed();
+        }
+        Map<String, List<MusicGroupGoodsAndDiscountDto>> result = new HashMap<>();
+        for (String subjectIdStr : subjectIds.split(",")) {
+            result.put(subjectIdStr, musicGroupSubjectPlanService.getSubjectGoods(Integer.valueOf(subjectIdStr), type, chargeTypeId));
+        }
+        return succeed(result);
     }
 
 }