소스 검색

update content-service/geo

reghao 6 달 전
부모
커밋
c3406eef16

+ 1 - 0
content/content-service/src/main/java/cn/reghao/tnb/content/app/geo/controller/MapController.java

@@ -51,6 +51,7 @@ public class MapController {
     @Operation(summary = "添加地图上的路径", description = "N")
     @PostMapping(value = "/trail", produces = MediaType.APPLICATION_JSON_VALUE)
     public String addTrail(@RequestBody @Validated List<MapPoint> list) {
+        mapService.addTrail(list);
         return WebResult.success();
     }
 

+ 2 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/geo/db/mapper/GeoPointMapper.java

@@ -13,7 +13,8 @@ import java.util.List;
  */
 @Mapper
 public interface GeoPointMapper extends BaseMapper<GeoPoint> {
+    void deleteByPositionType(@Param("createBy") long createBy, @Param("pointType") int pointType);
     void updateUserPosition(GeoPoint geoPoint);
 
-    List<GeoPoint> findByPositionType(@Param("userId") long userId, @Param("pointType") int pointType);
+    List<GeoPoint> findByPositionType(@Param("createBy") long createBy, @Param("pointType") int pointType);
 }

+ 11 - 0
content/content-service/src/main/java/cn/reghao/tnb/content/app/geo/service/MapService.java

@@ -61,6 +61,17 @@ public class MapService {
         }).collect(Collectors.toList());
     }
 
+    public void addTrail(List<MapPoint> list) {
+        List<GeoPoint> geoPointList = list.stream()
+                .map(GeoPoint::new)
+                .collect(Collectors.toList());
+        if (!geoPointList.isEmpty()) {
+            long loginUser = UserContext.getUser();
+            geoPointMapper.deleteByPositionType(loginUser, 2);
+            geoPointMapper.saveAll(geoPointList);
+        }
+    }
+
     public List getTrailPath() {
         List<GeoPoint> list = getMyGeoPoints();
         List<List<Double>> list1 = list.stream().map(geoPoint -> {

+ 6 - 1
content/content-service/src/main/resources/mapper/geo/GeoPointMapper.xml

@@ -17,6 +17,11 @@
         </foreach>
     </insert>
 
+    <delete id="deleteByPositionType">
+        delete from geo_point
+        where point_type=#{pointType} and create_by=#{createBy}
+    </delete>
+
     <update id="updateUserPosition">
         update geo_point
         set update_time=now(),geo=point(#{longitude},#{latitude})
@@ -26,6 +31,6 @@
     <select id="findByPositionType" resultType="cn.reghao.tnb.content.app.geo.model.po.GeoPoint">
         select id,create_time,x(geo) as longitude,y(geo) as latitude,device_id,create_by,create_at
         from geo_point
-        where point_type=#{pointType} and create_by=#{userId}
+        where point_type=#{pointType} and create_by=#{createBy}
     </select>
 </mapper>