|  | @@ -17,6 +17,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  |  import com.ym.mec.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dao.MemberRankPrivilegesDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dao.MemberRankSettingDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.MemberFeeSetting;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.MemberRankPrivileges;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.MemberRankSetting;
 | 
	
	
		
			
				|  | @@ -29,6 +30,7 @@ import com.ym.mec.biz.dal.enums.GroupType;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.PeriodEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.service.CloudTeacherOrderService;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.ContractService;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.MemberFeeSettingService;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.MemberRankSettingService;
 | 
	
	
		
			
				|  | @@ -65,10 +67,13 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private ContractService contractService;
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SysUserFeignService sysUserFeignService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private CloudTeacherOrderService cloudTeacherOrderService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	private final Logger logger = LoggerFactory.getLogger(this.getClass());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
	
		
			
				|  | @@ -121,7 +126,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
	
		
			
				|  |  |  		if (student == null) {
 | 
	
		
			
				|  |  |  			throw new BizException("非法访问");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		SysUser user = sysUserFeignService.queryUserById(userId);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		Integer organId = user.getOrganId();
 | 
	
	
		
			
				|  | @@ -140,20 +145,30 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
	
		
			
				|  |  |  			throw new BizException("分部会员价格出现异常");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		BigDecimal actualAmount = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		switch (periodEnum) {
 | 
	
		
			
				|  |  |  		case DAY:
 | 
	
		
			
				|  |  |  			actualAmount = memberFeeSetting.getCurrentDayFee();
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setType(1);
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setTime(1);
 | 
	
		
			
				|  |  |  			break;
 | 
	
		
			
				|  |  |  		case MONTH:
 | 
	
		
			
				|  |  |  			actualAmount = memberFeeSetting.getCurrentMonthFee();
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setType(2);
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setTime(1);
 | 
	
		
			
				|  |  |  			break;
 | 
	
		
			
				|  |  |  		case YEAR_HALF:
 | 
	
		
			
				|  |  |  			actualAmount = memberFeeSetting.getCurrentHalfYearFee();
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setType(2);
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setTime(6);
 | 
	
		
			
				|  |  |  			break;
 | 
	
		
			
				|  |  |  		case YEAR:
 | 
	
		
			
				|  |  |  			actualAmount = memberFeeSetting.getCurrentYearFee();
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setType(3);
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setTime(1);
 | 
	
		
			
				|  |  |  			break;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		default:
 | 
	
	
		
			
				|  | @@ -198,7 +213,6 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
	
		
			
				|  |  |  				studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
 | 
	
		
			
				|  |  |  				sysUserCashAccountService.updateBalance(userId, amount.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "购买会员");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -				orderCallback(studentPaymentOrder);
 | 
	
		
			
				|  |  |  			} else {
 | 
	
		
			
				|  |  |  				if (userCashAccount.getBalance().doubleValue() > 0) {
 | 
	
		
			
				|  |  |  					sysUserCashAccountService.updateBalance(userId, userCashAccount.getBalance().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "购买会员");
 | 
	
	
		
			
				|  | @@ -208,7 +222,22 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		return studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
 | 
	
		
			
				|  |  | +		Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 订单明细
 | 
	
		
			
				|  |  | +		cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
 | 
	
		
			
				|  |  | +		cloudTeacherOrder.setStudentId(studentPaymentOrder.getUserId());
 | 
	
		
			
				|  |  | +		cloudTeacherOrder.setLevel(memberRankId);
 | 
	
		
			
				|  |  | +		cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
 | 
	
		
			
				|  |  | +		cloudTeacherOrder.setStatus(0);
 | 
	
		
			
				|  |  | +		cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
 | 
	
		
			
				|  |  | +		cloudTeacherOrderService.insert(cloudTeacherOrder);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
 | 
	
		
			
				|  |  | +			orderCallback(studentPaymentOrder);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		return result;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
	
		
			
				|  | @@ -236,8 +265,30 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		// 支付成功
 | 
	
		
			
				|  |  |  		if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
 | 
	
		
			
				|  |  | +			// 查询会员订单信息
 | 
	
		
			
				|  |  | +			CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderService.queryByOrderId(studentPaymentOrder.getId());
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setStatus(1);
 | 
	
		
			
				|  |  | +			cloudTeacherOrder.setUpdateTime(nowDate);
 | 
	
		
			
				|  |  | +			cloudTeacherOrderService.update(cloudTeacherOrder);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			PeriodEnum periodEnum = PeriodEnum.MONTH;
 | 
	
		
			
				|  |  | +			switch (cloudTeacherOrder.getType()) {
 | 
	
		
			
				|  |  | +			case 1:
 | 
	
		
			
				|  |  | +				periodEnum = PeriodEnum.DAY;
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +			case 2:
 | 
	
		
			
				|  |  | +				periodEnum = PeriodEnum.MONTH;
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +			case 3:
 | 
	
		
			
				|  |  | +				periodEnum = PeriodEnum.YEAR;
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			default:
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			// 添加会员有效时长
 | 
	
		
			
				|  |  | -			studentService.updateMemberRank(userId,Integer.parseInt(studentPaymentOrder.getMusicGroupId()));
 | 
	
		
			
				|  |  | +			studentService.updateMemberRank(userId, Integer.parseInt(studentPaymentOrder.getMusicGroupId()), periodEnum, cloudTeacherOrder.getTime());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			// 插入交易明细
 | 
	
		
			
				|  |  |  			BigDecimal amount = studentPaymentOrder.getActualAmount();
 |