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;
|
|
/**
|
* 溯源码表服务实现类
|
* @since 2022-05-19
|
* @author zhongrj
|
*/
|
@Service
|
public class TraceabilityServiceImpl extends ServiceImpl<TraceabilityMapper, Traceability> implements TraceabilityService {
|
|
/**
|
* 自定义分页
|
*
|
* @param page
|
* @param traceability
|
* @return
|
*/
|
@Override
|
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;
|
}
|
}
|