package com.om.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.om.entity.dto.DistributorDTO;
import com.om.entity.dto.DistributorQueryPageDTO;
import com.om.entity.po.Brand;
import com.om.entity.po.Distributor;
import com.om.entity.vo.DistributorQueryPageVO;
import com.om.entity.vo.DistributorVO;
import com.om.exception.BadReqException;
import com.om.mapper.DistributorMapper;
import com.om.service.IDistributorService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.om.utils.Result;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
*
* 修理厂信息表 服务实现类
*
*
* @author bmmx
* @since 2024-02-08
*/
@Service
public class DistributorServiceImpl extends ServiceImpl implements IDistributorService {
@Override
public Result createDistributor(DistributorDTO dto) {
//判断是否为空
if (BeanUtil.isEmpty(dto)){
throw new BadReqException("参数为空");
}
Distributor distributor = BeanUtil.copyProperties(dto, Distributor.class);
LocalDateTime now = LocalDateTime.now();
distributor.setCreateTime(now);
distributor.setUpdateTime(now);
//保存
this.save(distributor);
return Result.ok();
}
@Override
public Result queryDistributorById(Integer id) {
//根据id查询
Distributor distributor = this.getById(id);
//判断是否为空
if (BeanUtil.isEmpty(distributor)){
throw new BadReqException("该维修厂不存在");
}
//封装vo
DistributorVO distributorVO = BeanUtil.copyProperties(distributor, DistributorVO.class);
return Result.ok(distributorVO);
}
@Override
public Result> queryList() {
//查询集合
List list = this.list();
if (CollectionUtil.isEmpty(list)){
return Result.ok(Collections.emptyList());
}
List distributorVOS = BeanUtil.copyToList(list, DistributorVO.class);
return Result.ok(distributorVOS);
}
@Override
public Result upStatus(Integer id, Integer status) {
//根据id查询
Distributor distributor = this.getById(id);
if (BeanUtil.isEmpty(distributor)){
throw new BadReqException("该维修厂不存在");
}
//修改状态
distributor.setEnableStatus(status);
this.updateById(distributor);
return Result.ok();
}
@Override
public Result updateDistributor(DistributorDTO dto) {
//根据id查询
Distributor distributor = this.getById(dto.getId());
if (BeanUtil.isEmpty(distributor)){
throw new BadReqException("该维修厂不存在");
}
BeanUtil.copyProperties(dto,distributor);
distributor.setUpdateTime(LocalDateTime.now());
//修改
this.updateById(distributor);
return Result.ok();
}
@Override
public Result queryPageList(DistributorQueryPageDTO dto) {
Integer pageSize = dto.getPageSize();
Integer pageIndex = dto.getPageIndex();
String searchName = dto.getSearchName();
String searchTelephone = dto.getSearchTelephone();
//分页查询
Page page = this.lambdaQuery()
.like(searchName != null, Distributor::getCompany, searchName)
.like(searchTelephone != null, Distributor::getTelephone, searchTelephone)
.orderByDesc(Distributor::getCreateTime)
.page(new Page<>(pageIndex, pageSize));
//封装vo
DistributorQueryPageVO vo = new DistributorQueryPageVO();
vo.setCurrent((int) page.getCurrent());
vo.setSize((int) page.getSize());
vo.setPages((int) page.getPages());
vo.setTotal((int) page.getTotal());
if (searchName !=null || searchTelephone !=null){
vo.setSearchCount(true);
}
List records = page.getRecords();
List distributorVOS = BeanUtil.copyToList(records, DistributorVO.class);
vo.setRecords(distributorVOS);
return Result.ok(vo);
}
}