|  | @@ -40,7 +40,9 @@ import com.ym.mec.biz.service.SysUserCashAccountDetailService;
 | 
											
												
													
														|  |  import com.ym.mec.biz.service.SysUserCashAccountService;
 |  |  import com.ym.mec.biz.service.SysUserCashAccountService;
 | 
											
												
													
														|  |  import com.ym.mec.common.dal.BaseDAO;
 |  |  import com.ym.mec.common.dal.BaseDAO;
 | 
											
												
													
														|  |  import com.ym.mec.common.exception.BizException;
 |  |  import com.ym.mec.common.exception.BizException;
 | 
											
												
													
														|  | 
 |  | +import com.ym.mec.common.service.IdGeneratorService;
 | 
											
												
													
														|  |  import com.ym.mec.common.service.impl.BaseServiceImpl;
 |  |  import com.ym.mec.common.service.impl.BaseServiceImpl;
 | 
											
												
													
														|  | 
 |  | +import com.ym.mec.util.date.DateUtil;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  @Service
 |  |  @Service
 | 
											
												
													
														|  |  public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, MemberRankSetting> implements MemberRankSettingService {
 |  |  public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, MemberRankSetting> implements MemberRankSettingService {
 | 
											
										
											
												
													
														|  | @@ -74,6 +76,9 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  	@Autowired
 |  |  	@Autowired
 | 
											
												
													
														|  |  	private CloudTeacherOrderService cloudTeacherOrderService;
 |  |  	private CloudTeacherOrderService cloudTeacherOrderService;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +	@Autowired
 | 
											
												
													
														|  | 
 |  | +	private IdGeneratorService idGeneratorService;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  	private final Logger logger = LoggerFactory.getLogger(this.getClass());
 |  |  	private final Logger logger = LoggerFactory.getLogger(this.getClass());
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	@Override
 |  |  	@Override
 | 
											
										
											
												
													
														|  | @@ -221,8 +226,12 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  				}
 |  |  				}
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -		Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
 |  | 
 | 
											
												
													
														|  | 
 |  | +		String orderNo = idGeneratorService.generatorId("payment") + "";
 | 
											
												
													
														|  | 
 |  | +		studentPaymentOrder.setOrderNo(orderNo);
 | 
											
												
													
														|  | 
 |  | +		studentPaymentOrder.setCreateTime(date);
 | 
											
												
													
														|  | 
 |  | +		studentPaymentOrder.setUpdateTime(date);
 | 
											
												
													
														|  | 
 |  | +		studentPaymentOrder.setVersion(0);
 | 
											
												
													
														|  | 
 |  | +		studentPaymentOrderService.insert(studentPaymentOrder);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		// 订单明细
 |  |  		// 订单明细
 | 
											
												
													
														|  |  		cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
 |  |  		cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
 | 
											
										
											
												
													
														|  | @@ -231,11 +240,11 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  		cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
 |  |  		cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
 | 
											
												
													
														|  |  		cloudTeacherOrder.setStatus(0);
 |  |  		cloudTeacherOrder.setStatus(0);
 | 
											
												
													
														|  |  		cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
 |  |  		cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
 | 
											
												
													
														|  | 
 |  | +		cloudTeacherOrder.setCreateTime(date);
 | 
											
												
													
														|  | 
 |  | +		cloudTeacherOrder.setUpdateTime(date);
 | 
											
												
													
														|  |  		cloudTeacherOrderService.insert(cloudTeacherOrder);
 |  |  		cloudTeacherOrderService.insert(cloudTeacherOrder);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -		if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
 |  | 
 | 
											
												
													
														|  | -			orderCallback(studentPaymentOrder);
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | 
 |  | +		Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		return result;
 |  |  		return result;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
										
											
												
													
														|  | @@ -243,15 +252,18 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  	@Override
 |  |  	@Override
 | 
											
												
													
														|  |  	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 |  |  	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 | 
											
												
													
														|  |  	public boolean orderCallback(StudentPaymentOrder studentPaymentOrder) {
 |  |  	public boolean orderCallback(StudentPaymentOrder studentPaymentOrder) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		Integer userId = studentPaymentOrder.getUserId();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		Student student = studentService.getLocked(userId);
 | 
											
												
													
														|  | 
 |  | +		if (student == null) {
 | 
											
												
													
														|  | 
 |  | +			throw new BizException("学员信息不存在");
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +		
 | 
											
												
													
														|  |  		Date nowDate = new Date();
 |  |  		Date nowDate = new Date();
 | 
											
												
													
														|  |  		// 更新订单信息
 |  |  		// 更新订单信息
 | 
											
												
													
														|  |  		studentPaymentOrder.setUpdateTime(nowDate);
 |  |  		studentPaymentOrder.setUpdateTime(nowDate);
 | 
											
												
													
														|  | -		int updateCount = studentPaymentOrderService.update(studentPaymentOrder);
 |  | 
 | 
											
												
													
														|  | -		if (updateCount <= 0) {
 |  | 
 | 
											
												
													
														|  | -			throw new BizException("订单更新失败");
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -		Integer userId = studentPaymentOrder.getUserId();
 |  | 
 | 
											
												
													
														|  | 
 |  | +		studentPaymentOrderService.update(studentPaymentOrder);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
 |  |  		if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -267,9 +279,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  		if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
 |  |  		if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
 | 
											
												
													
														|  |  			// 查询会员订单信息
 |  |  			// 查询会员订单信息
 | 
											
												
													
														|  |  			CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderService.queryByOrderId(studentPaymentOrder.getId());
 |  |  			CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderService.queryByOrderId(studentPaymentOrder.getId());
 | 
											
												
													
														|  | -			cloudTeacherOrder.setStatus(1);
 |  | 
 | 
											
												
													
														|  | 
 |  | +			cloudTeacherOrder.setStatus(2);
 | 
											
												
													
														|  |  			cloudTeacherOrder.setUpdateTime(nowDate);
 |  |  			cloudTeacherOrder.setUpdateTime(nowDate);
 | 
											
												
													
														|  | -			cloudTeacherOrderService.update(cloudTeacherOrder);
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  			PeriodEnum periodEnum = PeriodEnum.MONTH;
 |  |  			PeriodEnum periodEnum = PeriodEnum.MONTH;
 | 
											
												
													
														|  |  			switch (cloudTeacherOrder.getType()) {
 |  |  			switch (cloudTeacherOrder.getType()) {
 | 
											
										
											
												
													
														|  | @@ -287,6 +298,31 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  				break;
 |  |  				break;
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +			if (student.getMemberRankSettingId() == null || nowDate.after(student.getMembershipEndTime())) {
 | 
											
												
													
														|  | 
 |  | +				cloudTeacherOrder.setStartTime(nowDate);
 | 
											
												
													
														|  | 
 |  | +				if (cloudTeacherOrder.getType() == 1) {
 | 
											
												
													
														|  | 
 |  | +					cloudTeacherOrder.setEndTime(DateUtil.addDays(nowDate, cloudTeacherOrder.getTime()));
 | 
											
												
													
														|  | 
 |  | +				} else if (cloudTeacherOrder.getType() == 2) {
 | 
											
												
													
														|  | 
 |  | +					cloudTeacherOrder.setEndTime(DateUtil.addMonths(nowDate, cloudTeacherOrder.getTime()));
 | 
											
												
													
														|  | 
 |  | +				} else if (cloudTeacherOrder.getType() == 3) {
 | 
											
												
													
														|  | 
 |  | +					cloudTeacherOrder.setEndTime(DateUtil.addYears(nowDate, cloudTeacherOrder.getTime()));
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					throw new BizException("不支持的周期类型");
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			} else {
 | 
											
												
													
														|  | 
 |  | +				cloudTeacherOrder.setStartTime(DateUtil.addDays(student.getMembershipEndTime(), 1));
 | 
											
												
													
														|  | 
 |  | +				if (cloudTeacherOrder.getType() == 1) {
 | 
											
												
													
														|  | 
 |  | +					cloudTeacherOrder.setEndTime(DateUtil.addDays(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
 | 
											
												
													
														|  | 
 |  | +				} else if (cloudTeacherOrder.getType() == 2) {
 | 
											
												
													
														|  | 
 |  | +					cloudTeacherOrder.setEndTime(DateUtil.addMonths(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
 | 
											
												
													
														|  | 
 |  | +				} else if (cloudTeacherOrder.getType() == 3) {
 | 
											
												
													
														|  | 
 |  | +					cloudTeacherOrder.setEndTime(DateUtil.addYears(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					throw new BizException("不支持的周期类型");
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			cloudTeacherOrderService.update(cloudTeacherOrder);
 | 
											
												
													
														|  |  			// 添加会员有效时长
 |  |  			// 添加会员有效时长
 | 
											
												
													
														|  |  			studentService.updateMemberRank(userId, Integer.parseInt(studentPaymentOrder.getMusicGroupId()), periodEnum, cloudTeacherOrder.getTime());
 |  |  			studentService.updateMemberRank(userId, Integer.parseInt(studentPaymentOrder.getMusicGroupId()), periodEnum, cloudTeacherOrder.getTime());
 | 
											
												
													
														|  |  
 |  |  
 |