80a1f14d29132d2abc9ecbca606f9faf8b8cfd2d.svn-base 2.8 KB

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