gaoluyang
2026-10-26 bac50872dc8d80fd8c3879f02aa98084db4d6cc8
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -129,7 +129,8 @@
    @Override
    public IPage<CustomerVo> selectCustomerList(Page<CustomerDto> page, CustomerDto customer) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Long loginUserId = loginUser.getUserId();
        // 超级管理员不受客户领用/共享范围限制,可查看全部客户
        Long loginUserId = isSuperAdmin(loginUser) ? null : loginUser.getUserId();
        IPage<CustomerVo> customerPage = customerMapper.listPage(page, customer, loginUserId);
        List<CustomerVo> records = customerPage.getRecords();
@@ -280,8 +281,14 @@
    @Override
    public List<CustomerVo> selectCustomerLists(CustomerDto customer) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Long loginUserId = loginUser.getUserId();
        // 超级管理员不受客户领用/共享范围限制,可导出全部客户
        Long loginUserId = isSuperAdmin(loginUser) ? null : loginUser.getUserId();
        return customerMapper.list(customer, loginUserId);
    }
    /** 超级管理员:不受客户领用/共享范围限制 */
    private boolean isSuperAdmin(LoginUser loginUser) {
        return loginUser != null && loginUser.getUser() != null && loginUser.getUser().isAdmin();
    }
    @Override
@@ -310,18 +317,26 @@
    @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();
        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);
        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());
    }
    // 分配公海客户给私海