暫無描述

TidingsDao.java 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package com.ekexiu.portal.dao;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import org.jfw.apt.orm.annotation.dao.DAO;
  7. import org.jfw.apt.orm.annotation.dao.method.operator.Insert;
  8. import com.ekexiu.portal.po.Consult;
  9. import com.ekexiu.portal.po.Professor;
  10. import com.ekexiu.portal.po.Tidings;
  11. @DAO
  12. public abstract class TidingsDao {
  13. @Insert
  14. public abstract int insert(Connection con, Tidings tidings) throws SQLException;
  15. public int updateReadStatus(Connection con,String senderId,String consultId) throws SQLException{
  16. int _m_1 = 1;
  17. String sql ="UPDATE TIDINGS SET READ_STATUS = 1 WHERE READ_STATUS = 0 AND CONSULT_ID = ? AND SENDER_ID != ? ";
  18. PreparedStatement ps = con.prepareStatement(sql);
  19. try{
  20. ps.setString(_m_1++,consultId);
  21. ps.setString(_m_1++,senderId);
  22. return ps.executeUpdate();
  23. }finally{
  24. try{ps.close();}catch(Exception _m_2){}
  25. }
  26. }
  27. /**
  28. * 查询当前咨询有几条未读消息
  29. * @param con
  30. * @param consultId 咨询ID
  31. * @param senderId 登录者ID
  32. * @return 返回该咨询中对方发送过来未查看的信息条数
  33. * @throws SQLException
  34. */
  35. public int queryNotReadTidings(Connection con, String consultId, String senderId) throws SQLException {
  36. String sql = " SELECT COUNT(1) FROM TIDINGS WHERE READ_STATUS = 0 AND CONSULT_ID = ? AND SENDER_ID != ? ";
  37. PreparedStatement ps = con.prepareStatement(sql);
  38. ps.setString(1, consultId);
  39. ps.setString(2, senderId);
  40. ResultSet rs = ps.executeQuery();
  41. rs.next();
  42. int count = rs.getInt(1);
  43. return count;
  44. }
  45. /**
  46. * 我的工作台最新回复
  47. * @param con
  48. * @param consultantId 咨询者ID
  49. * @return 返回最新回复信息(包括咨询别人和别人咨询自己的最新回复)
  50. * @throws SQLException
  51. */
  52. public Tidings queryNewReply(Connection con, String consultantId) throws SQLException{
  53. int _m_1 = 1;
  54. String sql = "SELECT TIDINGS_ID,TIDINGS_CONTANT,SENDER_ID,TIDINGS.CONSULT_ID,"
  55. + " TIDINGS.CREATE_TIME,TIDINGS.READ_STATUS,CONSULT.CONSULT_TITLE"
  56. + " FROM TIDINGS LEFT JOIN CONSULT ON TIDINGS.CONSULT_ID = CONSULT.CONSULT_ID "
  57. + " WHERE TIDINGS.CREATE_TIME IN "
  58. + " (SELECT MAX(TIDINGS.CREATE_TIME) FROM TIDINGS "
  59. + " INNER JOIN CONSULT ON TIDINGS.CONSULT_ID = CONSULT.CONSULT_ID AND (TIDINGS.READ_STATUS = 0) "
  60. + " AND (CONSULT.CONSULTANT_ID = ? OR CONSULT.PROFESSOR_ID = ?) AND (TIDINGS.SENDER_ID != ?)) ";
  61. PreparedStatement ps = con.prepareStatement(sql);
  62. try{
  63. ps.setString(_m_1++,consultantId);
  64. ps.setString(_m_1++,consultantId);
  65. ps.setString(_m_1++,consultantId);
  66. ResultSet rs = ps.executeQuery();
  67. try{
  68. if(rs.next()){
  69. Tidings tidings = new Tidings();
  70. tidings.setTidingsId(rs.getString(1));
  71. tidings.setTidingsContant(rs.getString(2));
  72. tidings.setSenderId(rs.getString(3));
  73. Consult consult = new Consult();
  74. consult.setConsultId(rs.getString(4));
  75. tidings.setCreateTime(rs.getString(5));
  76. tidings.setReadStatus(rs.getInt(6));
  77. consult.setConsultTitle(rs.getString(7));
  78. tidings.setConsult(consult);
  79. return tidings;
  80. }else{
  81. return null;
  82. }
  83. }finally{
  84. try{rs.close();}catch(Exception _m_8){}
  85. }
  86. }finally{
  87. try{ps.close();}catch(Exception _m_9){}
  88. }
  89. }
  90. /**
  91. * 咨询页面显示最后回复信息
  92. * @param con
  93. * @param consultId 咨询ID
  94. * @param senderId 登陆者ID
  95. * @return 返回对方最后回复的信息
  96. * @throws SQLException
  97. */
  98. public Tidings queryLastRevovery(Connection con,String consultId,String senderId) throws SQLException{
  99. int _m_1 = 1;
  100. String sql = "SELECT TIDINGS_ID,TIDINGS_CONTANT,SENDER_ID,CONSULT_ID,CREATE_TIME FROM TIDINGS "
  101. + " WHERE CREATE_TIME IN (SELECT MAX(CREATE_TIME) FROM TIDINGS WHERE (CONSULT_ID = ?) AND (SENDER_ID != ?)) ";
  102. PreparedStatement ps = con.prepareStatement(sql);
  103. try{
  104. ps.setString(_m_1++,consultId);
  105. ps.setString(_m_1++,senderId);
  106. ResultSet rs = ps.executeQuery();
  107. try{
  108. if(rs.next()){
  109. Tidings _result = new Tidings();
  110. _result.setTidingsId(rs.getString(1));
  111. _result.setTidingsContant(rs.getString(2));
  112. _result.setSenderId(rs.getString(3));
  113. _result.setConsultId(rs.getString(4));
  114. _result.setCreateTime(rs.getString(5));
  115. return _result;
  116. }else{
  117. return null;
  118. }
  119. }finally{
  120. try{rs.close();}catch(Exception _m_2){}
  121. }
  122. }finally{
  123. try{ps.close();}catch(Exception _m_3){}
  124. }
  125. }
  126. public Tidings query(Connection con,String tidingsId) throws SQLException{
  127. int _m_1 = 1;
  128. String sql = "SELECT TIDINGS_ID,TIDINGS_CONTANT,SENDER_ID,CONSULT_ID,TIDINGS.CREATE_TIME,PROFESSOR.NAME "
  129. + " FROM TIDINGS LEFT JOIN PROFESSOR ON SENDER_ID = PROFESSOR.ID WHERE TIDINGS_ID = ?";
  130. PreparedStatement ps = con.prepareStatement(sql);
  131. try{
  132. ps.setString(_m_1++,tidingsId);
  133. ResultSet rs = ps.executeQuery();
  134. try{
  135. if(rs.next()){
  136. Tidings _result = new Tidings();
  137. _result.setTidingsId(rs.getString(1));
  138. _result.setTidingsContant(rs.getString(2));
  139. Professor professor = new Professor();
  140. professor.setId(rs.getString(3));
  141. _result.setConsultId(rs.getString(4));
  142. _result.setCreateTime(rs.getString(5));
  143. professor.setName(rs.getString(6));
  144. _result.setProfessor(professor);
  145. return _result;
  146. }else{
  147. return null;
  148. }
  149. }finally{
  150. try{rs.close();}catch(Exception _m_2){}
  151. }
  152. }finally{
  153. try{ps.close();}catch(Exception _m_3){}
  154. }
  155. }
  156. public java.util.List<Tidings> queryCon(Connection con,String consultId) throws SQLException{
  157. int _m_1 = 1;
  158. String sql = "SELECT TIDINGS_ID,TIDINGS_CONTANT,SENDER_ID,TIDINGS.CONSULT_ID,TIDINGS.CREATE_TIME,PROFESSOR.NAME "
  159. + " FROM TIDINGS LEFT JOIN PROFESSOR ON SENDER_ID = PROFESSOR.ID WHERE TIDINGS.CONSULT_ID = ? ORDER BY TIDINGS.CREATE_TIME";
  160. PreparedStatement ps = con.prepareStatement(sql);
  161. try{
  162. ps.setString(_m_1++,consultId);
  163. ResultSet rs = ps.executeQuery();
  164. try{
  165. java.util.List<Tidings> _result = new java.util.ArrayList<Tidings>();
  166. while(rs.next()){
  167. Tidings _obj = new Tidings();
  168. _obj.setTidingsId(rs.getString(1));
  169. _obj.setTidingsContant(rs.getString(2));
  170. Professor professor = new Professor();
  171. professor.setId(rs.getString(3));
  172. _obj.setConsultId(rs.getString(4));
  173. _obj.setCreateTime(rs.getString(5));
  174. professor.setName(rs.getString(6));
  175. _obj.setProfessor(professor);
  176. _result.add(_obj);
  177. }
  178. return _result;
  179. }finally{
  180. try{rs.close();}catch(Exception _m_2){}
  181. }
  182. }finally{
  183. try{ps.close();}catch(Exception _m_3){}
  184. }
  185. }
  186. }