portal web service

DemandDao.java 14KB

    package com.ekexiu.portal.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.jfw.apt.annotation.Nullable; import org.jfw.apt.orm.annotation.dao.Column; import org.jfw.apt.orm.annotation.dao.DAO; import org.jfw.apt.orm.annotation.dao.method.From; import org.jfw.apt.orm.annotation.dao.method.OrderBy; import org.jfw.apt.orm.annotation.dao.method.operator.Insert; import org.jfw.apt.orm.annotation.dao.method.operator.QueryVal; import org.jfw.apt.orm.annotation.dao.method.operator.SelectList; import org.jfw.apt.orm.annotation.dao.method.operator.SelectOne; import org.jfw.apt.orm.annotation.dao.method.operator.UpdateWith; import org.jfw.apt.orm.annotation.dao.param.Set; import org.jfw.apt.orm.core.defaultImpl.IntHandler; import org.jfw.util.PageQueryResult; import org.jfw.util.exception.JfwBaseException; import com.ekexiu.portal.po.Demand; @DAO public abstract class DemandDao { @Insert public abstract int insert(Connection con,Demand demand)throws SQLException; @UpdateWith @From(Demand.class) public abstract int updateDemandStatus(Connection con,String demandId,@Set String demandStatus,@Set String closeTime)throws SQLException; @SelectOne @Nullable public abstract Demand queryOne(Connection con,String demandId)throws SQLException; @QueryVal @Column(handlerClass=IntHandler.class,value="COUNT(1)") @From(Demand.class) public abstract int queryCountByStatus(Connection con,String demander,String demandStatus)throws SQLException, JfwBaseException; @QueryVal @Column(handlerClass=IntHandler.class,value="COUNT(1)") @From(Demand.class) public abstract int queryCountStatus(Connection con,String demandStatus)throws SQLException, JfwBaseException; @SelectList @OrderBy("ORDER BY CREATE_TIME DESC") public abstract List<Demand> queryByDemander(Connection con,String demander)throws SQLException; public PageQueryResult<Demand> pageQueryByDemander(Connection con,String demander,String demandStatus,int sortType,int pageSize,int pageNo) throws SQLException{ int _m_1 = 0; PageQueryResult<Demand> _result = new PageQueryResult<Demand>(); int _m_2 = 1; boolean _m_3 = null == demandStatus; StringBuilder sql = new StringBuilder(); sql.append(" WHERE DEMANDER = ?"); if(!_m_3){ sql.append(" AND DEMAND_STATUS = ?"); } StringBuilder _m_4 = sql; sql = new StringBuilder(); sql.append("SELECT COUNT(1) FROM DEMAND"); sql.append(_m_4); PreparedStatement ps = con.prepareStatement(sql.toString()); try{ ps.setString(_m_2++,demander); if(!_m_3){ ps.setString(_m_2++,demandStatus); } _result.setPageSize(pageSize); ResultSet _pageRs = ps.executeQuery(); try{ _pageRs.next(); _m_1 = _pageRs.getInt(1); }finally{ try{_pageRs.close();}catch(Exception _m_5){} } }finally{ try{ps.close();}catch(Exception _m_6){} } _result.setTotal(_m_1); if(0== _m_1){ _result.setPageNo(1); _result.setData(Collections.<Demand>emptyList()); return _result; } _m_2 = 1; boolean _m_7 = (1 == pageNo); if(_m_7){ _result.setPageNo(1); sql = new StringBuilder(); sql.append("SELECT DEMAND_ID,DEMANDER,DEMAND_AIM,DEMAND_TYPE,DEMAND_TITLE,DEMAND_CONTENT,DEMAND_STATUS,CLOSE_TIME,ORDER_KEY,CREATE_TIME FROM DEMAND"); sql.append(_m_4); sql.append(" ORDER BY CREATE_TIME"); if(sortType == 0){ sql.append(" DESC "); } sql.append(" LIMIT ").append(pageSize); }else{ int _m_8 = _m_1 / pageSize; if(_m_1 % pageSize != 0){ ++_m_8; } if(pageNo > _m_8){ pageNo = _m_8; } _result.setPageNo(pageNo); --pageNo; int _m_9 = (pageNo * pageSize); sql = new StringBuilder(); sql.append("SELECT DEMAND_ID,DEMANDER,DEMAND_AIM,DEMAND_TYPE,DEMAND_TITLE,DEMAND_CONTENT,DEMAND_STATUS,CLOSE_TIME,ORDER_KEY,CREATE_TIME FROM DEMAND"); sql.append(_m_4); sql.append(" ORDER BY CREATE_TIME"); if(sortType == 0){ sql.append(" DESC "); } sql.append(" LIMIT ").append(pageSize).append(" OFFSET ").append(_m_9); } ps = con.prepareStatement(sql.toString()); try{ ps.setString(_m_2++,demander); if(!_m_3){ ps.setString(_m_2++,demandStatus); } ResultSet rs = ps.executeQuery(); try{ List<Demand> _m_10 = new ArrayList<Demand>(); _result.setData(_m_10); int _m_11 = 0; while((_m_11<pageSize) && rs.next()){ ++_m_11; Demand _obj = new Demand(); _obj.setDemandId(rs.getString(1)); _obj.setDemander(rs.getString(2)); _obj.setDemandAim(rs.getString(3)); _obj.setDemandType(rs.getString(4)); _obj.setDemandTitle(rs.getString(5)); String _m_12 = rs.getString(6); if(rs.wasNull()){ _m_12 = null; } _obj.setDemandContent(_m_12); _obj.setDemandStatus(rs.getString(7)); String _m_13 = rs.getString(8); if(rs.wasNull()){ _m_13 = null; } _obj.setCloseTime(_m_13); _obj.setOrderKey(rs.getLong(9)); _obj.setCreateTime(rs.getString(10)); _m_10.add(_obj); } return _result; }finally{ try{rs.close();}catch(Exception _m_14){} } }finally{ try{ps.close();}catch(Exception _m_15){} } } public PageQueryResult<Demand> pageQuery(Connection con,String demandStatus,String demandAim,int sortType,int pageSize,int pageNo) throws SQLException{ int _m_1 = 0; PageQueryResult<Demand> _result = new PageQueryResult<Demand>(); int _m_3 = 1; boolean _m_2 = null == demandAim; StringBuilder sql = new StringBuilder(); sql.append(" WHERE DEMAND_STATUS = ?"); if(!_m_2){ sql.append(" AND DEMAND_AIM = ?"); } StringBuilder _m_4 = sql; sql = new StringBuilder(); sql.append("SELECT COUNT(1) FROM DEMAND"); if(_m_4.length()>0){ sql.append(_m_4); } PreparedStatement ps = con.prepareStatement(sql.toString()); try{ ps.setString(_m_3++, demandStatus); if(!_m_2){ ps.setString(_m_3++,demandAim); } _result.setPageSize(pageSize); ResultSet _pageRs = ps.executeQuery(); try{ _pageRs.next(); _m_1 = _pageRs.getInt(1); }finally{ try{_pageRs.close();}catch(Exception _m_5){} } }finally{ try{ps.close();}catch(Exception _m_6){} } _result.setTotal(_m_1); if(0== _m_1){ _result.setPageNo(1); _result.setData(Collections.<Demand>emptyList()); return _result; } _m_3 = 1; boolean _m_7 = (1 == pageNo); if(_m_7){ _result.setPageNo(1); sql = new StringBuilder(); sql.append("SELECT DEMAND_ID,DEMANDER,DEMAND_AIM,DEMAND_TYPE,DEMAND_TITLE,DEMAND_CONTENT,DEMAND_STATUS,CLOSE_TIME,ORDER_KEY,CREATE_TIME FROM DEMAND"); if(_m_4.length()>0){ sql.append(_m_4); } sql.append(" ORDER BY CREATE_TIME"); if(sortType == 0){ sql.append(" DESC "); } sql.append(" LIMIT ").append(pageSize); }else{ int _m_8 = _m_1 / pageSize; if(_m_1 % pageSize != 0){ ++_m_8; } if(pageNo > _m_8){ pageNo = _m_8; } _result.setPageNo(pageNo); --pageNo; int _m_9 = (pageNo * pageSize); sql = new StringBuilder(); sql.append("SELECT DEMAND_ID,DEMANDER,DEMAND_AIM,DEMAND_TYPE,DEMAND_TITLE,DEMAND_CONTENT,DEMAND_STATUS,CLOSE_TIME,ORDER_KEY,CREATE_TIME FROM DEMAND"); if(_m_4.length()>0){ sql.append(_m_4); } sql.append(" ORDER BY CREATE_TIME"); if(sortType == 0){ sql.append(" DESC "); } sql.append(" LIMIT ").append(pageSize).append(" OFFSET ").append(_m_9); } ps = con.prepareStatement(sql.toString()); try{ ps.setString(_m_3++, demandStatus); if(!_m_2){ ps.setString(_m_3++,demandAim); } ResultSet rs = ps.executeQuery(); try{ List<Demand> _m_10 = new ArrayList<Demand>(); _result.setData(_m_10); int _m_11 = 0; while((_m_11<pageSize) && rs.next()){ ++_m_11; Demand _obj = new Demand(); _obj.setDemandId(rs.getString(1)); _obj.setDemander(rs.getString(2)); _obj.setDemandAim(rs.getString(3)); _obj.setDemandType(rs.getString(4)); _obj.setDemandTitle(rs.getString(5)); String _m_12 = rs.getString(6); if(rs.wasNull()){ _m_12 = null; } _obj.setDemandContent(_m_12); _obj.setDemandStatus(rs.getString(7)); String _m_13 = rs.getString(8); if(rs.wasNull()){ _m_13 = null; } _obj.setCloseTime(_m_13); _obj.setOrderKey(rs.getLong(9)); _obj.setCreateTime(rs.getString(10)); _m_10.add(_obj); } return _result; }finally{ try{rs.close();}catch(Exception _m_14){} } }finally{ try{ps.close();}catch(Exception _m_15){} } } public List<Demand> queryByStatus(Connection con,String demandStatus,String demandAim,String subject,String industry,String createTime,long orderKey,int rows,int sortType) throws SQLException{ StringBuilder sql = new StringBuilder(); sql.append("SELECT DEMAND_ID,DEMANDER,DEMAND_AIM,DEMAND_TYPE,DEMAND_TITLE,DEMAND_CONTENT,DEMAND_STATUS,ORDER_KEY,CREATE_TIME FROM DEMAND "); boolean hasDemandAim = null != demandAim; boolean hasSubject = null !=subject; boolean hasIndustry = null != industry; sql.append(" WHERE DEMAND_STATUS = ? AND ORDER_KEY < ? AND CREATE_TIME < ? "); if(hasDemandAim){ sql.append(" AND DEMAND_AIM = ? "); } if(hasSubject){ sql.append(" AND DEMAND_ID IN (SELECT DEMAND_ID FROM DEMAND_SUB_OR_INDUS WHERE SUB_OR_INDUS LIKE ?) "); } if(hasIndustry){ sql.append(" AND DEMAND_ID IN (SELECT DEMAND_ID FROM DEMAND_SUB_OR_INDUS WHERE SUB_OR_INDUS LIKE ?) "); } sql.append(" ORDER BY CREATE_TIME "); if(sortType == 0){ sql.append(" DESC "); } sql.append(" ,ORDER_KEY "); if(sortType == 0){ sql.append(" DESC "); } sql.append(" LIMIT ").append(rows); int index = 1; PreparedStatement ps = con.prepareStatement(sql.toString()); try{ ps.setString(index++, demandStatus); ps.setLong(index++,orderKey); ps.setString(index++,createTime); if(hasDemandAim){ ps.setString(index++,demandAim); } if(hasSubject){ ps.setString(index++,subject); } if(hasIndustry){ ps.setString(index++,industry); } ResultSet rs = ps.executeQuery(); try{ List<Demand> _result = new ArrayList<Demand>(); while(rs.next()){ Demand demand = new Demand(); demand.setDemandId(rs.getString(1)); demand.setDemander(rs.getString(2)); demand.setDemandAim(rs.getString(3)); demand.setDemandType(rs.getString(4)); demand.setDemandTitle(rs.getString(5)); String content = rs.getString(6); if(rs.wasNull()){ content = null; } demand.setDemandContent(content); demand.setDemandStatus(rs.getString(7)); demand.setOrderKey(rs.getLong(8)); demand.setCreateTime(rs.getString(9)); _result.add(demand); } return _result; }finally{ try{rs.close();}catch(Exception e1){} } }finally{ try{ps.close();}catch(Exception e2){} } } }