FeatureServiceImpl.java 8.46 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.*;
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<SyFeature> 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<SyFeature> page = (Page<SyFeature>) featureMapper.selectByExample(example);
        List<FeatureResultMsg> featureResultMsgs = new ArrayList<>();

        List<SyFeature> 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<Integer> integers = deployFeatureService.selectByFeatureId(syFeature.getId());
                List<String> 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<Integer> 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<SyPersonnel> 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<SyFeature> page = (Page<SyFeature>) 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<Map<String, String>> findAllName() {
        List<Map<String, String>> list = new ArrayList<>();
        List<SyFeature> syFeatures = findAll();
        if (syFeatures != null) {
            int size = syFeatures.size();
            for (int i = 0; i < size; i++) {
                Map<String, String> 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;
    }
}