feat: add outdoor fair time and company filters

This commit is contained in:
2026-07-24 10:27:39 +08:00
parent 3784dd5208
commit f22867fcf0
3 changed files with 35 additions and 2 deletions

View File

@@ -124,11 +124,14 @@ public class OutdoorFairController extends BaseController
@ApiOperation("查询户外招聘会列表")
@PreAuthorize("@ss.hasPermi('cms:outdoorFair:list')")
@GetMapping("/list")
public TableDataInfo list(OutdoorFair outdoorFair, HttpServletRequest request)
public TableDataInfo list(OutdoorFair outdoorFair,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
HttpServletRequest request)
{
Company company = RoleUtils.isCompanyAdmin() ? getCurrentCompanyOrNull() : null;
startPage();
List<OutdoorFair> list = outdoorFairService.selectOutdoorFairList(outdoorFair);
List<OutdoorFair> list = outdoorFairService.selectOutdoorFairList(outdoorFair, startTime, endTime);
fillReservedBoothCount(list);
fillCompanyApplyState(list, request, company);
return getDataTable(list);
@@ -552,12 +555,18 @@ public class OutdoorFairController extends BaseController
@PreAuthorize("@ss.hasPermi('cms:outdoorFair:query')")
@GetMapping("/{fairId}/companies")
public AjaxResult listCompanies(@PathVariable Long fairId, String companyName,
String reviewStatus,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
Integer current, Integer pageSize,
HttpServletRequest request)
{
LambdaQueryWrapper<FairCompany> relationWrapper = new LambdaQueryWrapper<FairCompany>()
.eq(FairCompany::getJobFairId, fairId)
.orderByDesc(FairCompany::getId);
relationWrapper.eq(StringUtils.isNotBlank(reviewStatus), FairCompany::getReviewStatus, reviewStatus);
relationWrapper.ge(startTime != null, FairCompany::getCreateTime, startTime);
relationWrapper.le(endTime != null, FairCompany::getCreateTime, endTime);
if (RoleUtils.isCompanyAdmin()) {
Company company = getCurrentCompanyOrNull();
if (company == null) {
@@ -616,6 +625,7 @@ public class OutdoorFairController extends BaseController
row.put("reviewBy", relation.getReviewBy());
row.put("reviewTime", relation.getReviewTime());
row.put("reviewRemark", relation.getReviewRemark());
row.put("registrationTime", relation.getCreateTime());
OutdoorFairDevice device = deviceMap.get(company.getCompanyId());
String h5Url = buildOutdoorFairCompanyH5Url(request, fairId, company.getCompanyId());
row.put("deviceId", device == null ? null : device.getId());

View File

@@ -1,6 +1,7 @@
package com.ruoyi.cms.service;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -22,6 +23,16 @@ public interface IOutdoorFairService extends IService<OutdoorFair>
*/
List<OutdoorFair> selectOutdoorFairList(OutdoorFair outdoorFair);
/**
* 按招聘会举办开始/结束时间筛选列表。
*
* @param outdoorFair 基础查询条件
* @param startTime 举办开始时间下限
* @param endTime 举办结束时间上限
* @return 户外招聘会集合
*/
List<OutdoorFair> selectOutdoorFairList(OutdoorFair outdoorFair, Date startTime, Date endTime);
/**
* 删除户外招聘会及其展位副本、展位预定记录。
*

View File

@@ -1,6 +1,7 @@
package com.ruoyi.cms.service.impl;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -44,6 +45,15 @@ public class OutdoorFairServiceImpl extends ServiceImpl<OutdoorFairMapper, Outdo
*/
@Override
public List<OutdoorFair> selectOutdoorFairList(OutdoorFair outdoorFair)
{
return selectOutdoorFairList(outdoorFair, null, null);
}
/**
* 查询户外招聘会列表,并按举办时间边界筛选。
*/
@Override
public List<OutdoorFair> selectOutdoorFairList(OutdoorFair outdoorFair, Date startTime, Date endTime)
{
LambdaQueryWrapper<OutdoorFair> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(outdoorFair.getTitle()), OutdoorFair::getTitle, outdoorFair.getTitle());
@@ -52,6 +62,8 @@ public class OutdoorFairServiceImpl extends ServiceImpl<OutdoorFairMapper, Outdo
queryWrapper.eq(StringUtils.isNotBlank(outdoorFair.getRegion()), OutdoorFair::getRegion, outdoorFair.getRegion());
queryWrapper.eq(outdoorFair.getVenueId() != null, OutdoorFair::getVenueId, outdoorFair.getVenueId());
queryWrapper.eq(outdoorFair.getOnlineApply() != null, OutdoorFair::getOnlineApply, outdoorFair.getOnlineApply());
queryWrapper.ge(startTime != null, OutdoorFair::getHoldTime, startTime);
queryWrapper.le(endTime != null, OutdoorFair::getEndTime, endTime);
queryWrapper.orderByDesc(OutdoorFair::getHoldTime);
queryWrapper.orderByDesc(OutdoorFair::getCreateTime);
return list(queryWrapper);