package com.muyu.car.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.car.domain.CarCompany;
import com.muyu.car.domain.SysCar;
import com.muyu.car.domain.dto.CarDTO;
import com.muyu.car.domain.vo.CarVO;
import com.muyu.car.mapper.SysCarMapper;
import com.muyu.car.service.SysCarService;
import com.muyu.common.redis.service.RedisService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author  zmw
 * @description: 配置plus业务实现层
 * @Date 2023-11-13 上午 10:06
 */
@Service
public class SysCarServiceImpl extends ServiceImpl<SysCarMapper, CarVO>
        implements SysCarService {

    @Autowired
    private RedisService redisService;
    @Autowired
    private SysCarMapper carMapper;

    /**
     * 车辆列表
     * @param carVO
     * @return
     */
    @Override
    public List<CarVO> carList(CarVO carVO)  {

//        MPJLambdaWrapper<CarVO> queryWrapper = new MPJLambdaWrapper<>();
//         carMapper.selectJoinList(CarVO.class,
//                queryWrapper.selectAll(CarVO.class)// 主表查询所有
//                        .select(Type::getTypeName)// 获取附表的字段
//                        .select(Type::getEnergyType)
//                        .select(Type::getGearType)
//                        .leftJoin(Type.class,Type::getTypeId,Car::getTypeId)// 左链接
//                );
//        // vin码--精确
//        if(StringUtils.isNotEmpty(carVO.getCarVin())){
//            queryWrapper.eq(CarVO::getCarVin,carVO.getCarVin());
//        }
//        // 车辆型号
//        if(StringUtils.isNotEmpty(carVO.getTypeName())){
//            queryWrapper.like(CarVO::getTypeName,carVO.getTypeName());
//        }
//        // 能源类型 1.电动 2.纯油 3.混动
//        if(carVO.getEnergyType()>0){
//            queryWrapper.eq(CarVO::getEnergyType,carVO.getEnergyType());
//        }
//        // 档的类型 1.手动  2.自动
//        if(carVO.getGearType()>0){
//            queryWrapper.eq(CarVO::getGearType,carVO.getGearType());
//        }
//        // 自定义列表查询
////        @Select("")
////        this.list(queryWrapper);
//        // mybatis列表查询
//        //return carMapper.carList(queryWrapper);
//        // 单表的列表查询
//        this.list(
//                new LambdaQueryWrapper<CarVO>()
//                        .eq(StringUtils.isNotEmpty(carVO.getCarVin()),CarVO::getCarVin,carVO.getCarVin())
//                        .eq(carVO.getEnergyType()>0,CarVO::getEnergyType,carVO.getEnergyType())
//                        .eq(carVO.getGearType()>0,CarVO::getGearType,carVO.getGearType())
//                        .like(StringUtils.isNotEmpty(carVO.getTypeName()),CarVO::getTypeName,carVO.getTypeName())
//        );
//        return this.list(queryWrapper);
        return null;
    }

    /**
     * 车辆添加
     * @param carVO
     */
    @Override
    public void insertCar(CarVO carVO) {
        carMapper.insert(carVO);
    }

//    /**
//     * 车辆修改
//     * @param carVO
//     */
//    @Override
//    public void updataCar(CarVO carVO) {
//        carMapper.updateById(carVO);
//    }

    /**
     * 车辆列表2
     * @param carDTO
     * @return
     */
    @Override
    public List<CarVO> CarListShow(CarDTO carDTO) {
        return carMapper.CarListShow(carDTO);
    }

    /**
     * 通过id查询
     * @param carId
     * @return
     */
    @Override
    public List<CarVO> CarListShowByCarId(Long carId) {
        return carMapper.CarListShowByCarId(carId);
    }


    /**
     * 车辆删除
     * @param ids
     */
    @Override
    public void deleteCar(List<Long> ids) {
        carMapper.deleteBatchIds(ids);
    }

}
