package com.ard.tianyu.config; import com.ard.tianyu.http.TYClient; import com.ard.tianyu.model.dto.TokenDTO; import com.ard.tianyu.model.receiver.AccessTokenReceiver; import com.ard.tianyu.model.receiver.BoxReceiver; import com.ard.tianyu.model.receiver.TyHttpCommonReceiver; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.util.DigestUtils; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * TianyuConfiguration * * @author liusuyi * @date 2024年10月21日15:16 **/ @Configuration @Slf4j @Data @ConfigurationProperties(prefix = "tianyu") public class TianyuConfiguration { private String endpoint; private String accesskeyid; private String accesskeysecret; private long timestamp; public long getTimeStamp() { timestamp = new Date().getTime(); return timestamp; } private String encryptstr; public String getEncryptStr() { String sb = new StringBuilder() .append(accesskeyid) .append(accesskeysecret) .append(getTimeStamp()) .toString(); encryptstr = DigestUtils.md5DigestAsHex(sb.getBytes()); return encryptstr; } @Resource private TYClient tyClient; private AccessTokenReceiver accessToken; public AccessTokenReceiver getAccessToken() { if(accessToken != null) return accessToken; // 准备请求的json TokenDTO gtd = TokenDTO.builder() .accessKeyId(accesskeyid) .encryptStr(getEncryptStr()) .timeStamp(timestamp) .build(); TyHttpCommonReceiver getTokenRes = tyClient.getToken(gtd); //{"state":0,"content":{"companyId":4127,"accessToken":"sOONT0MMVdoKcMBibb40xxgrUrq0Hw9RFiajic3KOzoNtk"}} accessToken = getTokenRes.getContent(); return accessToken; } private List boxList; public List getBoxList(){ if(boxList !=null) return boxList; //请求云盒列表 TyHttpCommonReceiver> getBoxList = tyClient.getBoxList(getAccessToken().convertFromDTO()); boxList = getBoxList.getContent(); return boxList; } }