package com.objecteye.service.impl; import cn.hutool.core.date.DateUtil; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.objecteye.entity.PageResult; import com.objecteye.entity.SyVehicleDb; import com.objecteye.entity.SyVehicleDbExample; import com.objecteye.entity.UploadVehicleDbResult; import com.objecteye.mapper.SyVehicleDbMapper; import com.objecteye.service.DeployService; import com.objecteye.service.VehicleDbService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 服务实现层 * * @author Administrator */ @Service public class VehicleDbServiceImpl implements VehicleDbService { @Autowired private SyVehicleDbMapper vehicleDbMapper; @Autowired private MongoTemplate mongoTemplate; @Autowired private RedisTemplate redisTemplate; @Autowired private DeployService deployService; /** * 查询全部 */ @Override public List findAll() { SyVehicleDbExample example = new SyVehicleDbExample(); SyVehicleDbExample.Criteria criteria = example.createCriteria(); criteria.andIsDeleteEqualTo(0); return vehicleDbMapper.selectByExample(example); } /** * 按分页查询 */ @Override public PageResult findPage(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); SyVehicleDbExample example = new SyVehicleDbExample(); SyVehicleDbExample.Criteria criteria = example.createCriteria(); criteria.andIsDeleteEqualTo(0); Page page = (Page) vehicleDbMapper.selectByExample(example); return new PageResult(page.getPages(), page.getResult()); } /** * 增加 */ @Override public Integer add(SyVehicleDb vehicleDb) { String strDate = DateUtil.now(); vehicleDb.setCount(0); vehicleDb.setCreateDate(strDate); vehicleDb.setUpdateDate(strDate); vehicleDb.setIsDelete(0); return vehicleDbMapper.insert(vehicleDb); } /** * 修改 */ @Override public Integer update(SyVehicleDb vehicleDb) { String now = DateUtil.now(); vehicleDb.setUpdateDate(now); return vehicleDbMapper.updateByPrimaryKeySelective(vehicleDb); } /** * 根据ID获取实体 * * @param id * @return */ @Override public SyVehicleDb findOne(int id) { return vehicleDbMapper.selectByPrimaryKey(id); } /** * 批量删除 */ @Override public void delete(int[] ids) { for (int id : ids) { List deployList = deployService.getDeployListByLibAndDeployType(id, 2); UploadVehicleDbResult uploadVehicleDbResult = mongoTemplate.findOne(Query.query(new Criteria("id").is(id)), UploadVehicleDbResult.class); if (uploadVehicleDbResult != null) { String id1 = uploadVehicleDbResult.getId(); String plateNum = uploadVehicleDbResult.getPlateNum(); float plateScore = uploadVehicleDbResult.getPlateScore(); if (plateScore > 0.9) { redisTemplate.opsForHash().delete("vehicleId", plateNum); } redisTemplate.opsForHash().delete("vehicleId", id1); redisTemplate.opsForHash().delete("vehicleUrl", id1); mongoTemplate.remove(uploadVehicleDbResult); if (deployList != null && deployList.size() > 0) { int size = deployList.size(); for (int i = 0; i < size; i++) { Integer deployId = deployList.get(i); int[] deploy = {deployId}; deployService.delete(deploy); } } } SyVehicleDb syVehicleDb = vehicleDbMapper.selectByPrimaryKey(id); syVehicleDb.setIsDelete(1); vehicleDbMapper.updateByPrimaryKeySelective(syVehicleDb); } } @Override public PageResult findPage(SyVehicleDb vehicleDb, int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); SyVehicleDbExample example = new SyVehicleDbExample(); SyVehicleDbExample.Criteria criteria = example.createCriteria(); if (vehicleDb != null) { if (vehicleDb.getVehicleName() != null && vehicleDb.getVehicleName().length() > 0) { criteria.andVehicleNameLike("%" + vehicleDb.getVehicleName() + "%"); } if (vehicleDb.getCreateDate() != null && vehicleDb.getCreateDate().length() > 0) { criteria.andCreateDateLike("%" + vehicleDb.getCreateDate() + "%"); } if (vehicleDb.getUpdateDate() != null && vehicleDb.getUpdateDate().length() > 0) { criteria.andUpdateDateLike("%" + vehicleDb.getUpdateDate() + "%"); } if (vehicleDb.getDescription() != null && vehicleDb.getDescription().length() > 0) { criteria.andDescriptionLike("%" + vehicleDb.getDescription() + "%"); } } Page page = (Page) vehicleDbMapper.selectByExample(example); return new PageResult(page.getTotal(), page.getResult()); } @Override public int updateCountById(SyVehicleDb feature) { return vehicleDbMapper.updateByPrimaryKeySelective(feature); } @Override public List> findAllName() { List> list = new ArrayList<>(); List syVehicleDbs = findAll(); if (syVehicleDbs != null) { int size = syVehicleDbs.size(); for (int i = 0; i < size; i++) { Map map = new HashMap<>(16); SyVehicleDb syVehicleDb = syVehicleDbs.get(i); String name = syVehicleDb.getVehicleName(); int id = syVehicleDb.getId(); map.put("value", id + ""); map.put("name", name); list.add(map); } return list; } return null; } }