diff --git a/backend/src/main/java/com/danyang/match/platform/account/controller/AccountRetentionOperatorController.java b/backend/src/main/java/com/danyang/match/platform/account/controller/AccountRetentionOperatorController.java
new file mode 100644
index 0000000..af41c27
--- /dev/null
+++ b/backend/src/main/java/com/danyang/match/platform/account/controller/AccountRetentionOperatorController.java
@@ -0,0 +1,52 @@
+package com.danyang.match.platform.account.controller;
+
+import com.danyang.match.platform.account.service.DataRetentionService;
+import com.danyang.match.platform.shared.dto.ApiResponse;
+import com.danyang.match.platform.shared.security.principal.OperatorPrincipal;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 注销数据到期处置(Operator 端,2026-09-19 数据保留决策落地)。
+ *
+ *
权限 {@code account.retention.purge}(V049)仅授予 super_admin ——
+ * 处置不可逆,不做批量授权。流程为「人工审核」模式:先查到期清单,
+ * 运营确认后逐个执行;保留期内(产品确认下限 36 个月)的账号服务端拒绝处置。
+ */
+@RestController
+@RequestMapping("/operator/account/retention")
+@RequiredArgsConstructor
+public class AccountRetentionOperatorController {
+
+ private final DataRetentionService dataRetentionService;
+
+ /**
+ * 保留期已满的注销账号清单
+ * GET /api/v1/operator/account/retention/due
+ */
+ @GetMapping("/due")
+ @PreAuthorize("hasAuthority('account.retention.purge')")
+ public ApiResponse>> dueAccounts() {
+ return ApiResponse.ok(dataRetentionService.listDueAccounts());
+ }
+
+ /**
+ * 执行到期匿名化清除(幂等)
+ * POST /api/v1/operator/account/retention/{userId}/purge
+ */
+ @PostMapping("/{userId}/purge")
+ @PreAuthorize("hasAuthority('account.retention.purge')")
+ public ApiResponse