diff --git a/deliver-backend/deliver-backend-admin/src/main/java/com/oszero/deliver/admin/util/app/DingUtils.java b/deliver-backend/deliver-backend-admin/src/main/java/com/oszero/deliver/admin/util/app/DingUtils.java index a84ba29fb47925c1578879723696e404f1afb9bb..470438dc56bfd9deb37816294359cf29719a2603 100644 --- a/deliver-backend/deliver-backend-admin/src/main/java/com/oszero/deliver/admin/util/app/DingUtils.java +++ b/deliver-backend/deliver-backend-admin/src/main/java/com/oszero/deliver/admin/util/app/DingUtils.java @@ -4,10 +4,14 @@ import cn.hutool.json.JSONUtil; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiGettokenRequest; +import com.dingtalk.api.request.OapiMediaUploadRequest; import com.dingtalk.api.response.OapiGettokenResponse; +import com.dingtalk.api.response.OapiMediaUploadResponse; import com.oszero.deliver.admin.exception.BusinessException; import com.oszero.deliver.admin.model.app.DingApp; +import com.oszero.deliver.admin.model.dto.app.PlatformFileDto; import com.taobao.api.ApiException; +import com.taobao.api.FileItem; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -47,4 +51,31 @@ public class DingUtils { DingAccessTokenBody dingAccessTokenBody = JSONUtil.toBean(response.getBody(), DingAccessTokenBody.class); return dingAccessTokenBody.getAccessToken(); } + + /** + * + * @param accessToken + * @param platformFileDto + * @return media_id + */ + + public String uploadDingFile (String accessToken, PlatformFileDto platformFileDto){ + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/media/upload"); + OapiMediaUploadRequest req = new OapiMediaUploadRequest(); + req.setType(platformFileDto.getFileType()); + byte[] file = platformFileDto.getFile(); + FileItem item = new FileItem(platformFileDto.getFileName(),file); + req.setMedia(item); + OapiMediaUploadResponse rsp =null; + try { + rsp = client.execute(req, accessToken); + }catch (ApiException a){ + throw new BusinessException("钉钉上传失败"); + } + + if(rsp.getErrcode()!=0){ + throw new BusinessException("钉钉上传失败"); + } + return rsp.getMediaId(); + } }