- 飞鹅打印机支持

This commit is contained in:
gazebo
2019-04-01 21:00:15 +08:00
parent 28f24b1a7a
commit d1d056077d
9 changed files with 195 additions and 4 deletions

View File

@@ -3,6 +3,9 @@ package basesch
import (
"fmt"
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -13,6 +16,11 @@ import (
"git.rosy.net.cn/jx-callback/globals"
)
const (
PrintResultSuccess = 0
PrintResultNoNetPrinter = 1
)
func (c *BaseScheduler) CreateWaybillOnProviders(ctx *jxcontext.Context, order *model.GoodsOrder, policyHandler partner.CreateWaybillPolicy) (bills []*model.Waybill, err error) {
userName := ctx.GetUserName()
globals.SugarLogger.Infof("CreateWaybillOnProviders orderID:%s userName:%s", order.VendorOrderID, userName)
@@ -52,7 +60,7 @@ func (c *BaseScheduler) SelfDeliveredAndUpdateStatus(ctx *jxcontext.Context, ven
globals.SugarLogger.Infof("SelfDeliveredAndUpdateStatus orderID:%s userName:%s", vendorOrderID, userName)
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
if err == nil {
if GetStoreDeliveryType(order, nil) == scheduler.StoreDeliveryTypeByStore {
if c.GetStoreDeliveryType(order, nil) == scheduler.StoreDeliveryTypeByStore {
err = c.SelfDeliverDelivered(order, userName)
} else {
err = c.Swtich2SelfDelivered(order, userName)
@@ -78,7 +86,7 @@ func (c *BaseScheduler) PickupGoodsAndUpdateStatus(ctx *jxcontext.Context, vendo
globals.SugarLogger.Infof("PickupGoodsAndUpdateStatus orderID:%s userName:%s", vendorOrderID, userName)
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
if err == nil {
err = c.PickupGoods(order, GetStoreDeliveryType(order, nil) == scheduler.StoreDeliveryTypeByStore, userName)
err = c.PickupGoods(order, c.GetStoreDeliveryType(order, nil) == scheduler.StoreDeliveryTypeByStore, userName)
if err == nil {
order.Status = model.OrderStatusFinishedPickup
if err = partner.CurOrderManager.UpdateOrderStatusAndFlag(order); err == nil {
@@ -94,7 +102,7 @@ func (c *BaseScheduler) PickupGoodsAndUpdateStatus(ctx *jxcontext.Context, vendo
return err
}
func GetStoreDeliveryType(order *model.GoodsOrder, storeMap *model.StoreMap) (deliveryType int) {
func (c *BaseScheduler) GetStoreDeliveryType(order *model.GoodsOrder, storeMap *model.StoreMap) (deliveryType int) {
globals.SugarLogger.Debugf("GetStoreDeliveryType orderID:%s", order.VendorOrderID)
jxStoreID := jxutils.GetSaleStoreIDFromOrder(order)
if storeMap == nil {
@@ -114,3 +122,32 @@ func GetStoreDeliveryType(order *model.GoodsOrder, storeMap *model.StoreMap) (de
globals.SugarLogger.Debugf("GetStoreDeliveryType orderID:%s, deliveryType:%d", order.VendorOrderID, deliveryType)
return deliveryType
}
func (c *BaseScheduler) PrintOrder(ctx *jxcontext.Context, vendorOrderID string, vendorID int) (printResult int, err error) {
order, err := orderman.FixedOrderManager.LoadOrder(vendorOrderID, vendorID)
if err == nil {
printResult, err = c.PrintOrderByOrder(ctx, order)
}
return printResult, err
}
func (c *BaseScheduler) PrintOrderByOrder(ctx *jxcontext.Context, order *model.GoodsOrder) (printResult int, err error) {
globals.SugarLogger.Debugf("PrintOrderByOrder orderID:%s", order.VendorOrderID)
db := dao.GetDB()
storeDetail, err2 := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID)
if err = err2; err == nil {
if storeDetail.PrinterSN != "" {
content := jxutils.GetFeieOrderContent(order, storeDetail.Tel1)
if _, err = api.FeieAPI.PrintMsg(storeDetail.PrinterSN, content, 1); err == nil {
printResult = PrintResultSuccess
dao.SetOrderPrintFlag(db, order.VendorOrderID, order.VendorID, true)
}
} else {
printResult = PrintResultNoNetPrinter
}
}
if err != nil {
globals.SugarLogger.Infof("PrintOrderByOrder orderID:%s failed with error:%v", order.VendorOrderID, err)
}
return printResult, err
}