From 3c94651b2b0c4c9078314b9b16afb14172a8586b Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 19 Jul 2019 17:09:56 +0800 Subject: [PATCH] =?UTF-8?q?-=20IPrinterHandler=E6=B7=BB=E5=8A=A0EmptyPrint?= =?UTF-8?q?List=E4=B8=8EPlayText=20-=20=E6=98=93=E8=81=94=E4=BA=91?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=9C=BA=E6=92=AD=E6=94=BE=EF=BC=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=94=B3=E8=AF=B7=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=B7=E6=B3=A8=E6=84=8F=E6=9F=A5=E7=9C=8B=EF=BC=8C=E6=94=B6?= =?UTF-8?q?=E5=88=B0=E6=96=B0=E7=9A=84=E5=94=AE=E5=90=8E=E5=8D=95=E8=AF=B7?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/scheduler/defsch/defsch.go | 1 + .../jxcallback/scheduler/defsch/defsch_afs.go | 4 +++ business/jxutils/netprinter/netprinter.go | 29 +++++++++++++++++++ business/partner/partner_printer.go | 3 ++ business/partner/printer/feie/feie.go | 9 ++++++ business/partner/printer/xiaowm/xiaowm.go | 8 +++++ .../partner/printer/yilianyun/yilianyun.go | 10 +++++++ business/partner/printer/zhongwu/zhongwu.go | 9 ++++++ 8 files changed, 73 insertions(+) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index e5a94b7c4..2fb53d2e7 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -348,6 +348,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod if status.Status == model.OrderStatusApplyCancel { utils.CallFuncAsync(func() { weixinmsg.NotifyUserApplyCancel(savedOrderInfo.order, status.Remark) + netprinter.NofityOrderStatus(jxcontext.AdminCtx, jxutils.GetSaleStoreIDFromOrder(order), order.VendorOrderID, netprinter.PrinterNotifyUserApplyCancel) }) } msghub.OnKeyOrderStatusChanged(savedOrderInfo.order) diff --git a/business/jxcallback/scheduler/defsch/defsch_afs.go b/business/jxcallback/scheduler/defsch/defsch_afs.go index 7e3044ca2..8f0a412ed 100644 --- a/business/jxcallback/scheduler/defsch/defsch_afs.go +++ b/business/jxcallback/scheduler/defsch/defsch_afs.go @@ -1,6 +1,9 @@ package defsch import ( + "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/msghub" @@ -11,6 +14,7 @@ func (s *DefScheduler) OnAfsOrderNew(order *model.AfsOrder, isPending bool) (err if !isPending { msghub.OnNewWait4ApproveAfsOrder(order) weixinmsg.NotifyAfsOrderStatus(order) + netprinter.NofityOrderStatus(jxcontext.AdminCtx, jxutils.GetSaleStoreIDFromAfsOrder(order), order.VendorOrderID, netprinter.PrinterNotifyNewAfsOrder) } } return err diff --git a/business/jxutils/netprinter/netprinter.go b/business/jxutils/netprinter/netprinter.go index 7b26baa0b..057339fa3 100644 --- a/business/jxutils/netprinter/netprinter.go +++ b/business/jxutils/netprinter/netprinter.go @@ -22,6 +22,18 @@ const ( realTestOrderVendorID = model.VendorIDJD ) +const ( + PrinterNotifyUserApplyCancel = 1 + PrinterNotifyNewAfsOrder = 2 +) + +var ( + printerMsgMap = map[int]string{ + PrinterNotifyUserApplyCancel: "用户申请取消订单请注意查看", + PrinterNotifyNewAfsOrder: "收到新的售后单请查看", + } +) + func PrintOrder(ctx *jxcontext.Context, vendorOrderID string, vendorID int) (printResult *partner.PrinterStatus, err error) { storeID := vendorID if vendorOrderID == testVendorOrderID { @@ -182,3 +194,20 @@ func RebindAllPrinters(ctx *jxcontext.Context, isForce, isAsync bool) (hint stri } return hint, err } + +func NofityOrderStatus(ctx *jxcontext.Context, storeID int, orderID string, notifyID int) (err error) { + if printerMsgMap[notifyID] != "" { + db := dao.GetDB() + store := &model.Store{} + store.ID = storeID + if err = dao.GetEntity(db, store); err == nil { + handler, err := GetHandlerFromStore(store) + if err == nil { + if globals.EnableStoreWrite { + _, err = handler.PlayText(ctx, store.PrinterSN, store.PrinterKey, orderID, printerMsgMap[notifyID]) + } + } + } + } + return err +} diff --git a/business/partner/partner_printer.go b/business/partner/partner_printer.go index 09bccaa0a..59c896838 100644 --- a/business/partner/partner_printer.go +++ b/business/partner/partner_printer.go @@ -26,6 +26,9 @@ type IPrinterHandler interface { RebindPrinter(ctx *jxcontext.Context, lastBindResult *BindPrinterResult) (bindResult *BindPrinterResult, err error) PrintOrder(ctx *jxcontext.Context, store *model.Store, order *model.GoodsOrder) (printerStatus *PrinterStatus, err error) + + EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) + PlayText(ctx *jxcontext.Context, id1, id2, orderID, text string) (printerStatus *PrinterStatus, err error) } var ( diff --git a/business/partner/printer/feie/feie.go b/business/partner/printer/feie/feie.go index ec25ee0c2..84ba7ca04 100644 --- a/business/partner/printer/feie/feie.go +++ b/business/partner/printer/feie/feie.go @@ -169,3 +169,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) { return nil, fmt.Errorf("%s打印机当前不支持扫码绑定", model.VendorChineseNames[model.VendorIDFeiE]) } + +func (c *PrinterHandler) EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) { + err = api.FeieAPI.DelPrinterSqs(id1) + return err +} + +func (c *PrinterHandler) PlayText(ctx *jxcontext.Context, id1, id2, orderID, text string) (printerStatus *partner.PrinterStatus, err error) { + return c.GetPrinterStatus(ctx, id1, id2) +} diff --git a/business/partner/printer/xiaowm/xiaowm.go b/business/partner/printer/xiaowm/xiaowm.go index a7c5315e6..230c865a1 100644 --- a/business/partner/printer/xiaowm/xiaowm.go +++ b/business/partner/printer/xiaowm/xiaowm.go @@ -267,3 +267,11 @@ 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) { return nil, fmt.Errorf("%s打印机当前不支持扫码绑定", model.VendorChineseNames[model.VendorIDXiaoWM]) } + +func (c *PrinterHandler) EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) { + return err +} + +func (c *PrinterHandler) PlayText(ctx *jxcontext.Context, id1, id2, orderID, text string) (printerStatus *partner.PrinterStatus, err error) { + return c.GetPrinterStatus(ctx, id1, id2) +} diff --git a/business/partner/printer/yilianyun/yilianyun.go b/business/partner/printer/yilianyun/yilianyun.go index 0209db3f0..ae205ddb0 100644 --- a/business/partner/printer/yilianyun/yilianyun.go +++ b/business/partner/printer/yilianyun/yilianyun.go @@ -182,3 +182,13 @@ func getApiByToken(possibleToken string) *yilianyunapi.API { } return api.YilianyunAPI } + +func (c *PrinterHandler) EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) { + 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) + return nil, err +} diff --git a/business/partner/printer/zhongwu/zhongwu.go b/business/partner/printer/zhongwu/zhongwu.go index fd9e0fb5e..cf33e0919 100644 --- a/business/partner/printer/zhongwu/zhongwu.go +++ b/business/partner/printer/zhongwu/zhongwu.go @@ -164,3 +164,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) { return nil, fmt.Errorf("%s打印机当前不支持扫码绑定", model.VendorChineseNames[model.VendorIDZhongWu]) } + +func (c *PrinterHandler) EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) { + _, err = api.ZhongwuAPI.EmptyPrintQueue(id1, id2) + return err +} + +func (c *PrinterHandler) PlayText(ctx *jxcontext.Context, id1, id2, orderID, text string) (printerStatus *partner.PrinterStatus, err error) { + return c.GetPrinterStatus(ctx, id1, id2) +}