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

import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.enterprise.TenantBaseInfoSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantBaseInfoDO;
import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantBaseInfoMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

import org.springframework.validation.annotation.Validated;


/**
 * 租户基本信息 Service 实现类
 *
 * @author 系统管理员
 */
@Service
@Validated
public class TenantBaseInfoServiceImpl implements TenantBaseInfoService {

    @Resource
    private TenantBaseInfoMapper tenantBaseInfoMapper;

    @Override
    public Long createTenantBaseInfo(TenantBaseInfoSaveReqVO createReqVO) {
        TenantBaseInfoDO baseInfoDO = new TenantBaseInfoDO();
        BeanUtils.copyProperties(createReqVO, baseInfoDO);
        tenantBaseInfoMapper.insert(baseInfoDO);
        return baseInfoDO.getId();
    }

    @Override
    public void updateTenantBaseInfo(TenantBaseInfoSaveReqVO updateReqVO) {
        TenantBaseInfoDO tenantBaseInfoDO = tenantBaseInfoMapper.selectOne(new LambdaQueryWrapperX<TenantBaseInfoDO>()
                .eq(TenantBaseInfoDO::getTenantId, updateReqVO.getTenantId()));
        BeanUtils.copyProperties(updateReqVO, tenantBaseInfoDO);
        tenantBaseInfoMapper.updateById(tenantBaseInfoDO);
    }

    @Override
    public TenantBaseInfoDO getTenantBaseInfo(Long tenantId) {
        TenantBaseInfoDO tenantBaseInfoDO = tenantBaseInfoMapper.selectOne(new LambdaQueryWrapperX<TenantBaseInfoDO>()
                .eq(TenantBaseInfoDO::getTenantId, tenantId));
        return tenantBaseInfoDO;
    }
}