package com.yihu.platform.cache; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import com.coreframework.db.DB; import com.coreframework.db.Sql; import com.yihu.platform.enums.MyDatabaseEnum; import com.yihu.platform.vo.AreaVo; import com.yihu.platform.vo.CityVo; import com.yihu.platform.vo.ProvinceVo; /** * * @author wengsb * @company yihu.com 2015-7-15下午03:27:31 */ public class DBCache { // 数据字典 public static Map>> dictionaryListMapBoss = new HashMap>>(); public static Map provinceMap = new HashMap(); // 省份 public static Map provinceGBCodeMap = new HashMap(); // 省份 public static Map cityMap = new HashMap(); // 城市 public static Map cityGBCodeMap = new HashMap(); // 城市 public static List provinceList = new ArrayList(); // 省份 public static Map> cityListByProvince = new HashMap>(); // 城市集合 public static void initCacheByDB() throws Exception { TimerRun(600);// 10分钟执行一次 } /** * 初始化省份 * * @throws Exception */ private static void initProvinceList() throws Exception { provinceList.clear(); cityListByProvince.clear(); provinceMap.clear(); cityMap.clear(); Sql sql = new Sql("SELECT a.PROVINCEID, a.PROVINCENAME ,gbcode FROM BASE_PROVINCE a WHERE a.STATUS = 1 "); List lst = DB.me().queryForBeanList(MyDatabaseEnum.BasicServiceDB, sql, ProvinceVo.class); for (ProvinceVo provinceVo : lst) { provinceList.add(provinceVo); provinceMap.put(provinceVo.getProvinceId().toString(), provinceVo.getProvinceName()); provinceGBCodeMap.put(provinceVo.getProvinceId().toString(),provinceVo.getGbCode()); sql = new Sql( "SELECT a.CITYID, a.CITYNAME ,a.gbCode FROM BASE_CITY a WHERE a.STATUS = 1 AND a.PROVINCEID = ?"); sql.addParamValue(provinceVo.getProvinceId()); List list = DB.me().queryForBeanList(MyDatabaseEnum.BasicServiceDB, sql, CityVo.class); for (CityVo cityVo : list) { cityMap.put(cityVo.getCityId().toString(), cityVo.getCityName()); cityGBCodeMap.put(cityVo.getCityId().toString(),cityVo.getGbCode()); } cityListByProvince.put(provinceVo.getProvinceId().toString(), list); } } /** * 定时重新获取字典下拉 */ private static void TimerRun(long seconds) throws Exception { Timer timer = new Timer(); TimerTask task = new TimerTask() { public void run() { try { initProvinceList(); } catch (Exception e) { e.printStackTrace(); } } }; timer.schedule(task, 100, seconds * 1000); } }