diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SysMessageController.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SysMessageController.java index ac6f7eb..33c1c7e 100644 --- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SysMessageController.java +++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SysMessageController.java @@ -41,13 +41,36 @@ public class SysMessageController extends JeecgController queryPageList(SysMessage sysMessage, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "employeePhone", required = false) String employeePhone, + HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysMessage, req.getParameterMap()); + // 员工电话: esContent中手机号以"3位~4位~4位"(全角波浪线)格式存储, + // 前端传入纯数字手机号,此处还原为存储格式后对 esContent 做模糊查询 + if (employeePhone != null && !employeePhone.trim().isEmpty()) { + queryWrapper.like("esContent", buildEmployeePhoneLikeValue(employeePhone)); + } Page page = new Page(pageNo, pageSize); IPage pageList = sysMessageService.page(page, queryWrapper); return Result.ok(pageList); } + /** + * 将前端传入的员工电话还原为 esContent 中存储的"3位~4位~4位"(全角波浪线)格式。 + * 11位纯数字 -> 还原为 ddd~dddd~dddd;其余情况用原始输入兜底(兼容用户直接粘贴带~的原文)。 + * 等效SQL: ES_CONTENT LIKE '%185~9920~5354%' + * + * @param employeePhone 前端传入的员工电话 + * @return 用于模糊查询 esContent 的值 + */ + private String buildEmployeePhoneLikeValue(String employeePhone) { + String digits = employeePhone.replaceAll("[^0-9]", ""); + if (digits.length() == 11) { + return digits.substring(0, 3) + "~" + digits.substring(3, 7) + "~" + digits.substring(7, 11); + } + return employeePhone.trim(); + } + /** * 添加 *