Pārlūkot izejas kodu

上传logo重新分享二维码

dengsixing 2 gadi atpakaļ
vecāks
revīzija
6eeb89ab09

+ 3 - 5
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -519,11 +519,9 @@ public class SceneEditController extends BaseController {
      * 上传二维码和分享的logo
      * @return
      */
-    @RequestMapping(value = "/uploadShareLogo", method = RequestMethod.POST)
-    public ResultData uploadShareLogo(@RequestParam("num") String sceneNum, @RequestParam("file") MultipartFile file) throws Exception {
-        SceneEditParamVO base = new SceneEditParamVO();
-        base.setNum(sceneNum);
-        return sceneProService.uploadShareLogo(base, file);
+    @PostMapping(value = "/uploadShareLogo")
+    public ResultData uploadShareLogo(@RequestParam("num") String num, @RequestParam("file") MultipartFile file) throws Exception {
+        return scenePlusService.uploadShareLogo(num, file);
     }
 
     /**

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IScenePlusService.java

@@ -30,5 +30,7 @@ public interface IScenePlusService extends IService<ScenePlus> {
 
     ResultData moveScene(List<String> numList, Long cameraId, Long userId);
 
+    ResultData uploadShareLogo(String num, MultipartFile file) throws Exception;
+
 
 }

+ 0 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -100,8 +100,6 @@ public interface ISceneProService extends IService<ScenePro> {
 
     ResultData saveTagsVisible(SaveTagsVisibleParamVO param) throws Exception;
 
-    ResultData uploadShareLogo(SceneEditParamVO base, MultipartFile file) throws Exception;
-
     ResultData uploadPic(FileParamVO param, MultipartFile file) throws Exception;
 
     ResultData uploadHotJsonToOss(SceneEditParamVO param) throws Exception;

+ 47 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/ScenePlusServiceImpl.java

@@ -2,15 +2,20 @@ package com.fdkankan.scene.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.PayStatus;
+import com.fdkankan.common.constant.UploadFilePath;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.MatrixToImageWriterUtil;
+import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.entity.ScenePlusExt;
 import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.entity.SceneProEdit;
 import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.mapper.IScenePlusMapper;
 import com.fdkankan.scene.service.ISceneEditInfoService;
@@ -18,11 +23,14 @@ import com.fdkankan.scene.service.IScenePlusExtService;
 import com.fdkankan.scene.service.IScenePlusService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.scene.vo.SceneCheckKeyParamVO;
+import java.io.File;
 import java.util.Calendar;
 import java.util.List;
 import java.util.Objects;
+import java.util.UUID;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -38,6 +46,11 @@ import org.springframework.web.multipart.MultipartFile;
 @Service
 public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
 
+    @Value("${main.url}")
+    private String mainUrl;
+    @Value("${scene.pro.new.url}")
+    private String sceneProNewUrl;
+
     @Autowired
     private IScenePlusExtService scenePlusExtService;
     @Autowired
@@ -45,7 +58,9 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     @Autowired
     private IScenePlusService scenePlusService;
     @Autowired
-    ISceneEditInfoService sceneEditInfoService;
+    private ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    private UploadToOssUtil uploadToOssUtil;
 
     @Override
     public ScenePlus getScenePlusByNum(String num) {
@@ -117,4 +132,35 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
 
     }
 
+    @Override
+    public ResultData uploadShareLogo(String num, MultipartFile file) throws Exception {
+
+        ScenePlus scenePlus = this.getScenePlusByNum(num);
+        if (Objects.isNull(scenePlus)) {
+            return ResultData.error(ErrorCode.FAILURE_CODE_5005);
+        }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+
+        String fileName = file.getOriginalFilename();
+        String extName = fileName.substring(fileName.lastIndexOf("."));
+        File newFile = File.createTempFile(UUID.randomUUID().toString() ,extName);
+        file.transferTo(newFile);
+
+        String logoPah = newFile.getPath();
+
+        String outPathZh = ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+num+".png";
+        String outPathEn = ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+num+"_en.png";
+
+        String webSize = mainUrl + "/" + sceneProNewUrl + num;
+        //生成新的分享的二维码-中文版本
+        MatrixToImageWriterUtil.createQRCode(webSize, outPathZh, true, logoPah);
+        //生成新的分享的二维码-英文版本
+        MatrixToImageWriterUtil.createQRCode(webSize + "&lang=en", outPathEn, true, logoPah);
+        //上传二维码
+        uploadToOssUtil.upload(outPathZh, String.format(UploadFilePath.DOWNLOADS_QRCODE, num) + num + ".png");
+        uploadToOssUtil.upload(outPathEn, String.format(UploadFilePath.DOWNLOADS_QRCODE, num) + num + "_en.png");
+
+        return ResultData.ok();
+    }
+
 }

+ 0 - 64
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -3149,70 +3149,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData uploadShareLogo(SceneEditParamVO base, MultipartFile file) throws Exception {
-        if(file == null || StrUtil.isEmpty(base.getNum())){
-            throw new BusinessException(ErrorCode.PARAM_REQUIRED);
-        }
-
-        ScenePro scenePro = findBySceneNum(base.getNum());
-        if (scenePro == null ) {
-            return ResultData.error(ErrorCode.FAILURE_CODE_5005);
-        }
-
-        StringBuffer dataBuf = new StringBuffer()
-                .append("data").append(File.separator)
-                .append("data").append(scenePro.getNum())
-                .append(File.separator);
-        StringBuffer imagesBuf = new StringBuffer()
-                .append("images").append(File.separator)
-                .append("images").append(scenePro.getNum())
-                .append(File.separator);
-
-        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
-        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
-
-        String fileName = "";
-        if (!file.isEmpty()&&file.getSize() > 0) {
-            //文件上传的位置可以自定义
-            System.out.println("上传分享的logo");
-            String path = imagesBuffer.toString();
-            File targetFile = new File(path);
-            if (!targetFile.exists()) {
-                targetFile.mkdirs();
-            }
-            fileName = file.getOriginalFilename();
-            targetFile = new File(path + fileName);
-            int count = 1;
-            // 保存
-            synchronized(this)
-            {
-                file.transferTo(targetFile);
-            }
-
-            SceneProEdit sceneProEdit = sceneProEditService.findByProId(scenePro.getId());
-
-//            Map<String, Object> map = new HashMap<>();
-//            map.put("shareLogo", imagesBuf.toString() + fileName);
-//            map.put("version", sceneProEdit.getVersion()+1);
-//            FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
-
-            sceneProEdit.setShareLogo(imagesBuf.toString() + fileName);
-            sceneProEdit.setVersion(sceneProEdit.getVersion()+1);
-            sceneProEdit.setUpdateTime(Calendar.getInstance().getTime());
-            sceneProEditService.updateById(sceneProEdit);
-            if("V2".equals(scenePro.getBuildType())){
-                MatrixToImageWriterUtil.createQRCode(mainUrl + sceneProUrl + scenePro.getNum(), ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+scenePro.getNum()+".png", true,  path + File.separator + fileName);
-                MatrixToImageWriterUtil.createQRCode(mainUrl + sceneProUrl + scenePro.getNum() + "&lang=en", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+scenePro.getNum()+"_en.png", true, path + File.separator + fileName);
-            }
-            if("V3".equals(scenePro.getBuildType())){
-                MatrixToImageWriterUtil.createQRCode(mainUrl + sceneProNewUrl + scenePro.getNum(), ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+scenePro.getNum()+".png", true, path + File.separator + fileName);
-                MatrixToImageWriterUtil.createQRCode(mainUrl + sceneProNewUrl + scenePro.getNum() + "&lang=en", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+scenePro.getNum()+"_en.png", true, path + File.separator + fileName);
-            }
-        }
-        return ResultData.ok(imagesBuf.toString() + fileName);
-    }
-
-    @Override
     public ResultData uploadPic(FileParamVO param, MultipartFile file) throws Exception{
         String sceneNum = param.getNum();
         String folderName = param.getFolderName();