2026-06-12
本次开发实现了"招聘会管理"模块的完整后端+前端代码,参考 InternshipPost(见习岗位管理)模块的代码模式,采用单表CRUD架构。
| 文件 | 路径 | 说明 |
|---|---|---|
| RecruitmentFair.java | org.jeecg.modules.zjrs.recruitmentfair.entity | 实体类,@TableName("recruitment_fair"),继承JeecgEntity,包含11个业务字段 |
| RecruitmentFairMapper.java | org.jeecg.modules.zjrs.recruitmentfair.mapper | Mapper接口,继承BaseMapper(此表不需要自定义JOIN查询) |
| RecruitmentFairMapper.xml | org.jeecg.modules.zjrs.recruitmentfair.mapper.xml | Mapper XML,基础配置(空mapper) |
| IRecruitmentFairService.java | org.jeecg.modules.zjrs.recruitmentfair.service | Service接口,继承IService |
| RecruitmentFairServiceImpl.java | org.jeecg.modules.zjrs.recruitmentfair.service.impl | Service实现类 |
| RecruitmentFairController.java | org.jeecg.modules.zjrs.recruitmentfair.controller | Controller,继承JeecgController,使用QueryGenerator自动构建查询条件 |
关键设计:
| 字段 | Java属性 | DB列 | 类型 | 必填 | 字典 | 说明 |
|---|---|---|---|---|---|---|
| 招聘会名称 | fairName | FAIR_NAME | String | 否 | — | — |
| 招聘会类型 | fairType | FAIR_TYPE | String | 否 | — | — |
| 招聘会主体 | fairSubject | FAIR_SUBJECT | String | 否 | — | — |
| 举办方式 | holdMethod | HOLD_METHOD | String | 否 | fair_hold_method | 现场/网络 |
| 线上举办日期 | onlineHoldDate | ONLINE_HOLD_DATE | String | 否 | — | 短文本格式 |
| 线下举办日期 | offlineHoldDate | OFFLINE_HOLD_DATE | String | 否 | — | 短文本格式 |
| 主办单位 | hostUnit | HOST_UNIT | String | 否 | — | — |
| 举办地点 | holdLocation | HOLD_LOCATION | String | 是 | — | — |
| 数据来源 | dataSource | DATA_SOURCE | String | 否 | fair_data_source | 省系统/市系统/其他 |
| 状态 | status | STATUS | String | 否 | fair_status | 未开始/进行中/已结束 |
| 省平台链接 | provinceLink | PROVINCE_LINK | String | 否 | — | 省平台详情页URL |
| 方法 | URL | 权限 | 说明 |
|---|---|---|---|
| GET | /recruitmentFair/list | — | 分页列表查询 |
| POST | /recruitmentFair/add | recruitment_fair:add | 新增 |
| PUT/POST | /recruitmentFair/edit | recruitment_fair:edit | 编辑 |
| DELETE | /recruitmentFair/delete | recruitment_fair:delete | 删除 |
| DELETE | /recruitmentFair/deleteBatch | recruitment_fair:deleteBatch | 批量删除 |
| GET | /recruitmentFair/queryById | — | 通过id查询 |
| GET | /recruitmentFair/exportXls | recruitment_fair:exportXls | 导出Excel |
| POST | /recruitmentFair/importExcel | recruitment_fair:importExcel | 导入Excel |
| 文件 | 路径 | 说明 |
|---|---|---|
| RecruitmentFair.api.ts | views/recruitmentfair/ | API定义,基础路径 /recruitmentFair |
| RecruitmentFair.data.ts | views/recruitmentfair/ | 列定义(7列)和高级查询配置(3个查询条件) |
| RecruitmentFairList.vue | views/recruitmentfair/ | 列表页面 |
| RecruitmentFairForm.vue | views/recruitmentfair/components/ | 表单组件,单卡片布局 |
| RecruitmentFairModal.vue | views/recruitmentfair/components/ | 弹窗组件 |
关键设计:
| 文件 | 路径 | 说明 |
|---|---|---|
| 招聘会管理-建表.sql | .docs/sql/ | DDL建表语句,达梦数据库 |
| 招聘会管理-字典数据.sql | .docs/sql/ | 字典数据初始化(fair_hold_method、fair_status、fair_data_source) |
| 招聘会管理-菜单权限.sql | .docs/sql/ | 菜单及按钮权限初始化,达梦数据库 |
| 招聘会管理-测试数据.sql | .docs/sql/ | 6条测试数据,覆盖不同来源/方式/状态 |
| V20260612_1__menu_insert_RecruitmentFair.sql | flyway/sql/mysql/ | Flyway迁移脚本,MySQL语法 |
| 字典编码 | 名称 | 字典项 |
|---|---|---|
| fair_hold_method | 举办方式 | 现场、网络 |
| fair_status | 招聘会状态 | 未开始、进行中、已结束 |
| fair_data_source | 数据来源 | 省系统、市系统、其他 |
6条测试数据覆盖以下场景:
数据库初始化(达梦DM8):
-- 依次执行
@招聘会管理-建表.sql
@招聘会管理-字典数据.sql
@招聘会管理-菜单权限.sql
@招聘会管理-测试数据.sql
后端启动:
前端启动:
验证:
日期字段类型选择: 需求文档明确标注日期字段类型为"短文本",而非日期选择器。原因是省一体化平台回流的数据日期格式不统一(可能为"2026年6月"、"2026-06-01至2026-06-30"等格式),使用VARCHAR类型更灵活。
操作栏按钮限制: 需求文档仅列出"查看"和"新增"功能,因此前端操作栏仅展示"查看"按钮,"新增"按钮放在表格标题区。后端仍提供完整CRUD能力以备后用。
省平台链接展示: 仅省系统来源的数据显示省平台链接,市系统和其他来源不显示。详情页面可根据dataSource字段动态控制链接的展示。
菜单sort_no选择: 招聘会管理在需求文档中列在第3.5节(就业指导之后、深度分析之前),因此sort_no设为2.30,位于两者之间。
disableSubmit=true)再点击"新增"(add() 未重置 disableSubmit),表单仍处于禁用状态无法输入add() 方法开头增加 disableSubmit.value = false;validatorRules 仅包含 holdLocation 必填,其他字段无校验