From 8438d50aef0bb78e5e6c41ca1c1bc09b4e61add1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 29 七月 2026 09:18:29 +0800
Subject: [PATCH] feat(customer): 添加公海客户归属查看权限控制

---
 src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java |   25 +++++++++++++++++++++----
 1 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
index 5a4d19a..4404387 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -130,7 +130,8 @@
     public IPage<CustomerVo> selectCustomerList(Page<CustomerDto> page, CustomerDto customer) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long loginUserId = loginUser.getUserId();
-        IPage<CustomerVo> customerPage = customerMapper.listPage(page, customer, loginUserId);
+        boolean isAdmin = SecurityUtils.hasPermi("customer:viewAll");
+        IPage<CustomerVo> customerPage = customerMapper.listPage(page, customer, loginUserId, isAdmin);
 
         List<CustomerVo> records = customerPage.getRecords();
         if (CollectionUtils.isEmpty(records)) {
@@ -199,7 +200,21 @@
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long tenantId = loginUser.getTenantId();
         customer.setTenantId(tenantId);
-        return customerMapper.insert(customer);
+        int result = customerMapper.insert(customer);
+
+        // 绉佹捣鏂板鏃跺悓姝ヤ竴鏉″埌鍏捣
+        if (customer.getType() != null && customer.getType() == 0) {
+            Customer publicSeaCustomer = new Customer();
+            BeanUtils.copyProperties(customer, publicSeaCustomer);
+            publicSeaCustomer.setId(null);
+            publicSeaCustomer.setType(1);
+            publicSeaCustomer.setIsAssigned(0);
+            publicSeaCustomer.setUsageUser(loginUser.getUserId());
+            publicSeaCustomer.setUsageStatus(1L);
+            customerMapper.insert(publicSeaCustomer);
+        }
+
+        return result;
     }
 
     /**
@@ -281,7 +296,8 @@
     public List<CustomerVo> selectCustomerLists(CustomerDto customer) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long loginUserId = loginUser.getUserId();
-        return customerMapper.list(customer, loginUserId);
+        boolean isAdmin = SecurityUtils.hasPermi("customer:viewAll");
+        return customerMapper.list(customer, loginUserId, isAdmin);
     }
 
     @Override
@@ -312,13 +328,14 @@
     public List<Map<String, Object>> customerList(Customer customer) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long loginUserId = loginUser.getUserId();
+        boolean isAdmin = SecurityUtils.hasPermi("customer:viewAll");
         CustomerDto query = new CustomerDto();
         if (customer != null) {
             BeanUtils.copyProperties(customer, query);
         }
 
         // 澶嶇敤瀹㈡埛鍒楄〃鐨勫彲瑙佹�ц鍒欙紝閬垮厤鎶婂埆浜虹殑绉佹捣瀹㈡埛鏆撮湶缁欏綋鍓嶈处鍙�
-        List<CustomerVo> visibleCustomers = customerMapper.list(query, loginUserId);
+        List<CustomerVo> visibleCustomers = customerMapper.list(query, loginUserId, isAdmin);
         if (CollectionUtils.isEmpty(visibleCustomers)) {
             return Collections.emptyList();
         }

--
Gitblit v1.9.3