chenrui
3 天以前 3e03f3d957c44ff2e4909b9fb4fff8621d466d10
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -1,15 +1,26 @@
package com.ruoyi.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.basic.service.ICustomerService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.security.LoginUser;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -20,6 +31,7 @@
 */
@Service
@AllArgsConstructor
@Slf4j
public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> implements ICustomerService {
    private CustomerMapper customerMapper;
@@ -31,7 +43,7 @@
     */
    @Override
    public Customer selectCustomerById(Long id) {
        return customerMapper.selectCustomerById(id);
        return customerMapper.selectById(id);
    }
    /**
@@ -41,8 +53,40 @@
     * @return 客户档案
     */
    @Override
    public List<Customer> selectCustomerList(Customer customer) {
        return customerMapper.selectCustomerList(customer);
    public IPage<Customer> selectCustomerList(Page page, Customer customer) {
        // 1. 处理空值场景(参数校验)
        if (page == null) {
            page = Page.of(1, 10); // 默认第1页,每页10条数据
        }
        if (customer == null) {
            customer = new Customer(); // 避免空对象导致的NPE
        }
        // 2. 构建查询条件(增强空值安全)
        LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
        String customerName = customer.getCustomerName();
        if (StringUtils.isNotBlank(customerName)) {
            queryWrapper.like(Customer::getCustomerName, customerName);
        }
        // 3. 执行分页查询(保留分页元数据)
        IPage<Customer> customerPage = customerMapper.selectPage(page, queryWrapper);
        // 4. 数据处理(增强空值安全 & 代码可读性)
        List<Customer> processedList = customerPage.getRecords().stream()
                .filter(Objects::nonNull) // 过滤空对象(避免后续操作NPE)
                .peek(c -> {
                    // 安全获取字段,避免null值拼接
                    String address = StringUtils.defaultString(c.getCompanyAddress(), "");
                    String phone = StringUtils.defaultString(c.getCompanyPhone(), "");
                    c.setAddressPhone(address + "(" + phone + ")"); // 优化字符串拼接
                })
                .collect(Collectors.toList());
        // 5. 更新分页结果中的数据(保持分页信息完整)
        customerPage.setRecords(processedList);
        return customerPage; // 返回包含分页信息的IPage对象
    }
    /**
@@ -53,7 +97,10 @@
     */
    @Override
    public int insertCustomer(Customer customer) {
        return customerMapper.insertCustomer(customer);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Integer tenantId = loginUser.getTenantId();
        customer.setTenantId(Long.valueOf(tenantId));
        return customerMapper.insert(customer);
    }
    /**
@@ -64,7 +111,10 @@
     */
    @Override
    public int updateCustomer(Customer customer) {
        return customerMapper.updateCustomer(customer);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Integer tenantId = loginUser.getTenantId();
        customer.setTenantId(Long.valueOf(tenantId));
        return customerMapper.updateById(customer);
    }
    /**
@@ -75,17 +125,57 @@
     */
    @Override
    public int deleteCustomerByIds(Long[] ids) {
        return customerMapper.deleteCustomerByIds(ids);
        List<Long> idList = Arrays.asList(ids);
        return customerMapper.deleteBatchIds(idList);
    }
    @Override
    public List<Customer> selectCustomerListByIds(Long[] ids) {
        LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.in(Customer::getId, Arrays.asList(ids));
        return customerMapper.selectList(queryWrapper);
    }
    @Override
    public List<Customer> selectCustomerLists(Customer customer) {
        return customerMapper.selectList(null);
    }
    @Override
    public List<Map<String, Object>> customerList(Customer customer) {
        LambdaQueryWrapper<Customer> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.select(Customer::getId, Customer::getCustomerName, Customer::getTaxpayerIdentificationNumber);
        // 获取原始查询结果
        List<Map<String, Object>> result = customerMapper.selectMaps(queryWrapper);
        // 将下划线命名转换为驼峰命名
        return result.stream().map(map -> map.entrySet().stream()
                .collect(Collectors.toMap(
                        entry -> underlineToCamel(entry.getKey()),
                        Map.Entry::getValue))
        ).collect(Collectors.toList());
    }
    /**
     * 删除客户档案信息
     *
     * @param id 客户档案主键
     * @return 结果
     * 下划线命名转驼峰命名
     */
    @Override
    public int deleteCustomerById(Long id) {
        return customerMapper.deleteCustomerById(id);
    private String underlineToCamel(String param) {
        if (param == null || "".equals(param.trim())) {
            return "";
        }
        int len = param.length();
        StringBuilder sb = new StringBuilder(len);
        for (int i = 0; i < len; i++) {
            char c = param.charAt(i);
            if (c == '_') {
                if (++i < len) {
                    sb.append(Character.toUpperCase(param.charAt(i)));
                }
            } else {
                sb.append(Character.toLowerCase(c));
            }
        }
        return sb.toString();
    }
}