| 
					
				 | 
			
			
				@@ -25,6 +25,7 @@ import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.sql.Connection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.sql.PreparedStatement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.sql.ResultSet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.sql.SQLException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -34,247 +35,303 @@ import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public abstract class BaseServiceImpl<PK extends Serializable, T> implements BaseService<PK, T> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected SqlSessionFactory sqlSessionFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected SqlSessionFactory sqlSessionFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public abstract BaseDAO<PK, T> getDAO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public abstract BaseDAO<PK, T> getDAO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * 通过主键id加载对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @param id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public T get(final PK id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.getDAO().get(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 通过主键id加载对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public T get(final PK id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.getDAO().get(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * 更新实体对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @param bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @return int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public int update(T bean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.getDAO().update(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 更新实体对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int update(T bean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.getDAO().update(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * 通过主键id删除对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @param id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @return int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public int delete(final PK id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.getDAO().delete(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 通过主键id删除对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int delete(final PK id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.getDAO().delete(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * 写入实体对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @param bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @return int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public long insert(T bean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.getDAO().insert(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 写入实体对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public long insert(T bean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.getDAO().insert(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * 通过参数查找所有结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @param params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public List<T> findAll(Map<String, Object> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		final String TENANT_ID = "tenantId"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(!params.containsKey(TENANT_ID)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			params.put(TENANT_ID, TenantContextHolder.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.getDAO().findAll(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 通过参数查找所有结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<T> findAll(Map<String, Object> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        final String TENANT_ID = "tenantId"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * 通过参数查找结果集,适合分页场景 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @param queryInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public PageInfo<T> queryPage(QueryInfo queryInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		PageInfo<T> pageInfo = new PageInfo<T>(queryInfo.getPage(), queryInfo.getRows()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Map<String, Object> params = new HashMap<String, Object>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		MapUtil.populateMap(params, queryInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		List<T> dataList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		int count = this.findCount(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (count > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			pageInfo.setTotal(count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			params.put("offset", pageInfo.getOffset()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dataList = this.getDAO().queryPage(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (count == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dataList = new ArrayList<T>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		pageInfo.setRows(dataList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return pageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!params.containsKey(TENANT_ID)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            params.put(TENANT_ID, TenantContextHolder.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.getDAO().findAll(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * 通过参数查找结果集数目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @author pengdc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @param params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public int findCount(Map<String, Object> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.getDAO().queryCount(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 通过参数查找结果集,适合分页场景 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param queryInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public PageInfo<T> queryPage(QueryInfo queryInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PageInfo<T> pageInfo = new PageInfo<T>(queryInfo.getPage(), queryInfo.getRows()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> params = new HashMap<String, Object>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MapUtil.populateMap(params, queryInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<T> dataList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int count = this.findCount(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (count > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pageInfo.setTotal(count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            params.put("offset", pageInfo.getOffset()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataList = this.getDAO().queryPage(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (count == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataList = new ArrayList<T>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pageInfo.setRows(dataList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return pageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public <K extends Collection, Y, Z> Map<Y,Z> getMap(String tableName, String columnKey, String columnValue, K ids,Integer tenantId, Class<Y> keyType, Class<Z> valueType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(CollectionUtils.isEmpty(ids)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return Collections.emptyMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		StringBuffer sql=new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Map<Y,Z> result=new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			SqlSession sqlSession = sqlSessionFactory.openSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Connection connection = sqlSession.getConnection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sql.append("SELECT ").append(columnKey).append(",").append(columnValue).append(" FROM ").append(tableName).append(" WHERE ").append(columnKey).append(" IN (").append(StringUtils.join(ids, ",")).append(")"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(tenantId != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				sql.append(" AND tenant_id_ = ").append(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			PreparedStatement ps = connection.prepareStatement(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ResultSet resultSet = ps.executeQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			while (resultSet.next()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Y key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Z value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(keyType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else if(keyType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) resultSet.getString(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) keyType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(valueType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else if(valueType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) resultSet.getString(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) valueType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				result.put(key, value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new RuntimeException("test"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 通过参数查找结果集数目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @author pengdc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int findCount(Map<String, Object> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.getDAO().queryCount(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public <K extends Collection, Y, Z> Map<Y,Z> getMap(String tableName, String columnKey, String columnValue, K ids,Integer tenantId, Class<Y> keyType, Class<Z> valueType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(CollectionUtils.isEmpty(ids)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return Collections.emptyMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StringBuffer sql=new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Y,Z> result=new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SqlSession sqlSession = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Connection connection = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PreparedStatement ps = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sqlSession = sqlSessionFactory.openSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            connection = sqlSession.getConnection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sql.append("SELECT ").append(columnKey).append(",").append(columnValue).append(" FROM ").append(tableName).append(" WHERE ").append(columnKey).append(" IN (").append(StringUtils.join(ids, ",")).append(")"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(tenantId != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sql.append(" AND tenant_id_ = ").append(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ps = connection.prepareStatement(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ResultSet resultSet = ps.executeQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while (resultSet.next()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Y key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Z value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(keyType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    key = (Y) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else if(keyType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    key = (Y) resultSet.getString(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    key = (Y) keyType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(valueType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    value = (Z) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else if(valueType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    value = (Z) resultSet.getString(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    value = (Z) valueType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result.put(key, value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(resultSet!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultSet.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(resultSet!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				resultSet.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(connection!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    connection.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public <K extends List, Y, Z> Map<Y,Z> getMap(String tableName, String columnKey, String columnValue, String ids, Class<Y> keyType, Class<Z> valueType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(StringUtils.isEmpty(ids)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return Collections.emptyMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		StringBuffer sql=new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Map<Y,Z> result=new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			SqlSession sqlSession = sqlSessionFactory.openSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Connection connection = sqlSession.getConnection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sql.append("SELECT ").append(columnKey).append(",").append(columnValue).append(" FROM ").append(tableName).append(" WHERE ").append(columnKey).append(" IN (").append(ids).append(")"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			PreparedStatement ps = connection.prepareStatement(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ResultSet resultSet = ps.executeQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			while (resultSet.next()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Y key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Z value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(keyType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else if(keyType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) resultSet.getString(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) keyType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(valueType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else if(valueType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) resultSet.getString(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) valueType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				result.put(key, value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(resultSet!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				resultSet.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public <K extends List, Y, Z> Map<Y,Z> getMap(String tableName, String columnKey, String columnValue, String ids, Class<Y> keyType, Class<Z> valueType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isEmpty(ids)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return Collections.emptyMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StringBuffer sql=new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Y,Z> result=new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SqlSession sqlSession = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Connection connection = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PreparedStatement ps = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sqlSession = sqlSessionFactory.openSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                connection = sqlSession.getConnection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sql.append("SELECT ").append(columnKey).append(",").append(columnValue).append(" FROM ").append(tableName).append(" WHERE ").append(columnKey).append(" IN (").append(ids).append(")"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ps = connection.prepareStatement(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ResultSet resultSet = ps.executeQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                while (resultSet.next()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Y key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Z value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(keyType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        key = (Y) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else if(keyType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        key = (Y) resultSet.getString(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        key = (Y) keyType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(valueType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value = (Z) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else if(valueType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value = (Z) resultSet.getString(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value = (Z) valueType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    result.put(key, value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(resultSet!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultSet.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(connection!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        connection.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public <K extends List, Y, Z> Map<Y,Z> getMap(String tableName, String columnKey, String columnValue,Boolean hasDelFlag,Integer tenantId, Class<Y> keyType, Class<Z> valueType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		StringBuffer sql=new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Map<Y,Z> result=new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			SqlSession sqlSession = sqlSessionFactory.openSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Connection connection = sqlSession.getConnection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sql.append("SELECT ").append(columnKey).append(",").append(columnValue).append(" FROM ").append(tableName).append(" WHERE 1 = 1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(hasDelFlag){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				sql.append(" AND del_flag_ = 0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(tenantId != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				sql.append(" AND tenant_id_ = ").append(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			PreparedStatement ps = connection.prepareStatement(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ResultSet resultSet = ps.executeQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			while (resultSet.next()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Y key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Z value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(keyType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else if(keyType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) resultSet.getString(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					key = (Y) keyType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(valueType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else if(valueType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) resultSet.getString(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					value = (Z) valueType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				result.put(key, value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(resultSet!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				resultSet.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public <K extends List, Y, Z> Map<Y,Z> getMap(String tableName, String columnKey, String columnValue,Boolean hasDelFlag,Integer tenantId, Class<Y> keyType, Class<Z> valueType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StringBuffer sql=new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Y,Z> result=new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SqlSession sqlSession = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Connection connection = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PreparedStatement ps = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sqlSession = sqlSessionFactory.openSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                connection = sqlSession.getConnection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sql.append("SELECT ").append(columnKey).append(",").append(columnValue).append(" FROM ").append(tableName).append(" WHERE 1 = 1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(hasDelFlag){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sql.append(" AND del_flag_ = 0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(tenantId != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sql.append(" AND tenant_id_ = ").append(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ps = connection.prepareStatement(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ResultSet resultSet = ps.executeQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                while (resultSet.next()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Y key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Z value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(keyType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        key = (Y) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else if(keyType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        key = (Y) resultSet.getString(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        key = (Y) keyType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(valueType.isAssignableFrom(BigDecimal.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value = (Z) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else if(valueType.isAssignableFrom(String.class)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value = (Z) resultSet.getString(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value = (Z) valueType.getMethod("valueOf", String.class).invoke(null,resultSet.getString(2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    result.put(key, value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(resultSet!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultSet.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(ps!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(sqlSession!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sqlSession.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(connection!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        connection.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |