✨ feat: 添加报名截止时间验证功能
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将当前场地模板克隆为招聘会自己的展位图。模板与副本只在这里发生单向复制,之后互不影响。
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user