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