package cn.ksource.web.service.impl; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.core.config.CacheKeyUtil; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.ConvertUtil; import cn.ksource.web.service.DataDictionaryService; @Service("dataDictionaryService") public class DataDictionaryServiceImpl implements DataDictionaryService { private static Logger logger = Logger.getLogger(DataDictionaryServiceImpl.class); @Autowired private BaseDao baseDao; @Override public Map getAreaById(String areaid) { if (StringUtils.isBlank(areaid)) { return null; } Object object = null; if (object == null) { String sql = "select * from config_data_dictionary_area where id=:areaid"; object = baseDao.queryForMap(sql,new SqlParameter("areaid",areaid)); if (object != null) { return (Map)object; } else { return null; } } return (Map)object; } @Override public List getAreaListByParentID(String parentid) { String myPid = null; if (StringUtils.isBlank(parentid)) { myPid = "0"; } else { myPid = parentid; } Object object = null; if (object == null) { String sql = "select ID,ADDRESS_NAME from config_data_dictionary_area where ADDRESS_STATUS=1 "; if (StringUtils.isBlank(myPid) || myPid.equalsIgnoreCase("0")) { sql += " and UP_ID is null"; } else { sql += " and UP_ID=:parentid"; } sql += " order by ADDRESS_SN "; List list = baseDao.queryForList(sql,new SqlParameter("parentid",myPid)); if (list != null && !list.isEmpty()) { return list; } else { return null; } } return (List)object; } @Override public List getDataDictionaryByCategoryKey(String categoryKey) { if (StringUtils.isBlank(categoryKey)) { return null; } Object object = null; if (object == null) { String sql = "SELECT * FROM CONFIG_DATA_DICTIONARY " + "WHERE CATEGORYID=(SELECT ID FROM CONFIG_DATA_DICTIONARY_CATEGORY WHERE CATEGORYKEY=:CATEGORYKEY) AND USESTATE=1 ORDER BY ORDERNUM "; List list = baseDao.queryForList(sql,new SqlParameter("CATEGORYKEY",categoryKey)); if (list != null && !list.isEmpty()) { return list; } else { return null; } } return (List)object; } @Override public Map getDataDictionaryByKey(String dicKey) { if (StringUtils.isBlank(dicKey)) { return null; } if (StringUtils.isBlank(dicKey)) { return null; } Object object = null; if (object == null) { String sql = "select * from CONFIG_DATA_DICTIONARY where DATAKEY=:DATAKEY"; object = baseDao.queryForMap(sql,new SqlParameter("DATAKEY",dicKey)); if (object != null) { return (Map)object; } else { return null; } } return (Map)object; } @Override public String getInterfaceUrlByKey(String interfaceKey) { if (StringUtils.isBlank(interfaceKey)) { return null; } Object object = null; String result = null; if (object == null) { String sql = "select CONFIG_DATA_SUBSYSTEM.SYSTEMKEY, CONFIG_DATA_INTERFACE.INTERFACEURL \n" + "from CONFIG_DATA_INTERFACE,CONFIG_DATA_SUBSYSTEM \n" + "WHERE CONFIG_DATA_INTERFACE.SYSTEMID = CONFIG_DATA_SUBSYSTEM.ID\n" + "AND CONFIG_DATA_INTERFACE.INTERFACEKEY = :INTERFACEKEY"; Map map = baseDao.queryForMap(sql,new SqlParameter("INTERFACEKEY",interfaceKey)); object = map.get("INTERFACEURL"); if (object != null) { result = getSubSystemUrl(ConvertUtil.obj2Str(map.get("SYSTEMKEY"))) + object.toString(); return result; } else { return null; } } return object.toString(); } @Override public String getInterfaceUrlByMessageKey(String messageKey) { if (StringUtils.isBlank(messageKey)) { return null; } Object object = null; if (object == null) { String sql = "select INTERFACEKEY from CONFIG_DATA_MESSAGE where MESSAGE_KEY=:MESSAGE_KEY"; object = baseDao.queryForString(sql,new SqlParameter("MESSAGE_KEY",messageKey)); if (object != null) { return getInterfaceUrlByKey(object.toString()); } else { return null; } } else { return getInterfaceUrlByKey(object.toString()); } } @Override public String getSubSystemUrl(String systemKey) { if (StringUtils.isBlank(systemKey)) { return null; } Object object = null; if (object == null) { String sql = "select URL from CONFIG_DATA_SUBSYSTEM where SYSTEMKEY=:SYSTEMKEY"; object = baseDao.queryForString(sql,new SqlParameter("SYSTEMKEY",systemKey)); if (object != null) { return object.toString(); } else { return null; } } return object.toString(); } @Override public void updateAreaById(String areaid) { if (StringUtils.isBlank(areaid)) { return; } String sql = "select UP_ID from config_data_dictionary_area where ID=:ID"; String parentid = baseDao.queryForString(sql,new SqlParameter("ID",areaid)); updateAreaListByParentID(parentid); } @Override public void updateAreaListByParentID(String parentid) { if (StringUtils.isBlank(parentid)) { parentid="0"; } logger.info("update area list cache :" + parentid ); } @Override public void updateDataDictionaryByCategoryKey(String categoryKey) { if (StringUtils.isBlank(categoryKey)) { return; } } @Override public void updateDataDictionaryByKey(String dicKey) { if (StringUtils.isBlank(dicKey)) { return; } String sql = "select CATEGORYKEY from CONFIG_DATA_DICTIONARY_CATEGORY where " + "id=(select CATEGORYID from CONFIG_DATA_DICTIONARY where DATAKEY=:DATAKEY)"; String key = baseDao.queryForString(sql,new SqlParameter("DATAKEY",dicKey)); updateDataDictionaryByCategoryKey(key); } @Override public void updateInterfaceUrlByKey(String interfaceKey) { if (StringUtils.isBlank(interfaceKey)) { return; } } @Override public void updateInterfaceUrlByMessageKey(String messageKey) { if (StringUtils.isBlank(messageKey)) { return; } } @Override public void updateSubSystemUrl(String systemKey) { if (StringUtils.isBlank(systemKey)) { return; } String sql = "select CONFIG_DATA_INTERFACE.INTERFACEKEY \n" + "from CONFIG_DATA_INTERFACE,CONFIG_DATA_SUBSYSTEM \n" + "WHERE CONFIG_DATA_INTERFACE.SYSTEMID = CONFIG_DATA_SUBSYSTEM.ID\n" + "AND CONFIG_DATA_SUBSYSTEM.SYSTEMKEY = :systemKey"; List list = baseDao.queryForList(sql,new SqlParameter("systemKey",systemKey)); for (Map map : list) { updateInterfaceUrlByKey(map.get("INTERFACEKEY").toString()); } } }