package com.ruoyi.project.religion.place.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.project.religion.place.mapper.ReligionPlaceMapper;
import com.ruoyi.project.religion.place.domain.ReligionPlace;
import com.ruoyi.project.religion.place.service.IReligionPlaceService;

/**
 * 宗教活动场所Service业务层处理
 * 
 * @author ruoyi
 */
@Service
public class ReligionPlaceServiceImpl implements IReligionPlaceService 
{
    @Autowired
    private ReligionPlaceMapper religionPlaceMapper;

    /**
     * 查询宗教活动场所列表
     * 
     * @param place 宗教活动场所
     * @return 宗教活动场所
     */
    @Override
    public List<ReligionPlace> selectPlaceList(ReligionPlace place)
    {
        return religionPlaceMapper.selectPlaceList(place);
    }

    /**
     * 根据场所ID查询宗教活动场所
     * 
     * @param placeId 场所ID
     * @return 宗教活动场所
     */
    @Override
    public ReligionPlace selectPlaceById(Long placeId)
    {
        return religionPlaceMapper.selectPlaceById(placeId);
    }

    /**
     * 新增宗教活动场所
     * 
     * @param place 宗教活动场所
     * @return 结果
     */
    @Override
    public int insertPlace(ReligionPlace place)
    {
        place.setCreateTime(DateUtils.getNowDate());
        int result = religionPlaceMapper.insertPlace(place);
        
        // TODO: 调用审计日志服务，记录新增操作
        // auditLogService.logCreate("place", place.getPlaceId(), place);
        
        return result;
    }

    /**
     * 修改宗教活动场所
     * 
     * @param place 宗教活动场所
     * @return 结果
     */
    @Override
    public int updatePlace(ReligionPlace place)
    {
        // TODO: 查询旧数据，计算字段差异
        // ReligionPlace oldPlace = religionPlaceMapper.selectPlaceById(place.getPlaceId());
        
        place.setUpdateTime(DateUtils.getNowDate());
        int result = religionPlaceMapper.updatePlace(place);
        
        // TODO: 调用审计日志服务，记录修改操作及字段差异
        // auditLogService.logUpdate("place", place.getPlaceId(), oldPlace, place);
        
        return result;
    }

    /**
     * 批量删除宗教活动场所
     * 
     * @param placeIds 需要删除的场所ID
     * @return 结果
     */
    @Override
    public int deletePlaceByIds(Long[] placeIds)
    {
        return religionPlaceMapper.deletePlaceByIds(placeIds);
    }

    /**
     * 删除宗教活动场所信息
     * 
     * @param placeId 场所ID
     * @return 结果
     */
    @Override
    public int deletePlaceById(Long placeId)
    {
        return religionPlaceMapper.deletePlaceById(placeId);
    }
}

