From c79b1ebed5a42a4cbb2f824232da2a51ff22a9a1 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 04 十二月 2021 18:25:08 +0800
Subject: [PATCH] 功能完善

---
 app/src/main/java/com/yeshi/location/app/service/impl/location/LocationTravelServiceImpl.java |   46 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/com/yeshi/location/app/service/impl/location/LocationTravelServiceImpl.java b/app/src/main/java/com/yeshi/location/app/service/impl/location/LocationTravelServiceImpl.java
index 8a28a28..f087e98 100644
--- a/app/src/main/java/com/yeshi/location/app/service/impl/location/LocationTravelServiceImpl.java
+++ b/app/src/main/java/com/yeshi/location/app/service/impl/location/LocationTravelServiceImpl.java
@@ -38,7 +38,7 @@
         }
         daoQuery.start = (page - 1) * pageSize;
         daoQuery.count = pageSize;
-        daoQuery.sortList= Arrays.asList(new Sort.Order[]{Sort.Order.desc("createTime")});
+        daoQuery.sortList = Arrays.asList(new Sort.Order[]{Sort.Order.desc("createTime")});
         return locationTravelDao.list(daoQuery);
     }
 
@@ -63,7 +63,7 @@
     @Override
     public void add(LocationTravel locationTravel) throws Exception {
 
-        if (locationTravel == null || locationTravel.getUid() == null || locationTravel.getLocation() == null) {
+        if (locationTravel == null || locationTravel.getUid() == null || locationTravel.getLocation() == null || locationTravel.getLocation().getLatitude() == null || locationTravel.getLocation().getLongitude() == null) {
             throw new Exception("淇℃伅涓嶅畬鏁�");
         }
 
@@ -74,11 +74,25 @@
         if (locationTravel.getId() == null) {
             locationTravel.setId(LocationTravel.createId(locationTravel.getUid(), locationTravel.getCreateTime()));
         }
-        //淇濆瓨
-        locationTravelDao.save(locationTravel);
 
 
-        UserLatestLocation latest =new UserLatestLocation();
+        //鑾峰彇鏈�鏂扮殑浣嶇疆
+        DaoQuery daoQuery = new DaoQuery();
+        daoQuery.uid = locationTravel.getUid();
+        daoQuery.sortList = Arrays.asList(new Sort.Order[]{Sort.Order.desc("createTime")});
+        daoQuery.count = 1;
+        List<LocationTravel> travelList = locationTravelDao.list(daoQuery);
+        if (travelList != null && travelList.size() > 0) {
+            //鍒ゆ柇璺濈
+            if (GeoUtils.getDistance(travelList.get(0).getLocation(), locationTravel.getLocation()) >= 10) {
+                //淇濆瓨
+                locationTravelDao.save(locationTravel);
+            }
+        } else {
+            locationTravelDao.save(locationTravel);
+        }
+
+        UserLatestLocation latest = new UserLatestLocation();
         latest.setLocation(locationTravel.getLocation());
         latest.setUid(locationTravel.getUid());
         userLatestLocationService.add(latest);
@@ -97,5 +111,27 @@
         }
     }
 
+    @Override
+    public List<LocationTravel> getTravelList(Long uid, Date startTime, Date endTime, int page, int pageSize) {
+
+        DaoQuery daoQuery = new DaoQuery();
+        daoQuery.minCreateTime = startTime;
+        daoQuery.maxCreateTime = endTime;
+        daoQuery.uid = uid;
+        daoQuery.start = (page - 1) * pageSize;
+        daoQuery.count = pageSize;
+        List<LocationTravel> travelList = locationTravelDao.list(daoQuery);
+        return travelList;
+    }
+
+    @Override
+    public long countTravel(Long uid, Date startTime, Date endTime) {
+        DaoQuery daoQuery = new DaoQuery();
+        daoQuery.minCreateTime = startTime;
+        daoQuery.maxCreateTime = endTime;
+        daoQuery.uid = uid;
+        return locationTravelDao.count(daoQuery);
+    }
+
 
 }
\ No newline at end of file

--
Gitblit v1.8.0