Преглед на файлове

feat: 地图查询方法添加按经纬度排序

zhangying преди 10 месеца
родител
ревизия
70191d2e99

+ 9 - 0
src/main/java/com/hz/employmentsite/controller/baseSettings/SiteInfoController.java

@@ -129,4 +129,13 @@ public class SiteInfoController {
         return RespGenerstor.success(result);
     }
 
+    @GetMapping("/dataMap")
+    public BaseResponse<PageInfo<SiteInfoVo>> getDataMapList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize,
+                                                             @RequestParam(required = false) String siteName, @RequestParam(required = false) String regionCode,
+                                                             @RequestParam(required = false) String streetCode) {
+
+        PageInfo<SiteInfoVo> result = siteInfoService.getDataMapList(pageIndex, pageSize, siteName, regionCode, streetCode);
+        return RespGenerstor.success(result);
+    }
+
 }

+ 3 - 0
src/main/java/com/hz/employmentsite/mapper/cquery/SiteInfoCQuery.java

@@ -17,4 +17,7 @@ public interface SiteInfoCQuery {
      * 查询驿站的登记企业、岗位、求职者数量
      */
     Map<String, Object> findSiteDataCount(@Param("siteID") String siteID);
+
+    List<SiteInfoVo> getDataMapList(@Param("siteName") String siteName, @Param("regionCode") String regionCode,
+                                    @Param("streetCode") String streetCode);
 }

+ 8 - 0
src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteInfoImpl.java

@@ -217,4 +217,12 @@ public class SiteInfoImpl implements SiteInfoService {
     public Map<String, Object> findSiteDataCount(String siteID) {
         return siteInfoCQuery.findSiteDataCount(siteID);
     }
+
+    @Override
+    public PageInfo<SiteInfoVo> getDataMapList(int pageIndex, int pageSize, String siteName, String regionCode, String streetCode) {
+        PageHelper.startPage(pageIndex, pageSize);
+        List<SiteInfoVo> dataList = siteInfoCQuery.getDataMapList(siteName, regionCode, streetCode);
+        PageInfo<SiteInfoVo> result = new PageInfo(dataList);
+        return result;
+    }
 }

+ 2 - 0
src/main/java/com/hz/employmentsite/services/service/baseSettings/SiteInfoService.java

@@ -30,4 +30,6 @@ public interface SiteInfoService {
     Integer delete(List<String> idList);
 
     Map<String, Object> findSiteDataCount(String siteID);
+
+    PageInfo<SiteInfoVo> getDataMapList(int pageIndex, int pageSize, String siteName, String regionCode, String streetCode);
 }

+ 2 - 3
src/main/resources/mapping/cquery/CompanyCQuery.xml

@@ -138,7 +138,7 @@
             distance <![CDATA[ <= ]]> #{maxDistance}
         </if>
         ORDER BY
-        distance
+        Longitude DESC, Latitude DESC, distance DESC
     </select>
 
     <select id="getDataMapListByPostName" resultType="com.hz.employmentsite.vo.dataMap.CompanyPostMapVo">
@@ -206,7 +206,6 @@
             distance <![CDATA[ <= ]]> #{maxDistance}
         </if>
         ORDER BY
-        distance,
-        CompanyID
+        Longitude DESC, Latitude DESC, distance DESC, CompanyID
     </select>
 </mapper>

+ 2 - 0
src/main/resources/mapping/cquery/JobUserCQuery.xml

@@ -236,6 +236,8 @@
             jobuser.BirthDay,
             CURRENT_DATE ()) <![CDATA[ <= ]]> #{maxAge}
         </if>
+        ORDER BY
+        Longitude DESC, Latitude DESC
     </select>
     <select id="getJobUserDataList" resultType="com.hz.employmentsite.vo.jobUserManager.JobUserVo">
         select  jobUserID,name,userMobile  from pc_jobuser jobuser

+ 44 - 0
src/main/resources/mapping/cquery/SiteInfoCQuery.xml

@@ -49,4 +49,48 @@
             (SELECT COUNT(1) FROM pc_post post LEFT JOIN pc_company company ON post.CompanyID = company.CompanyID WHERE SiteID = #{siteID}) AS postCount,
             (SELECT COUNT(1) FROM pc_jobuser WHERE SiteID = #{siteID}) AS jobUserCount;
     </select>
+
+    <select id="getDataMapList" resultType="com.hz.employmentsite.vo.baseSettings.SiteInfoVo">
+        SELECT
+            site.SiteID,
+            site.SiteCode,
+            site.SiteName,
+            site.DetailAddress,
+            site.FzrName,
+            site.FzrMobile,
+            site.SiteLongitude,
+            site.SiteLatitude,
+            region.`name` AS RegionName,
+            street.`name` AS StreetName,
+            siteUserStr.siteUsers
+        FROM
+            pc_site site
+                LEFT JOIN pc_site_institution inSites ON site.SiteID = inSites.SiteID
+                LEFT JOIN area_code region ON site.RegionCode = region.`CODE`
+                LEFT JOIN area_code street ON site.StreetCode = street.`CODE`
+                LEFT JOIN (
+                SELECT
+                    siteTemp.siteID,
+                    GROUP_CONCAT( SiteUserName SEPARATOR ',' ) AS siteUsers
+                FROM
+                    pc_site_user siteUser
+                        LEFT JOIN sys_user sysUser ON siteUser.UserID = sysUser.UserID
+                        LEFT JOIN pc_site siteTemp ON siteTemp.SiteID = siteUser.SiteID
+                WHERE
+                    sysUser.RecordStatus = 1
+                GROUP BY
+                    siteTemp.SiteID
+            ) siteUserStr ON siteUserStr.SiteID = site.SiteID
+        where 1=1
+        <if test="siteName!='' and siteName!=null">
+            and siteName like Concat('%',#{siteName},'%')
+        </if>
+        <if test="regionCode!='' and regionCode!=null">
+            and regionCode like Concat('%',#{regionCode},'%')
+        </if>
+        <if test="streetCode!='' and streetCode!=null">
+            and streetCode like Concat('%',#{streetCode},'%')
+        </if>
+        order by site.SiteLongitude desc, site.SiteLatitude DESC
+    </select>
 </mapper>

+ 2 - 0
src/main/resources/mapping/cquery/SiteUserCQuery.xml

@@ -130,6 +130,8 @@
         <if test="streetCode!='' and streetCode!=null">
             and site.streetCode = #{streetCode}
         </if>
+        ORDER BY
+        Longitude DESC, Latitude DESC, SiteLongitude DESC, SiteLatitude DESC
     </select>
 
     <select id="findUserDataCount" resultType="Map">

+ 13 - 0
vue/src/api/baseSettings/siteInfo.ts

@@ -113,3 +113,16 @@ export function findSiteDataCount(siteID: string) {
     },
   );
 }
+
+export function getDataMapList(params: any) {
+  return request<object>(
+    {
+      url: "siteInfo/dataMap",
+      method: 'get',
+      params: params,
+    },
+    {
+      isNew: true,
+    },
+  );
+}

+ 4 - 2
vue/src/views/dataMap/siteDataMap.vue

@@ -176,7 +176,7 @@ import {setBoundary} from "@/utils/position";
 import {onMounted, reactive, ref} from "vue";
 import type {SelectProps} from "ant-design-vue";
 import {getRegionCodeList, getStreetCodeList} from "@/api/system/area/index";
-import {findSiteDataCount, getSiteList} from "@/api/baseSettings/siteInfo";
+import {findSiteDataCount, getDataMapList, getSiteList} from "@/api/baseSettings/siteInfo";
 import thIcon from "@/assets/images/blueTh.png"
 import {findUserDataCount, getSiteUserDataMapList} from "@/api/baseSettings/userInfo";
 
@@ -250,7 +250,7 @@ const initMap = () => {
 function onSearch() {
   searchLoading.value = true;
   if (searchType.value == "site") {
-    getSiteList(siteSearchParam).then((result: any) => {
+    getDataMapList(siteSearchParam).then((result: any) => {
       siteList.value = result.list;
       siteList.value.forEach((site: any) => {
         if (site.siteUsers) {
@@ -300,6 +300,8 @@ function searchAll() {
 // 查询类型切换事件
 function searchTypeChange() {
   // 清空数据
+  nowCheckSite.value = {siteID: null};
+  nowCheckSiteUser.value = {siteUserID: null};
   onSearch();
   delMapInfo();
 }