package com.fs.wxcid.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fs.common.exception.CustomException;
import com.fs.common.utils.DateUtils;
import com.fs.wxcid.domain.CidIpadServer;
import com.fs.wxcid.mapper.CidIpadServerMapper;
import com.fs.wxcid.service.ICidIpadServerService;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * ipad服务器Service业务层处理
 * 
 * @author fs
 * @date 2025-12-11
 */
@Service
public class CidIpadServerServiceImpl extends ServiceImpl<CidIpadServerMapper, CidIpadServer> implements ICidIpadServerService {

    /**
     * 查询ipad服务器
     * 
     * @param id ipad服务器主键
     * @return ipad服务器
     */
    @Override
    public CidIpadServer selectCidIpadServerById(Long id)
    {
        return baseMapper.selectCidIpadServerById(id);
    }

    /**
     * 查询ipad服务器列表
     * 
     * @param cidIpadServer ipad服务器
     * @return ipad服务器
     */
    @Override
    public List<CidIpadServer> selectCidIpadServerList(CidIpadServer cidIpadServer)
    {
        return baseMapper.selectCidIpadServerList(cidIpadServer);
    }

    /**
     * 新增ipad服务器
     * 
     * @param cidIpadServer ipad服务器
     * @return 结果
     */
    @Override
    public int insertCidIpadServer(CidIpadServer cidIpadServer)
    {
        cidIpadServer.setCreateTime(DateUtils.getNowDate());
        return baseMapper.insertCidIpadServer(cidIpadServer);
    }

    /**
     * 修改ipad服务器
     * 
     * @param cidIpadServer ipad服务器
     * @return 结果
     */
    @Override
    public int updateCidIpadServer(CidIpadServer cidIpadServer)
    {
        cidIpadServer.setUpdateTime(DateUtils.getNowDate());
        return baseMapper.updateCidIpadServer(cidIpadServer);
    }

    /**
     * 批量删除ipad服务器
     * 
     * @param ids 需要删除的ipad服务器主键
     * @return 结果
     */
    @Override
    public int deleteCidIpadServerByIds(Long[] ids)
    {
        return baseMapper.deleteCidIpadServerByIds(ids);
    }

    /**
     * 删除ipad服务器信息
     * 
     * @param id ipad服务器主键
     * @return 结果
     */
    @Override
    public int deleteCidIpadServerById(Long id)
    {
        return baseMapper.deleteCidIpadServerById(id);
    }

    @Override
    public Long selectQwIpadServerByAddressId(String addressId,Integer cidGroupNo) {
        CidIpadServer ipadServer = getOne(new QueryWrapper<CidIpadServer>().eq("address_id", addressId).eq("group_no", cidGroupNo).last("limit 1"));
        if(ipadServer == null){
            throw new CustomException("地区PAD不足");
        }
        return ipadServer.getId();
    }

    @Override
    public void subtractServer(Long serverId) {
        baseMapper.subtractServer(serverId);
    }
}
