jiaosong
2023-11-10 d7d5aef5642102235890b10b890a60f02fcf785c
#  lock 图片base64
已修改5个文件
36 ■■■■■ 文件已修改
server/platform/src/main/java/com/doumee/api/business/LocksController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/model/Locks.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/AccountApi.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }