package com.yc.service.panel;
import com.yc.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 添加了and d.headflag=0 去除从表在面板上显示
*
* @author pengbei
*
*/
@Service("SystemSettings")
public class SystemSettingsImpl extends BaseService implements SystemSettingsDao {
@Autowired
private SqlDBHelperIfc sqlDBHelper;
private PanelParmHelper pHelper = null;
public void setPanelHelper(PanelParmHelper pHelper) {
this.pHelper = pHelper;
}
/**
*
* 1 --表示数值型
* 2---表示text,ntext,image之类
* 3---字符和4日期
* */
public Map getVerification(String table) throws SQLException {
String sql = "";
Map vmap = null;
if (!table.equals("")) {
if(table.toLowerCase().startsWith("taobao.")) return vmap;//by danaus 12-06-16,处理淘宝接口,不需要取得数据类型
if (table.indexOf("|") != -1) {
table = table.split("\\|")[0];
}
sql = "exec sp_columns " + table;
Connection connection = null;
PreparedStatement pStatement = null;
ResultSet rs = null;
vmap = new HashMap();
try {
connection = this.jdbcTemplate.getDataSource().getConnection();
pStatement = connection.prepareStatement(sql);
rs = pStatement.executeQuery();
while (rs.next()) {
int intStr = 0;
switch (rs.getInt("data_type")) {
case Types.TINYINT:
case Types.INTEGER:
case Types.DECIMAL:
case Types.DOUBLE:
case Types.FLOAT:
case Types.NUMERIC:
case Types.BIGINT:
case Types.REAL:
case Types.SMALLINT:
case 0:
intStr = 1;
break;
case Types.BINARY:
case Types.BLOB:
case Types.CLOB:
case Types.NCLOB:
intStr = 2;
break;
case Types.DATE:
case Types.TIME:
case Types.TIMESTAMP:
intStr = 4;// 日期
break;
default:
intStr = 3;
break;
}
vmap.put(rs.getString("column_name").toLowerCase(), String.valueOf(intStr));
}
} catch (Exception e) {
vmap = null;
throw new SQLException(e.getMessage());
} finally {
if (rs != null) rs.close();
if (pStatement != null) pStatement.close();
if (connection != null) connection.close();
}
}
return vmap;
}
/**
* 得到此功能号上面板上隐藏的集合
*
* @param formId
* @return
*/
public List