liukangdong
2024-05-21 4658e9353f7aa76a833d36ed988d77bf362ad0ea
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -1,11 +1,16 @@
package com.doumee.service.business.impl;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CarUseBookMapper;
import com.doumee.dao.business.CarsMapper;
import com.doumee.dao.business.join.CarUseBookJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.CarUseBookService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,6 +23,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -33,8 +39,54 @@
    @Autowired
    private CarUseBookMapper carUseBookMapper;
    @Autowired
    private CarUseBookJoinMapper carUseBookJoinMapper;
    @Autowired
    private CarsMapper carsMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Override
    public Integer create(CarUseBook carUseBook) {
        if(Objects.isNull(carUseBook)
            || Objects.isNull(carUseBook.getCarId())
                || Objects.isNull(carUseBook.getStartTime())
                || Objects.isNull(carUseBook.getEndTime())
                || Objects.isNull(carUseBook.getCreator())
                || Objects.isNull(carUseBook.getMemberId())
                || Objects.isNull(carUseBook.getPlanUseDate())
                || Objects.isNull(carUseBook.getType())
                || StringUtils.isEmpty(carUseBook.getMemberIds())
                || StringUtils.isEmpty(carUseBook.getMemberNames())
                || StringUtils.isEmpty(carUseBook.getContent())
                || StringUtils.isEmpty(carUseBook.getAddr())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        carUseBook.setStatus(Constants.ZERO);
        carUseBook.setCreateDate(new Date());
        Cars cars = carsMapper.selectById(carUseBook.getCarId());
        if(Objects.isNull(cars)||!cars.getType().equals(Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"车辆信息异常");
        }
        //TODO 查询车辆提交时间是否存在冲突的预约记录
        List<CarUseBook> carUseBookList = carUseBookJoinMapper.selectJoinList(CarUseBook.class,
                new MPJLambdaWrapper<CarUseBook>()
                        .selectAll(CarUseBook.class)
                        .selectAs(Member::getName,CarUseBook::getMemberName)
                        .selectAs(Member::getPhone,CarUseBook::getMemberMobile)
                        .leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
                        .eq(CarUseBook::getId,carUseBook.getCarId())
                        .in(CarUseBook::getStatus,0,1,2)
//                        .in( " ( '"+carUseBook.getStartTime()+"' < t.start_time AND '"+ carUseBook.getEndTime()+"'> t.end_time ) " )
        );
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(carUseBookList)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在车辆预约时间与已预约时间冲突~");
        }
        carUseBookMapper.insert(carUseBook);
        return carUseBook.getId();
    }
@@ -176,4 +228,49 @@
        QueryWrapper<CarUseBook> wrapper = new QueryWrapper<>(carUseBook);
        return carUseBookMapper.selectCount(wrapper);
    }
    /**
     * 查询车辆预约记录
     * @param carUseBook
     * @return
     */
    @Override
    public List<CarUseBook> carUseBookList(CarUseBook carUseBook){
        if(Objects.isNull(carUseBook)
            || Objects.isNull(carUseBook.getCarId())
            || Objects.isNull(carUseBook.getStartTime())
            || Objects.isNull(carUseBook.getEndTime())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        List<CarUseBook> carUseBookList = carUseBookJoinMapper.selectJoinList(CarUseBook.class,
                new MPJLambdaWrapper<CarUseBook>()
                        .selectAll(CarUseBook.class)
                        .selectAs(Member::getName,CarUseBook::getMemberName)
                        .selectAs(Member::getPhone,CarUseBook::getMemberMobile)
                        .leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
                        .eq(CarUseBook::getId,carUseBook.getCarId())
                        .in(CarUseBook::getStatus,0,1,2)
//                        .in( " ( '"+carUseBook.getStartTime()+"' < t.start_time AND '"+ carUseBook.getEndTime()+"'> t.end_time ) " )
        );
        return carUseBookList;
    }
//    public void checkDateUse(Integer cars,String dateDay){
//
//        SystemDictData workStart = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.WORK_START);
//        SystemDictData workEnd = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.WORK_END);
//        SystemDictData interval = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INTERVAL);
//
//        Date start = DateUtil.StringToDate(dateDay + workStart.getCode(),"yyyy-MM-dd HH:mm:ss");
//
//
//
//
//
//    }
}