package cn.iocoder.yudao.module.system.service.extra;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.extra.vo.PartyBGuardianCertificatePageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.extra.ElderlyExtraPartyBGuardianCertificateDO;
import cn.iocoder.yudao.module.system.dal.mysql.extra.ElderlyExtraPartyBGuardianCertificateMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.ELDERLY_EXTRA_PARTY_B_GUARDIAN_CERTIFICATE_NOT_EXISTS;

@Service @Slf4j
public class ElderlyExtraPartyBGuardianCertificateServiceImpl implements ElderlyExtraPartyBGuardianCertificateService {
    @Resource private ElderlyExtraPartyBGuardianCertificateMapper mapper;
    @Override public Long create(ElderlyExtraPartyBGuardianCertificateDO c) { mapper.insert(c); return c.getId(); }
    @Override public void update(ElderlyExtraPartyBGuardianCertificateDO u) { validateExists(u.getId()); mapper.updateById(u); }
    @Override public void delete(Long id) { validateExists(id); mapper.deleteById(id); }
    @Override public PageResult<ElderlyExtraPartyBGuardianCertificateDO> findPage(PartyBGuardianCertificatePageReqVO reqVO) { return mapper.selectPage(reqVO); }
    @Override public ElderlyExtraPartyBGuardianCertificateDO getDetail(Long id) { return validateExists(id); }
    @Override public List<ElderlyExtraPartyBGuardianCertificateDO> getListByElderId(Long elderId) { return mapper.selectList(new LambdaQueryWrapperX<ElderlyExtraPartyBGuardianCertificateDO>().eqIfPresent(ElderlyExtraPartyBGuardianCertificateDO::getElderId, elderId).orderByDesc(ElderlyExtraPartyBGuardianCertificateDO::getCreateTime)); }
    private ElderlyExtraPartyBGuardianCertificateDO validateExists(Long id) { ElderlyExtraPartyBGuardianCertificateDO r = mapper.selectById(id); if (r == null) throw exception(ELDERLY_EXTRA_PARTY_B_GUARDIAN_CERTIFICATE_NOT_EXISTS); return r; }
}
