package com.webmanage.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.webmanage.entity.Product;
|
import com.webmanage.mapper.ProductMapper;
|
import com.webmanage.service.ProductService;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import java.util.List;
|
|
/**
|
* 产品服务实现类
|
*
|
* @author webmanage
|
* @date 2024-08-07
|
*/
|
@Service
|
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
|
|
@Override
|
public List<Product> getProductList(String productName, String productType, String status, Long providerId) {
|
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
|
// 添加查询条件
|
if (StringUtils.hasText(productName)) {
|
queryWrapper.like(Product::getProductName, productName);
|
}
|
if (StringUtils.hasText(productType)) {
|
queryWrapper.eq(Product::getProductType, productType);
|
}
|
if (StringUtils.hasText(status)) {
|
queryWrapper.eq(Product::getStatus, status);
|
}
|
if (providerId != null) {
|
queryWrapper.eq(Product::getProviderId, providerId);
|
}
|
|
// 按创建时间倒序排列
|
queryWrapper.orderByDesc(Product::getCreatedAt);
|
|
return this.list(queryWrapper);
|
}
|
|
@Override
|
public Product getProductById(Long id) {
|
return this.getById(id);
|
}
|
|
@Override
|
public boolean createProduct(Product product) {
|
// 检查产品编码是否已存在
|
if (checkProductCodeExists(product.getProductCode(), null)) {
|
throw new RuntimeException("产品编码已存在");
|
}
|
|
return this.save(product);
|
}
|
|
@Override
|
public boolean updateProduct(Product product) {
|
// 检查产品编码是否已存在(排除当前产品)
|
if (checkProductCodeExists(product.getProductCode(), product.getId())) {
|
throw new RuntimeException("产品编码已存在");
|
}
|
|
return this.updateById(product);
|
}
|
|
@Override
|
public boolean deleteProduct(Long id) {
|
return this.removeById(id);
|
}
|
|
@Override
|
public boolean updateProductStatus(Long id, String status) {
|
LambdaUpdateWrapper<Product> updateWrapper = new LambdaUpdateWrapper<>();
|
updateWrapper.eq(Product::getId, id)
|
.set(Product::getStatus, status);
|
|
return this.update(updateWrapper);
|
}
|
|
@Override
|
public boolean updateProductAuditStatus(Long id, String auditStatus) {
|
LambdaUpdateWrapper<Product> updateWrapper = new LambdaUpdateWrapper<>();
|
updateWrapper.eq(Product::getId, id)
|
.set(Product::getAuditStatus, auditStatus);
|
|
return this.update(updateWrapper);
|
}
|
|
@Override
|
public boolean checkProductCodeExists(String productCode, Long excludeId) {
|
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(Product::getProductCode, productCode);
|
|
if (excludeId != null) {
|
queryWrapper.ne(Product::getId, excludeId);
|
}
|
|
return this.count(queryWrapper) > 0;
|
}
|
}
|