VehicleDbServiceImpl.java 5.55 KB
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<SyVehicleDb> 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<SyVehicleDb> page = (Page<SyVehicleDb>) 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<Integer> 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<SyVehicleDb> page = (Page<SyVehicleDb>) vehicleDbMapper.selectByExample(example);
		return new PageResult(page.getTotal(), page.getResult());
	}

	@Override
	public int updateCountById(SyVehicleDb feature) {

		return vehicleDbMapper.updateByPrimaryKeySelective(feature);
	}

	@Override
	public List<Map<String, String>> findAllName() {
		List<Map<String, String>> list = new ArrayList<>();
		List<SyVehicleDb> syVehicleDbs = findAll();
		if (syVehicleDbs != null) {
			int size = syVehicleDbs.size();
			for (int i = 0; i < size; i++) {
				Map<String, String> 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;
	}

}