| 
					
				 | 
			
			
				@@ -307,6 +307,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setOrganId(sysUser.getOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setMemo("小小训练营云教练购买"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setGroupType(GroupType.LIVE_BUY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentPaymentOrder.setType(OrderTypeEnum.LIVE_BUY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setActivityId(activityId.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setActivityBuyNum(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setMusicGroupId(memberPayParamDto.getLiveId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -585,6 +586,97 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean liveBuyOrderCallback(StudentPaymentOrder studentPaymentOrder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //查询原定的是否已处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StudentPaymentOrder orignStudentPaymentOrder = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (orignStudentPaymentOrder == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (orignStudentPaymentOrder.getStatus() != DealStatusEnum.ING) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Integer userId = studentPaymentOrder.getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Date nowDate = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 更新订单信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentPaymentOrder.setUpdateTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentPaymentOrderService.update(studentPaymentOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //退还优惠券和余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderService.returnBalanceAndCoupon(studentPaymentOrder, "直播购买云教练支付失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(Objects.nonNull(studentPaymentOrder.getActivityId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //还原库存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                liveGoodsService.addGoodsStock(1,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 支付成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Student student = studentService.get(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            VipGroupActivity activity = vipGroupActivityDao.get(Integer.parseInt(studentPaymentOrder.getActivityId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //保存团练宝数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrder.setOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrder.setLevel(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrder.setStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrder.setType(activity.getPeriodEnum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrder.setTime(studentPaymentOrder.getActivityBuyNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrder.setStudentId(studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrderService.save(cloudTeacherOrder,tenantConfigService.autoActivationFlag(cloudTeacherOrder.getTenantId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //赠送陪练课 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ActivityUserMapper activityUserMapper = new ActivityUserMapper(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityUserMapper.setTeacherId(student.getTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityUserMapper.setUserId(studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityUserMapper.setActivityId(activity.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityUserMapper.setActualPrice(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityUserMapper.setGivePracticeFlag(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityUserMapper.setReturnFee(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityUserMapperDao.insert(activityUserMapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //赠送训练营 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TempLittleArtistTrainingCampUserRelation tempLittleArtistTrainingCamp = new TempLittleArtistTrainingCampUserRelation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempLittleArtistTrainingCamp.setUserId(studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempLittleArtistTrainingCamp.setState("NOT_APPLY"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempLittleArtistTrainingCamp.setCreateTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempLittleArtistTrainingCampUserRelationDao.insert(tempLittleArtistTrainingCamp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //生成订单详情 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderDetail.setGoodsIdList("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderDetail.setPrice(studentPaymentOrder.getExpectAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderDetail.setTenantId(studentPaymentOrder.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderDetail.setCreateTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderDetail.setUpdateTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentPaymentOrderDetailDao.insert(studentPaymentOrderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Integer, String> phoneMaps = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(userId.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String baseApiUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StringBuffer pushUrl = new StringBuffer(baseApiUrl).append("/#/artistRegistration"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.GOOD_HABITS_TRAINING_CAMP_EXPERIENCE_QUALIFICATION_SMS,phoneMaps, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    null,0,"",null, HttpUtil.getSortUrl(pushUrl.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StringBuffer notifyUrl = new StringBuffer("8?").append(baseApiUrl).append("/#/artistRegistration"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Integer, String> userIdMaps = new HashMap<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            userIdMaps.put(userId, userId.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.GOOD_HABITS_TRAINING_CAMP_EXPERIENCE_QUALIFICATION_PUSH,userIdMaps, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    null,0,notifyUrl.toString(),"STUDENT"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 插入交易明细 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUserCashAccountDetailService.saveSysUserCashAccountDetail(studentPaymentOrder, "直播购买云教练"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            contractService.transferProduceContract(userId, null, CourseViewTypeEnum.MEMBER_FEE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.error("产品协议生成失败", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public boolean orderCallback(StudentPaymentOrder studentPaymentOrder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //查询原定的是否已处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StudentPaymentOrder orignStudentPaymentOrder = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId()); 
			 |