新增户外招聘会相关功能,包括控制器、服务、数据模型及数据库表结构

This commit is contained in:
2026-06-25 11:30:31 +08:00
parent a4c719f9a5
commit 92ff657e71
13 changed files with 786 additions and 3 deletions

View File

@@ -0,0 +1,33 @@
package com.ruoyi.cms.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cms.domain.OutdoorFair;
/**
* 户外招聘会Service接口
*
* @author ruoyi
* @date 2026-06-25
*/
public interface IOutdoorFairService extends IService<OutdoorFair>
{
/**
* 查询户外招聘会列表
*
* @param outdoorFair 户外招聘会
* @return 户外招聘会集合
*/
List<OutdoorFair> selectOutdoorFairList(OutdoorFair outdoorFair);
/**
* 新增户外招聘会相关字典项
*
* @param dictType 字典类型
* @param dictLabel 字典标签
* @param createBy 创建人
* @return 影响行数
*/
int insertOutdoorFairDictData(String dictType, String dictLabel, String createBy);
}

View File

@@ -72,7 +72,7 @@ public class ESJobSearchImpl implements IESJobSearchService
/**
* 项目启动时,初始化索引及数据
*/
@PostConstruct
// @PostConstruct
public void init()
{
boolean isLockAcquired = false;

View File

@@ -43,7 +43,7 @@ public class InterviewInvitationServiceImpl implements InterviewInvitationServic
@Autowired
private DataSource dataSource;
@PostConstruct
// @PostConstruct
public void initTable() {
try (Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement()) {

View File

@@ -0,0 +1,78 @@
package com.ruoyi.cms.service.impl;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cms.domain.OutdoorFair;
import com.ruoyi.cms.mapper.OutdoorFairMapper;
import com.ruoyi.cms.service.IOutdoorFairService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.stereotype.Service;
/**
* 户外招聘会Service业务层处理
*
* @author ruoyi
* @date 2026-06-25
*/
@Service
public class OutdoorFairServiceImpl extends ServiceImpl<OutdoorFairMapper, OutdoorFair> implements IOutdoorFairService
{
private static final String OUTDOOR_FAIR_TYPE_DICT = "outdoor_fair_type";
private static final String OUTDOOR_FAIR_REGION_DICT = "outdoor_fair_region";
/**
* 查询户外招聘会列表
*
* @param outdoorFair 户外招聘会
* @return 户外招聘会集合
*/
@Override
public List<OutdoorFair> selectOutdoorFairList(OutdoorFair outdoorFair)
{
LambdaQueryWrapper<OutdoorFair> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(outdoorFair.getTitle()), OutdoorFair::getTitle, outdoorFair.getTitle());
queryWrapper.like(StringUtils.isNotBlank(outdoorFair.getHostUnit()), OutdoorFair::getHostUnit, outdoorFair.getHostUnit());
queryWrapper.eq(StringUtils.isNotBlank(outdoorFair.getFairType()), OutdoorFair::getFairType, outdoorFair.getFairType());
queryWrapper.eq(StringUtils.isNotBlank(outdoorFair.getRegion()), OutdoorFair::getRegion, outdoorFair.getRegion());
queryWrapper.orderByDesc(OutdoorFair::getHoldTime);
queryWrapper.orderByDesc(OutdoorFair::getCreateTime);
return list(queryWrapper);
}
/**
* 新增户外招聘会相关字典项
*
* @param dictType 字典类型
* @param dictLabel 字典标签
* @param createBy 创建人
* @return 影响行数
*/
@Override
public int insertOutdoorFairDictData(String dictType, String dictLabel, String createBy)
{
if (!OUTDOOR_FAIR_TYPE_DICT.equals(dictType) && !OUTDOOR_FAIR_REGION_DICT.equals(dictType)) {
throw new ServiceException("只允许维护户外招聘会类型和举办区域字典");
}
String trimmedLabel = StringUtils.trim(dictLabel);
if (StringUtils.isBlank(trimmedLabel)) {
throw new ServiceException("字典名称不能为空");
}
if (trimmedLabel.length() > 100) {
throw new ServiceException("字典名称长度不能超过100个字符");
}
if (baseMapper.countDictDataByTypeAndValue(dictType, trimmedLabel) > 0) {
return 1;
}
Long dictSort = baseMapper.selectNextDictSort(dictType);
int rows = baseMapper.insertDictData(dictSort, trimmedLabel, trimmedLabel, dictType, createBy);
if (rows > 0) {
DictUtils.removeDictCache(dictType);
}
return rows;
}
}