gongfuzhu před 1 rokem
rodič
revize
3a05d94967

+ 5 - 0
SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/request/XiaoJuStoreModel.java

@@ -1,8 +1,10 @@
 package com.zswl.cloud.springBatch.client.model.request;
 
+import com.xiaoju.open.oil.interfaces.domain.ItemPriceInfoForCallback;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.springframework.data.geo.Distance;
 
 import java.util.List;
 
@@ -28,4 +30,7 @@ public class XiaoJuStoreModel {
     private Integer status;
     private Integer invoiceManner;
     private List<String> marketTags;
+    private double[] location;
+    private String brandId;
+    private Distance distance;
 }

+ 2 - 1
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/controller/XiaoJuController.java

@@ -12,6 +12,7 @@ import com.xiaoju.open.oil.interfaces.response.QueryStoreDetailResponse;
 import com.zswl.cloud.springBatch.client.model.request.NearbyModel;
 import com.zswl.cloud.springBatch.client.model.request.QueryCalPriceModel;
 import com.zswl.cloud.springBatch.client.model.request.QueryCalPricesModel;
+import com.zswl.cloud.springBatch.client.model.request.XiaoJuStoreModel;
 import com.zswl.cloud.springBtach.server.core.domain.XiaoJuStore;
 import com.zswl.cloud.springBtach.server.core.service.XiaoJuService;
 import io.swagger.annotations.ApiOperation;
@@ -46,7 +47,7 @@ public class XiaoJuController {
     @ApiOperation("查看附近的加油站信息")
     @ResourceAuth(value = "user", type = AuthType.User)
     @RequestMapping(value = "nearbyStore", method = RequestMethod.POST)
-    public ResultContent<List<XiaoJuStore>> nearbyStore(@RequestBody NearbyModel nearbyModel) {
+    public ResultContent<List<XiaoJuStoreModel>> nearbyStore(@RequestBody NearbyModel nearbyModel) {
         return xiaoJuService.nearbyStore(nearbyModel);
     }
     @ApiOperation("查询门店价格")

+ 22 - 4
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/dao/Impl/XiaoJuStoreDaoImpl.java

@@ -1,8 +1,10 @@
 package com.zswl.cloud.springBtach.server.core.dao.Impl;
 
 import com.zswl.cloud.springBatch.client.model.request.NearbyModel;
+import com.zswl.cloud.springBatch.client.model.request.XiaoJuStoreModel;
 import com.zswl.cloud.springBtach.server.core.dao.extend.XiaoJuStoreDaoExtend;
 import com.zswl.cloud.springBtach.server.core.domain.XiaoJuStore;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.geo.*;
 import org.springframework.data.mongodb.core.MongoTemplate;
@@ -17,18 +19,34 @@ public class XiaoJuStoreDaoImpl implements XiaoJuStoreDaoExtend {
     @Autowired
     MongoTemplate mongoTemplate;
 
-    public List<XiaoJuStore> findNearbyTargets(NearbyModel nearbyModel) {
+    public List<XiaoJuStoreModel> findNearbyTargets(NearbyModel nearbyModel) {
         Point point = new Point(nearbyModel.getLongitude(), nearbyModel.getLatitude());
         NearQuery query = NearQuery.near(point).maxDistance(new Distance(nearbyModel.getMaxDistanceInKilometers(), Metrics.KILOMETERS));
         GeoResults<XiaoJuStore> results = mongoTemplate.geoNear(query, XiaoJuStore.class);
 
-        List<XiaoJuStore> nearbyTargets = new ArrayList<>();
+        List<XiaoJuStoreModel> nearbyTargets = new ArrayList<>();
         for (GeoResult<XiaoJuStore> result : results) {
-
-            nearbyTargets.add(result.getContent());
+            XiaoJuStoreModel xiaoJuStoreModel = new XiaoJuStoreModel();
+            BeanUtils.copyProperties(result.getContent(), xiaoJuStoreModel);
+            xiaoJuStoreModel.setDistance(result.getDistance());
+            nearbyTargets.add(xiaoJuStoreModel);
         }
         return nearbyTargets;
     }
 
 
+//    public List<XiaoJuStore> findNearbyTargets1(NearbyModel nearbyModel) {
+//        Point point = new Point(nearbyModel.getLongitude(), nearbyModel.getLatitude());
+//        NearQuery query = NearQuery.near(point);
+//        GeoResults<XiaoJuStore> results = mongoTemplate.geoNear(query, XiaoJuStore.class);
+//
+//        List<XiaoJuStore> nearbyTargets = new ArrayList<>();
+//        for (GeoResult<XiaoJuStore> result : results) {
+//
+//            nearbyTargets.add(result.getContent());
+//        }
+//        return nearbyTargets;
+//    }
+
+
 }

+ 2 - 1
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/dao/extend/XiaoJuStoreDaoExtend.java

@@ -1,6 +1,7 @@
 package com.zswl.cloud.springBtach.server.core.dao.extend;
 
 import com.zswl.cloud.springBatch.client.model.request.NearbyModel;
+import com.zswl.cloud.springBatch.client.model.request.XiaoJuStoreModel;
 import com.zswl.cloud.springBtach.server.core.domain.XiaoJuStore;
 
 import java.util.List;
@@ -8,5 +9,5 @@ import java.util.List;
 public interface XiaoJuStoreDaoExtend {
 
 
-     List<XiaoJuStore> findNearbyTargets(NearbyModel nearbyModel);
+     List<XiaoJuStoreModel> findNearbyTargets(NearbyModel nearbyModel);
 }

+ 3 - 2
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/service/XiaoJuService.java

@@ -16,6 +16,7 @@ import com.xiaoju.open.oil.security.secret.SecurityService;
 import com.zswl.cloud.springBatch.client.model.request.NearbyModel;
 import com.zswl.cloud.springBatch.client.model.request.QueryCalPriceModel;
 import com.zswl.cloud.springBatch.client.model.request.QueryCalPricesModel;
+import com.zswl.cloud.springBatch.client.model.request.XiaoJuStoreModel;
 import com.zswl.cloud.springBtach.server.core.dao.XiaoJuStoreDao;
 import com.zswl.cloud.springBtach.server.core.domain.XiaoJuStore;
 import lombok.extern.log4j.Log4j2;
@@ -126,9 +127,9 @@ public class XiaoJuService {
     }
 
 
-    public ResultContent<List<XiaoJuStore>> nearbyStore(NearbyModel nearbyModel) {
+    public ResultContent<List<XiaoJuStoreModel>> nearbyStore(NearbyModel nearbyModel) {
 
-        List<XiaoJuStore> nearbyTargets = xiaoJuStoreDao.findNearbyTargets(nearbyModel);
+        List<XiaoJuStoreModel> nearbyTargets = xiaoJuStoreDao.findNearbyTargets(nearbyModel);
         return ResultContent.buildContent(nearbyTargets);
     }
 

+ 17 - 3
SpringBatchServiceServer/src/test/java/com/zswl/cloud/springBtach/server/boot/ServerApplicationTests.java

@@ -12,6 +12,7 @@ import com.zhongshu.payment.client.service.v2.PaymentService2;
 import com.zswl.cloud.shop.client.dto.life.OperateStockDto;
 import com.zswl.cloud.shop.client.service.GoodsService;
 import com.zswl.cloud.springBatch.client.model.request.NearbyModel;
+import com.zswl.cloud.springBatch.client.model.request.XiaoJuStoreModel;
 import com.zswl.cloud.springBtach.server.core.api.xiaoju.XiaoJuApi;
 import com.zswl.cloud.springBtach.server.core.api.xiaoju.XiaoJuApi2;
 import com.zswl.cloud.springBtach.server.core.api.xiaoju.sdk.domain.AllowanceInfo;
@@ -24,9 +25,13 @@ import com.zswl.cloud.springBtach.server.core.service.OrderServiceImp;
 import com.zswl.cloud.springBtach.server.core.service.PaymentService;
 import com.zswl.cloud.springBtach.server.core.service.XiaoJuService;
 import lombok.extern.log4j.Log4j2;
+import org.bson.Document;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.geo.*;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.NearQuery;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 
 import java.util.ArrayList;
@@ -150,7 +155,8 @@ public class ServerApplicationTests {
         nearbyModel.setLatitude(22.80780029296875);
         nearbyModel.setLongitude(100.99479675292969);
         nearbyModel.setMaxDistanceInKilometers(20);
-        ResultContent<List<XiaoJuStore>> listResultContent = xiaoJuService.nearbyStore(nearbyModel);
+        ResultContent<List<XiaoJuStoreModel>> listResultContent = xiaoJuService.nearbyStore(nearbyModel);
+        System.out.println(listResultContent);
 
 
     }
@@ -160,13 +166,21 @@ public class ServerApplicationTests {
 
     @Autowired
     OrderService2 orderService2;
+    @Autowired
+    MongoTemplate mongoTemplate;
 
     @Test
     public void queryNewOrderdd() {
 
 
-        ResultContent<SubOrdersConfirmResponseModel> subOrdersConfirmResponseModelResultContent = paymentService2.subOrdersConfirm("661c92831bb78962d9b41d02", "6618d9be32e63427d1a17009");
-        System.out.println(subOrdersConfirmResponseModelResultContent);
+        Point point = new Point(45.530548095703125, 126.95394134521484);
+        NearQuery query = NearQuery.near(point).maxDistance(new Distance(200, Metrics.KILOMETERS));
+        GeoResults<XiaoJuStore> results = mongoTemplate.geoNear(query, XiaoJuStore.class);
+        for (GeoResult<XiaoJuStore> xiaoJuStoreGeoResult : results.getContent()) {
+
+            xiaoJuStoreGeoResult.getContent();
+            xiaoJuStoreGeoResult.getDistance();
 
+        }
     }
 }