diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 0fdfc558a..06a31c268 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -18,7 +18,6 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils/excel" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/msg" - "git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" @@ -521,7 +520,7 @@ func checkCreateStore(store *model.Store) (err error) { } func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interface{}, userName string) (num int64, err error) { - globals.SugarLogger.Debugf("UpdateStore storeID:%d, payload:%s", storeID, utils.Format4Output(payload, false)) + globals.SugarLogger.Debugf("UpdateStore storeID:%d, payload:%s", storeID, utils.Format4Output(payload, true)) if err = checkBankBranch(utils.Interface2String(payload["payeeBankBranchName"])); err != nil { return 0, err } @@ -544,27 +543,23 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa store.Name = valid["name"].(string) syncStatus |= model.SyncFlagStoreName } + globals.SugarLogger.Debug(utils.Format4Output(valid, false)) // 网络打印机处理 if valid["printerVendorID"] != nil || valid["printerSN"] != nil || valid["printerKey"] != nil { - if handler := partner.GetPrinterPlatformFromVendorID(store.PrinterVendorID); handler != nil { - handler.UnregisterPrinter(ctx, store.PrinterSN, store.PrinterKey) - } if valid["printerVendorID"] == nil { valid["printerVendorID"] = store.PrinterVendorID - } else { - store.PrinterVendorID = int(utils.Interface2Int64WithDefault(valid["printerVendorID"], 0)) } - if store.PrinterVendorID > 0 { + if printerVendorID := int(utils.Interface2Int64WithDefault(valid["printerVendorID"], 0)); printerVendorID > 0 { + handler := partner.GetPrinterPlatformFromVendorID(printerVendorID) + if handler == nil { + return 0, fmt.Errorf("不支持的打印机厂商ID:%d", printerVendorID) + } if valid["printerSN"] == nil { valid["printerSN"] = store.PrinterSN } if valid["printerKey"] == nil { valid["printerKey"] = store.PrinterKey } - var handler partner.IPrinterHandler - if handler, err = netprinter.GetHandlerFromStore(store); err != nil { - return 0, err - } newID1, newID2, err2 := handler.RegisterPrinter(ctx, valid["printerSN"].(string), valid["printerKey"].(string), store.Name) if err = err2; err != nil { return 0, err @@ -576,8 +571,14 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa if newID2 != "" { valid["printerKey"] = newID2 } - - valid["printerBindInfo"] = "" + } else { + valid["printerVendorID"] = 0 + valid["printerSN"] = "" + valid["printerKey"] = "" + } + valid["printerBindInfo"] = "" + if handler := partner.GetPrinterPlatformFromVendorID(store.PrinterVendorID); handler != nil { + handler.UnregisterPrinter(ctx, store.PrinterSN, store.PrinterKey) } } @@ -614,7 +615,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa // } // valid["districtCode"] = api.AutonaviAPI.GetCoordinateDistrictCode(lng, lat) // } - globals.SugarLogger.Debugf("UpdateStore track:%s, valid:%s", ctx.GetTrackInfo(), utils.Format4Output(valid, true)) + globals.SugarLogger.Debugf("UpdateStore track:%s, storeID:%d, valid:%s", ctx.GetTrackInfo(), storeID, utils.Format4Output(valid, true)) if len(valid) > 0 { dao.Begin(db) defer func() { @@ -708,10 +709,9 @@ func CreateStore(ctx *jxcontext.Context, storeExt *StoreExt, userName string) (i store.Name = jxutils.FormalizeName(store.Name) store.DeliveryRange = strings.Trim(store.DeliveryRange, ";") if store.PrinterSN != "" { - var handler partner.IPrinterHandler - handler, err = netprinter.GetHandlerFromStore(store) - if err != nil { - return 0, err + handler := partner.GetPrinterPlatformFromVendorID(store.PrinterVendorID) + if handler == nil { + return 0, fmt.Errorf("不支持的打印机厂商ID:%d", store.PrinterVendorID) } newID1, newID2, err2 := handler.RegisterPrinter(ctx, store.PrinterSN, store.PrinterKey, store.Name) if err = err2; err != nil { diff --git a/business/jxutils/netprinter/netprinter.go b/business/jxutils/netprinter/netprinter.go index c7ff1c8f4..9b0f1c182 100644 --- a/business/jxutils/netprinter/netprinter.go +++ b/business/jxutils/netprinter/netprinter.go @@ -57,11 +57,7 @@ func PrintOrderByOrder(ctx *jxcontext.Context, order *model.GoodsOrder) (printRe PrintResult: partner.PrintResultNoPrinter, }, nil } - if globals.EnableStoreWrite { - printResult, err = handler.PrintOrder(ctx, store, order) - } else { - err = fmt.Errorf("当前环境不支持打印") - } + printResult, err = handler.PrintOrder(ctx, store, order) if err == nil { dao.SetOrderPrintFlag(db, ctx.GetUserName(), order.VendorOrderID, order.VendorID, true) } diff --git a/business/partner/printer/feie/feie.go b/business/partner/printer/feie/feie.go index 84ba7ca04..9179cbdaa 100644 --- a/business/partner/printer/feie/feie.go +++ b/business/partner/printer/feie/feie.go @@ -108,7 +108,10 @@ func (c *PrinterHandler) GetVendorID() int { func (c *PrinterHandler) PrintMsg(ctx *jxcontext.Context, id1, id2, msgTitle, msgContent string) (printerStatus *partner.PrinterStatus, err error) { globals.SugarLogger.Debugf("PrintMsg id1:%s", id1) if id1 != "" { - if _, err = api.FeieAPI.PrintMsg(id1, msgContent, 1); err == nil { + if globals.EnableStoreWrite { + _, err = api.FeieAPI.PrintMsg(id1, msgContent, 1) + } + if err == nil { printerStatus, err = c.GetPrinterStatus(ctx, id1, id2) } } else { @@ -138,13 +141,18 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, } func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerSN, printerKey, printerName string) (notUsed1, notUsed2 string, err error) { - _, no, err := api.FeieAPI.PrinterAddList([]*feieapi.PrinterInfo{ - &feieapi.PrinterInfo{ - SN: printerSN, - Key: printerKey, - Name: printerName, - }, - }) + var no map[string]string + if globals.EnableStoreWrite { + _, no, err = api.FeieAPI.PrinterAddList([]*feieapi.PrinterInfo{ + &feieapi.PrinterInfo{ + SN: printerSN, + Key: printerKey, + Name: printerName, + }, + }) + } else { + no = make(map[string]string) + } if err == nil { if no[printerSN] != "" { if no[printerSN] == feieapi.ErrMsgAlredyAdded { @@ -158,7 +166,9 @@ func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerSN, prin } func (c *PrinterHandler) UnregisterPrinter(ctx *jxcontext.Context, printerSN, notUsed string) (err error) { - _, _, err = api.FeieAPI.PrinterDelList([]string{printerSN}) + if globals.EnableStoreWrite { + _, _, err = api.FeieAPI.PrinterDelList([]string{printerSN}) + } return err } @@ -171,7 +181,9 @@ func (c *PrinterHandler) RebindPrinter(ctx *jxcontext.Context, lastBindResult *p } func (c *PrinterHandler) EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) { - err = api.FeieAPI.DelPrinterSqs(id1) + if globals.EnableStoreWrite { + err = api.FeieAPI.DelPrinterSqs(id1) + } return err } diff --git a/business/partner/printer/xiaowm/xiaowm.go b/business/partner/printer/xiaowm/xiaowm.go index 230c865a1..23a86639a 100644 --- a/business/partner/printer/xiaowm/xiaowm.go +++ b/business/partner/printer/xiaowm/xiaowm.go @@ -184,7 +184,10 @@ func (c *PrinterHandler) GetVendorID() int { func (c *PrinterHandler) PrintMsg(ctx *jxcontext.Context, printerNumber, printerToken, msgTitle, msgContent string) (printerStatus *partner.PrinterStatus, err error) { globals.SugarLogger.Debugf("PrintMsg printerNumber:%s", printerNumber) if printerNumber != "" { - if _, err = api.XiaoWMAPI.SendMsg(printerNumber, printerToken, msgContent); err == nil { + if globals.EnableStoreWrite { + _, err = api.XiaoWMAPI.SendMsg(printerNumber, printerToken, msgContent) + } + if err == nil { printerStatus, err = c.GetPrinterStatus(ctx, printerNumber, printerToken) } } else { @@ -235,9 +238,14 @@ func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerNumber, if printerNumber == "" { //len(printerNumber) != len("7JizmSyiXNzkggaqU") { err = fmt.Errorf("外卖管家打印机设备编号:%s长度不合法", printerNumber) } else { - if printerToken, err = api.XiaoWMAPI.AuthPrinter(printerNumber, "", ""); err == nil { + if globals.EnableStoreWrite { + printerToken, err = api.XiaoWMAPI.AuthPrinter(printerNumber, "", "") + } + if err == nil { if _, err = c.GetPrinterStatus(ctx, printerNumber, printerToken); err != nil { - c.UnregisterPrinter(ctx, printerNumber, printerToken) + if globals.EnableStoreWrite { + c.UnregisterPrinter(ctx, printerNumber, printerToken) + } } } } @@ -246,7 +254,9 @@ func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerNumber, } func (c *PrinterHandler) UnregisterPrinter(ctx *jxcontext.Context, printerNumber, printerToken string) (err error) { - err = api.XiaoWMAPI.DelPrinter(printerNumber, printerToken) + if globals.EnableStoreWrite { + err = api.XiaoWMAPI.DelPrinter(printerNumber, printerToken) + } return err } diff --git a/business/partner/printer/yilianyun/yilianyun.go b/business/partner/printer/yilianyun/yilianyun.go index ae205ddb0..744b7c877 100644 --- a/business/partner/printer/yilianyun/yilianyun.go +++ b/business/partner/printer/yilianyun/yilianyun.go @@ -102,7 +102,10 @@ func (c *PrinterHandler) GetVendorID() int { func (c *PrinterHandler) PrintMsg(ctx *jxcontext.Context, machineCode, possibleToken, msgTitle, msgContent string) (printerStatus *partner.PrinterStatus, err error) { globals.SugarLogger.Debugf("PrintMsg machineCode:%s", machineCode) if machineCode != "" { - if err = getApiByToken(possibleToken).PrintMsgWithToken(machineCode, msgTitle, msgContent, possibleToken); err == nil { + if globals.EnableStoreWrite { + err = getApiByToken(possibleToken).PrintMsgWithToken(machineCode, msgTitle, msgContent, possibleToken) + } + if err == nil { printerStatus, err = c.GetPrinterStatus(ctx, machineCode, possibleToken) } } else { @@ -137,12 +140,16 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, } func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, machineCode, secret, printerName string) (notUsed1, notUsed2 string, err error) { - err = api.YilianyunAPI.AddPrinter(machineCode, secret, printerName) + if globals.EnableStoreWrite { + err = api.YilianyunAPI.AddPrinter(machineCode, secret, printerName) + } return "", "", err } func (c *PrinterHandler) UnregisterPrinter(ctx *jxcontext.Context, machineCode, notUsed string) (err error) { - err = api.YilianyunAPI.DeletePrinter(machineCode) + if globals.EnableStoreWrite { + err = api.YilianyunAPI.DeletePrinter(machineCode) + } return err } @@ -160,7 +167,12 @@ func (c *PrinterHandler) BindPrinter(ctx *jxcontext.Context, mapData map[string] } func (c *PrinterHandler) RebindPrinter(ctx *jxcontext.Context, lastBindResult *partner.BindPrinterResult) (bindResult *partner.BindPrinterResult, err error) { - tokenInfo, err := api.YilianyunAPI2.RefreshToken(lastBindResult.PrinterKey2) + var tokenInfo *yilianyunapi.TokenInfo + if globals.EnableStoreWrite { + tokenInfo, err = api.YilianyunAPI2.RefreshToken(lastBindResult.PrinterKey2) + } else { + tokenInfo = &yilianyunapi.TokenInfo{} + } if err == nil { bindResult = yilianyunToken2BindResult(tokenInfo) } @@ -184,11 +196,15 @@ func getApiByToken(possibleToken string) *yilianyunapi.API { } func (c *PrinterHandler) EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) { - err = api.YilianyunAPI.CancelAll(id1, id2) + if globals.EnableStoreWrite { + err = api.YilianyunAPI.CancelAll(id1, id2) + } return err } func (c *PrinterHandler) PlayText(ctx *jxcontext.Context, id1, id2, orderID, text string) (printerStatus *partner.PrinterStatus, err error) { - err = api.YilianyunAPI.PlayText(id1, orderID, text, id2) + if globals.EnableStoreWrite { + err = api.YilianyunAPI.PlayText(id1, orderID, text, id2) + } return nil, err } diff --git a/business/partner/printer/zhongwu/zhongwu.go b/business/partner/printer/zhongwu/zhongwu.go index cf33e0919..42dd9a148 100644 --- a/business/partner/printer/zhongwu/zhongwu.go +++ b/business/partner/printer/zhongwu/zhongwu.go @@ -104,7 +104,9 @@ func (c *PrinterHandler) PrintMsg(ctx *jxcontext.Context, deviceID, deviceSecret globals.SugarLogger.Debugf("PrintMsg deviceID:%s", deviceID) if deviceID != "" { var status int - _, status, err = api.ZhongwuAPI.PrintMsg(deviceID, deviceSecret, msgContent) + if globals.EnableStoreWrite { + _, status, err = api.ZhongwuAPI.PrintMsg(deviceID, deviceSecret, msgContent) + } if err == nil { printerStatus = c.translateStatus(status) } @@ -166,7 +168,9 @@ func (c *PrinterHandler) RebindPrinter(ctx *jxcontext.Context, lastBindResult *p } func (c *PrinterHandler) EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) { - _, err = api.ZhongwuAPI.EmptyPrintQueue(id1, id2) + if globals.EnableStoreWrite { + _, err = api.ZhongwuAPI.EmptyPrintQueue(id1, id2) + } return err }