| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using Admin.NET.Plugin.AiDOP.Const.S8;
- using Admin.NET.Plugin.AiDOP.Infrastructure.S8;
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- namespace Admin.NET.Plugin.AiDOP.Controllers.S8;
- /// <summary>
- /// 「操作员绑定」配置入口 —— <b>已整体退役(S8-SYSUSER-ONLY-1)</b>。
- ///
- /// <para><b>它原来做什么</b>:维护 <c>EmployeeMaster.sys_user_id</c>,也就是把一个业务员工
- /// 绑定到一个系统账号,从而让这个员工"能被 S8 当成处理人使用"。</para>
- ///
- /// <para><b>为什么退役</b>:S8 的人现在<b>就是</b>系统账号,不再存在"这个员工对应哪个账号"这个问题。
- /// 保留一个绑定页面,只会让管理员继续以为"必须先绑定员工才能用 S8",
- /// 而实际上绑不绑都不影响任何 S8 行为 —— 这正是最容易造成误操作的那类残留入口。
- /// 真库现状也说明它从未真正被使用:1105 名员工里只有 8 个绑了账号。</para>
- ///
- /// <para><b>为什么返回 410 而不是删掉路由</b>:410 Gone 让还在调用旧地址的客户端
- /// 立刻拿到「已退役 + 原因」,而 404 会被当成路径写错,引出一轮无谓的排查。
- /// 本控制器<b>不再依赖任何服务</b>,也不再触碰 <c>EmployeeMaster</c> ——
- /// 退役的入口不应该还保有写主数据的能力。</para>
- ///
- /// <para><b>没有动的东西</b>:<c>EmployeeMaster</c> 表与其中已有的 8 条 <c>sys_user_id</c> 绑定
- /// 全部原样保留。它属于 S0 业务主数据,不归 S8 处置。</para>
- /// </summary>
- [ApiController]
- [Route("api/aidop/s8/config")]
- [NonUnify]
- public class AdoS8ConfigBindingsController : ControllerBase
- {
- private const string RetiredMessage =
- "「操作员绑定」已退役:S8 人员身份统一为系统账号,无需再把员工绑定到账号。"
- + "请在系统账号管理中维护账号,并用 GET /api/aidop/s8/master-data/users 选择人员。";
- private IActionResult Retired() =>
- StatusCode(StatusCodes.Status410Gone, new
- {
- message = RetiredMessage,
- replacedBy = "/api/aidop/s8/master-data/users"
- });
- [HttpGet("operator-bindings")]
- [S8Permission(S8PermissionCatalog.ConfigRead)]
- public IActionResult ListRetired() => Retired();
- [HttpPost("operator-bindings")]
- [S8Permission(S8PermissionCatalog.ConfigOperatorBind)]
- public IActionResult BindRetired() => Retired();
- [HttpDelete("operator-bindings/{employeeId:long}")]
- [S8Permission(S8PermissionCatalog.ConfigOperatorBind)]
- public IActionResult UnbindRetired(long employeeId)
- {
- _ = employeeId;
- return Retired();
- }
- [HttpGet("sys-users")]
- [S8Permission(S8PermissionCatalog.ConfigRead)]
- public IActionResult SysUsersRetired() => Retired();
- }
|