添加京西云打印机

This commit is contained in:
邹宗楠
2022-08-16 11:59:55 +08:00
parent 2f77b50a45
commit 0f3b6b3a6c
12 changed files with 62 additions and 28 deletions

View File

@@ -433,8 +433,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
statusChanged := savedOrderInfo.order == nil || savedOrderInfo.order.Status != order.Status
savedOrderInfo.SetOrder(order)
if (model.IsOrderUnlockStatus(status.Status)) ||
(order.LockStatus == model.OrderStatusUnknown && (status.Status > model.OrderStatusUnknown || status.Status == model.OrderStatusRefuseFailedGetGoods)) { // 只处理状态转换,一般消息不处理
if (model.IsOrderUnlockStatus(status.Status)) || (order.LockStatus == model.OrderStatusUnknown && (status.Status > model.OrderStatusUnknown || status.Status == model.OrderStatusRefuseFailedGetGoods)) { // 只处理状态转换,一般消息不处理
if status.Status == model.OrderStatusRefuseFailedGetGoods && order.Status != model.OrderStatusFinishedPickup && !model.IsOrderFinalStatus(order.Status) {
order.Status = model.OrderStatusFinishedPickup
partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
@@ -500,6 +499,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
}
msghub.OnKeyOrderStatusChanged(savedOrderInfo.order)
}
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order, model.PrintTypeOrder)
}
}
return err
@@ -512,6 +512,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
savedOrderInfo := s.loadSavedOrderFromMap(model.Waybill2Status(bill), true)
order := savedOrderInfo.order
// 打印通知
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order, model.PrintTypeOrder)
// 获取订单配送平台,如果是美团则需要获取门店配置的配送方式
//isBlendWay := false
//if bill.OrderVendorID == model.VendorIDMTWM {

View File

@@ -113,8 +113,9 @@ func (s *StoreManager) OnStoreStatusChanged(vendorStoreID string, vendorID int,
dao.Commit(db, txDB)
}
// 打印门第离线消息
if storeStatus < model.StoreStatusOpened && storeDetail.PrinterVendorID == model.VendorIDJxprint {
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order, model.PrintTypeStore)
netprinter.PrintStoreStatus(jxcontext.AdminCtx, storeDetail, vendorID)
}
}
return err

View File

@@ -101,6 +101,30 @@ func PrintOrderByOrder4Store(ctx *jxcontext.Context, order *model.GoodsOrder, st
return printResult, err
}
// PrintStoreStatus 打印门店信息
func PrintStoreStatus(ctx *jxcontext.Context, storeDetail *dao.StoreDetail, vendorId int) (printResult *partner.PrinterStatus, err error) {
db := dao.GetDB()
store, err := getStore4Print(db, storeDetail.ID)
if err != nil {
return &partner.PrinterStatus{
PrintResult: partner.PrintResultNoPrinter,
}, nil
}
handler, err := GetHandlerFromStore(store)
if err != nil {
return &partner.PrinterStatus{
PrintResult: partner.PrintResultNoPrinter,
}, nil
}
printResult, err = handler.PrintStore(ctx, store, storeDetail, vendorId)
if err == nil {
dao.SetOrderPrintFlag(db, ctx.GetUserName(), "store print", vendorId, true)
}
return printResult, err
}
// PrintRefundOrCancelOrder 打印退单或取消订单信息
func PrintRefundOrCancelOrder(ctx *jxcontext.Context, printType int, order *model.GoodsOrder, storeID int) (printResult *partner.PrinterStatus, err error) {
db := dao.GetDB()

View File

@@ -63,7 +63,7 @@ type IPrinterHandler interface {
RebindPrinter(ctx *jxcontext.Context, lastBindResult *BindPrinterResult) (bindResult *BindPrinterResult, err error)
PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder, printType string) (printerStatus *PrinterStatus, err error)
PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, printType string) (printerStatus *PrinterStatus, err error)
PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, vendorId int) (printerStatus *PrinterStatus, err error)
PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *PrinterStatus, err error)
EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error)

View File

@@ -265,7 +265,7 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
return c.PrintMsg(ctx, store.PrinterSN, store.PrinterKey, order.VendorOrderID, content)
}
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, printType string) (printerStatus *partner.PrinterStatus, err error) {
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, vendorId int) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}

View File

@@ -236,6 +236,9 @@ func (c *PrinterHandler) getOrderContentByTemplate(order *model.GoodsOrder, stor
func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder, printType string) (printerStatus *partner.PrinterStatus, err error) {
globals.SugarLogger.Debugf("jxprint PrintOrderByOrder orderID:%s, storeID:%d", order.VendorOrderID, store.ID)
if storeDetail.PrinterVendorID != model.VendorIDJxprint {
return nil, nil
}
if len(order.Skus) == 0 {
return
}
@@ -268,13 +271,18 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
return c.PrintMsg(ctx, store.PrinterSN, order.VendorOrderID, "", string(orderPrint))
}
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, printType string) (printerStatus *partner.PrinterStatus, err error) {
// PrintStore 打印门店
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, vendorCode int) (printerStatus *partner.PrinterStatus, err error) {
data := make(map[string]interface{}, 0)
data[StoreStatus] = utils.Int2Str(store.Status) // 门店状态
data[StoreStatus] = utils.Int2Str(store.Status) // 门店状态
data[StoreStatus] = utils.Int2Str(store.Status) // 门店状态
data[StoreStatus] = utils.Int2Str(store.Status)
data[StoreName] = storeDetail.VendorStoreName
data[VendorName] = model.VendorChineseNames[vendorCode]
orderPrint, err := json.Marshal(data)
if err != nil {
return nil, err
}
return nil, err
return c.PrintMsg(ctx, store.PrinterSN, "", "", string(orderPrint))
}
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {

View File

@@ -307,7 +307,7 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
return c.PrintMsg(ctx, store.PrinterSN, store.PrinterKey, order.VendorOrderID, content)
}
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, printType string) (printerStatus *partner.PrinterStatus, err error) {
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, vendorId int) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}

View File

@@ -419,7 +419,7 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
}
}
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, printType string) (printerStatus *partner.PrinterStatus, err error) {
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, vendorId int) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}

View File

@@ -230,7 +230,7 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
return c.PrintMsg(ctx, store.PrinterSN, store.PrinterKey, order.VendorOrderID, content)
}
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, printType string) (printerStatus *partner.PrinterStatus, err error) {
func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, vendorId int) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}

View File

@@ -329,18 +329,18 @@ func (p *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, vendorOrgCode s
// 当前京东的storeCrud消息不会在门店状态改变时发送所以意义不大先放在这里
func (c *PurchaseHandler) OnStoreMsg(vendorOrgCode string, msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) {
var err error
// if msg.StatusID == jdapi.StatusIDUpdateStore {
// var storeStatus int
// vendorStoreID := msg.BillID
// if storeStatus, err = c.GetStoreStatus(jxcontext.AdminCtx, vendorStoreID); err == nil {
// err = partner.CurStoreManager.OnStoreStatusChanged(vendorStoreID, model.VendorIDJD, storeStatus)
// } else {
// // 可能在门店删除的情况下会出查不到门店的错误
// if errExt, ok := err.(*utils.ErrorWithCode); ok && errExt.IntCode() == 4 {
// err = nil
// }
// }
// }
if msg.StatusID == jdapi.StatusIDUpdateStore {
var storeStatus int
vendorStoreID := msg.BillID
if storeStatus, err = c.GetStoreStatus(jxcontext.AdminCtx, vendorOrgCode, 0, vendorStoreID); err == nil {
err = partner.CurStoreManager.OnStoreStatusChanged(vendorStoreID, model.VendorIDJD, storeStatus)
} else {
// 可能在门店删除的情况下会出查不到门店的错误
if errExt, ok := err.(*utils.ErrorWithCode); ok && errExt.IntCode() == 4 {
err = nil
}
}
}
return jdapi.Err2CallbackResponse(err, "")
}

View File

@@ -560,12 +560,10 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) {
err = callNewOrder(order)
//如果是物料的订单,直接到拣货完成,配送中的状态
if order.OrderType != model.OrderTypeNormal {
// if order.FromStoreID != 0 {
if order.OrderType != model.OrderTypeDefendPrice {
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order, model.PrintTypeOrder)
}
PickupGoods(order, false, "jxadmin")
// }
} else {
//普通的订单要看用没用优惠券,用了的话,要把这个用户用过的优惠券状态改了
if order.CouponIDs != "" {

View File

@@ -274,7 +274,7 @@ func (c *StoreSkuController) SyncStoresSkus() {
// @Param isAsync formData bool false "是否异步操作"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /UpdateStoresSkus [put]
// @router /UpdateStoresSkus [put]
func (c *StoreSkuController) UpdateStoresSkus() {
c.callUpdateStoresSkus(func(params *tStoreSkuUpdateStoresSkusParams) (retVal interface{}, errCode string, err error) {
var storeIDs []int