package com.fuint.common.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.fuint.common.vo.printer.*; import java.util.List; /** * 云打印相关接口封装类 * * Created by FSQ * CopyRight https://www.fuint.cn */ public class PrintUtil { private static String BASE_URL = "https://open.xpyun.net/api/openapi"; /** * 1.批量添加打印机 * @param restRequest * @return */ public static ObjectRestResponse addPrinters(AddPrinterRequest restRequest) { String url = BASE_URL + "/xprinter/addPrinters"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 2.设置打印机语音类型 * @param restRequest * @return */ public ObjectRestResponse setPrinterVoiceType(SetVoiceTypeRequest restRequest) { String url = BASE_URL + "/xprinter/setVoiceType"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 3.打印小票订单 * @param restRequest * @return */ public ObjectRestResponse print(PrintRequest restRequest) { String url = BASE_URL + "/xprinter/print"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 4.打印标签订单 * * @param restRequest * @return */ public ObjectRestResponse printLabel(PrintRequest restRequest) { String url = BASE_URL + "/xprinter/printLabel"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 5.批量删除打印机 * * @param restRequest * @return */ public ObjectRestResponse delPrinters(DelPrinterRequest restRequest) { String url = BASE_URL + "/xprinter/delPrinters"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 6.修改打印机信息 * * @param restRequest * @return */ public ObjectRestResponse updPrinter(UpdPrinterRequest restRequest) { String url = BASE_URL + "/xprinter/updPrinter"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 7.清空待打印队列 * * @param restRequest * @return */ public ObjectRestResponse delPrinterQueue(PrinterRequest restRequest) { String url = BASE_URL + "/xprinter/delPrinterQueue"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 8.查询订单是否打印成功 * * @param restRequest * @return */ public ObjectRestResponse queryOrderState(QueryOrderStateRequest restRequest) { String url = BASE_URL + "/xprinter/queryOrderState"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 9.查询打印机某天的订单统计数 * * @param restRequest * @return */ public ObjectRestResponse queryOrderStatis(QueryOrderStatisRequest restRequest) { String url = BASE_URL + "/xprinter/queryOrderStatis"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 10.查询打印机状态 * * 0、离线 1、在线正常 2、在线不正常 * 备注:异常一般是无纸,离线的判断是打印机与服务器失去联系超过30秒 * @param restRequest * @return */ public ObjectRestResponse queryPrinterStatus(PrinterRequest restRequest) { String url = BASE_URL + "/xprinter/queryPrinterStatus"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 11.批量查询打印机状态 * * 0、离线 1、在线正常 2、在线不正常 * 备注:异常一般是无纸,离线的判断是打印机与服务器失去联系超过30秒 * @param restRequest * @return */ public ObjectRestResponse> queryPrintersStatus(PrintersRequest restRequest) { String url = BASE_URL + "/xprinter/queryPrintersStatus"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse> result = JSON.parseObject(resp, new TypeReference>>(){}); return result; } /** * 12.云喇叭播放语音 * * @param restRequest * @return */ public ObjectRestResponse playVoice(VoiceRequest restRequest) { String url = BASE_URL + "/xprinter/playVoice"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 13.POS指令 * * @param restRequest * @return */ public ObjectRestResponse pos(PrintRequest restRequest) { String url = BASE_URL + "/xprinter/pos"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } /** * 14.钱箱控制 * * @param restRequest * @return */ public ObjectRestResponse controlBox(PrintRequest restRequest) { String url = BASE_URL + "/xprinter/controlBox"; String jsonRequest = JSON.toJSONString(restRequest); String resp = HttpClientUtil.doPostJSON(url, jsonRequest); ObjectRestResponse result = JSON.parseObject(resp, new TypeReference>(){}); return result; } }