package com.tmerclub.cloud.cuerecycle.service.impl;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.tmerclub.cloud.common.database.util.PageUtil;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueProductDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueProductVO;
import com.tmerclub.cloud.cuerecycle.model.CueProduct;
import com.tmerclub.cloud.cuerecycle.mapper.CueProductMapper;
import com.tmerclub.cloud.cuerecycle.service.CueProductService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

/**
 * 球杆商品Service实现类
 *
 * @author : frank
 * @create : 2025-04-11
 */
@Service
public class CueProductServiceImpl implements CueProductService {

    @Resource
    CueProductMapper cueProductMapper;

    @Override
    public PageVO<CueProductVO> page(PageDTO pageDTO, CueProductDTO cueProductDTO) {
        return PageUtil.doPage(pageDTO, () -> cueProductMapper.list(cueProductDTO));
    }

    @Override
    public CueProductVO getById(Long id) {
        return cueProductMapper.getById(id);
    }

    @Override
    public int save(CueProductDTO cueProductDTO) {
        CueProduct cueProduct = BeanUtil.toBean(cueProductDTO, CueProduct.class);
        cueProduct.setCreateTime(DateUtil.date());
        return cueProductMapper.save(cueProduct);
    }

    @Override
    public int update(CueProductDTO cueProductDTO) {
        CueProduct cueProduct = BeanUtil.toBean(cueProductDTO, CueProduct.class);
        cueProduct.setUpdateTime(DateUtil.date());
        return cueProductMapper.update(cueProduct);
    }

    @Override
    public int delete(Long id) {
        CueProductVO cueProductVO = cueProductMapper.getById(id);
        CueProduct cueProduct = BeanUtil.toBean(cueProductVO, CueProduct.class);
        cueProduct.setUpdateTime(DateUtil.date());
        cueProduct.setDeleted(1);
        return cueProductMapper.update(cueProduct);
    }
}