package com.fs.ad.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fs.ad.domain.AdDomain;
import com.fs.ad.domain.AdSite;
import com.fs.ad.mapper.AdSiteMapper;
import com.fs.ad.service.IAdDomainService;
import com.fs.ad.service.IAdSiteService;
import com.fs.common.utils.DateUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 站点管理Service业务层处理
 * 
 * @author fs
 * @date 2025-03-04
 */
@Service
@AllArgsConstructor
public class AdSiteServiceImpl extends ServiceImpl<AdSiteMapper, AdSite> implements IAdSiteService {

    private final IAdDomainService adDomainService;



    /**
     * 查询站点管理
     * 
     * @param id 站点管理主键
     * @return 站点管理
     */
    @Override
    public AdSite selectAdSiteById(Long id)
    {
        return baseMapper.selectAdSiteById(id);
    }

    /**
     * 查询站点管理列表
     * 
     * @param adSite 站点管理
     * @return 站点管理
     */
    @Override
    public List<AdSite> selectAdSiteList(AdSite adSite){
        return baseMapper.selectAdSiteList(adSite);
    }

    /**
     * 新增站点管理
     * 
     * @param adSite 站点管理
     * @return 结果
     */
    @Override
    public int insertAdSite(AdSite adSite){
        adSite.setCreateTime(DateUtils.getNowDate());
        int insert = baseMapper.insert(adSite);
        AdDomain domain = adDomainService.getById(adSite.getDomainId());
        adSite.setUrl("https://" + domain.getDomain() + "/?tid=" + adSite.getId());
        baseMapper.updateById(adSite);
        return insert;
    }

    /**
     * 修改站点管理
     * 
     * @param adSite 站点管理
     * @return 结果
     */
    @Override
    public int updateAdSite(AdSite adSite)
    {
        adSite.setUpdateTime(DateUtils.getNowDate());
        return baseMapper.updateById(adSite);
    }

    /**
     * 批量删除站点管理
     * 
     * @param ids 需要删除的站点管理主键
     * @return 结果
     */
    @Override
    public int deleteAdSiteByIds(Long[] ids)
    {
        return baseMapper.deleteAdSiteByIds(ids);
    }

    /**
     * 删除站点管理信息
     * 
     * @param id 站点管理主键
     * @return 结果
     */
    @Override
    public int deleteAdSiteById(Long id)
    {
        return baseMapper.deleteAdSiteById(id);
    }
}
