From 50c4e16520d0b91d74c37d943509371a45c780ca Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Tue, 25 Aug 2026 13:58:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(preference):=20=E7=A5=A814=20=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E8=A7=86=E5=9B=BE=20Controller=20=E6=8E=A5?= =?UTF-8?q?=E7=BA=BF=20/api/preference/view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SavedViewController(与列偏好同处 /api/preference 前缀,挂 /view 子路径): - GET /list 列出当前用户某 scope 视图(按 seqNo) - POST /save 保存(@RequestBody SavedView;viewId 空=新建/非空=编辑) - POST /delete 删除 - POST /set-default 图钉设默认(单值互斥) userId 从 SecurityContext,不接受前端传入;scope 由业务方约定(商机本期 opportunity.sales);内置视图不走本接口。mvn -pl crm-preference test 16 全绿。 --- .../controller/SavedViewController.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 crm-preference/src/main/java/com/crm/preference/controller/SavedViewController.java diff --git a/crm-preference/src/main/java/com/crm/preference/controller/SavedViewController.java b/crm-preference/src/main/java/com/crm/preference/controller/SavedViewController.java new file mode 100644 index 0000000..d86734b --- /dev/null +++ b/crm-preference/src/main/java/com/crm/preference/controller/SavedViewController.java @@ -0,0 +1,71 @@ +package com.crm.preference.controller; + +import com.crm.base.domain.result.Result; +import com.crm.base.security.SecurityUtils; +import com.crm.preference.domain.dto.SavedView; +import com.crm.preference.service.SavedViewService; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 自定义视图接口(票 14)。 + * + *
平台级第二种偏好,与 {@link ColumnPreferenceController} 同处 {@code /api/preference} 前缀下、 + * 挂 {@code /view} 子路径。权限策略同列偏好:不种子化权限点,ApiPermissionInterceptor 对未注册 URL + * fail-open。视图为用户私有,userId 从 SecurityContext 获取,不接受前端传入。
+ * + *scope 由业务方约定(商机销售机会工作区本期传 {@code opportunity.sales});内置视图不走本接口 + * (内置口径硬编码在业务方),本接口只管理用户自建视图。
+ */ +@RestController +@RequestMapping("/api/preference/view") +@RequiredArgsConstructor +public class SavedViewController { + + private final SavedViewService savedViewService; + + @Operation(summary = "列出当前用户在某 scope 的自定义视图(按 seqNo)", + tags = {"销售机会/自定义视图"}) + @GetMapping("/list") + public Result