portal web service

WareDao.java 8.7KB

    package com.ekexiu.portal.ware; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.jfw.apt.annotation.DefaultValue; 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.IncludeFixSet; import org.jfw.apt.orm.annotation.dao.method.OrderBy; import org.jfw.apt.orm.annotation.dao.method.Select; import org.jfw.apt.orm.annotation.dao.method.SetSentence; import org.jfw.apt.orm.annotation.dao.method.Where; import org.jfw.apt.orm.annotation.dao.method.operator.DeleteWith; import org.jfw.apt.orm.annotation.dao.method.operator.Insert; import org.jfw.apt.orm.annotation.dao.method.operator.LimitSelect; import org.jfw.apt.orm.annotation.dao.method.operator.PageSelect; import org.jfw.apt.orm.annotation.dao.method.operator.QueryList; 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.Update; import org.jfw.apt.orm.annotation.dao.method.operator.UpdateWith; import org.jfw.apt.orm.annotation.dao.param.GroupSqlColumn; import org.jfw.apt.orm.annotation.dao.param.In; import org.jfw.apt.orm.annotation.dao.param.LessThan; import org.jfw.apt.orm.annotation.dao.param.SqlColumn; import org.jfw.apt.orm.annotation.dao.param.UnEquals; import org.jfw.apt.orm.core.defaultImpl.LongHandler; import org.jfw.apt.orm.core.defaultImpl.StringHandler; import org.jfw.apt.web.annotation.method.SetCookie; import org.jfw.util.PageQueryResult; import com.ekexiu.portal.question.Answer; @DAO public abstract class WareDao { @Insert public abstract int insert(Connection con, Ware ware) throws SQLException; @Insert public abstract int insert(Connection con, WareRes res) throws SQLException; @DeleteWith @From(WareRes.class) public abstract int deleteWareRes(Connection con, String id) throws SQLException; @DeleteWith @From(WareRes.class) public abstract int deleteWithRes(Connection con, String id, String resource) throws SQLException; @Insert public abstract int insert(Connection con, WarePro pro) throws SQLException; @DeleteWith @From(WarePro.class) public abstract int deleteWarePro(Connection con, String id) throws SQLException; @DeleteWith @From(WarePro.class) public abstract int deleteWithPro(Connection con, String id, String professor) throws SQLException; @Update public abstract int update(Connection con, Ware ware) throws SQLException; @UpdateWith @From(Ware.class) @Where("STATE<>'0'") @SetSentence("STATE = '0'") // @IncludeFixSet public abstract int logicDelete(Connection con, String id) throws SQLException; @UpdateWith @From(Ware.class) @SetSentence("PAGE_VIEWS=PAGE_VIEWS+1") public abstract int incPageViews(Connection con, String id) throws SQLException; @SelectList public abstract List<WarePro> queryPro(Connection con, String id) throws SQLException; @SelectList public abstract List<WareRes> queryRes(Connection con, String id) throws SQLException; @DefaultValue("0") @QueryVal @Column(value = "COUNT(1)", handlerClass = LongHandler.class) @From(WareRes.class) public abstract long countRes(Connection con, String id) throws SQLException; @DefaultValue("0") @QueryVal @Column(value = "COUNT(1)", handlerClass = LongHandler.class) @From(WarePro.class) public abstract long countPro(Connection con, String id) throws SQLException; @DefaultValue("0") @QueryVal @Column(value = "COUNT(1)", handlerClass = LongHandler.class) @From(Ware.class) @Where("STATE='1'") public abstract long countPublish(Connection con, String category, String owner) throws SQLException; @SelectOne @Nullable public abstract Ware queryById(Connection con, String id) throws SQLException; @SelectOne @Nullable public abstract Ware queryByShareId(Connection con, long shareId) throws SQLException; @SelectList public abstract List<Ware> queryById(Connection con, @In String[] id) throws SQLException; @LimitSelect @Where("STATE='1'") public abstract List<Ware> queryPublish(Connection con, String category, String owner, @LessThan String modifyTime, int rows) throws SQLException; @PageSelect @OrderBy("OrderBy STATE DESC,MODIFY_TIMDE DESC") @Where("(STATE='1' OR STATE ='2') AND CATEGORY='1'") public abstract PageQueryResult<Ware> pageQuery(Connection con, @Nullable @GroupSqlColumn(handlerClass = StringHandler.class, value = { "NAME LIKE ?", "CNT LIKE ?", "KEYWORDS LIKE ?" }, isAnd = false) String key, String owner, int pageSize, int pageNo) throws SQLException; @QueryList @Select(Ware.class) @Where("(STATE='1' OR STATE ='2') AND CATEGORY='2'") @From(Ware.class) public abstract List<CountWare> queryByOwner(Connection con, @Nullable @GroupSqlColumn(handlerClass = StringHandler.class, value = { "NAME LIKE ?", "CNT LIKE ?", "KEYWORDS LIKE ?" }, isAnd = false) String key, String owner) throws SQLException; @LimitSelect @OrderBy(" ORDER BY PAGE_VIEWS DESC") @Where("STATE='1'") public abstract List<Ware> queryByOwnerWithPageViews(Connection con,String category,String owner,@Nullable @UnEquals String id, int rows)throws SQLException; @LimitSelect @OrderBy("ORDER BY MODIFY_TIME DESC") @Where("STATE='1'") public abstract List<Ware> queryByResource(Connection con,@SqlColumn(handlerClass=StringHandler.class, value = { "ID IN (SELECT ID FROM WARE_RES WHERE RESOURCE=?)" }) String id,int rows)throws SQLException; @LimitSelect @OrderBy("ORDER BY MODIFY_TIME DESC") @Where("STATE='1'") public abstract List<Ware> queryByArticle(Connection con,@SqlColumn(handlerClass=StringHandler.class, value = { "ID IN (SELECT WARE FROM ARTICLE_WARE WHERE ID=?)" }) String id,int rows) throws SQLException; public List<Ware> indexSeach(Connection con, String key, long sortFirst, String modifyTime, String id, int rows) throws SQLException { List<Ware> result = new ArrayList<Ware>(rows); StringBuilder sb = new StringBuilder(); sb.append("SELECT PAGE_VIEWS,ID,NAME,KEYWORDS,CNT,COOPERATION,DESCP,CATEGORY,OWNER,IMAGES,STATE,SHARE_ID,SORT_FIRST,CREATE_TIME,MODIFY_TIME FROM WARE") .append(" WHERE STATE='1' AND ((SORT_FIRST<?) OR (SORT_FIRST=? AND MODIFY_TIME < ?) OR ( SORT_FIRST=? AND MODIFY_TIME = ? AND ID < ?)"); if (key != null) { sb.append(" AND (NAME LIKE ? OR CNT LIKE ? OR KEYWORDS LIKE ? OR(CATEGORY='1' AND OWNER IN(SELECT ID FROM PROFESSOR WHERE NAME LIKE ?))") .append(" OR (CATEGORY ='2' AND OWNER IN(SELECT ID FROM ORGANIZATION WHERE NAME LIKE ? OR FOR_SHORT LIKE ?))"); } sb.append(" ORDER BY SORT_FIRST DESC,MODIFY_TIME DESC,ID DESC LIMIT ?"); PreparedStatement ps = con.prepareStatement(sb.toString()); try { int idx = 1; ps.setLong(idx++, sortFirst); ps.setLong(idx++, sortFirst); ps.setString(idx++, modifyTime); ps.setLong(idx++, sortFirst); ps.setString(idx++, modifyTime); ps.setString(idx++, id); if (key != null) { ps.setString(idx++, key); ps.setString(idx++, key); ps.setString(idx++, key); ps.setString(idx++, key); ps.setString(idx++, key); ps.setString(idx++, key); } ps.setInt(idx++, rows); java.sql.ResultSet rs = ps.executeQuery(); try { while (rs.next()) { Ware _obj = new Ware(); _obj.setPageViews(rs.getLong(1)); _obj.setId(rs.getString(2)); _obj.setName(rs.getString(3)); java.lang.String _m_3 = rs.getString(4); if (rs.wasNull()) { _m_3 = null; } _obj.setKeywords(_m_3); java.lang.String _m_4 = rs.getString(5); if (rs.wasNull()) { _m_4 = null; } _obj.setCnt(_m_4); java.lang.String _m_5 = rs.getString(6); if (rs.wasNull()) { _m_5 = null; } _obj.setCooperation(_m_5); java.lang.String _m_6 = rs.getString(7); if (rs.wasNull()) { _m_6 = null; } _obj.setDescp(_m_6); _obj.setCategory(rs.getString(8)); _obj.setOwner(rs.getString(9)); java.lang.String _m_7 = rs.getString(10); if (rs.wasNull()) { _m_7 = null; } _obj.setImages(_m_7); _obj.setState(rs.getString(11)); _obj.setShareId(rs.getLong(12)); _obj.setSortFirst(rs.getLong(13)); _obj.setCreateTime(rs.getString(14)); _obj.setModifyTime(rs.getString(15)); result.add(_obj); } return result; } finally { try { rs.close(); } catch (Exception _m_8) { } } } finally { try { ps.close(); } catch (Exception _m_9) { } } } }