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