|  | @@ -3,24 +3,23 @@ package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dao.SysTenantConfigDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.SysConfig;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.SysTenantConfig;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.Teacher;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.enums.TeachModeEnum;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.service.SysConfigService;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.event.TenantConfigChangeEvent;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.SysTenantConfigService;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.dal.BaseDAO;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.service.impl.BaseServiceImpl;
 | 
	
		
			
				|  |  | -import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | -import org.apache.poi.ss.formula.functions.T;
 | 
	
		
			
				|  |  | +import com.ym.mec.util.collection.MapUtil;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | +import org.springframework.context.ApplicationEventPublisher;
 | 
	
		
			
				|  |  | +import org.springframework.context.ApplicationEventPublisherAware;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import java.math.BigDecimal;
 | 
	
		
			
				|  |  | -import java.util.*;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  | -public class SysTenantConfigServiceImpl extends BaseServiceImpl<Integer, SysTenantConfig>  implements SysTenantConfigService {
 | 
	
		
			
				|  |  | +public class SysTenantConfigServiceImpl extends BaseServiceImpl<Integer, SysTenantConfig>  implements SysTenantConfigService, ApplicationEventPublisherAware {
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SysTenantConfigDao sysTenantConfigDao;
 | 
	
	
		
			
				|  | @@ -30,6 +29,39 @@ public class SysTenantConfigServiceImpl extends BaseServiceImpl<Integer, SysTena
 | 
	
		
			
				|  |  |  		return sysTenantConfigDao;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	Map<Integer,Map<String,String>> tenantConfig;
 | 
	
		
			
				|  |  | +	private ApplicationEventPublisher applicationEventPublisher;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
 | 
	
		
			
				|  |  | +		this.applicationEventPublisher = applicationEventPublisher;
 | 
	
		
			
				|  |  | +		applicationEventPublisher.publishEvent(new TenantConfigChangeEvent(this,null));
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void setTenantConfig(Map<Integer, Map<String, String>> tenantConfig) {
 | 
	
		
			
				|  |  | +		this.tenantConfig = tenantConfig;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public Map<String, String> getTenantConfig(Integer tenantId) {
 | 
	
		
			
				|  |  | +		return tenantConfig.get(tenantId);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public String getTenantConfigValue(Integer tenantId,String paramName) {
 | 
	
		
			
				|  |  | +		Map<String, String> map = tenantConfig.get(tenantId);
 | 
	
		
			
				|  |  | +		if(map != null){
 | 
	
		
			
				|  |  | +			return map.get(paramName);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return null;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public Map<Integer, Map<String, String>> getAllTenantConfig() {
 | 
	
		
			
				|  |  | +		return tenantConfig;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	public List<SysConfig> queryAll(Map<String, Object> params) {
 | 
	
		
			
				|  |  |  		return sysTenantConfigDao.queryALl(params);
 | 
	
	
		
			
				|  | @@ -44,10 +76,22 @@ public class SysTenantConfigServiceImpl extends BaseServiceImpl<Integer, SysTena
 | 
	
		
			
				|  |  |  		List<Long> configIdList = sysConfigs.stream().map(e -> e.getId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  |  		sysTenantConfigDao.delByConfigId(configIdList,tenantId);
 | 
	
		
			
				|  |  |  		sysTenantConfigDao.batchInsert(sysConfigs,tenantId);
 | 
	
		
			
				|  |  | +		applicationEventPublisher.publishEvent(new TenantConfigChangeEvent(this,tenantId));
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	public String getConfigValue(String paramName, Integer tenantId) {
 | 
	
		
			
				|  |  |  		return sysTenantConfigDao.getConfigValue(paramName, tenantId);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public Map<String, String> queryAllMap(Integer tenantId) {
 | 
	
		
			
				|  |  | +		List<Map<String, String>> maps = sysTenantConfigDao.queryAllMap(tenantId);
 | 
	
		
			
				|  |  | +		Map<String, String> resultMap = null;
 | 
	
		
			
				|  |  | +		if(maps != null){
 | 
	
		
			
				|  |  | +			resultMap = MapUtil.convertMybatisMap(maps);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return resultMap;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |