package com.nuvole.poscom.api;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.nuvole.common.domain.result.CommonResult;
|
import com.nuvole.poscom.config.PoscomConfig;
|
import com.nuvole.poscom.config.PoscomPrintData;
|
import com.nuvole.poscom.config.TempletParams;
|
import com.nuvole.poscom.util.PoscomRequest;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
import java.util.Calendar;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* @Description 佳博云打印机接口
|
* @Author ZHAOXL
|
* @Date 2024/3/6 16:24
|
* @Version 1.0
|
*/
|
@Slf4j
|
public class PoscomService {
|
|
/**
|
* 添加打印机
|
* @param deviceID* 终端编号。
|
* @param deviceName* 设备名称,最大64位数据长度。
|
* @param grpID 分组 ID 。
|
* @return CommonResult
|
* @Author ZHAOXL
|
* @Date 2024/3/6 16:53
|
* @Version 1.0
|
*/
|
public static CommonResult<JSONObject> addDev(String deviceID, String deviceName, Integer grpID) {
|
Map<String, String> params = new HashMap<String, String>();
|
String reqTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
params.put("reqTime", reqTime);
|
String securityCode = DigestUtils.md5Hex(PoscomConfig.memberCode + reqTime + PoscomConfig.apiKey + deviceID);
|
params.put("securityCode", securityCode);
|
params.put("memberCode", PoscomConfig.memberCode);
|
params.put("deviceID", deviceID);
|
params.put("devName", deviceName);
|
if (grpID != null) {
|
params.put("grpID", grpID + "");
|
}
|
log.debug("=====请求参数 START=====\r\n" + "---> adddev <---\r\n" + params + "\r\n=====请求参数 END=====");
|
String result = PoscomRequest.sendPost("http://api.poscom.cn/apisc/adddev", params);
|
log.debug("=====请求返回 START=====\r\n" + result + "\r\n=====请求返回 END=====");
|
JSONObject resultObject = JSONObject.parseObject(result);
|
return new CommonResult(resultObject);
|
}
|
|
/**
|
* 打印机切换播报类型
|
* @param deviceID* 终端编号。
|
* @param voiceType* 语音类型。0 真人语音,1 滴滴语音,2 不自动播放新订单,真人语音,3 不自动播放新订单,滴滴语音。
|
* @return
|
* @Author ZHAOXL
|
* @Date 2024/3/7 15:48
|
* @Version 1.0
|
*/
|
public static CommonResult<JSONObject> setVoiceType(String deviceID, String voiceType) {
|
Map<String, String> params = new HashMap<String, String>();
|
String reqTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
params.put("reqTime", reqTime);
|
String securityCode = DigestUtils.md5Hex(PoscomConfig.memberCode + reqTime + PoscomConfig.apiKey + deviceID);
|
params.put("securityCode", securityCode);
|
params.put("memberCode", PoscomConfig.memberCode);
|
params.put("deviceID", deviceID);
|
params.put("voiceType", voiceType);
|
log.debug("=====请求参数 START=====\r\n" + "---> setVoiceType <---\r\n" + params + "\r\n=====请求参数 END=====");
|
String result = PoscomRequest.sendPost("http://api.poscom.cn/apisc/setVoiceType", params);
|
log.debug("=====请求返回 START=====\r\n" + result + "\r\n=====请求返回 END=====");
|
JSONObject resultObject = JSONObject.parseObject(result);
|
return new CommonResult(resultObject);
|
}
|
|
/**
|
* 删除打印机
|
* @param deviceID* 终端编号。
|
* @return CommonResult
|
* @Author ZHAOXL
|
* @Date 2024/3/7 9:47
|
* @Version 1.0
|
*/
|
public static CommonResult<JSONObject> delDev(String deviceID) {
|
Map<String, String> params = new HashMap<String, String>();
|
String reqTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
params.put("reqTime", reqTime);
|
String securityCode = DigestUtils.md5Hex(PoscomConfig.memberCode + reqTime + PoscomConfig.apiKey + deviceID);
|
params.put("securityCode", securityCode);
|
params.put("memberCode", PoscomConfig.memberCode);
|
params.put("deviceID", deviceID);
|
log.debug("=====请求参数 START=====\r\n" + "---> deldev <---\r\n" + params + "\r\n=====请求参数 END=====");
|
String result = PoscomRequest.sendPost("http://api.poscom.cn/apisc/deldev", params);
|
log.debug("=====请求返回 START=====\r\n" + result + "\r\n=====请求返回 END=====");
|
JSONObject resultObject = JSONObject.parseObject(result);
|
return new CommonResult(resultObject);
|
}
|
|
/**
|
* 指定模板打印
|
* @param deviceID* 终端编号。
|
* @param templetParams* 模板参数
|
* @return CommonResult
|
* @Author ZHAOXL
|
* @Date 2024/3/7 10:19
|
* @Version 1.0
|
*/
|
public static CommonResult<JSONObject> templetPrint(String deviceID, TempletParams templetParams) {
|
Map<String, String> params = new HashMap<String, String>();
|
String reqTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
params.put("reqTime", reqTime);
|
String securityCode = DigestUtils.md5Hex(PoscomConfig.memberCode + deviceID + reqTime + PoscomConfig.apiKey);
|
params.put("securityCode", securityCode);
|
params.put("memberCode", PoscomConfig.memberCode);
|
params.put("deviceID", deviceID);
|
params.put("templetID", PoscomConfig.templetId);
|
String tData = JSONObject.toJSONString(templetParams);
|
params.put("tData", tData);
|
params.put("charset","1"); //Default:1, 1:GB18030, 2:GB2312, 3:GBK, 4:UTF-8, 5:Unicode, 6:ISO8859-1, 7:BIG5
|
params.put("msgNo","");
|
params.put("reprint","0");
|
params.put("multi","0");
|
params.put("times","");
|
params.put("token", "");
|
log.debug("=====请求参数 START=====\r\n" + "---> templetPrint <---\r\n" + params + "\r\n=====请求参数 END=====");
|
String result = PoscomRequest.sendPost("http://api.poscom.cn/apisc/templetPrint", params);
|
log.debug("=====请求返回 START=====\r\n" + result + "\r\n=====请求返回 END=====");
|
JSONObject resultObject = JSONObject.parseObject(result);
|
return new CommonResult(resultObject);
|
}
|
|
/**
|
* 发送语音到打印机
|
* @param* 终端编号。
|
* @param* 语音内容。
|
* @return
|
* @Author ZHAOXL
|
* @Date 2024/3/7 10:29
|
* @Version 1.0
|
*/
|
public static CommonResult<JSONObject> sendVoice(String deviceID, String voice) {
|
Map<String, String> params = new HashMap<String, String>();
|
String reqTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
params.put("reqTime", reqTime);
|
String securityCode = DigestUtils.md5Hex(PoscomConfig.memberCode + deviceID + reqTime + PoscomConfig.apiKey);
|
params.put("securityCode", securityCode);
|
params.put("memberCode", PoscomConfig.memberCode);
|
params.put("deviceID", deviceID);
|
params.put("voice", voice);
|
params.put("token", "");
|
log.debug("=====请求参数 START=====\r\n" + "---> sendVoice <---\r\n" + params + "\r\n=====请求参数 END=====");
|
String result = PoscomRequest.sendPost("http://api.poscom.cn/apisc/sendVoice", params);
|
log.debug("=====请求返回 START=====\r\n" + result + "\r\n=====请求返回 END=====");
|
JSONObject resultObject = JSONObject.parseObject(result);
|
return new CommonResult(resultObject);
|
}
|
|
public static CommonResult<JSONObject> sendMsg(String deviceID) {
|
Map<String, String> params = new HashMap<String, String>();
|
String reqTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
params.put("reqTime", reqTime);
|
String securityCode = DigestUtils.md5Hex(PoscomConfig.memberCode + deviceID + reqTime + reqTime + PoscomConfig.apiKey);
|
params.put("securityCode", securityCode);
|
params.put("memberCode", PoscomConfig.memberCode);
|
params.put("deviceID", deviceID);
|
//-----票据打印机 格式类型:2
|
params.put("mode", "2");
|
params.put("msgDetail", PoscomPrintData.ReceiptData2);
|
//-----票据打印机 格式类型:2
|
params.put("charset","1"); //Default:1, 1:GB18030, 2:GB2312, 3:GBK, 4:UTF-8, 5:Unicode, 6:ISO8859-1, 7:BIG5
|
params.put("msgNo", reqTime);
|
log.debug("=====请求参数 START=====\r\n" + "---> sendMsg <---\r\n" + params + "\r\n=====请求参数 END=====");
|
String result = PoscomRequest.sendPost("http://api.poscom.cn/apisc/sendMsg", params);
|
log.debug("=====请求返回 START=====\r\n" + result + "\r\n=====请求返回 END=====");
|
JSONObject resultObject = JSONObject.parseObject(result);
|
return new CommonResult(resultObject);
|
}
|
|
public static CommonResult<JSONObject> queryState(String deviceID) {
|
Map<String, String> params = new HashMap<String, String>();
|
String reqTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
params.put("reqTime", reqTime);
|
String securityCode = DigestUtils.md5Hex(PoscomConfig.memberCode + reqTime + PoscomConfig.apiKey + reqTime);
|
params.put("securityCode", securityCode);
|
params.put("memberCode", PoscomConfig.memberCode);
|
params.put("msgNo", reqTime);
|
log.debug("=====请求参数 START=====\r\n" + "---> sendMsg <---\r\n" + params + "\r\n=====请求参数 END=====");
|
String result = PoscomRequest.sendPost("http://api.poscom.cn/apisc/queryState", params);
|
log.debug("=====请求返回 START=====\r\n" + result + "\r\n=====请求返回 END=====");
|
JSONObject resultObject = JSONObject.parseObject(result);
|
return new CommonResult(resultObject);
|
}
|
|
}
|