Jelajahi Sumber

feat: 企业地图增加创建时间查询条件

zhangying 8 bulan lalu
induk
melakukan
781a5bf8ab

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

@@ -223,8 +223,9 @@ public class CompanyController {
                                        @RequestParam(required = false) String companyName, @RequestParam(required = false) Integer maxDistance,
                                        @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) {
-        PageInfo<CompanyPostMapVo> result = companyService.getDataMapList(pageIndex, pageSize, companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude);
+                                       @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);
         return RespGenerstor.success(result);
     }
 
@@ -239,8 +240,9 @@ public class CompanyController {
                                                  @RequestParam(required = false) String companyName, @RequestParam(required = false) Integer maxDistance,
                                                  @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) {
-        PageInfo<CompanyPostMapVo> result = companyService.getDataMapListByPostName(pageIndex, pageSize, companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude);
+                                                 @RequestParam Double latitude, @RequestParam Double longitude,
+                                                 @RequestParam(required = false) String createTimeBy) {
+        PageInfo<CompanyPostMapVo> result = companyService.getDataMapListByPostName(pageIndex, pageSize, companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude,createTimeBy);
         return RespGenerstor.success(result);
     }
 

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

@@ -34,7 +34,8 @@ public interface CompanyCQuery {
     List<CompanyPostMapVo> getDataMapList(@Param("companyName") String companyName, @Param("maxDistance") Integer maxDistance,
                                           @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("latitude") Double latitude, @Param("longitude") Double longitude,
+                                          @Param("createTimeBy") String createTimeBy);
 
     /**
      * 企业可视化地图查询企业-按岗位名称反向查询
@@ -52,5 +53,6 @@ public interface CompanyCQuery {
     List<CompanyPostMapVo> getDataMapListByPostName(@Param("postName") String postName, @Param("maxDistance") Integer maxDistance,
                                                     @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("latitude") Double latitude, @Param("longitude") Double longitude,
+                                                    @Param("createTimeBy") String createTimeBy);
 }

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

@@ -25,6 +25,8 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -658,15 +660,19 @@ public class CompanyServiceImpl implements CompanyService {
      * @param recordStatus 企业状态
      * @param regionCode   所属县区
      * @param siteID       所属驿站
+     * @param createTimeBy 创建时间
      * @return 企业VO列表
      */
     @Override
     public PageInfo<CompanyPostMapVo> getDataMapList(int pageIndex, int pageSize,
                                                      String companyName, Integer maxDistance, Integer companyModel,
                                                      Integer recordStatus, String regionCode, String siteID,
-                                                     Double latitude, Double longitude) {
+                                                     Double latitude, Double longitude,
+                                                     String createTimeBy) {
         PageHelper.startPage(pageIndex, pageSize);
-        List<CompanyPostMapVo> dataMapList = companyCQuery.getDataMapList(companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude);
+        // 按要求获取到距离当前日期的时间
+        String createTime = getCreateTime(createTimeBy);
+        List<CompanyPostMapVo> dataMapList = companyCQuery.getDataMapList(companyName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude, createTime);
         PageInfo<CompanyPostMapVo> result = new PageInfo<>(dataMapList);
 
         // 获取所有的企业ID
@@ -727,10 +733,46 @@ public class CompanyServiceImpl implements CompanyService {
     public PageInfo<CompanyPostMapVo> getDataMapListByPostName(int pageIndex, int pageSize, String postName,
                                                                Integer maxDistance, Integer companyModel, Integer recordStatus,
                                                                String regionCode, String siteID, Double latitude,
-                                                               Double longitude) {
+                                                               Double longitude, String createTimeBy) {
         PageHelper.startPage(pageIndex, pageSize);
-        List<CompanyPostMapVo> dataMapList = companyCQuery.getDataMapListByPostName(postName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude);
+        // 按要求获取到距离当前日期的时间
+        String createTime = getCreateTime(createTimeBy);
+        List<CompanyPostMapVo> dataMapList = companyCQuery.getDataMapListByPostName(postName, maxDistance, companyModel, recordStatus, regionCode, siteID, latitude, longitude, createTime);
         PageInfo<CompanyPostMapVo> result = new PageInfo(dataMapList);
         return result;
     }
+
+    /**
+     * 获取指定创建日期
+     */
+    public String getCreateTime(String by){
+        if (stringUtils.IsNullOrEmpty(by) || by.equals("all")){
+            return null;
+        }
+        LocalDate currentDate = LocalDate.now();
+        LocalDate resultDate = null;
+
+        switch (by){
+            case "3Day":
+                resultDate = currentDate.minusDays(3);
+                break;
+            case "1Week":
+                resultDate = currentDate.minusWeeks(1);
+                break;
+            case "1Month":
+                resultDate = currentDate.minusMonths(1);
+                break;
+            case "3Month":
+                resultDate = currentDate.minusMonths(3);
+                break;
+            case "Year":
+                resultDate = currentDate.minusYears(1);
+                break;
+            default:
+                return null;
+        }
+
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        return resultDate.format(formatter);
+    }
 }

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

@@ -54,7 +54,8 @@ public interface CompanyService {
                                               String companyName, Integer maxDistance,
                                               Integer companyModel, Integer recordStatus,
                                               String regionCode, String siteID,
-                                              Double latitude, Double longitude);
+                                              Double latitude, Double longitude,
+                                              String createTimeBy);
 
     /**
      * 企业可视化地图查询企业-按岗位名称反向查询
@@ -71,5 +72,6 @@ public interface CompanyService {
                                                         String postName, Integer maxDistance,
                                                         Integer companyModel, Integer recordStatus,
                                                         String regionCode, String siteID,
-                                                        Double latitude, Double longitude);
+                                                        Double latitude, Double longitude,
+                                                        String createTimeBy);
 }

+ 6 - 0
src/main/resources/mapping/cquery/CompanyCQuery.xml

@@ -151,6 +151,9 @@
         <if test="siteID!='' and siteID!=null">
             and company.siteID = #{siteID}
         </if>
+        <if test="createTimeBy!='' and createTimeBy!=null">
+            and Date(company.CreateTime) <![CDATA[ >= ]]> Date(#{createTimeBy})
+        </if>
         <if test="maxDistance!=null">
             HAVING
             distance <![CDATA[ <= ]]> #{maxDistance}
@@ -219,6 +222,9 @@
         <if test="siteID!='' and siteID!=null">
             and company.siteID = #{siteID}
         </if>
+        <if test="createTimeBy!='' and createTimeBy!=null">
+            and Date(post.CreateTime) <![CDATA[ >= ]]> Date(#{createTimeBy})
+        </if>
         <if test="maxDistance!=null">
             HAVING
             distance <![CDATA[ <= ]]> #{maxDistance}

+ 19 - 1
vue/src/views/dataMap/companyDataMap.vue

@@ -68,6 +68,14 @@
               @change="onSearch"
             >
             </a-select>
+            <a-select
+              v-model:value="companySearchParam.createTimeBy"
+              :allow-clear="true"
+              :options="createTimeByList"
+              placeholder="创建时间" size="small" style="width: 100%"
+              @change="onSearch"
+            >
+            </a-select>
           </div>
           <!-- 企业数据列表 -->
           <div class="list-box">
@@ -342,6 +350,7 @@ const companySearchParam = reactive({
   companyModel: undefined,
   siteID: undefined,
   regionCode: undefined,
+  createTimeBy: 'all',
   longitude: 114.416110,
   latitude: 23.111582
 })
@@ -370,6 +379,15 @@ const rangeList = [
   {value: 3, label: "3KM"},
   {value: 1, label: "1KM"}
 ]
+// 创建时间
+const createTimeByList = [
+  {label: '全部', value: 'all'},
+  {label: '最近三天', value: '3Day'},
+  {label: '最近一周', value: '1Week'},
+  {label: '最近一月', value: '1Month'},
+  {label: '最近三月', value: '3Month'},
+  {label: '最近半年', value: 'Year'},
+];
 // 企业规模
 const companyModelList = ref<SelectProps['options']>();
 // 所属驿站
@@ -958,7 +976,7 @@ export default {
       }
 
       .list-box {
-        max-height: calc(100% - 80px);
+        max-height: calc(100% - 95px);
         margin-top: 10px;
 
         .company-data-box {