| 
					
				 | 
			
			
				@@ -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(); 
			 |