-
feat: 迁移公司档案与公司人员模块 · 5b0f2f4e
新增九个接口,只读端点契约比对 3/3 一致,写路径对拍 14/14 一致。 公司档案 - 关键词在公司名、简称、统一社会信用代码、地址、联系人、联系方式六个字段上模糊匹配 - 删除前检查五类资产的引用(公司人员、企微、抖音、域名、商户), 并把具体引用方拼进提示语。抖音、域名、商户三张表当前无业务模块在写, 检查仍须保留:这些模块启用后少查一张就会误删仍被引用的档案 公司人员 - 在职状态仅允许「在职」「离职」,不填默认在职 - 状态为离职时必须填离职时间;改回在职时离职时间会被清空, 避免留下「在职却有离职时间」的自相矛盾记录 - 删除前检查设备、企微、微信、抖音四类资产是否仍把此人记为使用人或运营人 - 列表一次性批量查出所属公司名,不逐行查询;已删除的公司也取名称,保证历史数据可读 页面权限改为标注加守卫 Java 是在每个控制器方法体首行手写 permissions.require(...),改为 RequirePermission 标注 配合全局守卫执行。查询要求 READ,增删改要求 EDIT,与 Java 逐个方法对应。 对拍发现并对齐的一处差异 Java 的 DTO 上写有 @NotBlank(message = "公司名称不能为空"),但全局异常处理器 把所有校验失败统一成「提交内容不符合要求,请检查后重试」,DTO 里的文案实际是死代码。 NestJS 原本在 service 层校验,会返回更具体的文案,反而与线上行为不符。 已将必填校验移到管道层(先 trim 再判空),文案与 Java 保持一致。 整体契约比对:14 项一致、17 项待实现。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
DaiJiezhang authored
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| company-person.dto.ts | Loading commit data... |