diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/UploadImageUtils.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/UploadImageUtils.java new file mode 100644 index 000000000..90c7fc835 --- /dev/null +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/UploadImageUtils.java @@ -0,0 +1,124 @@ +package com.elink.esua.epdc.commons.tools.utils; + +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.HttpEntity; +import sun.net.www.http.HttpClient; + +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Map; + +/** + * @Author LC + * @Date 2019/9/11 14:53 + */ +public class UploadImageUtils { + + /** + * 从微信下载图片 + * @Params: [params] + * @Return: java.lang.String + * @Author: liuchuang + * @Date: 2019/9/11 17:04 + */ + public static String downloadImageFromWx(Map params) throws Exception { + InputStream inputStream = getMediaStream(params.get("accessTokenUrl"), params.get("mediaUrl"), params.get("mediaId"), params.get("appid"), params.get("secret")); + if (null == inputStream) { + return null; + } + byte[] data = null; + ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int len = 0; + while((len = inputStream.read(buffer, 0, 1024)) != -1){ + swapStream.write(buffer, 0, len); + } + data = swapStream.toByteArray(); + String base64 = "data:image/png;base64,"+Base64.encodeBase64String(data); + return base64; + } + + /** + * 获取临时素材 + */ + private static InputStream getMediaStream(String accessTokenUrl, String mediaUrl, String mediaId, String appid, String secret)throws IOException { + String access_token = getAccessToken(accessTokenUrl, appid, secret); + String params = "access_token=" + access_token + "&media_id=" + mediaId; + InputStream is = null; + try { + String urlNameString = mediaUrl + "?" + params; + URL urlGet = new URL(urlNameString); + HttpURLConnection http = (HttpURLConnection) urlGet.openConnection(); + http.setRequestMethod("GET"); // 必须是get方式请求 + http.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); + http.setDoOutput(true); + http.setDoInput(true); + http.connect(); + if (!http.getContentType().contains("image")) { + return null; + } + // 获取文件转化为byte流 + is = http.getInputStream(); + } catch (Exception e) { + e.printStackTrace(); + } + return is; + } + + /** + * 获取微信Jsapi的accessToken + * 这里获取的获取微信Jsapi的accessToken跟小程序以及其他的不一样 + */ + public static String getAccessToken(String accessTokenUrl, String appId, String secret) { + accessTokenUrl = accessTokenUrl.replace("APPID", appId).replace("APPSECRET", secret); + JSONObject jsonObj = doHttpGet(accessTokenUrl); + String accessToken = jsonObj.getString("access_token"); + return accessToken; + } + + /** + * 发送GET请求 + * @Params: [requestUrl, params] + * @Return: java.lang.String + * @Author: liuchuang + * @Date: 2019/8/5 14:25 + */ + public static JSONObject doHttpGet(String requestUrl) { + JSONObject jsonObj = null; + // buffer用于接受返回的字符 + StringBuffer buffer = new StringBuffer(); + try { + // 建立URL,把请求地址给补全,其中urlEncode()方法用于把params里的参数给取出来 + URL url = new URL(requestUrl); + // 打开http连接 + HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); + httpUrlConn.setDoInput(true); + httpUrlConn.setRequestMethod("GET"); + httpUrlConn.connect(); + // 获得输入 + InputStream inputStream = httpUrlConn.getInputStream(); + InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); + BufferedReader bufferedReader = new BufferedReader(inputStreamReader); + // 将bufferReader的值给放到buffer里 + String str = null; + while ((str = bufferedReader.readLine()) != null) { + buffer.append(str); + } + // 关闭bufferReader和输入流 + bufferedReader.close(); + inputStreamReader.close(); + inputStream.close(); + // 断开连接 + httpUrlConn.disconnect(); + } catch (Exception e) { + e.printStackTrace(); + } + jsonObj = JSONObject.parseObject(buffer.toString()); + return jsonObj; + } + +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/UploadImageFormDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/UploadImageFormDTO.java new file mode 100644 index 000000000..bb5a29334 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/UploadImageFormDTO.java @@ -0,0 +1,38 @@ +package com.elink.esua.epdc.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 图片上传Form DTO + * @Author LC + * @Date 2019/9/11 16:27 + */ +@Data +public class UploadImageFormDTO implements Serializable { + private static final long serialVersionUID = -4670602967272919640L; + + /** + * 文件标识 + */ + @NotBlank(message = "文件标识不能为空") + private String mediaId; + /** + * 获取accessToken地址 + */ + private String accessTokenUrl; + /** + * 下载文件地址 + */ + private String mediaUrl; + /** + * appid + */ + private String appid; + /** + * secret + */ + private String secret; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiIssueController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiIssueController.java index 0a27cffa5..283e2baa5 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiIssueController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiIssueController.java @@ -3,7 +3,6 @@ package com.elink.esua.epdc.controller; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.annotation.LoginUser; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.UploadDTO; import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO; import com.elink.esua.epdc.dto.issue.form.IssueFormDTO; import com.elink.esua.epdc.dto.issue.form.StatementFormDTO; @@ -12,11 +11,13 @@ import com.elink.esua.epdc.dto.issue.result.IssueDetailResultDTO; import com.elink.esua.epdc.dto.issue.result.IssueHandleProgressResultDTO; import com.elink.esua.epdc.dto.issue.result.IssueResultDTO; import com.elink.esua.epdc.service.IssueService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; import java.util.List; +import java.util.Map; /** * 移动端接口-议题模块 @@ -30,6 +31,18 @@ public class ApiIssueController { @Autowired private IssueService issueService; + @Value("${wx.cgiBin.accessTokenUrl}") + private String accessTokenUrl; + + @Value("${wx.cgiBin.mediaUrl}") + private String mediaUrl; + + @Value("${wx.cgiBin.appId}") + private String appId; + + @Value("${wx.cgiBin.secret}") + private String secret; + /** * 发布事件 * @Params: [userDetail, formDto] @@ -55,15 +68,23 @@ public class ApiIssueController { } /** - * 文件上传 - * @Params: [file] - * @Return: com.elink.esua.epdc.commons.tools.utils.Result + * 图片上传 + * @Params: [params] + * @Return: com.elink.esua.epdc.commons.tools.utils.Result * @Author: liuchuang - * @Date: 2019/9/8 18:34 + * @Date: 2019/9/11 17:16 */ @PostMapping("upload") - public Result upload(@RequestParam("file") MultipartFile file) { - return issueService.upload(file); + public Result upload(@RequestBody Map params) { + if (StringUtils.isEmpty(params.get("mediaId"))) { + return new Result().error("文件标识不能为空"); + } + System.out.println(params.get("mediaId")); + params.put("accessTokenUrl", accessTokenUrl); + params.put("mediaUrl", mediaUrl); + params.put("appid", appId); + params.put("secret", secret); + return issueService.upload(params); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/OssFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/OssFeignClient.java index ec8294bf0..a63a19290 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/OssFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/OssFeignClient.java @@ -2,13 +2,10 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.UploadDTO; +import com.elink.esua.epdc.dto.UploadFormDTO; import com.elink.esua.epdc.feign.fallback.OssFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.multipart.MultipartFile; /** * 文件对象模块 @@ -18,6 +15,13 @@ import org.springframework.web.multipart.MultipartFile; @FeignClient(name = ServiceConstant.EPDC_OSS_SERVER, fallback = OssFeignClientFallback.class) public interface OssFeignClient { - @PostMapping(value = "oss/file/upload", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - Result upload(@RequestPart("file") MultipartFile file); + /** + * 图片上传 + * @Params: [base64] + * @Return: com.elink.esua.epdc.commons.tools.utils.Result + * @Author: liuchuang + * @Date: 2019/9/11 17:17 + */ + @PostMapping(value = "oss/file/uploadBase64") + Result upload(UploadFormDTO formDTO); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/OssFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/OssFeignClientFallback.java index c9dc436a8..9001dc723 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/OssFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/OssFeignClientFallback.java @@ -3,10 +3,9 @@ package com.elink.esua.epdc.feign.fallback; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.UploadDTO; +import com.elink.esua.epdc.dto.UploadFormDTO; import com.elink.esua.epdc.feign.OssFeignClient; import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; /** * 文件对象模块 @@ -17,7 +16,7 @@ import org.springframework.web.multipart.MultipartFile; public class OssFeignClientFallback implements OssFeignClient { @Override - public Result upload(MultipartFile file) { - return ModuleUtils.feignConError(ServiceConstant.EPDC_OSS_SERVER, "upload", file.getOriginalFilename()); + public Result upload(UploadFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_OSS_SERVER, "upload", formDTO); } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/IssueService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/IssueService.java index ec02234e9..9050a9c74 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/IssueService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/IssueService.java @@ -4,6 +4,7 @@ import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UploadDTO; import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO; +import com.elink.esua.epdc.dto.form.UploadImageFormDTO; import com.elink.esua.epdc.dto.issue.form.IssueFormDTO; import com.elink.esua.epdc.dto.issue.form.StatementFormDTO; import com.elink.esua.epdc.dto.issue.result.IssueCategoryStatisticsResultDTO; @@ -13,6 +14,7 @@ import com.elink.esua.epdc.dto.issue.result.IssueResultDTO; import org.springframework.web.multipart.MultipartFile; import java.util.List; +import java.util.Map; /** * 议题模块 @@ -40,13 +42,13 @@ public interface IssueService { Result> listIssues(TokenDto userDetail, IssueFormDTO formDto); /** - * 文件上传 - * @Params: [file] - * @Return: com.elink.esua.epdc.commons.tools.utils.Result + * 图片上传 + * @Params: [params] + * @Return: com.elink.esua.epdc.commons.tools.utils.Result * @Author: liuchuang - * @Date: 2019/9/8 18:34 + * @Date: 2019/9/11 17:16 */ - Result upload(MultipartFile file); + Result upload(Map params); /** * 议题(赞/踩) diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java index b26d72cd6..6a7f5425b 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java @@ -1,10 +1,14 @@ package com.elink.esua.epdc.service.impl; +import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.utils.UploadImageUtils; import com.elink.esua.epdc.dto.CompleteDeptDTO; import com.elink.esua.epdc.dto.UploadDTO; +import com.elink.esua.epdc.dto.UploadFormDTO; import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO; +import com.elink.esua.epdc.dto.form.UploadImageFormDTO; import com.elink.esua.epdc.dto.issue.form.IssueCategoryStatisticsFormDTO; import com.elink.esua.epdc.dto.issue.form.IssueDetailFormDTO; import com.elink.esua.epdc.dto.issue.form.IssueFormDTO; @@ -17,11 +21,13 @@ import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.IssueFeignClient; import com.elink.esua.epdc.feign.OssFeignClient; import com.elink.esua.epdc.service.IssueService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.util.List; +import java.util.Map; /** * 议题模块 @@ -69,8 +75,21 @@ public class IssueServiceImpl implements IssueService { } @Override - public Result upload(MultipartFile file) { - return ossFeignClient.upload(file); + public Result upload(Map params) { + try { + // 下载图片并返回base64码 + String base64 = UploadImageUtils.downloadImageFromWx(params); + if (StringUtils.isEmpty(base64)) { + return new Result().error("获取图片信息失败"); + } + // 图片上传至OSS + UploadFormDTO formDTO = new UploadFormDTO(); + formDTO.setBase64String(base64); + return ossFeignClient.upload(formDTO); + } catch (Exception e) { + e.printStackTrace(); + } + return new Result().error("上传图片失败"); } @Override diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml index edf200162..028622096 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml @@ -99,6 +99,11 @@ wx: token: #微信小程序消息服务器配置的token aesKey: #微信小程序消息服务器配置的EncodingAESKey msgDataFormat: JSON + cgiBin: + accessTokenUrl: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&&secret=APPSECRET + mediaUrl: https://api.weixin.qq.com/cgi-bin/media/get + appId: @wx.mp.configs.appId@ + secret: @wx.mp.configs.secret@ token: expire: 21600 diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java index 4dc325937..f5c9a2a43 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java @@ -216,6 +216,7 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl imp itemEntity.setUserId(issueEntity.getUserId()); itemEntity.setNickName(issueEntity.getNickName()); itemEntity.setUserFace(issueEntity.getUserFace()); + itemEntity.setIsPartyMember(issueEntity.getIsPartyMember()); itemEntity.setItemContent(issueEntity.getIssueContent()); itemEntity.setDistributeTime(issueEntity.getDistributeTime()); itemEntity.setArea(issueEntity.getArea()); diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEntity.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEntity.java index 3a7ca1064..89ddc768f 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEntity.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEntity.java @@ -152,6 +152,10 @@ public class ItemEntity extends BaseEpdcEntity { * 满意度评价内容 */ private String evaluationContent; + /** + * 满意度评价时间 + */ + private String evaluationTime; /** * 项目状态 0-处理中,5-已关闭,10-已结案 diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/EpdcEventsDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/EpdcEventsDao.xml index 182e5bfde..f6ea44084 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/EpdcEventsDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/EpdcEventsDao.xml @@ -47,6 +47,12 @@ AND temp.grid_id = #{gridId} + + AND temp.STREET_ID = #{streetId} + + + AND temp.COMMUNITY_ID = #{communityId} + AND temp.EVENT_STATE = 0 ORDER BY temp.CREATED_TIME DESC diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml index d9f870cf2..33032d508 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml @@ -23,8 +23,14 @@ AND DATE_FORMAT( issue.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} - - AND issue.grid_id = #{deptId} + + AND issue.GRID_ID = #{gridId} + + + AND issue.STREET_ID = #{streetId} + + + AND issue.COMMUNITY_ID = #{communityId} ORDER BY issue.CREATED_TIME DESC diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-client/src/main/java/com/elink/esua/epdc/dto/UploadFormDTO.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-client/src/main/java/com/elink/esua/epdc/dto/UploadFormDTO.java new file mode 100644 index 000000000..a6b6aeb9b --- /dev/null +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-client/src/main/java/com/elink/esua/epdc/dto/UploadFormDTO.java @@ -0,0 +1,16 @@ +package com.elink.esua.epdc.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author LC + * @Date 2019/9/11 19:22 + */ +@Data +public class UploadFormDTO implements Serializable { + private static final long serialVersionUID = -3595962954673866413L; + + private String base64String; +} diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java index 23799660e..9147ef77a 100644 --- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java @@ -15,6 +15,7 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.commons.tools.validator.group.AliyunGroup; import com.elink.esua.epdc.commons.tools.validator.group.QcloudGroup; import com.elink.esua.epdc.commons.tools.validator.group.QiniuGroup; +import com.elink.esua.epdc.dto.UploadFormDTO; import com.elink.esua.epdc.entity.OssEntity; import com.elink.esua.epdc.exception.ModuleErrorCode; import com.elink.esua.epdc.remote.ParamsRemoteService; @@ -40,10 +41,12 @@ import com.elink.esua.epdc.remote.ParamsRemoteService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; +import sun.misc.BASE64Decoder; import java.util.Arrays; import java.util.Date; @@ -138,4 +141,20 @@ public class OssController { return new Result(); } + @PostMapping("uploadBase64") + @ApiOperation(value = "上传文件") + public Result uploadFile(@RequestBody UploadFormDTO formDTO) throws Exception { + if (null == formDTO || StringUtils.isEmpty(formDTO.getBase64String())) { + return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY); + } + String[] base64ImgArr = formDTO.getBase64String().split(","); + String suffixTmp = base64ImgArr[0]; + String suffix = suffixTmp.substring(11, suffixTmp.indexOf(";")); + byte[] imgBytes = new BASE64Decoder().decodeBuffer(base64ImgArr[1]); + String url = OssFactory.build().uploadSuffix(imgBytes, suffix); + System.out.println("base64:"+formDTO.getBase64String()); + System.out.println("url:"+url); + return new Result().ok(url); + } + }