ec2192d144fa6972cc35448031f748d157115cd8.svn-base 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.yihu.platform.cache;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.Timer;
  7. import java.util.TimerTask;
  8. import com.coreframework.db.DB;
  9. import com.coreframework.db.Sql;
  10. import com.yihu.platform.enums.MyDatabaseEnum;
  11. import com.yihu.platform.vo.CityVo;
  12. import com.yihu.platform.vo.ProvinceVo;
  13. /**
  14. *
  15. * @author wengsb
  16. * @company yihu.com 2015-7-15下午03:27:31
  17. */
  18. public class DBCache {
  19. // 数据字典
  20. public static Map<String, List<Map<String, Object>>> dictionaryListMapBoss = new HashMap<String, List<Map<String, Object>>>();
  21. public static Map<String, String> provinceMap = new HashMap<String, String>(); // 省份
  22. public static Map<String, String> provinceGBCodeMap = new HashMap<String, String>(); // 省份
  23. public static Map<String, String> cityMap = new HashMap<String, String>(); // 城市
  24. public static Map<String, String> cityGBCodeMap = new HashMap<String, String>(); // 城市
  25. public static List<ProvinceVo> provinceList = new ArrayList<ProvinceVo>(); // 省份
  26. public static Map<String, List<CityVo>> cityListByProvince = new HashMap<String, List<CityVo>>(); // 城市集合
  27. public static void initCacheByDB() throws Exception {
  28. TimerRun(600);// 10分钟执行一次
  29. }
  30. /**
  31. * 初始化省份
  32. *
  33. * @throws Exception
  34. */
  35. private static void initProvinceList() throws Exception {
  36. provinceList.clear();
  37. cityListByProvince.clear();
  38. provinceMap.clear();
  39. cityMap.clear();
  40. Sql sql = new Sql("SELECT a.PROVINCEID, a.PROVINCENAME ,gbcode FROM BASE_PROVINCE a WHERE a.STATUS = 1 ");
  41. List<ProvinceVo> lst = DB.me().queryForBeanList(MyDatabaseEnum.BasicServiceDB, sql, ProvinceVo.class);
  42. for (ProvinceVo provinceVo : lst) {
  43. provinceList.add(provinceVo);
  44. provinceMap.put(provinceVo.getProvinceId().toString(), provinceVo.getProvinceName());
  45. provinceGBCodeMap.put(provinceVo.getProvinceId().toString(),provinceVo.getGbCode());
  46. sql = new Sql(
  47. "SELECT a.CITYID, a.CITYNAME ,a.gbCode FROM BASE_CITY a WHERE a.STATUS = 1 AND a.PROVINCEID = ?");
  48. sql.addParamValue(provinceVo.getProvinceId());
  49. List<CityVo> list = DB.me().queryForBeanList(MyDatabaseEnum.BasicServiceDB, sql, CityVo.class);
  50. for (CityVo cityVo : list) {
  51. cityMap.put(cityVo.getCityId().toString(), cityVo.getCityName());
  52. cityGBCodeMap.put(cityVo.getCityId().toString(),cityVo.getGbCode());
  53. }
  54. cityListByProvince.put(provinceVo.getProvinceId().toString(), list);
  55. }
  56. }
  57. /**
  58. * 定时重新获取字典下拉
  59. */
  60. private static void TimerRun(long seconds) throws Exception {
  61. Timer timer = new Timer();
  62. TimerTask task = new TimerTask() {
  63. public void run() {
  64. try {
  65. initProvinceList();
  66. } catch (Exception e) {
  67. e.printStackTrace();
  68. }
  69. }
  70. };
  71. timer.schedule(task, 100, seconds * 1000);
  72. }
  73. }