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()) { if (RoleUtils.isCompanyAdmin()) {
return AjaxResult.error("企业用户无权新增户外招聘会"); return AjaxResult.error("企业用户无权新增户外招聘会");
} }
String timeValidationError = validateRegistrationDeadline(outdoorFair);
if (timeValidationError != null) {
return AjaxResult.error(timeValidationError);
}
fillVenueFields(outdoorFair); fillVenueFields(outdoorFair);
boolean saved = outdoorFairService.save(outdoorFair); boolean saved = outdoorFairService.save(outdoorFair);
if (saved) { if (saved) {
@@ -468,6 +472,10 @@ public class OutdoorFairController extends BaseController
if (RoleUtils.isCompanyAdmin()) { if (RoleUtils.isCompanyAdmin()) {
return AjaxResult.error("企业用户无权编辑户外招聘会"); return AjaxResult.error("企业用户无权编辑户外招聘会");
} }
String timeValidationError = validateRegistrationDeadline(outdoorFair);
if (timeValidationError != null) {
return AjaxResult.error(timeValidationError);
}
OutdoorFair oldFair = outdoorFair.getId() == null ? null : outdoorFairService.getById(outdoorFair.getId()); OutdoorFair oldFair = outdoorFair.getId() == null ? null : outdoorFairService.getById(outdoorFair.getId());
fillVenueFields(outdoorFair); fillVenueFields(outdoorFair);
boolean venueChanged = oldFair == null || !java.util.Objects.equals(oldFair.getVenueId(), outdoorFair.getVenueId()); 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); 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; package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.OutdoorFair;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletRequest;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
class OutdoorFairControllerTest class OutdoorFairControllerTest
{ {
@@ -79,6 +82,30 @@ class OutdoorFairControllerTest
buildCompanyH5Url(request, 12L, 34L)); 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) private String buildCompanyH5Url(MockHttpServletRequest request, Long fairId, Long companyId)
throws Exception throws Exception
{ {