package com.sp2p.service; import java.sql.Connection; import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.shove.base.BaseService; import com.shove.data.ConnectionManager; import com.shove.data.DataException; import com.shove.data.dao.MySQL; import com.sp2p.dao.RegionDao; import freemarker.template.utility.DateUtil; public class RegionService extends BaseService { public static Log log = LogFactory.getLog(RegionService.class); private RegionDao regionDao; private ConnectionManager connectionManager; public void setConnectionManager(ConnectionManager connectionManager) { this.connectionManager = connectionManager; } /** * 查询地区 * * @param regionId * @param parentId * @param regionType * @return * @throws SQLException * @throws DataException */ public List<Map<String, Object>> queryRegionList(Long regionId, Long parentId, Integer regionType) throws SQLException, DataException { Connection conn = connectionManager.getConnection(); List<Map<String, Object>> listMap = null; try { listMap = regionDao.queryRegionList(conn, regionId, parentId, regionType); } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } finally { conn.close(); } return listMap; } /** * 查询地区 * * @param regionId * @param parentId * @param regionType * @return * @throws SQLException * @throws DataException */ public List<Map<String, String>> queryRegionList2(Long regionId, Long parentId, Integer regionType) throws SQLException, DataException { Connection conn = connectionManager.getConnection(); Map<String, String> citys = null; Map<String, String> provs = null; List<Map<String, String>> list = new ArrayList<Map<String, String>>(); try { citys = regionDao.queryRegionList2(conn, regionId, parentId, 2); provs = regionDao.queryRegionList2(conn, regionId, parentId, 1); list.add(provs); list.add(citys); } catch (Exception e) { log.error(e); e.printStackTrace(); } finally { conn.close(); } return list; } /** * 和合年查询地区 * * @param regionId * @param parentId * @param regionType * @return * @throws SQLException * @throws DataException */ public List<Map<String, Object>> queryRegionListHHN(Long regionId, Long parentId, Integer regionType) throws SQLException, DataException { Connection conn = connectionManager.getConnection(); List<Map<String, Object>> listMap = null; try { listMap = regionDao.queryRegionListHHN(conn, regionId, parentId, regionType); } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } finally { conn.close(); } return listMap; } public void setRegionDao(RegionDao regionDao) { this.regionDao = regionDao; } /** * 查询彩生活个人资料数据 * * @return * @throws Exception */ public Map<String, String> queryFromBeautyLife(String realName, String idNo) throws Exception { Connection conn = MySQL.getConnection(); Map<String, String> map = null; try { map = regionDao.importFromBeautyLife(conn, realName, idNo); return map; } catch (Exception e) { e.printStackTrace(); log.error(e); } finally { conn.close(); } return map; } /** * 导入彩生活数据 * * @param map * @param userId * @return * @throws SQLException * @throws ParseException */ @SuppressWarnings("deprecation") public long importFromBeautyLife(Map<String, String> map, long userId) throws SQLException, ParseException { String idno = map.get("idNo"); StringBuilder birthday = new StringBuilder(); if (idno != null) { // 15位身份证 if (idno.length() == 15) birthday.append("19").append(idno.substring(6, 12)); // 18位身份证 if (idno.length() == 18) birthday.append(idno.substring(6, 14)); } if (birthday.length() == 8) { birthday.insert(6, "-").insert(4, "-"); map.put("birthday", birthday.toString()); Date date = new SimpleDateFormat("yyyy-MM-dd").parse(birthday.toString()); int age = new Date().getYear(); age = age - date.getYear(); map.put("age", age + ""); } Connection conn = MySQL.getConnection(); try { long ret1 = regionDao.updateUserStep(conn, map, userId); long ret2 = regionDao.updatePersonStep(conn, map, userId); long ret3 = regionDao.updateWorkAuthStep(conn, map, userId); long ret4 = regionDao.updatetMaterialsauthAuthStep(conn, map, userId); long ret5 = regionDao.updateColorLife(conn, map, userId); if (ret1 > 0 && ret2 > 0 && ret3 > 0 && ret4 > 0 && ret5 > 0) { conn.commit(); return 1; } else { conn.rollback(); return -1; } } catch (Exception e) { log.error(e); conn.rollback(); e.printStackTrace(); return -1; } finally { conn.close(); } } }