BaseServiceImpl.java 1.89 KB
package com.bsth.service.impl;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.bsth.common.ResponseCode;
import com.bsth.entity.search.CustomerSpecs;
import com.bsth.repository.BaseRepository;
import com.bsth.service.BaseService;

public class BaseServiceImpl<T, ID extends Serializable> implements BaseService<T, ID>{

	@Autowired
	private BaseRepository<T, ID> baseRepository;
	
	Logger logger = LoggerFactory.getLogger(this.getClass());
	
	@Override
	public Page<T> list(Map<String, Object> map, Pageable pageable) {
		return this.baseRepository.findAll(new CustomerSpecs<T>(map), pageable);
	}
	
	@Override
	public Iterable<T> list(Map<String, Object> map) {
		return this.baseRepository.findAll(new CustomerSpecs<T>(map));
	}
	
	@Override
	public T findById(ID id) {
		return baseRepository.findOne(id);
	}

	@Override
	public Map<String, Object> save(T t) {
		Map<String, Object> map = new HashMap<>();
		try{
			baseRepository.save(t);
			map.put("status", ResponseCode.SUCCESS);
			map.put("t", t);
		}catch(Exception e){
			map.put("status", ResponseCode.ERROR);
			logger.error("save erro.", e);
		}
		return map;
	}
	

	@Override
	public Iterable<T> findAll() {
		return baseRepository.findAll();
	}

	@Override
	public Map<String, Object> delete(ID id) {
		Map<String, Object> map = new HashMap<>();
		try{
			baseRepository.delete(id);
			map.put("status", ResponseCode.SUCCESS);
		}catch(DataIntegrityViolationException de){
			map.put("status", ResponseCode.ERROR);
			map.put("msg", "“完整性约束”校验失败,请检查要删除的对象是否存在外键约束");
		}
		return map;
	}
}