package cn.wisenergy.service.app;

import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.app.AntiFake;
import cn.wisenergy.model.app.ProductInfo;
import cn.wisenergy.model.dto.AntiFakeQuery;
import cn.wisenergy.model.dto.CreateCodeVo;
import cn.wisenergy.model.dto.ProductDto;
import com.github.pagehelper.PageInfo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;


/**
 * @author 86187
 * @ Description: 二维码防伪接口定义
 * @ Author     : 86187
 * @ Date       : 2021/4/21 10:28
 */
public interface AntiFakeService {

    /**
     * 创建防伪二维码
     *
     * @param codeVo 二维码信息
     * @return true or false
     */
    R<Boolean> createCode(CreateCodeVo codeVo) throws ParseException;

    /**
     * 扫描防伪二维码
     *
     * @param produceNo 产品编号
     * @param securityCode 安全码
     * @return 扫描结果
     */
    R<String> scanCode(String produceNo,String securityCode);

    /**
     * 获取防伪二维码列表
     *
     * @param query 条件参数
     * @return 列表
     */
    R<PageInfo<AntiFake>> getList(AntiFakeQuery query);


    /**
     * 导出生成二维码的字符串
     *
     * @param batchNumber 批次号
     * @param request 请求
     * @param response 响应
     * @return true or false
     */
    R<Boolean> report(String batchNumber, HttpServletRequest request,HttpServletResponse response);


    /**
     * 获取产品信息
     * @param shaValue  防伪码
     * @return 产品信息
     */
    R<ProductDto> getProductInfo(String shaValue);

    R<Boolean> ceishi(String shaValue,HttpServletRequest request) throws Exception;
}
