package com.tashow.cloud.system.service.logger;

import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.common.util.object.BeanUtils;
import com.tashow.cloud.systemapi.api.logger.dto.OperateLogCreateReqDTO;
import com.tashow.cloud.systemapi.api.logger.dto.OperateLogPageReqDTO;
import com.tashow.cloud.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
import com.tashow.cloud.system.dal.dataobject.logger.OperateLogDO;
import com.tashow.cloud.system.dal.mysql.logger.OperateLogMapper;
import com.tashow.cloud.systemapi.api.logger.dto.OperateLogCreateReqDTO;
import com.tashow.cloud.systemapi.api.logger.dto.OperateLogPageReqDTO;
import com.tashow.cloud.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

/**
 * 操作日志 Service 实现类
 *
 * @author 芋道源码
 */
@Service
@Validated
@Slf4j
public class OperateLogServiceImpl implements OperateLogService {

    @Resource
    private OperateLogMapper operateLogMapper;

    @Override
    public void createOperateLog(OperateLogCreateReqDTO createReqDTO) {
        OperateLogDO log = BeanUtils.toBean(createReqDTO, OperateLogDO.class);
        operateLogMapper.insert(log);
    }

    @Override
    public PageResult<OperateLogDO> getOperateLogPage(OperateLogPageReqVO pageReqVO) {
        return operateLogMapper.selectPage(pageReqVO);
    }

    @Override
    public PageResult<OperateLogDO> getOperateLogPage(OperateLogPageReqDTO pageReqDTO) {
        return operateLogMapper.selectPage(pageReqDTO);
    }

}
