|
@@ -39,19 +39,27 @@ public interface SocketMessageDao {
|
|
|
@Select("select count(1) from t_socket_message where sender='00000'")
|
|
|
int selectSystemMessageCount();
|
|
|
|
|
|
- @Select("select a.sender,\n" +
|
|
|
- " unreadCount=(select count(1)\n" +
|
|
|
- " from t_socket_message_consumer t\n" +
|
|
|
- " where t.receiver = #{receiver}\n" +
|
|
|
- " and t.sender = a.sender\n" +
|
|
|
- " and t.status = 0),\n" +
|
|
|
- " sender_name = (select\n" +
|
|
|
- " (select rtrim(name) from zd_unit_code where dept_code = zd_unit_code.code) + '-' + rtrim(name)\n" +
|
|
|
- " from a_employee_mi\n" +
|
|
|
- " where code = a.sender)\n" +
|
|
|
- "from t_socket_message_consumer a\n" +
|
|
|
- "where a.receiver = #{receiver}\n" +
|
|
|
- "group by a.sender")
|
|
|
+ @Select("WITH UnreadCounts AS (\n" +
|
|
|
+ " SELECT\n" +
|
|
|
+ " sender,\n" +
|
|
|
+ " COUNT(1) AS unreadCount\n" +
|
|
|
+ " FROM\n" +
|
|
|
+ " t_socket_message_consumer\n" +
|
|
|
+ " WHERE\n" +
|
|
|
+ " receiver = '${receiver}'\n" +
|
|
|
+ " AND status = 0\n" +
|
|
|
+ " GROUP BY\n" +
|
|
|
+ " sender\n" +
|
|
|
+ ")\n" +
|
|
|
+ "SELECT\n" +
|
|
|
+ " a.sender,\n" +
|
|
|
+ " ISNULL(uc.unreadCount, 0) AS unreadCount,\n" +
|
|
|
+ " (SELECT (SELECT rtrim(name) FROM zd_unit_code WHERE dept_code = zd_unit_code.code) + '-' + rtrim(name)\n" +
|
|
|
+ " FROM a_employee_mi WHERE code = a.sender) AS sender_name\n" +
|
|
|
+ "FROM\n" +
|
|
|
+ " (SELECT DISTINCT sender FROM t_socket_message_consumer WHERE receiver = '${receiver}') a\n" +
|
|
|
+ " LEFT JOIN\n" +
|
|
|
+ " UnreadCounts uc ON uc.sender = a.sender;")
|
|
|
List<MessageIndex> selectMessageIndex(@Param("receiver") String receiver);
|
|
|
|
|
|
@Select("select * from t_socket_message where sender='00000'")
|
|
@@ -73,7 +81,7 @@ public interface SocketMessageDao {
|
|
|
int selectNeededMessagesTotal(@Param("sender") String sender, @Param("receiver") String receiver);
|
|
|
|
|
|
@Select("select top ${pageSize} *\n" +
|
|
|
- "from (select row_number() over (order by id,send_datetime desc ) row_index, a.*, t.status\n" +
|
|
|
+ "from (select row_number() over (order by send_datetime desc ) row_index, a.*, t.status\n" +
|
|
|
" from t_socket_message_consumer t\n" +
|
|
|
" left join t_socket_message a on (a.id = t.msg_id)\n" +
|
|
|
" where t.sender = #{sender}\n" +
|