|  | @@ -53,6 +53,8 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private TenantConfigService tenantConfigService;
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  | +    private TenantMemberRankSettingService tenantMemberRankSettingService;
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  |      private PayService payService;
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private IdGeneratorService idGenerator;
 | 
	
	
		
			
				|  | @@ -133,7 +135,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
 | 
	
		
			
				|  |  |              return pageInfo;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          assert dataList != null;
 | 
	
		
			
				|  |  | -        List<Integer> organIds = dataList.stream().map(e -> e.getOrganId()).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        List<Integer> organIds = dataList.stream().map(CloudTeacherStudent::getOrganId).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  |          Map<Integer, String> organNameMap = this.getMap("organization", "id_", "name_", organIds, queryInfo.getTenantId(), Integer.class, String.class);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Map<Integer, SimpleUserDto> empMapById = new HashMap<>();
 | 
	
	
		
			
				|  | @@ -146,6 +148,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
 | 
	
		
			
				|  |  |          //获取会员名称
 | 
	
		
			
				|  |  |          List<Integer> memberRankIds = dataList.stream().map(CloudTeacherStudent::getMemberRankId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          Map<Integer, String> memberNameMap = memberRankSettingService.queryMemberName(memberRankIds);
 | 
	
		
			
				|  |  | +        Map<Integer, JSONObject> rankSettingMap = tenantConfigService.getActivationAmount(queryInfo.getTenantId());
 | 
	
		
			
				|  |  |          //获取
 | 
	
		
			
				|  |  |          for (CloudTeacherStudent cst : dataList) {
 | 
	
		
			
				|  |  |              cst.setMemberName(memberNameMap.get(cst.getMemberRankId()));
 | 
	
	
		
			
				|  | @@ -153,37 +156,8 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
 | 
	
		
			
				|  |  |              if (cst.getOperator() != null) {
 | 
	
		
			
				|  |  |                  cst.setOperatorName(empMapById.getOrDefault(cst.getOperator(), new SimpleUserDto()).getUserName());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            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");
 | 
	
		
			
				|  |  | -            Double divide;
 | 
	
		
			
				|  |  | -            switch (cst.getType()) {
 | 
	
		
			
				|  |  | -                case DAY:
 | 
	
		
			
				|  |  | -                    divide = memberConfig.getDouble("day_divide");
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                case MONTH:
 | 
	
		
			
				|  |  | -                    divide = memberConfig.getDouble("month_divide");
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                case QUARTERLY:
 | 
	
		
			
				|  |  | -                    divide = memberConfig.getDouble("quarter_divide");
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                case YEAR_HALF:
 | 
	
		
			
				|  |  | -                    divide = memberConfig.getDouble("half_year_divide");
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                case YEAR:
 | 
	
		
			
				|  |  | -                    divide = memberConfig.getDouble("year_divide");
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                default:
 | 
	
		
			
				|  |  | -                    divide = null;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (divide == null) {
 | 
	
		
			
				|  |  | -                cst.setAmount(null);
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                cst.setAmount(new BigDecimal(divide * cst.getTime()));
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +            JSONObject memberConfig = rankSettingMap.get(cst.getMemberRankId());
 | 
	
		
			
				|  |  | +            cst.setAmount(tenantConfigService.getPriceByPeriod(memberConfig, cst.getType()).multiply(new BigDecimal(cst.getTime())));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return pageInfo;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -196,7 +170,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
 | 
	
		
			
				|  |  |          if (dataList == null || dataList.isEmpty()) {
 | 
	
		
			
				|  |  |              return dataList;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        List<Integer> organIds = dataList.stream().map(e -> e.getOrganId()).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        List<Integer> organIds = dataList.stream().map(CloudTeacherStudent::getOrganId).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  |          Map<Integer, String> organNameMap = this.getMap("organization", "id_", "name_", organIds, queryInfo.getTenantId(), Integer.class, String.class);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Map<Integer, SimpleUserDto> empMapById = new HashMap<>();
 | 
	
	
		
			
				|  | @@ -209,42 +183,15 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
 | 
	
		
			
				|  |  |          //获取会员名称
 | 
	
		
			
				|  |  |          List<Integer> memberRankIds = dataList.stream().map(CloudTeacherStudent::getMemberRankId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          Map<Integer, String> memberNameMap = memberRankSettingService.queryMemberName(memberRankIds);
 | 
	
		
			
				|  |  | -        TenantConfig tenantConfig = tenantConfigService.getOne(new QueryWrapper<TenantConfig>().eq("tenant_id_", queryInfo.getTenantId()));
 | 
	
		
			
				|  |  | +        Map<Integer, JSONObject> rankSettingMap = tenantConfigService.getActivationAmount(queryInfo.getTenantId());
 | 
	
		
			
				|  |  |          for (CloudTeacherStudent cst : dataList) {
 | 
	
		
			
				|  |  |              cst.setMemberName(memberNameMap.get(cst.getMemberRankId()));
 | 
	
		
			
				|  |  |              cst.setOrganName(organNameMap.get(cst.getOrganId()));
 | 
	
		
			
				|  |  |              if (cst.getOperator() != null) {
 | 
	
		
			
				|  |  |                  cst.setOperatorName(empMapById.getOrDefault(cst.getOperator(), new SimpleUserDto()).getUserName());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if (tenantConfig != null) {
 | 
	
		
			
				|  |  | -                JSONObject cfg = JSON.parseObject(tenantConfig.getConfig());
 | 
	
		
			
				|  |  | -                JSONObject memberConfig = (JSONObject) cfg.get("member_config");
 | 
	
		
			
				|  |  | -                Double divide;
 | 
	
		
			
				|  |  | -                switch (cst.getType()) {
 | 
	
		
			
				|  |  | -                    case DAY:
 | 
	
		
			
				|  |  | -                        divide = memberConfig.getDouble("day_divide");
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    case MONTH:
 | 
	
		
			
				|  |  | -                        divide = memberConfig.getDouble("month_divide");
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    case QUARTERLY:
 | 
	
		
			
				|  |  | -                        divide = memberConfig.getDouble("quarter_divide");
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    case YEAR_HALF:
 | 
	
		
			
				|  |  | -                        divide = memberConfig.getDouble("half_year_divide");
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    case YEAR:
 | 
	
		
			
				|  |  | -                        divide = memberConfig.getDouble("year_divide");
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    default:
 | 
	
		
			
				|  |  | -                        divide = null;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                if (divide == null) {
 | 
	
		
			
				|  |  | -                    cst.setAmount(null);
 | 
	
		
			
				|  |  | -                } else {
 | 
	
		
			
				|  |  | -                    cst.setAmount(new BigDecimal(divide * cst.getTime()));
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +            JSONObject memberConfig = rankSettingMap.get(cst.getMemberRankId());
 | 
	
		
			
				|  |  | +            cst.setAmount(tenantConfigService.getPriceByPeriod(memberConfig, cst.getType()).multiply(new BigDecimal(cst.getTime())));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return dataList;
 | 
	
		
			
				|  |  |      }
 |