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.*; import com.objecteye.mapper.SyFeatureMapper; import com.objecteye.mapper.SyPersonnelMapper; import com.objecteye.service.DeployService; import com.objecteye.service.FeatureService; import com.objecteye.service.PersonnelService; import org.springframework.beans.factory.annotation.Autowired; 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 FeatureServiceImpl implements FeatureService { @Autowired private SyFeatureMapper featureMapper; @Autowired private SyPersonnelMapper syPersonnelMapper; @Autowired private PersonnelService personnelService; @Autowired private DeployService deployService; @Autowired private RedisTemplate redisTemplate; @Override public List findAll() { SyFeatureExample example = new SyFeatureExample(); SyFeatureExample.Criteria criteria = example.createCriteria(); criteria.andIsDeleteEqualTo(0); criteria.andIsSingleEqualTo(0); return featureMapper.selectByExample(example); } /** * 按分页查询 */ @Override public PageResult findPage(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); SyFeatureExample example = new SyFeatureExample(); SyFeatureExample.Criteria criteria = example.createCriteria(); criteria.andIsDeleteEqualTo(0); criteria.andIsSingleEqualTo(0); Page page = (Page) featureMapper.selectByExample(example); List featureResultMsgs = new ArrayList<>(); List result = page.getResult(); if (result != null && result.size() > 0) { int size = result.size(); for (int i = 0; i < size; i++) { FeatureResultMsg featureResultMsg = new FeatureResultMsg(); SyFeature syFeature = result.get(i); featureResultMsg.setId(syFeature.getId()); featureResultMsg.setName(syFeature.getName()); featureResultMsg.setCount(syFeature.getCount()); featureResultMsg.setCreateDate(syFeature.getCreateDate()); /*List integers = deployFeatureService.selectByFeatureId(syFeature.getId()); List deployName = new ArrayList<>(); if(integers != null && integers.size() > 0){ int size1 = integers.size(); for (int j = 0; j < size1; j++) { Integer integer = integers.get(j); SyDeploy deploy = deployService.findOne(integer); deployName.add(deploy.getName()); } } featureResultMsg.setDeplyNameList(deployName); */ featureResultMsgs.add(featureResultMsg); } return new PageResult(page.getPages(), featureResultMsgs); } return null; } /** * 增加 */ @Override public int add(SyFeature feature) { //Jedis conn = JedisUtil.getConn(); String strDate = DateUtil.now(); feature.setCount(0); feature.setCreateDate(strDate); feature.setUpdateDate(strDate); feature.setIsDelete(0); feature.setIsSingle(0); /*String porlib = conn.get("LIBRARY_DB_PORLIB"); if (null == porlib) { GlobalUtil.createFaceLib("PORLIB","PORLIB","存放人像库"); conn.set("PORLIB","PORLIB"); }*/ int insert = featureMapper.insert(feature); return insert; } @Override public int addSingle(SyFeature feature) { /*Jedis conn = JedisUtil.getConn(); String strDate = DateUtil.now(); feature.setCount(1); feature.setCreateDate(strDate); feature.setUpdateDate(strDate); feature.setIsDelete(0); feature.setIsSingle(1); String porlib = conn.get("LIBRARY_DB_PORLIB"); if (null == porlib) { GlobalUtil.createFaceLib("PORLIB","PORLIB","存放人像库"); conn.set("PORLIB","PORLIB"); } featureMapper.insert(feature);*/ return 0; } /** * 修改 */ @Override public int update(SyFeature feature) { String now = DateUtil.now(); feature.setUpdateDate(now); return featureMapper.updateByPrimaryKeySelective(feature); } /** * 根据ID获取实体 * * @param id * @return */ @Override public SyFeature findOne(int id) { return featureMapper.selectByPrimaryKey(id); } /** * 批量删除 */ @Override public void delete(int[] ids) { for (int id : ids) { List deployList = deployService.getDeployListByLibAndDeployType(id, 2); SyFeature syFeature = featureMapper.selectByPrimaryKey(id); syFeature.setIsDelete(1); SyPersonnelExample example = new SyPersonnelExample(); SyPersonnelExample.Criteria criteria = example.createCriteria(); criteria.andFidEqualTo(id); List syPersonnels = syPersonnelMapper.selectByExample(example); if (syPersonnels != null && syPersonnels.size() > 0) { for (SyPersonnel syPersonnel : syPersonnels) { syPersonnel.setStatus(1); syPersonnelMapper.updateByPrimaryKey(syPersonnel); redisTemplate.opsForHash().delete("personUrl", syPersonnel.getId()); } } if (deployList != null && deployList.size() > 0) { int size = deployList.size(); for (int i = 0; i < size; i++) { Integer deployId = deployList.get(i); String key = deployId + "|" + id; redisTemplate.opsForHash().delete(key); int[] deploy = {deployId}; deployService.delete(deploy); } } featureMapper.updateByPrimaryKeySelective(syFeature); } } @Override public PageResult findPage(SyFeature feature, int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); SyFeatureExample example = new SyFeatureExample(); SyFeatureExample.Criteria criteria = example.createCriteria(); criteria.andIsDeleteEqualTo(0); if (feature != null) { if (feature.getName() != null && feature.getName().length() > 0) { criteria.andNameLike("%" + feature.getName() + "%"); } if (feature.getCreateDate() != null && feature.getCreateDate().length() > 0) { criteria.andCreateDateLike("%" + feature.getCreateDate() + "%"); } if (feature.getUpdateDate() != null && feature.getUpdateDate().length() > 0) { criteria.andUpdateDateLike("%" + feature.getUpdateDate() + "%"); } if (feature.getDescription() != null && feature.getDescription().length() > 0) { criteria.andDescriptionLike("%" + feature.getDescription() + "%"); } } Page page = (Page) featureMapper.selectByExample(example); return new PageResult(page.getTotal(), page.getResult()); } /** * @param feature * @return */ @Override public int updateCountById(SyFeature feature) { return featureMapper.updateByPrimaryKeySelective(feature); } @Override public List> findAllName() { List> list = new ArrayList<>(); List syFeatures = findAll(); if (syFeatures != null) { int size = syFeatures.size(); for (int i = 0; i < size; i++) { Map map = new HashMap<>(16); SyFeature syFeature = syFeatures.get(i); String name = syFeature.getName(); int id = syFeature.getId(); map.put("value", id + ""); map.put("name", name); list.add(map); } return list; } return null; } }