Ver Fonte

fix 会员订单退款

zoujiajian há 1 ano atrás
pai
commit
6a805ab2e9

+ 4 - 4
netflix-service/src/main/java/com/cyksj/service/mange/vip/impl/CmsVipOrderServiceImpl.java

@@ -126,12 +126,12 @@ public class CmsVipOrderServiceImpl implements CmsVipOrderService {
 				Integer extendsDays = orderDon.getExtendsDays();
 				DateTime now = DateTime.now();
 				if (remainExpiryTime.compareTo(now) > 0 && extendsDays > 0) {
-					subExpiryTime = now;
+					subExpiryTime = DateUtil.offsetDay(subExpiryTime, -extendsDays);
 				}
 			}
 			//若会员过期清除镜像user
 			vipUser.setExpiryTime(subExpiryTime);
-			clearVipMirrorUser(vipUser.getUserId(), subExpiryTime);
+			clearVipMirrorUser(userIdList, subExpiryTime);
 			vipUserMapper.updateById(vipUser);
 		}
 		if (StrUtil.isNotBlank(refundType) && !refundType.equals(VipOrderDon.Type.BALANCE.getType())) {
@@ -288,10 +288,10 @@ public class CmsVipOrderServiceImpl implements CmsVipOrderService {
 	 * 整理会员车票时长
 	 * 过期清除镜像user
 	 */
-	private void clearVipMirrorUser(Long userId, Date expiryTimeAfterSub) {
+	private void clearVipMirrorUser(List<Long> userIds, Date expiryTimeAfterSub) {
 		Boolean overdue = expiryTimeAfterSub.before(DateTime.now());
 		List<GroupsRelation> groupsRelations = relationMapper.selectList(Wrappers.lambdaQuery(GroupsRelation.class)
-				.eq(GroupsRelation::getUserId, userId)
+				.in(GroupsRelation::getUserId, userIds)
 				.eq(GroupsRelation::getIsVip, Boolean.TRUE));
 		groupsRelations.forEach(ticket -> {
 			if (overdue) {