From 8bd9136fed87a1e2b60132b94aa9bc97bb8812c2 Mon Sep 17 00:00:00 2001 From: YXY <932687738@qq.com> Date: Tue, 22 Aug 2023 22:18:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LarkActiveUserRelationRequest.java | 1 + .../LarkUserActiveRelatoinServiceImpl.java | 53 ++++++++++++++++--- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveUserRelationRequest.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveUserRelationRequest.java index b63c4f2..4e19aaa 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveUserRelationRequest.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveUserRelationRequest.java @@ -17,6 +17,7 @@ public class LarkActiveUserRelationRequest extends LarkActiveBaseRequestVo { private String larkActiveName; private String userName; + private String imageBase64; private MultipartFile file; diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java index 495ba19..c0822f2 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java @@ -1,12 +1,11 @@ package com.ruoyi.flyingbook.service.impl; -import com.qcloud.cos.model.PutObjectResult; +import cn.hutool.core.util.IdUtil; import com.ruoyi.common.enums.FlagStatus; import com.ruoyi.common.enums.LarkActiveEnum; import com.ruoyi.common.enums.LarkActiveStageEnum; import com.ruoyi.common.enums.LarkUserTypeEnum; import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.flyingbook.CosHelper.CosHelper; import com.ruoyi.flyingbook.domain.LarkActive; import com.ruoyi.flyingbook.domain.LarkLoginLog; @@ -14,7 +13,6 @@ import com.ruoyi.flyingbook.domain.LarkUserActiveImage; import com.ruoyi.flyingbook.domain.LarkUserActiveRelatoin; import com.ruoyi.flyingbook.domain.edi.ResponseVo; import com.ruoyi.flyingbook.domain.larkactive.LarkActiveCountVo; -import com.ruoyi.flyingbook.domain.larkactive.LarkActiveRequest; import com.ruoyi.flyingbook.domain.larkactive.LarkActiveUserRelationRequest; import com.ruoyi.flyingbook.domain.larkactive.LarkActiveVo; import com.ruoyi.flyingbook.mapper.LarkActiveMapper; @@ -22,18 +20,20 @@ import com.ruoyi.flyingbook.mapper.LarkLoginLogMapper; import com.ruoyi.flyingbook.mapper.LarkUserActiveImageMapper; import com.ruoyi.flyingbook.mapper.LarkUserActiveRelatoinMapper; import com.ruoyi.flyingbook.service.ILarkUserActiveRelatoinService; +import org.apache.commons.codec.binary.Base64; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; +import java.io.BufferedOutputStream; import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.Date; import java.util.List; import java.util.Map; -import java.util.function.Function; import java.util.stream.Collectors; /** @@ -152,6 +152,44 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi return new ResponseVo(request.getCurrentPage(), request.getPageSize(), null, count); } + private File base642File(String base64){ + File file = null; + if(base64.contains("data:image")){ + base64 = base64.substring(base64.indexOf(",")+1); + } + BufferedOutputStream bos = null; + FileOutputStream fos = null; + try { + base64 = base64.toString().replace("\r\n", ""); + //创建文件目录 + String prefix=".jpg"; + file = File.createTempFile(IdUtil.randomUUID(), prefix); + + byte[] bytes = Base64.decodeBase64(base64); + fos = new FileOutputStream(file); + bos = new BufferedOutputStream(fos); + bos.write(bytes); + }catch (Exception e){ + + }finally { + if (bos != null) { + try { + bos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return file; + } + @Override public ResponseVo commitFile(LarkActiveUserRelationRequest request) { List larkActives = larkActiveMapper.selectLarkActiveByName(request.getLarkActiveName(), FlagStatus.OK.getCode()); @@ -165,9 +203,8 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi } Integer totalCount = userActiveCount(relatoin) + 1; LarkActive larkActive = larkActiveMapper.selectLarkActiveById(relatoin.getActiveId()); - MultipartFile multipartFile = request.getFile(); - if (multipartFile != null) { - File file = FileUtils.multipartFile2File(multipartFile); + if (StringUtils.isNotBlank(request.getImageBase64())) { + File file = base642File(request.getImageBase64()); String name = file.getName(); String[] split = name.split("\\."); String key = String.format("%s_%s", split[0], System.currentTimeMillis());