Browse Source

update 修改续费回调逻辑

周箭河 5 years ago
parent
commit
4b0fbce22c

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

@@ -11,6 +11,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 批量新增
+	 *
 	 * @param musicGroupPaymentCalenderDetailList
 	 * @return
 	 */
@@ -18,6 +19,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 获取列表
+	 *
 	 * @param ids
 	 * @return
 	 */
@@ -25,12 +27,14 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 批量修改
+	 *
 	 * @param calenderDetails
 	 */
 	void batchUpdate(@Param("calenderDetails") List<MusicGroupPaymentCalenderDetail> calenderDetails);
 
 	/**
 	 * 根据指定的日历编号查询
+	 *
 	 * @param musicGroupPaymentCalenderId
 	 * @return
 	 */
@@ -38,6 +42,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 根据声部获取乐团下完成缴费的学员
+	 *
 	 * @param musicGroupId
 	 * @param subjectId
 	 * @return
@@ -45,4 +50,12 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 	List<SimpleUserDto> findMusicGroupStudentWithSubject(@Param("musicGroupId") String musicGroupId,
 														 @Param("subjectId") Integer subjectId);
 
+
+	/**
+	 * 获取学生最后一期续费记录
+	 * @param musicGroupId
+	 * @param userId
+	 * @return
+	 */
+	MusicGroupPaymentCalenderDetail getUserLastCalenderDetail(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
 }

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

@@ -148,6 +148,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     private GoodsService goodsService;
     @Autowired
     private ClassGroupStudentMapperService classGroupStudentMapperService;
+    @Autowired
+    private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
 
     @Autowired
     private ImFeignService imFeignService;
@@ -1658,8 +1660,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean renewForCallback(StudentPaymentOrder studentPaymentOrder) throws IOException {
 
-        studentPaymentOrderService.update(studentPaymentOrder);
-
+        int updateNum = studentPaymentOrderService.update(studentPaymentOrder);
+        if(updateNum <= 0){
+            throw new BizException("订单更新失败");
+        }
         Integer userId = studentPaymentOrder.getUserId();
         String musicGroupId = studentPaymentOrder.getMusicGroupId();
 
@@ -1683,6 +1687,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 //            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);
+
             //插入交易明细
             SysUserCashAccount cashAccount = sysUserCashAccountService.get(userId);
             BigDecimal amount = studentPaymentOrder.getActualAmount();

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

@@ -195,4 +195,11 @@
 		WHERE music_group_id_=#{musicGroupId} AND payment_status_ IN ('PAID_COMPLETED', 'PROCESSING')
 		ORDER BY start_payment_date_ DESC LIMIT 1) t);
 	</select>
+
+	<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'
+		ORDER BY mgpc.start_payment_date_ DESC
+	</select>
 </mapper>