74111ca30568d28cacd261089bf464d0b4fb631d.svn-base 2.5 KB

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