From d7d5aef5642102235890b10b890a60f02fcf785c Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期五, 10 十一月 2023 09:51:45 +0800
Subject: [PATCH] #  lock 图片base64

---
 server/platform/src/main/java/com/doumee/api/business/LocksController.java           |    4 +++-
 server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java              |   20 ++++++++------------
 server/services/src/main/java/com/doumee/dao/business/model/Locks.java               |    3 +++
 server/web/src/main/java/com/doumee/api/web/AccountApi.java                          |    2 +-
 server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java |    7 ++++++-
 5 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/LocksController.java b/server/platform/src/main/java/com/doumee/api/business/LocksController.java
index 581f75f..aeb0e18 100644
--- a/server/platform/src/main/java/com/doumee/api/business/LocksController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/LocksController.java
@@ -99,7 +99,9 @@
 
     @ApiOperation("鑾峰彇閿佹鍣ㄥ皬绋嬪簭浜岀淮鐮�")
     @GetMapping("/findLockBase")
-    public ApiResponse<List<Locks>> findLockBase64List(Locks locks){
+    public ApiResponse<List<Locks>> findLockBase64List(@RequestParam String siteId){
+        Locks locks = new Locks();
+        locks.setSiteId(siteId);
         return ApiResponse.success(locksService.findLockBase64List(locks));
     }
 }
diff --git a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
index 0214366..fa41272 100644
--- a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
+++ b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
@@ -5,6 +5,7 @@
 import com.doumee.core.constants.Constants;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.ID;
 import com.doumee.dao.business.RefundMapper;
 import com.doumee.dao.business.TransactionsMapper;
@@ -24,6 +25,7 @@
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.Response;
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,10 +33,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import sun.misc.BASE64Decoder;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
+import java.io.*;
 import java.math.BigDecimal;
 import java.util.*;
 
@@ -134,7 +133,7 @@
      * https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getUnlimitedQRCode.html
      * @return
      */
-    public void generateWXMiniCode(Locks locks,SystemDictData systemDictData){
+    public void generateWXMiniCode(Locks locks,SystemDictData systemDictData,String prePath,String path){
 
         if(Objects.isNull(systemDictData)){
             return;
@@ -157,13 +156,10 @@
             Response response = client.newCall(request).execute();
             if (response.isSuccessful()) {
                 InputStream inputStream = new ByteArrayInputStream(response.body().bytes());
-
-                // 寰楀埌鏂囦欢澶у皬
-                int i = inputStream.available();
-                byte[] mFileBody = new byte[i];
-                // 璇绘暟鎹�
-                inputStream.read(mFileBody);
-                locks.setInfo("data:image/Jpeg;base64," + Base64.getEncoder().encodeToString(mFileBody));
+                String nowDate = DateUtil.getNowShortDate();
+                File file = new File(prePath+path,locks.getSiteId()+"-"+locks.getCode()+"-"+nowDate+".png");
+                FileUtils.copyInputStreamToFile(inputStream,file);
+                locks.setInfo(locks.getSiteId()+"-"+locks.getCode()+"-"+nowDate+".png");
             }
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Locks.java b/server/services/src/main/java/com/doumee/dao/business/model/Locks.java
index e69423b..cfaab37 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Locks.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Locks.java
@@ -85,4 +85,7 @@
     @TableField(exist  = false)
     private Sites sites;
 
+    @ApiModelProperty(value = "澶囨敞")
+    @TableField(exist  = false)
+    private String imgfullurl;
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java
index b8b7008..b4b873a 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java
@@ -115,20 +115,25 @@
     @Override
     public List<Locks> findLockBase64List(Locks locks) {
         LoginUserInfo loginUserInfo =  (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String fullPath = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FILE_DIR).getCode() +
+                systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROJECTS).getCode() ;
 
         QueryWrapper<Locks> wrapper = new QueryWrapper<>(locks);
         wrapper.lambda().orderByAsc(Locks::getCode);
         List<Locks> locksList = locksMapper.selectList(wrapper);
         SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.ACCESS_TOKEN);
+        String code = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+        String prePath = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.IMG_DIR).getCode();
         if (!CollectionUtils.isEmpty(locksList)){
             // 妫�鏌ユ槸鍚︽湁鍥剧墖淇℃伅娌℃湁鏇存柊淇濆瓨鍥剧墖
             locksList.forEach(s-> {
                 if (StringUtils.isBlank(s.getInfo())){
-                    wxMiniUtilService.generateWXMiniCode(s, systemDictData);
+                    wxMiniUtilService.generateWXMiniCode(s,systemDictData,prePath,code);
                     s.setEditor(loginUserInfo.getId());
                     s.setEditDate(new Date());
                     updateById(s);
                 }
+                s.setImgfullurl(fullPath+s.getInfo());
             });
             return locksList;
         }
diff --git a/server/web/src/main/java/com/doumee/api/web/AccountApi.java b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
index ce8e500..1ae42d1 100644
--- a/server/web/src/main/java/com/doumee/api/web/AccountApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
@@ -114,7 +114,7 @@
         locks.setCode(12);
         locks.setSiteId("1005");
         SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.ACCESS_TOKEN);
-        wxMiniUtilService.generateWXMiniCode(locks,systemDictData);
+        wxMiniUtilService.generateWXMiniCode(locks,systemDictData,"/usr/local/static_resources/bike/bike_file/","");
         return  ApiResponse.success("鎿嶄綔鎴愬姛",locks);
     }
 

--
Gitblit v1.9.3