|
|
@@ -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>() {
|