package hw.tagApi.system.service.impl;

import java.util.List;
import hw.tagApi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import hw.tagApi.system.mapper.SysApiTokenMapper;
import hw.tagApi.system.domain.SysApiToken;
import hw.tagApi.system.service.ISysApiTokenService;

/**
 * 用户令牌Service业务层处理
 * 
 * @author Yinq
 * @date 2025-04-23
 */
@Service
public class SysApiTokenServiceImpl implements ISysApiTokenService 
{
    @Autowired
    private SysApiTokenMapper sysApiTokenMapper;

    /**
     * 查询用户令牌
     * 
     * @param tokenId 用户令牌主键
     * @return 用户令牌
     */
    @Override
    public SysApiToken selectSysApiTokenByTokenId(Long tokenId)
    {
        return sysApiTokenMapper.selectSysApiTokenByTokenId(tokenId);
    }

    /**
     * 查询用户令牌列表
     * 
     * @param sysApiToken 用户令牌
     * @return 用户令牌
     */
    @Override
    public List<SysApiToken> selectSysApiTokenList(SysApiToken sysApiToken)
    {
        return sysApiTokenMapper.selectSysApiTokenList(sysApiToken);
    }

    /**
     * 新增用户令牌
     * 
     * @param sysApiToken 用户令牌
     * @return 结果
     */
    @Override
    public int insertSysApiToken(SysApiToken sysApiToken)
    {
        sysApiToken.setCreateTime(DateUtils.getNowDate());
        return sysApiTokenMapper.insertSysApiToken(sysApiToken);
    }

    /**
     * 修改用户令牌
     * 
     * @param sysApiToken 用户令牌
     * @return 结果
     */
    @Override
    public int updateSysApiToken(SysApiToken sysApiToken)
    {
        sysApiToken.setUpdateTime(DateUtils.getNowDate());
        return sysApiTokenMapper.updateSysApiToken(sysApiToken);
    }

    /**
     * 批量删除用户令牌
     * 
     * @param tokenIds 需要删除的用户令牌主键
     * @return 结果
     */
    @Override
    public int deleteSysApiTokenByTokenIds(Long[] tokenIds)
    {
        return sysApiTokenMapper.deleteSysApiTokenByTokenIds(tokenIds);
    }

    /**
     * 删除用户令牌信息
     * 
     * @param tokenId 用户令牌主键
     * @return 结果
     */
    @Override
    public int deleteSysApiTokenByTokenId(Long tokenId)
    {
        return sysApiTokenMapper.deleteSysApiTokenByTokenId(tokenId);
    }

    /**
     * 获取Token
     * @return
     */
    @Override
    public String getSysApiToken() {
        SysApiToken sysApiToken = new SysApiToken();
        sysApiToken.setEnableFlag("1");
        List<SysApiToken> apiTokens = sysApiTokenMapper.selectSysApiTokenList(sysApiToken);
        if (apiTokens.isEmpty()){
            return null;
        }
        return apiTokens.get(0).getTokenCode();
    }
}
