|  | @@ -6,6 +6,7 @@ import java.util.List;
 | 
											
												
													
														|  |  import java.util.Map;
 |  |  import java.util.Map;
 | 
											
												
													
														|  |  import java.util.stream.Collectors;
 |  |  import java.util.stream.Collectors;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +import com.ym.mec.biz.dal.dto.MemberPayParamDto;
 | 
											
												
													
														|  |  import com.ym.mec.biz.dal.enums.*;
 |  |  import com.ym.mec.biz.dal.enums.*;
 | 
											
												
													
														|  |  import com.ym.mec.biz.service.*;
 |  |  import com.ym.mec.biz.service.*;
 | 
											
												
													
														|  |  import com.ym.mec.common.entity.HttpResponseResult;
 |  |  import com.ym.mec.common.entity.HttpResponseResult;
 | 
											
										
											
												
													
														|  | @@ -144,22 +145,17 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	@Override
 |  |  	@Override
 | 
											
												
													
														|  |  	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
 |  |  	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
 | 
											
												
													
														|  | -	public Map buy(Integer userId,
 |  | 
 | 
											
												
													
														|  | -				   Integer memberRankId,
 |  | 
 | 
											
												
													
														|  | -				   PeriodEnum periodEnum,
 |  | 
 | 
											
												
													
														|  | -				   BigDecimal amount,
 |  | 
 | 
											
												
													
														|  | -				   boolean isUseBalance,
 |  | 
 | 
											
												
													
														|  | -				   Integer buyNum,
 |  | 
 | 
											
												
													
														|  | -				   Integer giveNum,
 |  | 
 | 
											
												
													
														|  | -				   Integer activeRemark,String remark) throws Exception {
 |  | 
 | 
											
												
													
														|  | -		logger.info("云教练活动购买:userId:{} memberRankId:{} periodEnum:{} amount:{} isUseBalance:{} buyNum:{} giveNum:{} activeRemark:{} remark:{}",
 |  | 
 | 
											
												
													
														|  | -				userId,memberRankId,periodEnum,amount,isUseBalance,buyNum,giveNum,activeRemark,remark);
 |  | 
 | 
											
												
													
														|  | 
 |  | +	public Map buy(MemberPayParamDto memberPayParamDto) throws Exception {
 | 
											
												
													
														|  | 
 |  | +		logger.info("云教练活动购买:memberPayParamDto:{} ",memberPayParamDto);
 | 
											
												
													
														|  | 
 |  | +		Integer userId = memberPayParamDto.getUserId();
 | 
											
												
													
														|  | 
 |  | +		BigDecimal amount = memberPayParamDto.getAmount();
 | 
											
												
													
														|  | 
 |  | +		Integer memberRankId = memberPayParamDto.getMemberRankId();
 | 
											
												
													
														|  |  		Student student = studentService.getLocked(userId);
 |  |  		Student student = studentService.getLocked(userId);
 | 
											
												
													
														|  |  		if (student == null) {
 |  |  		if (student == null) {
 | 
											
												
													
														|  |  			throw new BizException("非法访问");
 |  |  			throw new BizException("非法访问");
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  		//是否可以购买
 |  |  		//是否可以购买
 | 
											
												
													
														|  | -		buyCloudTeacherActive(userId,activeRemark,remark);
 |  | 
 | 
											
												
													
														|  | 
 |  | +		buyCloudTeacherActive(userId,memberPayParamDto.getActiveRemark(),memberPayParamDto.getRemark());
 | 
											
												
													
														|  |  		SysUser user = sysUserFeignService.queryUserById(userId);
 |  |  		SysUser user = sysUserFeignService.queryUserById(userId);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		Integer organId = user.getOrganId();
 |  |  		Integer organId = user.getOrganId();
 | 
											
										
											
												
													
														|  | @@ -182,17 +178,17 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		BigDecimal actualAmount = BigDecimal.ZERO;
 |  |  		BigDecimal actualAmount = BigDecimal.ZERO;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -		switch (periodEnum) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +		switch (memberPayParamDto.getPeriodEnum()) {
 | 
											
												
													
														|  |  			case DAY:
 |  |  			case DAY:
 | 
											
												
													
														|  |  				actualAmount = memberFeeSetting.getCurrentDayFee();
 |  |  				actualAmount = memberFeeSetting.getCurrentDayFee();
 | 
											
												
													
														|  |  				cloudTeacherOrder.setType(1);
 |  |  				cloudTeacherOrder.setType(1);
 | 
											
												
													
														|  |  				cloudTeacherOrder.setTime(1);
 |  |  				cloudTeacherOrder.setTime(1);
 | 
											
												
													
														|  |  				break;
 |  |  				break;
 | 
											
												
													
														|  |  			case MONTH:
 |  |  			case MONTH:
 | 
											
												
													
														|  | -				actualAmount = memberFeeSetting.getCurrentMonthFee().multiply(new BigDecimal(buyNum));
 |  | 
 | 
											
												
													
														|  | 
 |  | +				actualAmount = memberFeeSetting.getCurrentMonthFee().multiply(new BigDecimal(memberPayParamDto.getBuyNum()));
 | 
											
												
													
														|  |  				cloudTeacherOrder.setType(2);
 |  |  				cloudTeacherOrder.setType(2);
 | 
											
												
													
														|  |  				//购买月份加上赠送月份,目前只有按月购买的活动,其他的暂不处理
 |  |  				//购买月份加上赠送月份,目前只有按月购买的活动,其他的暂不处理
 | 
											
												
													
														|  | -				cloudTeacherOrder.setTime(buyNum + giveNum);
 |  | 
 | 
											
												
													
														|  | 
 |  | +				cloudTeacherOrder.setTime(memberPayParamDto.getBuyNum() + memberPayParamDto.getGiveNum());
 | 
											
												
													
														|  |  				break;
 |  |  				break;
 | 
											
												
													
														|  |  			case QUARTERLY:
 |  |  			case QUARTERLY:
 | 
											
												
													
														|  |  				actualAmount = memberFeeSetting.getCurrentQuarterlyFee();
 |  |  				actualAmount = memberFeeSetting.getCurrentQuarterlyFee();
 | 
											
										
											
												
													
														|  | @@ -221,14 +217,13 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		Date date = new Date();
 |  |  		Date date = new Date();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -		StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
 |  | 
 | 
											
												
													
														|  | 
 |  | +		StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(memberPayParamDto.getCouponIdList(),amount,true);
 | 
											
												
													
														|  | 
 |  | +		amount = studentPaymentOrder.getActualAmount();
 | 
											
												
													
														|  |  		studentPaymentOrder.setUserId(userId);
 |  |  		studentPaymentOrder.setUserId(userId);
 | 
											
												
													
														|  |  		studentPaymentOrder.setOrganId(organId);
 |  |  		studentPaymentOrder.setOrganId(organId);
 | 
											
												
													
														|  |  		studentPaymentOrder.setRoutingOrganId(organId);
 |  |  		studentPaymentOrder.setRoutingOrganId(organId);
 | 
											
												
													
														|  |  		studentPaymentOrder.setCreateTime(date);
 |  |  		studentPaymentOrder.setCreateTime(date);
 | 
											
												
													
														|  |  		studentPaymentOrder.setUpdateTime(date);
 |  |  		studentPaymentOrder.setUpdateTime(date);
 | 
											
												
													
														|  | -		studentPaymentOrder.setExpectAmount(amount);
 |  | 
 | 
											
												
													
														|  | -		studentPaymentOrder.setActualAmount(amount);
 |  | 
 | 
											
												
													
														|  |  		studentPaymentOrder.setBalancePaymentAmount(BigDecimal.ZERO);
 |  |  		studentPaymentOrder.setBalancePaymentAmount(BigDecimal.ZERO);
 | 
											
												
													
														|  |  		studentPaymentOrder.setStatus(DealStatusEnum.ING);
 |  |  		studentPaymentOrder.setStatus(DealStatusEnum.ING);
 | 
											
												
													
														|  |  		studentPaymentOrder.setVersion(0);
 |  |  		studentPaymentOrder.setVersion(0);
 | 
											
										
											
												
													
														|  | @@ -240,7 +235,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  		studentPaymentOrder.setPaymentChannel("BALANCE");
 |  |  		studentPaymentOrder.setPaymentChannel("BALANCE");
 | 
											
												
													
														|  |  		studentPaymentOrder.setMusicGroupId(memberRankId + "");
 |  |  		studentPaymentOrder.setMusicGroupId(memberRankId + "");
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -		if (isUseBalance) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +		if (memberPayParamDto.isUseBalance()) {
 | 
											
												
													
														|  |  			SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
 |  |  			SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
 | 
											
												
													
														|  |  			if (userCashAccount == null) {
 |  |  			if (userCashAccount == null) {
 | 
											
												
													
														|  |  				throw new BizException("用户账户找不到");
 |  |  				throw new BizException("用户账户找不到");
 | 
											
										
											
												
													
														|  | @@ -270,13 +265,13 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  		cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
 |  |  		cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
 | 
											
												
													
														|  |  		cloudTeacherOrder.setStudentId(studentPaymentOrder.getUserId());
 |  |  		cloudTeacherOrder.setStudentId(studentPaymentOrder.getUserId());
 | 
											
												
													
														|  |  		cloudTeacherOrder.setLevel(memberRankId);
 |  |  		cloudTeacherOrder.setLevel(memberRankId);
 | 
											
												
													
														|  | -		cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
 |  | 
 | 
											
												
													
														|  | 
 |  | +		cloudTeacherOrder.setAmount(amount);
 | 
											
												
													
														|  |  		cloudTeacherOrder.setStatus(0);
 |  |  		cloudTeacherOrder.setStatus(0);
 | 
											
												
													
														|  |  		cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
 |  |  		cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
 | 
											
												
													
														|  |  		cloudTeacherOrder.setCreateTime(date);
 |  |  		cloudTeacherOrder.setCreateTime(date);
 | 
											
												
													
														|  |  		cloudTeacherOrder.setUpdateTime(date);
 |  |  		cloudTeacherOrder.setUpdateTime(date);
 | 
											
												
													
														|  | -		cloudTeacherOrder.setActiveRemark(activeRemark);
 |  | 
 | 
											
												
													
														|  | -		cloudTeacherOrder.setRemark(remark);
 |  | 
 | 
											
												
													
														|  | 
 |  | +		cloudTeacherOrder.setActiveRemark(memberPayParamDto.getActiveRemark());
 | 
											
												
													
														|  | 
 |  | +		cloudTeacherOrder.setRemark(memberPayParamDto.getRemark());
 | 
											
												
													
														|  |  		cloudTeacherOrderService.insert(cloudTeacherOrder);
 |  |  		cloudTeacherOrderService.insert(cloudTeacherOrder);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
 |  |  		Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
 | 
											
										
											
												
													
														|  | @@ -315,7 +310,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  				sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(),
 |  |  				sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(),
 | 
											
												
													
														|  |  						PlatformCashAccountDetailTypeEnum.REFUNDS, "购买会员支付失败");
 |  |  						PlatformCashAccountDetailTypeEnum.REFUNDS, "购买会员支付失败");
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +			sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
 | 
											
												
													
														|  |  			return true;
 |  |  			return true;
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -446,14 +441,16 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  		result.setCode(HttpStatus.OK.value());
 |  |  		result.setCode(HttpStatus.OK.value());
 | 
											
												
													
														|  | -		result.setData(this.buy(userId,
 |  | 
 | 
											
												
													
														|  | -				memberRankId,
 |  | 
 | 
											
												
													
														|  | -				month,
 |  | 
 | 
											
												
													
														|  | -				amount,
 |  | 
 | 
											
												
													
														|  | -				isUseBalance,
 |  | 
 | 
											
												
													
														|  | -				buyNum,
 |  | 
 | 
											
												
													
														|  | -				giveNum,
 |  | 
 | 
											
												
													
														|  | -				activeRemark,remark));
 |  | 
 | 
											
												
													
														|  | 
 |  | +		MemberPayParamDto memberPayParamDto = new MemberPayParamDto();
 | 
											
												
													
														|  | 
 |  | +		memberPayParamDto.setMemberRankId(memberRankId);
 | 
											
												
													
														|  | 
 |  | +		memberPayParamDto.setUserId(userId);
 | 
											
												
													
														|  | 
 |  | +		memberPayParamDto.setPeriodEnum(month);
 | 
											
												
													
														|  | 
 |  | +		memberPayParamDto.setUseBalance(isUseBalance);
 | 
											
												
													
														|  | 
 |  | +		memberPayParamDto.setBuyNum(buyNum);
 | 
											
												
													
														|  | 
 |  | +		memberPayParamDto.setGiveNum(giveNum);
 | 
											
												
													
														|  | 
 |  | +		memberPayParamDto.setActiveRemark(activeRemark);
 | 
											
												
													
														|  | 
 |  | +		memberPayParamDto.setRemark(remark);
 | 
											
												
													
														|  | 
 |  | +		result.setData(this.buy(memberPayParamDto));
 | 
											
												
													
														|  |  		return result;
 |  |  		return result;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 |