181 lines
4.9 KiB
Go
181 lines
4.9 KiB
Go
package trenditapi
|
||
|
||
import (
|
||
"errors"
|
||
"fmt"
|
||
)
|
||
|
||
//增加打印机
|
||
func (a *API) AddPrinter(sn, key, name string) error {
|
||
params := []AddPrinterReq{{
|
||
Sn: sn,
|
||
Key: key,
|
||
Name: name,
|
||
}}
|
||
resp, err := a.HttpPostJson("addPrinter", params)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
if resp.HttpStatusCode != HttpStatusSuccessCode {
|
||
return errors.New("HTTP请求错误,请检查重试")
|
||
}
|
||
if resp.BaseRes.Code != ResponseCodeSuccess {
|
||
return fmt.Errorf("添加打印机错误: %v", resp.BaseRes.Message)
|
||
}
|
||
retVal, _ := resp.BaseRes.Data.(map[string]interface{})
|
||
failMsg := ""
|
||
if len(retVal["fail"].([]interface{})) > 0 {
|
||
for _, v := range retVal["fail"].([]interface{}) {
|
||
t := v.(FailItem)
|
||
failMsg += t.Sn + ":" + t.Reason + " "
|
||
}
|
||
return fmt.Errorf("添加打印机错误: %v", failMsg)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
//修改打印机信息
|
||
func (a *API) EditPrinter(sn, name string) (string, error) {
|
||
resp, err := a.HttpPostJson("editPrinter", []EditPrinterReq{{
|
||
Sn: sn,
|
||
Name: name,
|
||
},
|
||
})
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
if resp.HttpStatusCode != HttpStatusSuccessCode {
|
||
return "", errors.New("HTTP请求错误,请检查重试")
|
||
}
|
||
if resp.BaseRes.Code != ResponseCodeSuccess {
|
||
return "", fmt.Errorf("修改打印机信息错误:%v", resp.BaseRes.Message)
|
||
}
|
||
retVal, _ := resp.BaseRes.Data.(map[string]interface{})
|
||
failMsg := ""
|
||
if len(retVal["fail"].([]interface{})) > 0 {
|
||
for _, v := range retVal["fail"].([]interface{}) {
|
||
t := v.(FailItem)
|
||
failMsg += t.Sn + ":" + t.Reason + " "
|
||
}
|
||
return fmt.Sprintf("修改打印机信息错误:%v", failMsg), nil
|
||
}
|
||
return "", nil
|
||
}
|
||
|
||
//删除打印机
|
||
func (a *API) DelPrinter(snList []string) error {
|
||
resp, err := a.HttpPostJson("delPrinter", snList)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
if resp.HttpStatusCode != HttpStatusSuccessCode {
|
||
return errors.New("HTTP请求错误,请检查重试")
|
||
}
|
||
if resp.BaseRes.Code != ResponseCodeSuccess {
|
||
return fmt.Errorf("删除打印机错误:%v", resp.BaseRes.Message)
|
||
}
|
||
retVal, _ := resp.BaseRes.Data.(map[string]interface{})
|
||
failMsg := ""
|
||
if len(retVal["fail"].([]interface{})) > 0 {
|
||
for _, v := range retVal["fail"].([]interface{}) {
|
||
t := v.(FailItem)
|
||
failMsg += t.Sn + ":" + t.Reason + " "
|
||
}
|
||
return fmt.Errorf("删除打印机错误:%v", failMsg)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
//设置打印机浓度
|
||
func (a *API) SetDensity(sn string, density int) error {
|
||
resp, err := a.HttpPostJson("setDensity", SetDensityReq{
|
||
Sn: sn,
|
||
Density: density,
|
||
})
|
||
if err != nil {
|
||
return err
|
||
}
|
||
if resp.HttpStatusCode != HttpStatusSuccessCode {
|
||
return errors.New("HTTP请求错误,请检查重试")
|
||
}
|
||
if resp.BaseRes.Code != ResponseCodeSuccess {
|
||
return fmt.Errorf("设置打印机浓度错误:%v", resp.BaseRes.Message)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
//设置音量
|
||
func (a *API) SetVolume(sn string, volume int) error {
|
||
resp, err := a.HttpPostJson("setVolume", SetVolumeReq{
|
||
Sn: sn,
|
||
Volume: volume,
|
||
})
|
||
if err != nil {
|
||
return err
|
||
}
|
||
if resp.HttpStatusCode != HttpStatusSuccessCode {
|
||
return errors.New("HTTP请求错误,请检查重试")
|
||
}
|
||
if resp.BaseRes.Code != ResponseCodeSuccess {
|
||
return fmt.Errorf("设置打印机音量错误:%v", resp.BaseRes.Message)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
//查询打印机状态
|
||
func (a *API) GetDeviceStatus(sn string) (float64, float64, error) {
|
||
resp, err := a.HttpPostJson("getDeviceStatus", GetDeviceStatusReq{Sn: sn})
|
||
if err != nil {
|
||
return 0, 0, err
|
||
}
|
||
if resp.HttpStatusCode != HttpStatusSuccessCode {
|
||
return 0, 0, errors.New("HTTP请求错误,请检查重试")
|
||
}
|
||
if resp.BaseRes.Code != ResponseCodeSuccess {
|
||
return 0, 0, fmt.Errorf("查询打印机状态错误:%v", resp.BaseRes.Message)
|
||
}
|
||
retVal, _ := resp.BaseRes.Data.(map[string]interface{})
|
||
return retVal["onlineStatus"].(float64), retVal["workStatus"].(float64), nil
|
||
}
|
||
|
||
//清空设备待打印队列
|
||
func (a *API) CleanWaitingQueue(sn string) error {
|
||
resp, err := a.HttpPostJson("cleanWaitingQueue", sn)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
if resp.HttpStatusCode != HttpStatusSuccessCode {
|
||
return errors.New("HTTP请求错误,请检查重试")
|
||
}
|
||
if resp.BaseRes.Code != ResponseCodeSuccess {
|
||
return fmt.Errorf("清空设备待打印队列错误:%v", resp.BaseRes.Message)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
//打印小票
|
||
func (a *API) Print(sn, content, voice string) (string, error) {
|
||
resp, err := a.HttpPostJson("print", PrintReq{
|
||
Sn: sn,
|
||
Content: content,
|
||
Voice: voice,
|
||
VoicePlayTimes: 1,
|
||
VoicePlayInterval: 3,
|
||
Copies: 1,
|
||
})
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
if resp.HttpStatusCode != HttpStatusSuccessCode {
|
||
return "", errors.New("HTTP请求错误,请检查重试")
|
||
}
|
||
if resp.BaseRes.Code != ResponseCodeSuccess {
|
||
return "", fmt.Errorf("打印错误:%v", resp.BaseRes.Message)
|
||
}
|
||
retVal := resp.BaseRes.Data.(map[string]interface{})
|
||
if retVal["printId"].(string) != "" {
|
||
return retVal["printId"].(string), nil
|
||
}
|
||
return "", nil
|
||
}
|