feat: 添加报名截止时间验证功能

This commit is contained in:
2026-07-23 20:32:31 +08:00
parent a8213022cb
commit ea0ab2aed2
2 changed files with 46 additions and 0 deletions

View File

@@ -447,6 +447,10 @@ public class OutdoorFairController extends BaseController
if (RoleUtils.isCompanyAdmin()) {
return AjaxResult.error("企业用户无权新增户外招聘会");
}
String timeValidationError = validateRegistrationDeadline(outdoorFair);
if (timeValidationError != null) {
return AjaxResult.error(timeValidationError);
}
fillVenueFields(outdoorFair);
boolean saved = outdoorFairService.save(outdoorFair);
if (saved) {
@@ -468,6 +472,10 @@ public class OutdoorFairController extends BaseController
if (RoleUtils.isCompanyAdmin()) {
return AjaxResult.error("企业用户无权编辑户外招聘会");
}
String timeValidationError = validateRegistrationDeadline(outdoorFair);
if (timeValidationError != null) {
return AjaxResult.error(timeValidationError);
}
OutdoorFair oldFair = outdoorFair.getId() == null ? null : outdoorFairService.getById(outdoorFair.getId());
fillVenueFields(outdoorFair);
boolean venueChanged = oldFair == null || !java.util.Objects.equals(oldFair.getVenueId(), outdoorFair.getVenueId());
@@ -1081,6 +1089,17 @@ public class OutdoorFairController extends BaseController
return (boothCount != null && boothCount > 0) || (bookingCount != null && bookingCount > 0);
}
static String validateRegistrationDeadline(OutdoorFair outdoorFair)
{
if (outdoorFair != null
&& outdoorFair.getApplyEndTime() != null
&& outdoorFair.getHoldTime() != null
&& outdoorFair.getApplyEndTime().after(outdoorFair.getHoldTime())) {
return "报名截止时间不能晚于招聘会举办时间";
}
return null;
}
/**
* 将当前场地模板克隆为招聘会自己的展位图。模板与副本只在这里发生单向复制,之后互不影响。
*/

View File

@@ -1,12 +1,15 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.OutdoorFair;
import org.junit.jupiter.api.Test;
import org.springframework.mock.web.MockHttpServletRequest;
import java.lang.reflect.Method;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
class OutdoorFairControllerTest
{
@@ -79,6 +82,30 @@ class OutdoorFairControllerTest
buildCompanyH5Url(request, 12L, 34L));
}
@Test
void registrationDeadlineCannotBeAfterFairHoldTime()
{
OutdoorFair fair = fairWithTimes(1_000L, 1_001L);
assertEquals("报名截止时间不能晚于招聘会举办时间",
OutdoorFairController.validateRegistrationDeadline(fair));
}
@Test
void registrationDeadlineCanEqualOrPrecedeFairHoldTime()
{
assertNull(OutdoorFairController.validateRegistrationDeadline(fairWithTimes(1_000L, 1_000L)));
assertNull(OutdoorFairController.validateRegistrationDeadline(fairWithTimes(1_000L, 999L)));
}
private OutdoorFair fairWithTimes(long holdTime, long applyEndTime)
{
OutdoorFair fair = new OutdoorFair();
fair.setHoldTime(new Date(holdTime));
fair.setApplyEndTime(new Date(applyEndTime));
return fair;
}
private String buildCompanyH5Url(MockHttpServletRequest request, Long fairId, Long companyId)
throws Exception
{