liusuyi
2025-10-14 39e8bb722006c55fb986a7394bfb4747d482b8c4
ard-work/src/main/java/com/ard/work/service/impl/ArdServerServiceImpl.java
@@ -1,53 +1,62 @@
package com.ard.work.service.impl;
import com.ard.common.utils.uuid.IdUtils;
import com.ard.work.component.forest.TyClient;
import com.ard.work.domain.dto.TokenDTO;
import com.ard.work.domain.entity.ArdServerInfo;
import com.ard.work.domain.receiver.AccessTokenReceiver;
import com.ard.work.domain.receiver.TyHttpCommonReceiver;
import com.ard.work.mapper.ArdServerInfoMapper;
import com.ard.work.service.IArdServerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * 服务器管理Service业务层处理
 *
 *
 * @author xia
 * @date 2025-10-10
 */
@Slf4j
@Service
public class ArdServerServiceImpl implements IArdServerService {
    @Autowired
    @Resource
    private ArdServerInfoMapper ardServerInfoMapper;
    @Resource
    private TyClient tyClient;
    /**
     * 查询服务器管理
     *
     *
     * @param id 服务器管理主键
     * @return 服务器管理
     */
    @Override
    public ArdServerInfo selectArdServerManagementById(String id)
    {
    public ArdServerInfo selectArdServerManagementById(String id) {
        return ardServerInfoMapper.selectArdServerManagementById(id);
    }
    /**
     * 查询服务器管理列表
     *
     *
     * @param ardServerInfo 服务器管理
     * @return 服务器管理
     */
    @Override
    public List<ArdServerInfo> selectArdServerManagementList(ArdServerInfo ardServerInfo)
    {
    public List<ArdServerInfo> selectArdServerManagementList(ArdServerInfo ardServerInfo) {
        return ardServerInfoMapper.selectArdServerManagementList(ardServerInfo);
    }
    /**
     * 新增服务器管理
     *
     *
     * @param ardServerInfo 服务器管理
     * @return 结果
     */
@@ -59,37 +68,68 @@
    /**
     * 修改服务器管理
     *
     *
     * @param ardServerInfo 服务器管理
     * @return 结果
     */
    @Override
    public int updateArdServerManagement(ArdServerInfo ardServerInfo)
    {
    public int updateArdServerManagement(ArdServerInfo ardServerInfo) {
        return ardServerInfoMapper.updateArdServerManagement(ardServerInfo);
    }
    /**
     * 批量删除服务器管理
     *
     *
     * @param ids 需要删除的服务器管理主键
     * @return 结果
     */
    @Override
    public int deleteArdServerManagementByIds(String[] ids)
    {
    public int deleteArdServerManagementByIds(String[] ids) {
        return ardServerInfoMapper.deleteArdServerManagementByIds(ids);
    }
    /**
     * 删除服务器管理信息
     *
     *
     * @param id 服务器管理主键
     * @return 结果
     */
    @Override
    public int deleteArdServerManagementById(String id)
    {
    public int deleteArdServerManagementById(String id) {
        return ardServerInfoMapper.deleteArdServerManagementById(id);
    }
    /**
     * 根据 id 获取 服务器http接口token
     */
    @Override
    public AccessTokenReceiver getAccessToken(String id) {
        long timeStamp = getTimeStamp();
        AccessTokenReceiver accessToken = null;
        ArdServerInfo serverInfo = selectArdServerManagementById(id);
        // 准备请求的json
        TokenDTO gtd = TokenDTO.builder()
                .accessKeyId(serverInfo.getAccessKeyId())
                .encryptStr(getEncryptStr(serverInfo, timeStamp))
                .timeStamp(timeStamp)
                .build();
        try {
            TyHttpCommonReceiver<AccessTokenReceiver> getTokenRes = tyClient.getToken(id, gtd);
            accessToken = getTokenRes.getContent();
        } catch (Exception e) {
            log.error("获取token失败:{}", e.getMessage());
        }
        //{"state":0,"content":{"companyId":4127,"accessToken":"sOONT0MMVdoKcMBibb40xxgrUrq0Hw9RFiajic3KOzoNtk"}}
        return accessToken;
    }
    private String getEncryptStr(ArdServerInfo serverInfo, long timeStamp) {
        String sb = serverInfo.getAccessKeyId() + serverInfo.getAccessKeySecret() + timeStamp;
        return DigestUtils.md5DigestAsHex(sb.getBytes());
    }
    private long getTimeStamp() {
        return new Date().getTime();
    }
}