Files
BOSS/BOSSBackEnd/.trae/documents/集成 generator_domain 并实现完整CRUD.md
2026-01-10 21:55:01 +08:00

4.4 KiB
Raw Permalink Blame History

目标

  • 将 f:\Code\BOSS\src\main\java\generator\domain 下的 5 个实体迁移到项目标准位置com.zds.boss.model.entity并为每个实体完成基础 CRUD 的 Controller、Service、ServiceImpl、Mapper含 XML 根据需要、DTO 与 VO。
  • 统一权限与风格:写操作使用 @AuthCheck(mustRole = "admin");分页查询与条件封装复用 PageRequest逻辑删除字段与全局配置对齐。

待集成实体

  • 源文件:
  • 目标包com.zds.boss.model.entity命名规范与现有 Admin/User/Resume/Company 保持一致)
  • 字段策略:
    • 表名沿用 @TableName字段默认开启 map-underscore-to-camel-case 映射。
    • 逻辑删除:如 Boss 包含 isDeleted/deletedAt重命名为 isDelete 并添加 @TableLogic 以匹配全局配置logic-delete-field: isDelete

每个实体的配套层次

  • MapperXxxMapperBaseMapper必要时生成 generator/mapper XMLBaseResultMap + Base_Column_List
  • ServiceXxxServiceIService + 扩展方法add、update、delete、getVO、getVOList、getQueryWrapper、listVOByPage。
  • ImplXxxServiceImplServiceImpl + 业务校验与封装)。
  • DTOXxxAddRequest、XxxUpdateRequest、XxxQueryRequest继承 PageRequest
  • VOXxxVO仅展示与安全字段
  • ControllerXxxController路径与风格与已有模块一致写操作加 @AuthCheck(mustRole = "admin")。

控制器端点设计

  • Boss招聘方账号
    • POST /boss/add、/boss/update、/boss/delete需 admin
    • GET /boss/get、/boss/get/vo
    • POST /boss/list/page/vo分页查询
  • JobPosting岗位
    • POST /job/add、/job/update、/job/delete需 admin
    • GET /job/get、/job/get/vo
    • POST /job/list/page/vo
  • Application投递记录
    • POST /application/add登录用户提交
    • POST /application/update、/application/delete本人或管理员
    • GET /application/get、/application/get/vo
    • POST /application/list/page/vo管理员查看或限制仅本人
  • Interview面试安排
    • POST /interview/add、/interview/update、/interview/delete需 admin
    • GET /interview/get、/interview/get/vo
    • POST /interview/list/page/vo
  • BossApplicationDecision投递处理
    • POST /decision/add、/decision/update、/decision/delete需 admin
    • GET /decision/get、/decision/get/vo
    • POST /decision/list/page/vo

权限与校验

  • 写操作统一注解:@AuthCheck(mustRole = "admin")。
  • 针对 Application 的本人操作:
    • add 时绑定 loginUser.id → userId
    • update/delete 时校验记录 userId 与当前用户一致或 isAdmin(loginUser)(复用 UserUtils
  • 被封禁用户status==0在 AOP 层直接拒绝(已在 AuthInterceptor

详细实施步骤

  1. 迁移与修正实体:
    • 将 5 个实体移动到 com.zds.boss.model.entity 并修正包名。
    • Boss 增加 @TableLogic 并将 isDeleted → isDelete保持 deletedAt 字段。
  2. 为每个实体创建 Mapper 接口与按需XML 映射,遵循 Company/Resume 的模式。
  3. 为每个实体新增 DTOAdd/Update/Query与 VO。
  4. 编写 Service 接口与实现:
    • 基础校验空参、ID 合法性、BeanUtil 复制、QueryWrapper 条件构造、分页封装。
  5. 编写 Controller
    • 统一 CORS、路径前缀与注解风格写操作加 @AuthCheckApplication 的本人校验走 UserService + UserUtils。
  6. 编译与运行验证:
    • mvn compile启动后用简单请求验证 CRUD 通路与 AOP 权限。
  7. 文档与代码参考补充:
    • 在 README 或接口注释中标注各字段语义与权限规则。

验收标准

  • 五个实体在标准包结构下具备可用的 CRUD 控制器与服务层,分页与条件查询可用。
  • 写操作权限正确,封禁用户在 AOP 层拒绝Application 本人校验生效。
  • 编译与运行均通过;与现有模块无冲突(命名、包结构、风格统一)。