智慧农业后台管理
Administrator
2022-07-01 3c18ab6cd51082eefdc1e3ef28751dd46db3faab
src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java
@@ -1,12 +1,21 @@
package org.springblade.modules.traceability.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.zxing.WriterException;
import org.springblade.common.config.TraceabilityCodeConfig;
import org.springblade.common.utils.QRCodeUtil;
import org.springblade.modules.traceability.dto.TraceabilityDTO;
import org.springblade.modules.traceability.entity.Traceability;
import org.springblade.modules.traceability.mapper.TraceabilityMapper;
import org.springblade.modules.traceability.service.TraceabilityService;
import org.springblade.modules.traceability.vo.TraceabilityVO;
import org.springframework.stereotype.Service;
import sun.misc.BASE64Encoder;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
/**
@@ -28,4 +37,41 @@
   public IPage<TraceabilityVO> selectTraceabilityPage(IPage<TraceabilityVO> page, TraceabilityVO traceability) {
      return page.setRecords(baseMapper.selectTraceabilityPage(page, traceability));
   }
   @Override
   public String selectRevorid(String code) {
      return baseMapper.selectRevorid(code);
   }
   /**
    * 获取溯源简介信息
    * @param traceability
    * @return
    */
   @Override
   public TraceabilityDTO getSimpleInfo(Traceability traceability) {
      TraceabilityDTO simpleInfo = baseMapper.getSimpleInfo(traceability);
      simpleInfo.setCode(traceability.getCode());
      //获取二维码信息
      String url = TraceabilityCodeConfig.getCodeUrl();
      String encoded = null;
      try {
         encoded = URLEncoder.encode(traceability.getCode(),"UTF-8");
      } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
      }
      String content = url + "?code=" + encoded;
      byte[] qrCodeImage = new byte[0];
      try {
         qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350);
      } catch (WriterException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
      String encode = new BASE64Encoder().encode(qrCodeImage);
      simpleInfo.setQrcode("data:image/png;base64,"+encode);
      //返回
      return simpleInfo;
   }
}