package incheon.product.geoview2d.basemap.service.impl;

import incheon.product.geoview2d.basemap.mapper.BasemapMapper;
import incheon.product.geoview2d.basemap.service.BasemapService;
import incheon.product.geoview2d.basemap.vo.BasemapVO;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * 배경지도 서비스 구현체.
 */
@Service("productBasemapService")
public class BasemapServiceImpl extends EgovAbstractServiceImpl implements BasemapService {

    @Resource(name = "productBasemapMapper")
    private BasemapMapper basemapMapper;

    @Override
    public BasemapVO getById(String bcrnLyrId) {
        return basemapMapper.findById(bcrnLyrId);
    }

    @Override
    public List<BasemapVO> getActiveList() {
        return basemapMapper.findAll();
    }

    @Override
    public List<BasemapVO> getList(String searchKeyword, int page, int size) {
        int offset = (page - 1) * size;
        return basemapMapper.findAllWithPaging(searchKeyword, size, offset);
    }

    @Override
    public int getTotalCount(String searchKeyword) {
        return basemapMapper.count(searchKeyword);
    }

    @Override
    @Transactional
    public void create(BasemapVO basemap) {
        basemapMapper.insert(basemap);
    }

    @Override
    @Transactional
    public void update(BasemapVO basemap) {
        basemapMapper.update(basemap);
    }

    @Override
    @Transactional
    public void delete(String bcrnLyrId) {
        basemapMapper.delete(bcrnLyrId);
    }
}
