| 
					
				 | 
			
			
				@@ -6,6 +6,7 @@ import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.conditions.Wrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -40,7 +41,6 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CourseScheduleDao courseScheduleDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CloudTeacherDao cloudTeacherDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private StudentService studentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -52,15 +52,34 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private IdGeneratorService idGenerator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private CloudTeacherOrderRecordService cloudTeacherOrderRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private TenantOrderRecordService tenantOrderRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public BaseDAO<Long, CloudTeacherOrder> getDAO() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return cloudTeacherOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public PageInfo<CloudTeacherStudent> queryInactive(CloudTeacherOrderQueryInfo queryInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public PageInfo<CloudTeacherStudent> queryActiveRecord(CloudTeacherOrderQueryInfo queryInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PageInfo<CloudTeacherStudent> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MapUtil.populateMap(params, queryInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CloudTeacherStudent> dataList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int count = cloudTeacherOrderDao.findRecordCount(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (count > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pageInfo.setTotal(count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            params.put("offset", pageInfo.getOffset()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataList = cloudTeacherOrderDao.queryRecord(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (count == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pageInfo.setRows(dataList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return pageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public PageInfo<CloudTeacherStudent> queryInactive(CloudTeacherOrderQueryInfo queryInfo) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PageInfo<CloudTeacherStudent> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MapUtil.populateMap(params, queryInfo); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,67 +95,66 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pageInfo.setRows(dataList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // List<TenantConfig> tenCfg = tenantConfigService.list(new Wrapper<TenantConfig>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        assert dataList != null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (count == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return pageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (CloudTeacherStudent cst: dataList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (cst.getTime() == null) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TenantConfig tenantConfig = tenantConfigService.getById(cst.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (tenantConfig == null) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TenantConfig tenantConfig = tenantConfigService.getOne(new QueryWrapper<TenantConfig>().eq("tenant_id_", cst.getTenantId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (tenantConfig == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new Exception("未找到组织Id " + cst.getTenantId().toString() + "在 TenantConfig 表"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             JSONObject cfg = JSON.parseObject(tenantConfig.getConfig()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             JSONObject memberConfig = (JSONObject) cfg.get("member_config"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (cst.getType() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                double divide = memberConfig.getDouble("month_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                cst.setAmount(divide * cst.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (cst.getType() == 2) { // 月 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                double divide = memberConfig.getDouble("month_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                cst.setAmount(divide * cst.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (cst.getType() == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                double divide = memberConfig.getDouble("quarter_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                cst.setAmount(divide * cst.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (cst.getType() == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                double divide = memberConfig.getDouble("half_year_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                cst.setAmount(divide * cst.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (cst.getType() == 5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                double divide = memberConfig.getDouble("year_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                cst.setAmount(divide * cst.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Double divide; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch (cst.getType()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    divide = memberConfig.getDouble("day_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    divide = memberConfig.getDouble("month_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    divide = memberConfig.getDouble("quarter_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case 4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    divide = memberConfig.getDouble("half_year_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case 5: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    divide = memberConfig.getDouble("year_divide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    divide = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (divide == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cst.setAmount(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cst.setAmount(new BigDecimal(divide * cst.getTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return pageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Map<String, Object> pay(List<CloudTeacherStudent> cloudTeacherStudents) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        BigDecimal sumAmount = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (cloudTeacherStudents.size() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new Exception("至少选择一条记录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer tenantId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        StringBuilder payStudentIds = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        StringBuilder payStudentIdsZero = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (CloudTeacherStudent cts: cloudTeacherStudents) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (cts.getAmount() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new Exception("金额错误在 " + cts.getStudentId().toString() ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new Exception("金额错误在, 学生编号: " + cts.getStudentId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (tenantId == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 tenantId = cts.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!tenantId.equals(cts.getTenantId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new Exception("分部Id 错误 " + cts.getStudentId().toString() ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (cts.getAmount() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                payStudentIdsZero.append(cts.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sumAmount.add(BigDecimal.valueOf(cts.getAmount())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                payStudentIds.append(cts.getStudentId().toString()).append(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 金额为 0 的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (payStudentIdsZero.length() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.updateCloudTeacherOrder(payStudentIdsZero.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            createOrderRecord(tenantId, new BigDecimal(0), "", TenantOrderRecordEnum.CLOUD_TEACHER, 1, payStudentIdsZero.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal sumAmount = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (CloudTeacherStudent cts: cloudTeacherStudents) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sumAmount = sumAmount.add(cts.getAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return this.payExec(sumAmount, tenantId, payStudentIds.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.payExec(sumAmount, tenantId, cloudTeacherStudents); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -145,7 +163,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param tenantId 分部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Map<String, Object> payExec(BigDecimal payAmount, Integer tenantId, String payStudentIds) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Object> payExec(BigDecimal payAmount, Integer tenantId, List<CloudTeacherStudent> cloudTeacherStudents) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //生成订单编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String orderNo = idGenerator.generatorId("payment") + ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -166,26 +184,21 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     1,//临时写死 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     tenantEnum.getCode() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            createOrderRecord(tenantId, payAmount, orderNo, tenantEnum, orderState, payStudentIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            log.info("tenant pay >>>>> " + JSON.toJSONString(payMap)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //已支付 直接激活 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { // 消费大于 0 元 已支付 直接激活 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             orderState = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        createOrderRecord(tenantId, payAmount, orderNo, tenantEnum, orderState, cloudTeacherStudents); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.info("tenant pay >>>>> " + JSON.toJSONString(payMap)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return payMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Integer updateCloudTeacherOrder(String payStudentIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return cloudTeacherOrderDao.updateCloudTeacherOrder(payStudentIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Msg payNotify(Msg msg) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("tenant orderNotify >>>>> " + msg.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         msg.setMsg("fail"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, String> notifyMap = JSON.parseObject(msg.getResponseParameters(), Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CloudTeacherOrderRecord record = cloudTeacherOrderRecordService.getOne( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                new QueryWrapper<CloudTeacherOrderRecord>().eq("order_no_", notifyMap.get("orderNo"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TenantOrderRecord record = tenantOrderRecordService.getOne( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new QueryWrapper<TenantOrderRecord>().eq("order_no_", notifyMap.get("orderNo"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setOrderNo(notifyMap.get("merMerOrderNo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setTransNo(notifyMap.get("orderNo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String channelType = notifyMap.get("channelType").equals("1") ? "WXPay" : (notifyMap.get("channelType").equals("2") ? "Alipay" : "quickPay"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -196,25 +209,31 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //tradeState 88就是正确的 其他错误的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //            DealStatusEnum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //            notifyMap.put("totalMoney", notifyMap.get("payAmount")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (record.getPayStudentIds() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                this.updateCloudTeacherOrder(record.getPayStudentIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.info("tenant orderNotify update order status start" + record.getId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrderDao.updateOrderStatusOK(record.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.info("tenant orderNotify update order status end"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             record.setOrderState(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             msg.setCode("000000"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             msg.setMsg("success"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.info("tenant orderNotify fail"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //支付失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             record.setOrderState(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        cloudTeacherOrderRecordService.update(record, new QueryWrapper<CloudTeacherOrderRecord>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tenantOrderRecordService.update(record, new QueryWrapper<TenantOrderRecord>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq("order_no_", record.getOrderNo())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("tenant orderNotify return>>>>> " + msg.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return msg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void createOrderRecord(Integer tenantId, BigDecimal payAmount, String orderNo, TenantOrderRecordEnum tenantEnum, Integer orderState, String payStudentIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Boolean payCheck(String orderNo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TenantOrderRecord record = tenantOrderRecordService.getOne(new QueryWrapper<TenantOrderRecord>().eq("order_no_", orderNo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return record.getOrderState() == 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void createOrderRecord(Integer tenantId, BigDecimal payAmount, String orderNo, TenantOrderRecordEnum tenantEnum, Integer orderState, List<CloudTeacherStudent> cloudTeacherStudents) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LocalDateTime now = LocalDateTime.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CloudTeacherOrderRecord record = new CloudTeacherOrderRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TenantOrderRecord record = new TenantOrderRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setTenantId(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setOrderNo(orderNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setOrderType(tenantEnum.getCode()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -225,8 +244,10 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setPayDate(now.toLocalDate().toDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setPayTime(now.toDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setCreatedTime(now.toDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        record.setPayStudentIds(payStudentIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        cloudTeacherOrderRecordService.save(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tenantOrderRecordService.save(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (CloudTeacherStudent cts : cloudTeacherStudents) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cloudTeacherOrderDao.updateOrderId(cts.getCloudTeacherOrderId(), cts.getAmount(), record.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -279,8 +300,14 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			periodEnum = PeriodEnum.MONTH; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			periodEnum = PeriodEnum.YEAR; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			periodEnum = PeriodEnum.QUARTERLY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case 4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            periodEnum = PeriodEnum.YEAR_HALF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case 5: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            periodEnum = PeriodEnum.YEAR; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -292,14 +319,18 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cloudTeacher = new CloudTeacher(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             startTime = DateUtil.trunc(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             endBaseTime = startTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (cloudTeacherOrder.getType().equals(1)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (cloudTeacherOrder.getType().equals(1)) { // 日 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 endTime = DateUtil.addDays(startTime, cloudTeacherOrder.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (cloudTeacherOrder.getType().equals(2)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (cloudTeacherOrder.getType().equals(2)) { // 月 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 endTime = DateUtil.addMonths(startTime, cloudTeacherOrder.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (cloudTeacherOrder.getType().equals(3)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (cloudTeacherOrder.getType().equals(3)) { // 季 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                endTime = DateUtil.addMonths(startTime, cloudTeacherOrder.getTime() * 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (cloudTeacherOrder.getType().equals(4)) { // 半年 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                endTime = DateUtil.addMonths(startTime, cloudTeacherOrder.getTime() * 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (cloudTeacherOrder.getType().equals(5)) { // 年 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 endTime = DateUtil.addYears(startTime, cloudTeacherOrder.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            cloudTeacher.setStudentId(cloudTeacherOrder.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cloudTeacher.setStudentId(cloudTeacherOrder.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cloudTeacher.setLevel(cloudTeacherOrder.getLevel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cloudTeacher.setStartTime(startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cloudTeacher.setEndTime(endTime); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -311,11 +342,15 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 startTime = DateUtil.trunc(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 endBaseTime = startTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (cloudTeacherOrder.getType().equals(1)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (cloudTeacherOrder.getType().equals(1)) { // 日 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 endTime = DateUtil.addDays(endBaseTime, cloudTeacherOrder.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (cloudTeacherOrder.getType().equals(2)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (cloudTeacherOrder.getType().equals(2)) { // 月 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 endTime = DateUtil.addMonths(endBaseTime, cloudTeacherOrder.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (cloudTeacherOrder.getType().equals(3)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (cloudTeacherOrder.getType().equals(3)) { // 季 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                endTime = DateUtil.addMonths(endBaseTime, cloudTeacherOrder.getTime() * 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (cloudTeacherOrder.getType().equals(4)) { // 半年 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                endTime = DateUtil.addMonths(endBaseTime, cloudTeacherOrder.getTime() * 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (cloudTeacherOrder.getType().equals(5)) { // 年 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 endTime = DateUtil.addYears(endBaseTime, cloudTeacherOrder.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cloudTeacher.setStartTime(startTime); 
			 |