package cn.iocoder.yudao.module.cont.service.impl;

import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.cont.entity.BaseContTemp;
import cn.iocoder.yudao.module.cont.mapper.BaseContTempMapper;
import cn.iocoder.yudao.module.cont.service.BaseContTempService;
import cn.iocoder.yudao.module.cont.vo.BaseContTempPageReqVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempSaveReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import javax.annotation.Resource;

/**
 * 合同模板 Service 实现类
 *
 * @author pqz
 */
@Service
@Validated
public class BaseContTempServiceImpl extends ServiceImpl<BaseContTempMapper, BaseContTemp> implements BaseContTempService {

    @Resource
    private BaseContTempMapper contTempMapper;


    /**
     * 保存合同模板
     *
     * @param reqVo BaseContTempSaveReqVO
     * @return void
     * @author PQZ
     * @date 17:13 2024/8/8
     **/
    @Override
    public void saveConTemp(BaseContTempSaveReqVO reqVo) {
        BaseContTemp saveObj = BeanUtils.toBean(reqVo, BaseContTemp.class);
        saveOrUpdate(saveObj);
    }

    /**
     * 删除合同模板
     *
     * @param id 模板id
     * @return void
     * @author PQZ
     * @date 17:16 2024/8/8
     **/
    @Override
    public void deleteContTemp(String id) {
        // 删除
        contTempMapper.deleteById(id);
    }

    /**
     * 获得合同模板
     *
     * @param id 编号
     * @return 合同模板
     */
    @Override
    public BaseContTemp getContTemp(String id) {
        return contTempMapper.selectById(id);
    }

    /**
     * 合同模板分页列表查询
     *
     * @param pageReqVO 请求参数
     * @param page      Page分页
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO>
     * @author PQZ
     * @date 10:39 2024/8/8
     **/
    @Override
    public IPage<BaseContTempRespVO> getContTempPage(BaseContTempPageReqVO pageReqVO, Page<BaseContTempRespVO> page) {
        return contTempMapper.selectListPage(pageReqVO, page);
    }

}