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)); } } 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(); 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; } 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; } 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); }