智慧农业后台管理
Administrator
2022-07-01 3c18ab6cd51082eefdc1e3ef28751dd46db3faab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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;
    }
}