修复线上招聘会标题搜索通配符问题

This commit is contained in:
2026-07-24 10:10:11 +08:00
parent 6e3fb28d79
commit 1758dd9cfa
2 changed files with 29 additions and 0 deletions

View File

@@ -59,6 +59,7 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
@Override
public PublicJobFairResponse getJobFairPage(PublicJobFairQuery query) {
query.setJobFairTitle(normalizeJobFairTitle(query.getJobFairTitle()));
PageHelper.startPage(query.getPageNum(), query.getPageSize());
List<PublicJobFair> list = publicJobFairMapper.selectPublicJobFairList(query);
fillJobFairStatus(list);
@@ -180,12 +181,28 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
@Override
public List<PublicJobFair> selectList(PublicJobFairQuery query) {
query.setJobFairTitle(normalizeJobFairTitle(query.getJobFairTitle()));
List<PublicJobFair> list = publicJobFairMapper.selectPublicJobFairList(query);
fillJobFairStatus(list);
fillCompanyApplyState(list);
return list;
}
/**
* 将标题查询条件转换为 LIKE 的字面量片段。
*
* <p>标题搜索是普通的包含匹配,用户输入的通配符不应改变 SQL 的匹配范围。</p>
*/
static String normalizeJobFairTitle(String title) {
if (StringUtils.isBlank(title)) {
return null;
}
return title.trim()
.replace("\\", "\\\\")
.replace("%", "\\%")
.replace("_", "\\_");
}
@Override
public PublicJobFair selectById(String jobFairId) {
PublicJobFair jobFair = publicJobFairMapper.selectPublicJobFairById(jobFairId);