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 0220e647e7d391990ff9b5dacc0d7951ecd6d826..2c534a0cd03b9cee2bcc68fe324e271f5201af5b 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 @@ -3,17 +3,9 @@ package com.oszero.deliver.admin.util.app; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; 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; @@ -21,7 +13,7 @@ import org.springframework.stereotype.Component; import java.util.Objects; /** - * App-钉钉工具类 + * 获取模版详情 * * @author oszero * @version 1.0.0 @@ -30,6 +22,7 @@ import java.util.Objects; @Component public class DingUtils { + /** * 获取 AccessToken * @@ -63,7 +56,6 @@ public class DingUtils { } catch (Exception e) { throw new BusinessException("钉钉获取 Token 接口调用失败!!!"); } - log.info("获取钉钉 Token 成功!"); return dingAccessTokenBody.getAccessToken(); } @@ -76,6 +68,8 @@ public class DingUtils { * @return media_id */ public String uploadDingFile(String accessToken, PlatformFileDto platformFileDto) { + + @Data class DingBody { private Integer errcode; @@ -86,24 +80,23 @@ public class DingUtils { } - 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("钉钉上传失败"); - } + DingBody dingBody; + try (HttpResponse response = HttpRequest.post("https://oapi.dingtalk.com/media/upload?access_token=" + accessToken) + .header("Content-Type", "multipart/form-data") + .form("type", platformFileDto.getFileType()) + .form("media", platformFileDto.getFile(), platformFileDto.getFileName()) + .execute()) { - DingBody dingBody = JSONUtil.toBean(rsp.getBody(), DingBody.class); - if (dingBody.getErrcode() != 0) { - throw new BusinessException("钉钉上传失败"); - } + dingBody = JSONUtil.toBean(response.body(), DingBody.class); + if (!Objects.equals(dingBody.getErrcode(), 0)) { + throw new BusinessException("上传钉钉文件失败:" + dingBody.getErrmsg()); + } + } catch (Exception e) { + throw new BusinessException("上传钉钉文件接口调用失败!!!"); + } + log.info("上传钉钉文件成功!"); return dingBody.getMediaId(); + } } diff --git a/deliver-front/vue/components.d.ts b/deliver-front/vue/components.d.ts index 3c605da25d7a7d95b5046356e76e133b5abfdce1..786e9a68e14a72fbecd1e2eb4b9038238d76fa3a 100644 --- a/deliver-front/vue/components.d.ts +++ b/deliver-front/vue/components.d.ts @@ -13,39 +13,27 @@ declare module 'vue' { ACard: typeof import('ant-design-vue/es')['Card'] ACardMeta: typeof import('ant-design-vue/es')['CardMeta'] ACol: typeof import('ant-design-vue/es')['Col'] - ADescriptions: typeof import('ant-design-vue/es')['Descriptions'] - ADescriptionsItem: typeof import('ant-design-vue/es')['DescriptionsItem'] - ADivider: typeof import('ant-design-vue/es')['Divider'] ADrawer: typeof import('ant-design-vue/es')['Drawer'] AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] AInput: typeof import('ant-design-vue/es')['Input'] - AInputGroup: typeof import('ant-design-vue/es')['InputGroup'] - AInputNumber: typeof import('ant-design-vue/es')['InputNumber'] ALayout: typeof import('ant-design-vue/es')['Layout'] ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent'] ALayoutFooter: typeof import('ant-design-vue/es')['LayoutFooter'] ALayoutHeader: typeof import('ant-design-vue/es')['LayoutHeader'] ALayoutSider: typeof import('ant-design-vue/es')['LayoutSider'] - AList: typeof import('ant-design-vue/es')['List'] - AListItem: typeof import('ant-design-vue/es')['ListItem'] AMenu: typeof import('ant-design-vue/es')['Menu'] AMenuItem: typeof import('ant-design-vue/es')['MenuItem'] AModal: typeof import('ant-design-vue/es')['Modal'] APagination: typeof import('ant-design-vue/es')['Pagination'] - APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] - ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] - ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARangePicker: typeof import('ant-design-vue/es')['RangePicker'] ARow: typeof import('ant-design-vue/es')['Row'] ASelect: typeof import('ant-design-vue/es')['Select'] ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] - AStatistic: typeof import('ant-design-vue/es')['Statistic'] ASubMenu: typeof import('ant-design-vue/es')['SubMenu'] - ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] - ATag: typeof import('ant-design-vue/es')['Tag'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] + AUploadDragger: typeof import('ant-design-vue/es')['UploadDragger'] Banner: typeof import('./src/components/Banner/index.vue')['default'] Code: typeof import('./src/components/Code/index.vue')['default'] Echarts: typeof import('./src/components/Echarts/index.vue')['default']