Browse Source

fix: 企业地图调整

zhangying 8 months ago
parent
commit
e6e850fc33

+ 2 - 2
src/main/java/com/hz/employmentsite/controller/companyService/CompanyController.java

@@ -229,8 +229,8 @@ public class CompanyController {
                                        @RequestParam(required = false) Integer companyModel, @RequestParam(required = false) Integer recordStatus,
                                        @RequestParam(required = false) String regionCode, @RequestParam(required = false) String siteID,
                                        @RequestParam Double latitude, @RequestParam Double longitude,
-                                       @RequestParam(required = false) String createTimeBy) {
-        PageInfo<CompanyPostMapVo> result = companyService.getDataMapList(pageIndex, pageSize, companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude,createTimeBy);
+                                       @RequestParam(required = false) String createTimeBy, @RequestParam(required = false) Integer isPost) {
+        PageInfo<CompanyPostMapVo> result = companyService.getDataMapList(pageIndex, pageSize, companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude,createTimeBy, isPost);
         return RespGenerstor.success(result);
     }
 

+ 1 - 1
src/main/java/com/hz/employmentsite/mapper/cquery/CompanyCQuery.java

@@ -36,7 +36,7 @@ public interface CompanyCQuery {
                                           @Param("companyModel") Integer companyModel, @Param("recordStatus") Integer recordStatus,
                                           @Param("regionCode") String regionCode, @Param("siteID") String siteID,
                                           @Param("latitude") Double latitude, @Param("longitude") Double longitude,
-                                          @Param("createTimeBy") String createTimeBy);
+                                          @Param("createTimeBy") String createTimeBy, @Param("isPost") Integer isPost);
 
     /**
      * 企业可视化地图查询企业-按岗位名称反向查询

+ 2 - 2
src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java

@@ -750,11 +750,11 @@ public class CompanyServiceImpl implements CompanyService {
                                                      String companyName, Integer maxDistance, Integer companyModel,
                                                      Integer recordStatus, String regionCode, String siteID,
                                                      Double latitude, Double longitude,
-                                                     String createTimeBy) {
+                                                     String createTimeBy, Integer isPost) {
         PageHelper.startPage(pageIndex, pageSize);
         // 按要求获取到距离当前日期的时间
         String createTime = getCreateTime(createTimeBy);
-        List<CompanyPostMapVo> dataMapList = companyCQuery.getDataMapList(companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude, createTime);
+        List<CompanyPostMapVo> dataMapList = companyCQuery.getDataMapList(companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude, createTime, isPost);
         PageInfo<CompanyPostMapVo> result = new PageInfo<>(dataMapList);
 
         // 获取所有的企业ID

+ 1 - 1
src/main/java/com/hz/employmentsite/services/service/companyService/CompanyService.java

@@ -58,7 +58,7 @@ public interface CompanyService {
                                               Integer companyModel, Integer recordStatus,
                                               String regionCode, String siteID,
                                               Double latitude, Double longitude,
-                                              String createTimeBy);
+                                              String createTimeBy, Integer isPost);
 
     /**
      * 企业可视化地图查询企业-按岗位名称反向查询

+ 2 - 0
src/main/java/com/hz/employmentsite/vo/dataMap/CompanyPostMapVo.java

@@ -55,6 +55,8 @@ public class CompanyPostMapVo {
 
     private List<PostVo> postList;
 
+    private int postCount;
+
     private String companyCreateUserName;
     private String postCreateUserName;
 }

+ 32 - 23
src/main/resources/mapping/cquery/CompanyCQuery.xml

@@ -119,30 +119,32 @@
 
     <select id="getDataMapList" resultType="com.hz.employmentsite.vo.dataMap.CompanyPostMapVo">
         SELECT
-        company.CompanyID,
-        company_user.`Name` as companyCreateUserName,
-        company.CompanyName,
-        company.CompanyAddress,
-        cmodel.`Name` AS companyModelType,
-        com_status.`Name` AS recordStatusName,
-        company.Longitude,
-        company.Latitude,
-        (
-        6371 * ACOS(
-        COS(
-        RADIANS( #{latitude} )) * COS(
-        RADIANS( company.Latitude )) * COS(
-        RADIANS( company.Longitude ) - RADIANS( #{longitude} )) + SIN(
-        RADIANS( #{latitude} )) * SIN(
-        RADIANS( company.Latitude ))
-        )) AS distance
+            company.CompanyID,
+            company_user.`Name` as companyCreateUserName,
+            company.CompanyName,
+            company.CompanyAddress,
+            cmodel.`Name` AS companyModelType,
+            com_status.`Name` AS recordStatusName,
+            company.Longitude,
+            company.Latitude,
+            (
+            6371 * ACOS(
+            COS(
+            RADIANS( #{latitude} )) * COS(
+            RADIANS( company.Latitude )) * COS(
+            RADIANS( company.Longitude ) - RADIANS( #{longitude} )) + SIN(
+            RADIANS( #{latitude} )) * SIN(
+            RADIANS( company.Latitude ))
+            )) AS distance,
+            postCounts.postCount
         FROM
-        pc_company company
-        LEFT JOIN sys_dictionary_item cmodel ON company.CompanyModel = cmodel.`Value`
-        AND cmodel.DictionaryCode = 'CompanyModel'
-        LEFT JOIN sys_dictionary_item com_status ON company.RecordStatus = com_status.`Value`
-        AND com_status.DictionaryCode = 'CompanyStatus'
-        LEFT JOIN sys_user company_user ON company.CreateUserID = company_user.UserID
+            pc_company company
+            LEFT JOIN sys_dictionary_item cmodel ON company.CompanyModel = cmodel.`Value`
+            AND cmodel.DictionaryCode = 'CompanyModel'
+            LEFT JOIN sys_dictionary_item com_status ON company.RecordStatus = com_status.`Value`
+            AND com_status.DictionaryCode = 'CompanyStatus'
+            LEFT JOIN sys_user company_user ON company.CreateUserID = company_user.UserID
+            LEFT JOIN ( SELECT CompanyID, COUNT( 1 ) AS postCount FROM pc_post GROUP BY CompanyID ) AS postCounts ON company.CompanyID = postCounts.CompanyID
         WHERE 1=1
         <if test="companyName!='' and companyName!=null">
             and company.companyName like Concat('%',#{companyName},'%')
@@ -162,11 +164,18 @@
         <if test="createTimeBy!='' and createTimeBy!=null">
             and Date(company.CreateTime) <![CDATA[ >= ]]> Date(#{createTimeBy})
         </if>
+        <if test="isPost != null and isPost == 1">
+            and postCounts.postCount >= 0
+        </if>
+        <if test="isPost != null and isPost == 0">
+            and postCounts.postCount IS NULL
+        </if>
         <if test="maxDistance!=null">
             HAVING
             distance <![CDATA[ <= ]]> #{maxDistance}
         </if>
         ORDER BY
+        (postCounts.postCount IS NULL) ASC,
         company.CreateTime DESC
     </select>
 

+ 15 - 2
vue/src/views/dataMap/companyDataMap.vue

@@ -72,7 +72,19 @@
               v-model:value="companySearchParam.createTimeBy"
               :allow-clear="true"
               :options="createTimeByList"
-              placeholder="创建时间" size="small" style="width: 100%"
+              placeholder="创建时间" size="small" style="width: 50%"
+              @change="onSearch"
+            >
+            </a-select>
+            <a-select
+              v-if="searchType == 'company'"
+              v-model:value="companySearchParam.isPost"
+              :allow-clear="true"
+              :options="[
+                {label:'有岗位', value: 1},
+                {label:'无岗位', value: 0}
+              ]"
+              placeholder="是否有岗位" size="small" style="width: 50%"
               @change="onSearch"
             >
             </a-select>
@@ -352,7 +364,8 @@ const companySearchParam = reactive({
   regionCode: undefined,
   createTimeBy: 'all',
   longitude: 114.416110,
-  latitude: 23.111582
+  latitude: 23.111582,
+  isPost: 1
 })
 // 企业数据
 const companyList = ref<Array<any>>([])