package com.ruoyi.basic.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.CustomerContactDto;
import com.ruoyi.basic.mapper.CustomerContactMapper;
import com.ruoyi.basic.pojo.CustomerContact;
import com.ruoyi.basic.service.CustomerContactService;
import com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
*
* 客户联系人表 服务实现类
*
*
* @author 芯导软件(江苏)有限公司
* @since 2026-05-07 03:46:40
*/
@Service
@RequiredArgsConstructor
public class CustomerContactServiceImpl extends ServiceImpl implements CustomerContactService {
private final CustomerContactMapper customerContactMapper;
@Override
public IPage listPage(Page page, CustomerContactDto customerContactDto) {
return customerContactMapper.listPage(page,customerContactDto);
}
@Override
public Boolean add(CustomerContactDto customerContact) {
List idList = customerContact.getCustomerIdList();
if (idList != null && !idList.isEmpty()) {
String result = idList.stream()
.filter(Objects::nonNull)
.distinct()
.map(String::valueOf) // 将 Long 转换为 String
.collect(Collectors.joining(","));
customerContact.setCustomerId(result);
}
return save(customerContact);
}
@Override
public Boolean updateCustomerContact(CustomerContactDto customerContact) {
List idList = customerContact.getCustomerIdList();
if (idList != null && !idList.isEmpty()) {
String result = idList.stream()
.filter(Objects::nonNull)
.distinct()
.map(String::valueOf) // 将 Long 转换为 String
.collect(Collectors.joining(","));
customerContact.setCustomerId(result);
}
return updateById(customerContact);
}
@Override
public CustomerContactDto getCustomerContactDtoById(Long id) {
CustomerContact byId = getById(id);
CustomerContactDto customerContactDto = new CustomerContactDto();
BeanUtils.copyProperties(byId, customerContactDto);
if (byId != null && byId.getCustomerId() != null && !byId.getCustomerId().isEmpty()) {
List idList = Arrays.stream(byId.getCustomerId().split(","))
.map(String::trim) // 去除可能的空格
.filter(s -> !s.isEmpty()) // 过滤空字符串
.map(Long::parseLong) // 转换为 Long
.collect(Collectors.toList());
customerContactDto.setCustomerIdList(idList);
} else {
customerContactDto.setCustomerIdList(new ArrayList<>());
}
return customerContactDto;
}
}