package cn.gov.customs.wxjy.task.service.impl;

import cn.gov.customs.cacp.sdks.core.user.trans.CacpTransUser;
import cn.gov.customs.wxjy.common.exception.ServiceException;
import cn.gov.customs.wxjy.common.utils.StringUtils;
import cn.gov.customs.wxjy.common.utils.bean.BeanValidators;
import cn.gov.customs.wxjy.common.utils.uuid.SnowflakeIdWorker;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.validation.Validator;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import cn.gov.customs.wxjy.common.utils.DateUtils;
import com.github.pagehelper.PageInfo;
import cn.gov.customs.wxjy.task.dao.TaskLogMapper;
import cn.gov.customs.wxjy.task.pojo.TaskLog;
import cn.gov.customs.wxjy.task.pojo.TaskLogQuery;
import cn.gov.customs.wxjy.task.service.ITaskLogService;

/**
 * 定时任务执行时间记录Service业务层处理
 *
 * @author xiong
 * @date 2025-12-17
 */
@Service
@Slf4j
@RequiredArgsConstructor
public class TaskLogServiceImpl implements ITaskLogService {

    private final TaskLogMapper taskLogMapper;

    private final Validator validator;

    /**
     * 查询定时任务执行时间记录
     *
     * @param pkTaskLog 定时任务执行时间记录主键
     * @return 定时任务执行时间记录
     */
    @Override
    public TaskLog selectByPkTaskLog(String pkTaskLog) {
        return taskLogMapper.selectByPkTaskLog(pkTaskLog);
    }

    /**
     * 分页查询定时任务执行时间记录列表
     *
     * @param query
     * @return 定时任务执行时间记录
     */
    @Override
    public PageInfo<TaskLog> selectPageList(TaskLogQuery query) {
        return PageInfo.of(taskLogMapper.selectList(query));
    }

    /**
     * 查询定时任务执行时间记录列表
     *
     * @param query
     * @return 定时任务执行时间记录
     */
    @Override
    public List<TaskLog> selectList(TaskLogQuery query) {
        return taskLogMapper.selectList(query);
    }

    /**
     * 新增定时任务执行时间记录
     *
     * @param taskLog 定时任务执行时间记录
     * @return 结果
     */
    @Override
    public int insert(TaskLog taskLog) {
            return taskLogMapper.insert(taskLog);
    }

    /**
     * 修改定时任务执行时间记录
     *
     * @param taskLog 定时任务执行时间记录
     * @return 结果
     */
    @Override
    public int update(TaskLog taskLog) {
        return taskLogMapper.update(taskLog);
    }

    /**
     * 批量删除定时任务执行时间记录
     *
     * @param ids 需要删除的定时任务执行时间记录主键
     * @return 结果
     */
    @Override
    public int deleteByPkTaskLogs(String[] ids) {
        return taskLogMapper.deleteByPkTaskLogs(ids);
    }

    /**
     * 删除定时任务执行时间记录信息
     *
     * @param pkTaskLog 定时任务执行时间记录主键
     * @return 结果
     */
    @Override
    public int deleteByPkTaskLog(String pkTaskLog) {
        return taskLogMapper.deleteByPkTaskLog(pkTaskLog);
    }

    /**
     * 逻辑删除定时任务执行时间记录信息
     *
     * @param pkTaskLog 定时任务执行时间记录主键
     * @return 结果
     */
    @Override
    public int logicDelete(String pkTaskLog) {

        return taskLogMapper.logicDelete(pkTaskLog);
    }
}
