|  | @@ -1,22 +1,24 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.MusicGroupDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.SimpleUserDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.MusicGroup;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.MusicGroupPaymentCalenderDetailService;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.service.SysMessageService;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.dal.BaseDAO;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.exception.BizException;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.service.impl.BaseServiceImpl;
 | 
	
		
			
				|  |  | +import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 | 
	
		
			
				|  |  |  import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.math.BigDecimal;
 | 
	
		
			
				|  |  | -import java.util.Date;
 | 
	
		
			
				|  |  | -import java.util.List;
 | 
	
		
			
				|  |  | -import java.util.Objects;
 | 
	
		
			
				|  |  | -import java.util.Set;
 | 
	
		
			
				|  |  | +import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
 | 
	
	
		
			
				|  | @@ -27,6 +29,10 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private MusicGroupDao musicGroupDao;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private SysMessageService sysMessageService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	public BaseDAO<Long, MusicGroupPaymentCalenderDetail> getDAO() {
 | 
	
	
		
			
				|  | @@ -62,22 +68,42 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 | 
	
		
			
				|  |  |  		if(StringUtils.isEmpty(ids)){
 | 
	
		
			
				|  |  |  			throw new BizException("参数校验失败");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		//获取缴费列表
 | 
	
		
			
				|  |  | -		List<MusicGroupPaymentCalenderDetail> calenderDetails = musicGroupPaymentCalenderDetailDao.queryListByIds(ids);
 | 
	
		
			
				|  |  | +		//获取可开启缴费列表
 | 
	
		
			
				|  |  | +		List<MusicGroupPaymentCalenderDetail> calenderDetails = musicGroupPaymentCalenderDetailDao.queryCanOpenList(ids);
 | 
	
		
			
				|  |  |  		if(calenderDetails.size() == 0){
 | 
	
		
			
				|  |  | -			throw new BizException("缴费记录不存在");
 | 
	
		
			
				|  |  | +			return;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		Date date = new Date();
 | 
	
		
			
				|  |  | -		calenderDetails.forEach(e->{
 | 
	
		
			
				|  |  | -			if(e.getPaymentStatus() == null || e.getPaymentStatus() != NON_PAYMENT){
 | 
	
		
			
				|  |  | -				throw new BizException("修改失败,缴费状态不匹配");
 | 
	
		
			
				|  |  | +		/*Iterator<MusicGroupPaymentCalenderDetail> iterator = calenderDetails.iterator();
 | 
	
		
			
				|  |  | +		MusicGroupPaymentCalenderDetail next;
 | 
	
		
			
				|  |  | +		while(iterator.hasNext()){
 | 
	
		
			
				|  |  | +			next = iterator.next();
 | 
	
		
			
				|  |  | +			int count = musicGroupPaymentCalenderDetailDao.queryIntersectionByPaymentDate(next.getMusicGroupId(),next.getUserId());
 | 
	
		
			
				|  |  | +			if(count > 0){
 | 
	
		
			
				|  |  | +				iterator.remove();
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | +		}*/
 | 
	
		
			
				|  |  | +		String musicGroupId = calenderDetails.get(0).getMusicGroupId();
 | 
	
		
			
				|  |  | +		calenderDetails.forEach(e->{
 | 
	
		
			
				|  |  |  			e.setUpdateTime(date);
 | 
	
		
			
				|  |  | +			e.setOpen(1);
 | 
	
		
			
				|  |  |  			e.setPaymentStatus(PROCESSING);
 | 
	
		
			
				|  |  | +			e.setStartPaymentDate(date);
 | 
	
		
			
				|  |  | +			e.setDeadlinePaymentDate(date);
 | 
	
		
			
				|  |  |  		});
 | 
	
		
			
				|  |  |  		musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
 | 
	
		
			
				|  |  |  		Set<Integer> studentIds = calenderDetails.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
 | 
	
		
			
				|  |  |  		//推送消息
 | 
	
		
			
				|  |  | +		if (studentIds.size() > 0) {
 | 
	
		
			
				|  |  | +			Map<Integer, String> push = new HashMap<>();
 | 
	
		
			
				|  |  | +			for (Integer userId : studentIds) {
 | 
	
		
			
				|  |  | +				push.put(userId, userId + "");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 | 
	
		
			
				|  |  | +			String memo = "4?http://mstudev.dayaedu.com/#/renew?musicGroupId=" + musicGroupId;
 | 
	
		
			
				|  |  | +			// 发送续费通知
 | 
	
		
			
				|  |  | +			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push, null, 0, memo,"STUDENT",musicGroup.getName());
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 |