From aeb7d068be92312dcdcea75e1240bcf2a78dd0fe Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Mon, 29 Jul 2024 16:49:58 +0800
Subject: [PATCH] 代码优化

---
 src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
index ac6b359..318eea5 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -34,12 +34,16 @@
         LEFT JOIN blade_user bus on bus.id = jpag.police_user_id
         left join (
         select a.* from jczz_place_poi_label a inner join
-        (
-        select place_id,max(id) as id from jczz_place_poi_label b group by place_id
-        ) b on a.id = b.id
+        ( select place_id,max(id) as id from jczz_place_poi_label b group by place_id ) b on a.id = b.id
         ) jppl on jppl.place_id = jp.id
         where jp.is_deleted = 0 and jp.source!=3
         and jp.place_name != ''
+        <if test="place.poiCodeList !=null and place.poiCodeList.size()>0">
+            and jppl.poi_code in
+            <foreach collection="place.poiCodeList" item="code" open="(" close=")" separator=",">
+                #{code}
+            </foreach>
+        </if>
         <if test="place.placeName!=null and place.placeName!=''">
             and jp.place_name like concat('%',#{place.placeName},'%')
         </if>
@@ -65,6 +69,14 @@
         <if test="place.isNine!=null">
             and jp.is_nine = #{place.isNine}
         </if>
+
+        <if test="place.noExplosionCategory!=null">
+            and jp.no_explosion_category is not null
+            <if test="place.noExplosionCategory!=null and place.noExplosionCategory > 0 ">
+                and jp.no_explosion_category = #{place.noExplosionCategory}
+            </if>
+        </if>
+
 
         <if test="place.source!=null">
             and jp.source = #{place.source}
@@ -178,6 +190,10 @@
         </if>
         <if test="place.deptName!=null and place.deptName!=''">
             and jpag.pcs_name like concat('%',#{place.deptName},'%')
+        </if>
+
+        <if test="place.startTime != null and place.startTime != '' and place.endTime != null and place.endTime != '' ">
+            AND jp.create_time BETWEEN #{place.startTime} and #{place.endTime}
         </if>
 
         <if test="place.policeName!=null and place.policeName!=''">
@@ -1079,4 +1095,22 @@
         order by jp.create_time desc,jp.id desc
     </select>
 
+    <select id="getNearbyPlaceList" resultType="org.springblade.modules.place.vo.PlaceVO">
+        SELECT
+        jp.id,
+        jp.lat,
+        jp.lng,
+        jp.place_name,
+        ( 6371 * acos( cos( radians(#{param1}) ) * cos( radians( jp.lat ) )
+        * cos( radians( jp.lng ) - radians(#{param2}) )
+        + sin( radians(#{param1}) ) * sin( radians( jp.lat ) ) ) ) AS distance
+        FROM jczz_place jp
+        where jp.place_name is not null
+        and jp.lat is not null
+        and jp.lng is not null
+        and jp.is_deleted = 0
+        HAVING distance &lt;= 1
+        ORDER BY distance limit 60
+    </select>
+
 </mapper>

--
Gitblit v1.9.3