jiangping
2025-04-24 80ea9d9c1b4474fb3d14622c945c3ddceb860218
server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
@@ -13,7 +13,9 @@
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -112,12 +114,42 @@
        return null;
    }
    public static InputStream getMediaInputstream(String token, String media)   {
        try {
            String[] interfaceUrl = QywxConstant.GET_MEDIA;
            String url = qyUtil.qiweiUrl+interfaceUrl[0].replace("${accesstoken}",token).replace("${media_id}",media);
            log.error("企业微信临时素材获取url=========="+url);
            return  HttpsUtil.connectionInputsteam(url,"GET",null,null);
        }catch (Exception e){
            e.printStackTrace();
            log.error("企业微信临时素材获取error=========="+e.getMessage());
        }
        return null;
    }
    public static QywxUserInfoResponse getUserInfo(String token,String id)  {
        String[] interfaceUrl = QywxConstant.GET_USER_DETAIL;
        String url = interfaceUrl[0].replace("${accesstoken}",token).replace("${id}",id);
        QywxUserInfoResponse response = sendHttpRequestSingle(url,interfaceUrl[1],""
                ,new TypeReference<QywxUserInfoResponse>(){});
        if(response.getErrcode()!=null && response.getErrcode() ==0){
            return response;
        }
        return null;
    }
    /**
     *
     * @param token
     * @param type    媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)
     * @return
     */
    public static QywxUploadMediaResponse uploadMedia(String token,String type,String imgurl)  {
        String[] interfaceUrl = QywxConstant.UPLOAD_TEMP_MEDIA;
        String url = interfaceUrl[0].replace("${accesstoken}",token).replace("${type}",type);
        QywxUploadMediaResponse response = sendHttpRequestMultifile(url,interfaceUrl[1],imgurl
                ,new TypeReference<QywxUploadMediaResponse>(){});
        if(response !=null && response.getErrcode()!=null && response.getErrcode() ==0){
            return response;
        }
        return null;
@@ -172,6 +204,23 @@
        }
        return  null;
    }
    public static  <T extends QywxBaseSingleResponse>  T sendHttpRequestMultifile(String url, String name, String imgUrl  , TypeReference<T> typeReference){
        log.info("【"+name+"】================开始===="+ imgUrl);
        if ( StringUtils.isNotBlank(url)) {
            String res = null;
            try {
                 res = HttpsUtil.uploadTempMedia (qyUtil.qiweiUrl+url,imgUrl);
                log.info("从企微接口:{}----上传临时素材结果:{}",url,res);
                JSONObject jsonObject = JSONObject.parseObject(res);
                T result = JSONObject.parseObject(res, typeReference.getType());
                return  result;
            }catch (Exception e){
                e.printStackTrace();
                log.error("【"+name+"】================失败===="+ imgUrl);
            }
        }
        return  null;
    }
    public static  <T extends QywxBaseSingleResponse>  T sendHttpRequestSingle(String url, String name, String param, TypeReference<T> typeReference){
        log.info("【"+name+"】================开始===="+ JSONObject.toJSONString(param));
        if ( StringUtils.isNotBlank(url)) {