package com.zt.plat.module.qms.common.data.service;

import cn.hutool.core.collection.CollUtil;
import com.zt.plat.module.qms.common.data.controller.vo.DataKeyCheckPageReqVO;
import com.zt.plat.module.qms.common.data.controller.vo.DataKeyCheckRespVO;
import com.zt.plat.module.qms.common.data.controller.vo.DataKeyCheckSaveReqVO;
import com.zt.plat.module.qms.common.data.dal.dataobject.DataKeyCheckDO;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;

import java.util.*;

import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;

import com.zt.plat.module.qms.common.data.dal.mapper.DataKeyCheckMapper;

import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;

/**
 * 数据重复校验 Service 实现类
 *
 * @author 后台管理-1
 */
@Service
@Validated
public class DataKeyCheckServiceImpl implements DataKeyCheckService {

    @Resource
    private DataKeyCheckMapper dataKeyCheckMapper;

    @Override
    public void create(String id, String moduleCode) {
        DataKeyCheckDO dataKeyCheck = new DataKeyCheckDO();
        dataKeyCheck.setId(id);
        dataKeyCheck.setModuleCode(moduleCode);
        dataKeyCheckMapper.insert(dataKeyCheck);
    }

    @Override
    public DataKeyCheckRespVO createDataKeyCheck(DataKeyCheckSaveReqVO createReqVO) {
        // 插入
        DataKeyCheckDO dataKeyCheck = BeanUtils.toBean(createReqVO, DataKeyCheckDO.class);
        dataKeyCheckMapper.insert(dataKeyCheck);
        // 返回
        return BeanUtils.toBean(dataKeyCheck, DataKeyCheckRespVO.class);
    }

    @Override
    public void updateDataKeyCheck(DataKeyCheckSaveReqVO updateReqVO) {

        // 更新
        DataKeyCheckDO updateObj = BeanUtils.toBean(updateReqVO, DataKeyCheckDO.class);
        dataKeyCheckMapper.updateById(updateObj);
    }

    @Override
    public void deleteDataKeyCheck(String id) {

        // 删除
        dataKeyCheckMapper.deleteById(id);
    }

    @Override
    public void deleteDataKeyCheckListByIds(List<String> ids) {

    // 删除
    dataKeyCheckMapper.deleteByIds(ids);
    }

    @Override
    public DataKeyCheckDO getDataKeyCheck(String id) {
        return dataKeyCheckMapper.selectById(id);
    }

    @Override
    public PageResult<DataKeyCheckDO> getDataKeyCheckPage(DataKeyCheckPageReqVO pageReqVO) {
        return dataKeyCheckMapper.selectPage(pageReqVO);
    }

}