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 |   51 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 38 insertions(+), 13 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 0b0c6cd..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
@@ -310,18 +326,27 @@
 
     @Override
     public List<Map<String, Object>> customerList(Customer customer) {
-        LambdaQueryWrapper<Customer> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select(Customer::getId, Customer::getCustomerName, Customer::getTaxpayerIdentificationNumber);
+        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<Map<String, Object>> result = customerMapper.selectMaps(queryWrapper);
+        // 澶嶇敤瀹㈡埛鍒楄〃鐨勫彲瑙佹�ц鍒欙紝閬垮厤鎶婂埆浜虹殑绉佹捣瀹㈡埛鏆撮湶缁欏綋鍓嶈处鍙�
+        List<CustomerVo> visibleCustomers = customerMapper.list(query, loginUserId, isAdmin);
+        if (CollectionUtils.isEmpty(visibleCustomers)) {
+            return Collections.emptyList();
+        }
 
-        // 灏嗕笅鍒掔嚎鍛藉悕杞崲涓洪┘宄板懡鍚�
-        return result.stream().map(map -> map.entrySet().stream()
-                .collect(Collectors.toMap(
-                        entry -> underlineToCamel(entry.getKey()),
-                        Map.Entry::getValue))
-        ).collect(Collectors.toList());
+        return visibleCustomers.stream().map(item -> {
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put("id", item.getId());
+            map.put("customerName", item.getCustomerName());
+            map.put("taxpayerIdentificationNumber", item.getTaxpayerIdentificationNumber());
+            return map;
+        }).collect(Collectors.toList());
     }
 
     // 鍒嗛厤鍏捣瀹㈡埛缁欑娴�

--
Gitblit v1.9.3