/** * @Project: hehenian-biz-service Maven Webapp * @Package com.hehenian.biz.dal.wygj.impl * @Title: SysCodeDaoImpl.java * @Description: TODO * * @author: chenzhpmf * @date 2015-5-6 下午7:03:47 * @Copyright: HEHENIAN Co.,Ltd. All rights reserved. * @version V1.0 */ package com.hehenian.biz.dal.wygj.impl; import java.sql.SQLException; import java.util.List; import javax.annotation.Resource; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper; import com.hehenian.biz.common.wygj.dataobject.SysCodeDo; import com.hehenian.biz.dal.wygj.SysCodeDao; import com.hehenian.biz.service.dao.AbstractBaseDaoImpl; public class SysCodeDaoImpl extends AbstractBaseDaoImpl<SysCodeDo> implements SysCodeDao { @Resource private JdbcTemplate sp2pJdbcTemplate; @Resource private NamedParameterJdbcTemplate sp2pNameJdbcTemplate; private static RowMapper<SysCodeDo> rowMapper = ParameterizedBeanPropertyRowMapper .newInstance(SysCodeDo.class); @Override public List<SysCodeDo> querySysCodeListByDo(SysCodeDo codeDo) { String sql = "select * from syscode where parentId=? and typeId=?"; try { return queryList(sp2pJdbcTemplate, sql, new Object[]{codeDo.getId(),codeDo.getTypeId()}); } catch (Exception e) { e.printStackTrace(); } return null; } public List<SysCodeDo> queryAllSysCodeByType(Integer type[]){ String sql ="select id,parentId,remarkForShow from syscode where typeId in("; for(Integer i : type){ sql+=i+","; } sql = sql.substring(0, sql.lastIndexOf(",")); sql+=")"; try { return queryList(sp2pJdbcTemplate, sql); } catch (Exception e) { e.printStackTrace(); } return null; } public String getByCommunityCode(String id){ String sql = "SELECT GROUP_CONCAT(remarkForShow) AS remarkForShow FROM (SELECT remarkForShow FROM syscode WHERE typeId = 2 AND id = ROUND("+id+"/100000000,0)*100000000 UNION "+ "SELECT remarkForShow FROM syscode WHERE typeId = 3 AND id = ROUND("+id+"/1000000,0)*1000000 UNION "+ "SELECT remarkForShow FROM syscode WHERE typeId = 4 AND id = ROUND("+id+"/10000,0)*10000 UNION "+ "SELECT remarkForShow FROM syscode WHERE typeId = 5 AND id = "+id+") t;"; try { return queryString(sp2pJdbcTemplate, sql).get(0); } catch (SQLException e) { e.printStackTrace(); } return null; } @Override public RowMapper<SysCodeDo> getRowMapper() { return rowMapper; } }