package com.ruoyi.sy.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.sy.domain.ArdAccessFence; import com.ruoyi.sy.domain.ArdSyCar; import com.ruoyi.sy.domain.ArdSyCarLock; import com.ruoyi.sy.domain.ArdSyCarRtu; import com.ruoyi.sy.mapper.ArdAccessFenceMapper; import com.ruoyi.sy.mapper.ArdSyCarLockMapper; import com.ruoyi.sy.mapper.ArdSyCarMapper; import com.ruoyi.sy.mapper.ArdSyCarRtuMapper; import com.ruoyi.sy.service.ArdSyCarLockService; import com.ruoyi.sy.vo.CarLockVo; import com.ruoyi.sy.vo.CarVo; import com.ruoyi.sy.vo.RtuVo; import com.ruoyi.system.mapper.SysDeptMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * @author Administrator */ @Service public class ArdSyCarLockServiceImpl implements ArdSyCarLockService { @Autowired private ArdSyCarMapper ardSyCarMapper; @Autowired private SysDeptMapper sysDeptMapper; @Autowired private ArdSyCarRtuMapper rtuMapper; @Autowired private ArdSyCarLockMapper lockMapper; @Autowired private ArdAccessFenceMapper ardAccessFenceMapper; @Override public List car() { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.isNull("reserved_1").or().eq("reserved_1",""); List ardSyCars= ardSyCarMapper.selectList(queryWrapper); return carAnalysis(ardSyCars); } @Override public List carAddOne(String carId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.isNull("reserved_1").or().eq("reserved_1","").or().eq("car_id",carId); List ardSyCars= ardSyCarMapper.selectList(queryWrapper); return carAnalysis(ardSyCars); } @Override public int addRtu(String carId) { ArdSyCarRtu ardSyCarRtu = new ArdSyCarRtu(); ardSyCarRtu.setId(String.valueOf(UUID.randomUUID())); ardSyCarRtu.setCarId(carId); ardSyCarRtu.setTopicPublish("/p"+carId+"/"); ardSyCarRtu.setTopicSubscribe("/p"+carId+"/set/"); rtuMapper.insert(ardSyCarRtu); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("car_id",carId); ArdSyCar ardSyCar = ardSyCarMapper.selectOne(queryWrapper); ardSyCar.setReserved1(ardSyCarRtu.getId()); return ardSyCarMapper.updateById(ardSyCar); } @Override public List carList() { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.ne("reserved_1",""); List ardSyCars = ardSyCarMapper.selectList(queryWrapper); return carAnalysis(ardSyCars); } @Override public int delCar(String id) { rtuMapper.deleteById(id); QueryWrapper queryWrapper1 = new QueryWrapper<>(); queryWrapper1.eq("rtu_id",id); lockMapper.delete(queryWrapper1); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("reserved_1",id); ArdSyCar ardSyCar = ardSyCarMapper.selectOne(queryWrapper); ardSyCar.setReserved1(""); return ardSyCarMapper.updateById(ardSyCar); } @Override public CarVo carOne(String carId) { CarVo carVo = new CarVo(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("car_id",carId); ArdSyCar ardSyCar= ardSyCarMapper.selectOne(queryWrapper); carVo.setCarId(ardSyCar.getCarId()); carVo.setCarPicture(ardSyCar.getCarPicture()); carVo.setCarType(ardSyCar.getCarType()); carVo.setDeptId(ardSyCar.getDeptId()); SysDept sysDept = sysDeptMapper.selectById(ardSyCar.getDeptId()); carVo.setDeptName(sysDept.getDeptName()); carVo.setRtu(ardSyCar.getReserved1()); return carVo; } @Override public List carLock(String rtu) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("rtu_id",rtu); return lockMapper.selectList(queryWrapper); } @Override public int addUpdLock(List ardSyCarLock) { int num = 0; if(ardSyCarLock.size()>0){ String rtu = ardSyCarLock.get(0).getRtuId(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("rtu_id",rtu); lockMapper.delete(queryWrapper); for (int i = 0; i < ardSyCarLock.size(); i++) { ArdSyCarLock lock = ardSyCarLock.get(i); if(lock.getId()==null){ lock.setId(String.valueOf(UUID.randomUUID())); } num += lockMapper.insert(lock); } } return num; } @Override public RtuVo updRtu(String carId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("car_id",carId); ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper); RtuVo rtuVo = new RtuVo(); QueryWrapper queryWrapper1 = new QueryWrapper<>(); queryWrapper1.eq("car_id",carId); ArdSyCar ardSyCar= ardSyCarMapper.selectOne(queryWrapper1); rtuVo.setCarId(ardSyCar.getCarId()); rtuVo.setCarPicture(ardSyCar.getCarPicture()); rtuVo.setCarType(ardSyCar.getCarType()); rtuVo.setDeptId(ardSyCar.getDeptId()); SysDept sysDept = sysDeptMapper.selectById(ardSyCar.getDeptId()); rtuVo.setDeptName(sysDept.getDeptName()); rtuVo.setRtu(ardSyCar.getReserved1()); rtuVo.setTopicPublish(ardSyCarRtu.getTopicPublish()); rtuVo.setTopicSubscribe(ardSyCarRtu.getTopicSubscribe()); return rtuVo; } @Override public int updRtuCar(ArdSyCarRtu ardSyCarRtu) { rtuMapper.updateById(ardSyCarRtu); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("car_id",ardSyCarRtu.getCarId()); ArdSyCar ardSyCar = ardSyCarMapper.selectOne(queryWrapper); ardSyCar.setReserved1(ardSyCarRtu.getId()); return ardSyCarMapper.updateById(ardSyCar); } @Override public int access(ArdAccessFence ardAccessFence) { int num = 0; String carId = ardAccessFence.getCarId(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("car_id",carId); ArdAccessFence ardAccessFence1 = ardAccessFenceMapper.selectOne(queryWrapper); if(ardAccessFence1==null){ num = ardAccessFenceMapper.insert(ardAccessFence); } return num; } public List carAnalysis(List ardSyCars){ List list = new ArrayList<>(); for (int i = 0; i < ardSyCars.size(); i++) { ArdSyCar ardSyCar = ardSyCars.get(i); CarVo carVo = new CarVo(); carVo.setCarId(ardSyCar.getCarId()); carVo.setCarPicture(ardSyCar.getCarPicture()); carVo.setCarType(ardSyCar.getCarType()); carVo.setDeptId(ardSyCar.getDeptId()); SysDept sysDept = sysDeptMapper.selectById(ardSyCar.getDeptId()); carVo.setDeptName(sysDept.getDeptName()); carVo.setRtu(ardSyCar.getReserved1()); list.add(carVo); } return list; } }