Преглед на файлове

Merge remote-tracking branch 'origin/master'

wangyc преди 7 години
родител
ревизия
0b16d11576
променени са 1 файла, в които са добавени 29 реда и са изтрити 23 реда
  1. 29 23
      src/main/java/com/uas/ps/message/service/impl/MessageServiceImpl.java

+ 29 - 23
src/main/java/com/uas/ps/message/service/impl/MessageServiceImpl.java

@@ -35,6 +35,7 @@ import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.Sort;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -117,7 +118,7 @@ public class MessageServiceImpl implements MessageService {
 //        SimpleExpression receiverEnuuExp = PredicateUtils.eq("receiverEnuu", Long.valueOf(receiverEnuu), true);
 //        SimpleExpression[] simpleExpressions = new SimpleExpression[] {receiverUuExp, receiverEnuuExp};
 
-        String sql = String.format("select * from messages m where ms_receiveruu = %s and ms_receiverenuu = %s ",
+        String sql = String.format("select count(1) from messages m where ms_receiveruu = %s and ms_receiverenuu = %s ",
             Long.valueOf(receiverUu), Long.valueOf(receiverEnuu));
         // 读取状态
         if (!StringUtils.isEmpty(isRead)) {
@@ -138,29 +139,34 @@ public class MessageServiceImpl implements MessageService {
 
 //        final LogicalExpression logicalExpression = PredicateUtils.and(simpleExpressions);
         final PageInfo pageInfo = new PageInfo(pageParams);
-        List<Message> messageList = jdbcTemplate.query(sql, new RowMapper<Message>() {
-            @Override
-            public Message mapRow(ResultSet resultSet, int i) throws SQLException {
-                Message message = new Message();
-                if (resultSet != null) {
-                    message.setId(resultSet.getLong("ms_id"));
-                    message.setConsumeType(resultSet.getString("ms_consumeType"));
-                    message.setContent(resultSet.getString("ms_content"));
-                    message.setCreateTime(resultSet.getDate("ms_createTime"));
-                    message.setIsRead(resultSet.getShort("ms_isread"));
-                    message.setIsSent(resultSet.getShort("ms_issent"));
-                    message.setReceiverEnuu(resultSet.getLong("ms_receiverenuu"));
-                    message.setReceiverUu(resultSet.getLong("ms_receiveruu"));
-                    message.setSenderEnuu(resultSet.getLong("ms_senderenuu"));
-                    message.setSenderUu(resultSet.getLong("ms_senderuu"));
-                    message.setType(resultSet.getString("ms_type"));
-                    message.setRemark(resultSet.getString("ms_remark"));
-                    message.setSourceId(resultSet.getLong("ms_sourceid"));
+        Long count = jdbcTemplate.queryForObject(sql, Long.class);
+        List<Message> messageList = new ArrayList<>();
+        if (count > 0) {
+            sql += String.format("order by ms_createtime %s limit %s,%s", pageInfo.getSort().getOrderFor("createTime").getDirection(), (pageParams.getPage() - 1) * pageParams.getCount(), pageParams.getCount());
+            messageList = jdbcTemplate.query(sql.replace("count(1)", "*"), new RowMapper<Message>() {
+                @Override
+                public Message mapRow(ResultSet resultSet, int i) throws SQLException {
+                    Message message = new Message();
+                    if (resultSet != null) {
+                        message.setId(resultSet.getLong("ms_id"));
+                        message.setConsumeType(resultSet.getString("ms_consumeType"));
+                        message.setContent(resultSet.getString("ms_content"));
+                        message.setCreateTime(resultSet.getTimestamp("ms_createTime"));
+                        message.setIsRead(resultSet.getShort("ms_isread"));
+                        message.setIsSent(resultSet.getShort("ms_issent"));
+                        message.setReceiverEnuu(resultSet.getLong("ms_receiverenuu"));
+                        message.setReceiverUu(resultSet.getLong("ms_receiveruu"));
+                        message.setSenderEnuu(resultSet.getLong("ms_senderenuu"));
+                        message.setSenderUu(resultSet.getLong("ms_senderuu"));
+                        message.setType(resultSet.getString("ms_type"));
+                        message.setRemark(resultSet.getString("ms_remark"));
+                        message.setSourceId(resultSet.getLong("ms_sourceid"));
+                    }
+                    return message;
                 }
-                return message;
-            }
-        });
-        Long count = jdbcTemplate.queryForObject(sql.replace("*", "count(1)"), Long.class);
+            });
+        }
+
         return new PageImpl<Message>(messageList, pageInfo, count);
 
 //        return messageDao.findAll(new Specification<Message>() {