소스 검색

修改交易信息功能

qrs 4 주 전
부모
커밋
3f68c8b526
1개의 변경된 파일18개의 추가작업 그리고 2개의 파일을 삭제
  1. 18 2
      alien-second/src/main/java/shop/alien/second/service/impl/SecondTradeRecordServiceImpl.java

+ 18 - 2
alien-second/src/main/java/shop/alien/second/service/impl/SecondTradeRecordServiceImpl.java

@@ -32,6 +32,7 @@ import shop.alien.second.service.SecondTradeRecordService;
 import shop.alien.util.common.JwtUtil;
 
 import java.time.*;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -566,8 +567,23 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             wrapper.eq(SecondTradeRecord::getTradeStatus, 3);
             wrapper.apply("((seller_id = " + userId + " and buyer_id = " + sideId + ") or " +
                     "(seller_id = " + sideId + " and buyer_id = " + userId + "))");
-            wrapper.orderByDesc(SecondTradeRecord::getTransactionTime);
-            return secondTradeRecordMapper.selectOne(wrapper);
+            wrapper.orderByAsc(SecondTradeRecord::getTransactionTime);
+            List<SecondTradeRecord> list = secondTradeRecordMapper.selectList(wrapper);
+            if (list.isEmpty()) return null;
+
+            // 取出所有的交易时间
+            List<Date> dates = list.stream().map(SecondTradeRecord::getTransactionTime).collect(Collectors.toList());
+            if (dates.isEmpty()) return null;
+
+            // 取出距离当前时间最近的交易时间
+            Date now = new Date();
+            Date minDate = dates.stream()
+                    .min(Comparator.comparingLong(date ->
+                            Math.abs(date.getTime() - now.getTime())))
+                    .orElse(null);
+
+            list = list.stream().filter(item -> item.getTransactionTime().equals(minDate)).collect(Collectors.toList());
+            return list.isEmpty() ? null : list.get(0);
          } catch (Exception e) {
             log.error("SecondTradeRecordServiceImpl.hasInTradeRecord(): Error Msg={}", e.getMessage());
             throw new Exception(e);