diff --git a/business/jxcallback/orderman/fake_jd_order.go b/business/jxcallback/orderman/fake_jd_order.go
index faedd275b..f712ec9d7 100644
--- a/business/jxcallback/orderman/fake_jd_order.go
+++ b/business/jxcallback/orderman/fake_jd_order.go
@@ -42,7 +42,7 @@ func (c *OrderManager) notifyNewFakeJdOrder(order *model.GoodsOrder) (err error)
realStoreID = storeDetail.LinkStoreID
}
notifyWxNewFakeJdOrder(order, realStoreID)
- netprinter.PrintOrderByOrder4Store(jxcontext.AdminCtx, order, realStoreID)
+ netprinter.PrintOrderByOrder4Store(jxcontext.AdminCtx, order, realStoreID, "")
return err
}
diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go
index 87da90454..373c2d227 100644
--- a/business/jxcallback/scheduler/defsch/defsch.go
+++ b/business/jxcallback/scheduler/defsch/defsch.go
@@ -392,7 +392,7 @@ func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder, isPending bool, isAut
if order.Flag&model.OrderFlagMaskFake == 0 {
utils.CallFuncAsync(func() {
// order = setFakeActualPayPrice(order)
- netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
+ netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order, model.PrintTypeOrder)
//目前暂且认为AdjustCount > 0 就是调整单
if order.AdjustCount > 0 {
weixinmsg.NotifyAdjustOrder(order)
@@ -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.PrintTypeWayBill)
+
// 获取订单配送平台,如果是美团则需要获取门店配置的配送方式
//isBlendWay := false
//if bill.OrderVendorID == model.VendorIDMTWM {
@@ -1689,7 +1692,7 @@ func (s *DefScheduler) notifyNewOrder(order *model.GoodsOrder, isAuto bool) {
if order.Flag&model.OrderFlagMaskFake == 0 && order.VendorID != model.VendorIDEBAI {
utils.CallFuncAsync(func() {
// order = setFakeActualPayPrice(order)
- netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
+ netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order, model.PrintTypeOrder)
//目前暂且认为AdjustCount > 0 就是调整单
if order.AdjustCount > 0 {
weixinmsg.NotifyAdjustOrder(order)
diff --git a/business/jxcallback/scheduler/defsch/defsch_afs.go b/business/jxcallback/scheduler/defsch/defsch_afs.go
index 260aec703..6db0d3357 100644
--- a/business/jxcallback/scheduler/defsch/defsch_afs.go
+++ b/business/jxcallback/scheduler/defsch/defsch_afs.go
@@ -33,6 +33,13 @@ func (s *DefScheduler) OnAfsOrderNew(order *model.AfsOrder, isPending bool) (err
msghub.OnNewWait4ApproveAfsOrder(order)
weixinmsg.NotifyAfsOrderStatus(order)
push.NotifyAfsOrder(order)
+
+ // 打印通知
+ //if handler := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID); handler != nil {
+ // if orderObj, err2 := handler.GetOrder(order.VendorOrgCode, order.VendorOrderID, ""); err2 == nil && order != nil {
+ // netprinter.PrintOrderByOrder(jxcontext.AdminCtx, orderObj, model.PrintTypeOrder)
+ // }
+ //}
}
}
return err
diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go
index 9dd9e670d..baf8dfc5a 100644
--- a/business/jxstore/cms/store.go
+++ b/business/jxstore/cms/store.go
@@ -942,7 +942,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
if valid["printerKey"] == nil {
valid["printerKey"] = store.PrinterKey
}
- newID1, newID2, err2 := handler.RegisterPrinter(ctx, valid["printerSN"].(string), valid["printerKey"].(string), store.Name)
+ newID1, newID2, err2 := handler.RegisterPrinter(ctx, valid["printerSN"].(string), valid["printerKey"].(string), store.Name, int64(store.ID))
if err = err2; err != nil {
return 0, err
}
@@ -1254,7 +1254,7 @@ func CreateStore(ctx *jxcontext.Context, storeExt *StoreExt, userName string) (i
if handler == nil {
return 0, fmt.Errorf("不支持的打印机厂商ID:%d", store.PrinterVendorID)
}
- newID1, newID2, err2 := handler.RegisterPrinter(ctx, store.PrinterSN, store.PrinterKey, store.Name)
+ newID1, newID2, err2 := handler.RegisterPrinter(ctx, store.PrinterSN, store.PrinterKey, store.Name, int64(store.ID))
if err = err2; err != nil {
return 0, err
}
@@ -1362,7 +1362,7 @@ func CreateStore2JX(ctx *jxcontext.Context, storeExt *StoreExt, userName string)
if handler == nil {
return 0, fmt.Errorf("不支持的打印机厂商ID:%d", store.PrinterVendorID)
}
- newID1, newID2, err2 := handler.RegisterPrinter(ctx, store.PrinterSN, store.PrinterKey, store.Name)
+ newID1, newID2, err2 := handler.RegisterPrinter(ctx, store.PrinterSN, store.PrinterKey, store.Name, int64(store.ID))
if err = err2; err != nil {
return 0, err
}
diff --git a/business/jxstore/cms/storeman.go b/business/jxstore/cms/storeman.go
index 9ae4955d1..8ad0be8cb 100644
--- a/business/jxstore/cms/storeman.go
+++ b/business/jxstore/cms/storeman.go
@@ -5,6 +5,7 @@ import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
"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/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner"
@@ -111,6 +112,11 @@ func (s *StoreManager) OnStoreStatusChanged(vendorStoreID string, vendorID int,
}
dao.Commit(db, txDB)
}
+
+ // 打印门第离线消息
+ if storeStatus < model.StoreStatusOpened && storeDetail.PrinterVendorID == model.VendorIDJxprint {
+ netprinter.PrintStoreStatus(jxcontext.AdminCtx, storeDetail, vendorID, 0)
+ }
}
return err
}
diff --git a/business/jxutils/netprinter/netprinter.go b/business/jxutils/netprinter/netprinter.go
index b3fe380d0..20764764f 100644
--- a/business/jxutils/netprinter/netprinter.go
+++ b/business/jxutils/netprinter/netprinter.go
@@ -40,13 +40,13 @@ func PrintOrder(ctx *jxcontext.Context, vendorOrderID string, vendorID int) (pri
order.StoreID = storeID
order.JxStoreID = storeID
}
- printResult, err = PrintOrderByOrder(ctx, order)
+ printResult, err = PrintOrderByOrder(ctx, order, "order")
}
return printResult, err
}
-func PrintOrderByOrder(ctx *jxcontext.Context, order *model.GoodsOrder) (printResult *partner.PrinterStatus, err error) {
- return PrintOrderByOrder4Store(ctx, order, jxutils.GetSaleStoreIDFromOrder(order))
+func PrintOrderByOrder(ctx *jxcontext.Context, order *model.GoodsOrder, printType string) (printResult *partner.PrinterStatus, err error) {
+ return PrintOrderByOrder4Store(ctx, order, jxutils.GetSaleStoreIDFromOrder(order), printType)
}
func getStore4Print(db *dao.DaoDB, storeID int) (store *model.Store, err error) {
@@ -71,7 +71,7 @@ func getStore4Print(db *dao.DaoDB, storeID int) (store *model.Store, err error)
}
// PrintOrderByOrder4Store 打印订单信息
-func PrintOrderByOrder4Store(ctx *jxcontext.Context, order *model.GoodsOrder, storeID int) (printResult *partner.PrinterStatus, err error) {
+func PrintOrderByOrder4Store(ctx *jxcontext.Context, order *model.GoodsOrder, storeID int, printType string) (printResult *partner.PrinterStatus, err error) {
globals.SugarLogger.Debugf("PrintOrderByOrder4Store orderID:%s", order.VendorOrderID)
db := dao.GetDB()
store, err := getStore4Print(db, storeID)
@@ -82,6 +82,7 @@ func PrintOrderByOrder4Store(ctx *jxcontext.Context, order *model.GoodsOrder, st
PrintResult: partner.PrintResultNoPrinter,
}, nil
}
+
storeDetail, _ := dao.GetStoreDetail(db, storeID, order.VendorID, order.VendorOrgCode)
if storeDetail == nil && order.VendorOrderID == testVendorOrderID {
storeDetail = &dao.StoreDetail{
@@ -89,7 +90,8 @@ func PrintOrderByOrder4Store(ctx *jxcontext.Context, order *model.GoodsOrder, st
BrandIsPrint: model.NO,
}
}
- printResult, err = handler.PrintOrder(ctx, store, storeDetail, order)
+
+ printResult, err = handler.PrintOrder(ctx, store, storeDetail, order, printType)
if err == nil {
dao.SetOrderPrintFlag(db, ctx.GetUserName(), order.VendorOrderID, order.VendorID, true)
}
@@ -100,6 +102,32 @@ func PrintOrderByOrder4Store(ctx *jxcontext.Context, order *model.GoodsOrder, st
return printResult, err
}
+// PrintStoreStatus 打印门店信息
+func PrintStoreStatus(ctx *jxcontext.Context, storeDetail *dao.StoreDetail, vendorId, storeStatus 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
+ }
+ if storeStatus != 0 { // 失去授权
+ store.Status = -9
+ }
+ 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()
diff --git a/business/model/const.go b/business/model/const.go
index 0089be0f6..3b2a77ea1 100644
--- a/business/model/const.go
+++ b/business/model/const.go
@@ -186,7 +186,7 @@ var (
VendorIDJxprint: []string{
VendorChineseNames[VendorIDJxprint],
"打印机编号",
- "不填",
+ "密钥",
},
}
AfsReasonTypeName = map[int]string{
@@ -308,6 +308,13 @@ const (
OperateCopyStoreSkus = 3 //复制门店商品
)
+const (
+ PrintTypeOrder = "order" // 京西云打印机:打印订单
+ PrintTypeWayBill = "wayBill " // 京西云打印机:打印运单
+ PrintTypeStore = "store " // 京西云打印机:门店下线
+ PrintTypeEnter = "enter" // 京西云打印机:进店订单
+)
+
const (
WaybillStatusRefuseFailedGetGoods = -70
WaybillStatusUnknown = 0
diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go
index c935f12e5..fcea71ea1 100644
--- a/business/model/dao/store_sku.go
+++ b/business/model/dao/store_sku.go
@@ -679,7 +679,9 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo
// }
sql = fmt.Sprintf(sql, fmtParams...)
sql += " ORDER BY t1.price"
- // globals.SugarLogger.Debug(sql)
+ globals.SugarLogger.Debug("sql======", sql)
+ globals.SugarLogger.Debug("sqlparam======", sqlParams)
+
if err = GetRows(db, &skus, sql, sqlParams...); err != nil {
return nil, err
}
diff --git a/business/model/dao/store_sku_test.go b/business/model/dao/store_sku_test.go
index 8a5d5ed3c..27f8118f6 100644
--- a/business/model/dao/store_sku_test.go
+++ b/business/model/dao/store_sku_test.go
@@ -17,7 +17,7 @@ func TestGetFullStoreSkus(t *testing.T) {
}
func TestGetStoreSkus(t *testing.T) {
- skuList, err := GetStoreSkus(GetDB(), model.VendorIDMTWM, 100134, nil)
+ skuList, err := GetStoreSkus(GetDB(), model.VendorIDMTWM, 800165, []int{30969})
if err != nil {
t.Fatal(err)
}
diff --git a/business/partner/partner_printer.go b/business/partner/partner_printer.go
index e7697f3f0..f0b177393 100644
--- a/business/partner/partner_printer.go
+++ b/business/partner/partner_printer.go
@@ -56,13 +56,14 @@ type IPrinterHandler interface {
PrintMsg(ctx *jxcontext.Context, id1, id2, msgTitle, msgContent string) (printerStatus *PrinterStatus, err error)
GetPrinterStatus(ctx *jxcontext.Context, id1, id2 string) (printerStatus *PrinterStatus, err error)
- RegisterPrinter(ctx *jxcontext.Context, id1, id2, printerName string) (newID1, newID2 string, err error)
+ RegisterPrinter(ctx *jxcontext.Context, id1, id2, printerName string, soreId int64) (newID1, newID2 string, err error)
UnregisterPrinter(ctx *jxcontext.Context, id1, id2 string) (err error)
BindPrinter(ctx *jxcontext.Context, mapData map[string]interface{}) (bindResult *BindPrinterResult, err error)
RebindPrinter(ctx *jxcontext.Context, lastBindResult *BindPrinterResult) (bindResult *BindPrinterResult, err error)
- PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *PrinterStatus, 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, 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)
diff --git a/business/partner/printer/feie/feie.go b/business/partner/printer/feie/feie.go
index 750f5537d..cceab9bda 100644
--- a/business/partner/printer/feie/feie.go
+++ b/business/partner/printer/feie/feie.go
@@ -251,7 +251,7 @@ func (c *PrinterHandler) GetPrinterStatus(ctx *jxcontext.Context, printerSN, pri
return printerStatus, err
}
-func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
+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("feie PrintOrderByOrder orderID:%s, storeID:%d", order.VendorOrderID, store.ID)
if len(order.Skus) == 0 {
return
@@ -265,11 +265,15 @@ 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, vendorId int) (printerStatus *partner.PrinterStatus, err error) {
+ return nil, err
+}
+
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}
-func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerSN, printerKey, printerName string) (notUsed1, notUsed2 string, err error) {
+func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerSN, printerKey, printerName string, storeID int64) (notUsed1, notUsed2 string, err error) {
var no map[string]string
if globals.EnableStoreWrite {
_, no, err = api.FeieAPI.PrinterAddList([]*feieapi.PrinterInfo{
diff --git a/business/partner/printer/jxprint/jxprint.go b/business/partner/printer/jxprint/jxprint.go
index cea602ffd..8c76e59db 100644
--- a/business/partner/printer/jxprint/jxprint.go
+++ b/business/partner/printer/jxprint/jxprint.go
@@ -5,7 +5,6 @@ import (
"fmt"
"git.rosy.net.cn/baseapi/platformapi/jxprintapi"
"git.rosy.net.cn/baseapi/utils"
- "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
@@ -14,7 +13,6 @@ import (
"git.rosy.net.cn/jx-callback/globals/api"
"regexp"
"strings"
- "time"
)
var (
@@ -37,6 +35,7 @@ func (c *PrinterHandler) GetVendorID() int {
func (c *PrinterHandler) PrintMsg(ctx *jxcontext.Context, printSn, orderSeq, msgTitle, msgContent string) (printerStatus *partner.PrinterStatus, err error) {
globals.SugarLogger.Debugf("PrintMsg id1:%s", printSn)
if printSn != "" && globals.EnableStoreWrite {
+ printSn = strings.Split(printSn, "_")[0]
if _, err := api.JxPrintAPI.DoPrint(printSn, msgContent, utils.Str2Int(orderSeq)); err == nil {
return c.GetPrinterStatus(ctx, printSn, "")
}
@@ -60,12 +59,14 @@ func (c *PrinterHandler) GetPrinterStatus(ctx *jxcontext.Context, id1, id2 strin
return nil, err
}
-func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, id1, id2, printerName string) (newID1, newID2 string, err error) {
+func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, id1, id2, printerName string, storeID int64) (newID1, newID2 string, err error) {
if globals.EnableStoreWrite {
err = api.JxPrintAPI.AddPrinter([]*jxprintapi.AddPrinterParam{
&jxprintapi.AddPrinterParam{
- PrintNo: id1,
- Name: printerName,
+ PrintNo: id1, // 打印机编号
+ Name: printerName, // 门店名称
+ SIM: id2, // printKey-指定验证用户号码
+ StoreId: storeID, // 门店id
},
})
}
@@ -88,175 +89,205 @@ func (c *PrinterHandler) RebindPrinter(ctx *jxcontext.Context, lastBindResult *p
}
func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel string, storeDetail *dao.StoreDetail) (content string) {
- expectedDeliveryTime := order.ExpectedDeliveredTime
- if utils.IsTimeZero(expectedDeliveryTime) {
- expectedDeliveryTime = order.OrderCreatedAt.Add(1 * time.Hour)
- }
- orderParams := []interface{}{}
- getCode := ""
- if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s
\n", jxutils.GetEbaiOrderGetCode(order))
- }
- orderFmt := ``
- if storeDetail != nil {
- if storeDetail.BrandIsPrint == model.NO {
- orderFmt += `
- 您有新订单啦!
-
%s
- `
- if order.VendorOrgCode == "34665" {
- orderParams = append(orderParams, globals.StoreNameEbai2)
- } else {
- orderParams = append(orderParams, storeDetail.BrandName)
- }
- }
- }
- orderFmt += `
-手机买菜上京西
-极速到家送惊喜
---------------------------------
-下单时间: %s
-预计送达: %s
-订单编号: %s
-
-
-%s#%d
-%s
-` + getCode +
- `客户: %s
-电话: %s
-地址: %s
-
-客户备注:
-%s
-
-
-
-商品明细:
-品名 数量 单价 小计
---------------------------------
`
- // 实际支付:%s
- orderParams = append(orderParams,
- utils.Time2Str(order.OrderCreatedAt),
- utils.Time2Str(expectedDeliveryTime),
- order.VendorOrderID,
- jxutils.GetVendorName(order.VendorID),
- order.OrderSeq,
- order.VendorOrderID,
- order.ConsigneeName,
- order.ConsigneeMobile,
- order.ConsigneeAddress,
- order.BuyerComment,
- // jxutils.IntPrice2StandardCurrencyString(order.ActualPayPrice),
- )
-
- for _, sku := range order.Skus {
- orderFmt += `%s
`
- orderFmt += `%8s%10s%10s
`
- orderParams = append(orderParams, sku.SkuName, "x"+utils.Int2Str(sku.Count), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice*int64(sku.Count)))
- }
- orderFmt += `
-共%d种%d件商品
-
---------------------------------
-商品质量问题请联系:
-%s:%s
-
-更多信息请关注官方微信: %s
-
-
---------------------------------
---------------------------------
-
-`
- orderParams = append(orderParams, order.SkuCount, order.GoodsCount, order.StoreName, storeTel, "京西菜市")
- return fmt.Sprintf(strings.Replace(orderFmt, "\n", "", -1), orderParams...)
+ // expectedDeliveryTime := order.ExpectedDeliveredTime
+ // if utils.IsTimeZero(expectedDeliveryTime) {
+ // expectedDeliveryTime = order.OrderCreatedAt.Add(1 * time.Hour)
+ // }
+ // orderParams := []interface{}{}
+ // getCode := ""
+ // if order.VendorID == model.VendorIDEBAI {
+ // getCode = fmt.Sprintf("饿百取货码:%s
\n", jxutils.GetEbaiOrderGetCode(order))
+ // }
+ // orderFmt := ``
+ // if storeDetail != nil {
+ // if storeDetail.BrandIsPrint == model.NO {
+ // orderFmt += `
+ // 您有新订单啦!
+ // %s
+ // `
+ // if order.VendorOrgCode == "34665" {
+ // orderParams = append(orderParams, globals.StoreNameEbai2)
+ // } else {
+ // orderParams = append(orderParams, storeDetail.BrandName)
+ // }
+ // }
+ // }
+ // orderFmt += `
+ //手机买菜上京西
+ //极速到家送惊喜
+ //--------------------------------
+ //下单时间: %s
+ //预计送达: %s
+ //订单编号: %s
+ //
+ //
+ //%s#%d
+ //%s
+ //` + getCode +
+ // `客户: %s
+ //电话: %s
+ //地址: %s
+ //
+ //客户备注:
+ //%s
+ //
+ //
+ //
+ //商品明细:
+ //品名 数量 单价 小计
+ //--------------------------------
`
+ // // 实际支付:%s
+ // orderParams = append(orderParams,
+ // utils.Time2Str(order.OrderCreatedAt),
+ // utils.Time2Str(expectedDeliveryTime),
+ // order.VendorOrderID,
+ // jxutils.GetVendorName(order.VendorID),
+ // order.OrderSeq,
+ // order.VendorOrderID,
+ // order.ConsigneeName,
+ // order.ConsigneeMobile,
+ // order.ConsigneeAddress,
+ // order.BuyerComment,
+ // // jxutils.IntPrice2StandardCurrencyString(order.ActualPayPrice),
+ // )
+ //
+ // for _, sku := range order.Skus {
+ // orderFmt += `%s
`
+ // orderFmt += `%8s%10s%10s
`
+ // orderParams = append(orderParams, sku.SkuName, "x"+utils.Int2Str(sku.Count), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice*int64(sku.Count)))
+ // }
+ // orderFmt += `
+ //共%d种%d件商品
+ //
+ //--------------------------------
+ //商品质量问题请联系:
+ //%s:%s
+ //
+ //更多信息请关注官方微信: %s
+ //
+ //
+ //--------------------------------
+ //--------------------------------
+ //
+ //`
+ // orderParams = append(orderParams, order.SkuCount, order.GoodsCount, order.StoreName, storeTel, "京西菜市")
+ // return fmt.Sprintf(strings.Replace(orderFmt, "\n", "", -1), orderParams...)
+ return ""
}
func (c *PrinterHandler) getOrderContentByTemplate(order *model.GoodsOrder, storeTel string, storeDetail *dao.StoreDetail) (content string) {
- orderFmt := ""
- if storeDetail != nil {
- //开头加上语音
- if storeDetail.PrinterSound != "" {
- orderFmt += "" + storeDetail.PrinterSound + "
"
- }
- }
- //把带有${}的变量换成实际值
- template := storeDetail.PrinterTemplate
- regexpValues := regexpPrint.FindAllStringSubmatch(template, -1)
- for _, v := range regexpValues {
- switch v[0] {
- case "${下单时间}":
- template = strings.ReplaceAll(template, v[0], utils.Time2Str(order.OrderCreatedAt))
- case "${预计送达}":
- expectedDeliveryTime := order.ExpectedDeliveredTime
- if utils.IsTimeZero(expectedDeliveryTime) {
- expectedDeliveryTime = order.OrderCreatedAt.Add(1 * time.Hour)
- }
- template = strings.ReplaceAll(template, v[0], utils.Time2Str(expectedDeliveryTime))
- case "${订单号}":
- template = strings.ReplaceAll(template, v[0], order.VendorOrderID)
- case "${平台名}":
- template = strings.ReplaceAll(template, v[0], jxutils.GetVendorName(order.VendorID))
- case "${订单序号}":
- template = strings.ReplaceAll(template, v[0], utils.Int2Str(order.OrderSeq))
- case "${客户名}":
- template = strings.ReplaceAll(template, v[0], order.ConsigneeName)
- case "${客户电话}":
- template = strings.ReplaceAll(template, v[0], order.ConsigneeMobile)
- case "${客户地址}":
- template = strings.ReplaceAll(template, v[0], order.ConsigneeAddress)
- case "${备注}":
- template = strings.ReplaceAll(template, v[0], order.BuyerComment)
- case "${商品种数}":
- template = strings.ReplaceAll(template, v[0], utils.Int2Str(order.SkuCount))
- case "${商品件数}":
- template = strings.ReplaceAll(template, v[0], utils.Int2Str(order.GoodsCount))
- case "${门店名}":
- template = strings.ReplaceAll(template, v[0], order.StoreName)
- case "${门店电话}":
- template = strings.ReplaceAll(template, v[0], storeTel)
- case "${商品明细}":
- skus := ""
- skuParams := []interface{}{}
- for i := 0; i < len(order.Skus); i++ {
- skus += "%s
"
- skus += "%8s%10s%10s
"
- skuParams = append(skuParams, order.Skus[i].SkuName)
- skuParams = append(skuParams, "x"+utils.Int2Str(order.Skus[i].Count))
- skuParams = append(skuParams, jxutils.IntPrice2StandardCurrencyString(order.Skus[i].SalePrice))
- skuParams = append(skuParams, jxutils.IntPrice2StandardCurrencyString(order.Skus[i].SalePrice*int64(order.Skus[i].Count)))
- }
- skus = fmt.Sprintf(skus, skuParams...)
- template = strings.ReplaceAll(template, v[0], skus)
- }
- }
- orderFmt += template
- return strings.Replace(orderFmt, "\n", "", -1)
+ //orderFmt := ""
+ //if storeDetail != nil {
+ // //开头加上语音
+ // if storeDetail.PrinterSound != "" {
+ // orderFmt += "" + storeDetail.PrinterSound + "
"
+ // }
+ //}
+ ////把带有${}的变量换成实际值
+ //template := storeDetail.PrinterTemplate
+ //regexpValues := regexpPrint.FindAllStringSubmatch(template, -1)
+ //for _, v := range regexpValues {
+ // switch v[0] {
+ // case "${下单时间}":
+ // template = strings.ReplaceAll(template, v[0], utils.Time2Str(order.OrderCreatedAt))
+ // case "${预计送达}":
+ // expectedDeliveryTime := order.ExpectedDeliveredTime
+ // if utils.IsTimeZero(expectedDeliveryTime) {
+ // expectedDeliveryTime = order.OrderCreatedAt.Add(1 * time.Hour)
+ // }
+ // template = strings.ReplaceAll(template, v[0], utils.Time2Str(expectedDeliveryTime))
+ // case "${订单号}":
+ // template = strings.ReplaceAll(template, v[0], order.VendorOrderID)
+ // case "${平台名}":
+ // template = strings.ReplaceAll(template, v[0], jxutils.GetVendorName(order.VendorID))
+ // case "${订单序号}":
+ // template = strings.ReplaceAll(template, v[0], utils.Int2Str(order.OrderSeq))
+ // case "${客户名}":
+ // template = strings.ReplaceAll(template, v[0], order.ConsigneeName)
+ // case "${客户电话}":
+ // template = strings.ReplaceAll(template, v[0], order.ConsigneeMobile)
+ // case "${客户地址}":
+ // template = strings.ReplaceAll(template, v[0], order.ConsigneeAddress)
+ // case "${备注}":
+ // template = strings.ReplaceAll(template, v[0], order.BuyerComment)
+ // case "${商品种数}":
+ // template = strings.ReplaceAll(template, v[0], utils.Int2Str(order.SkuCount))
+ // case "${商品件数}":
+ // template = strings.ReplaceAll(template, v[0], utils.Int2Str(order.GoodsCount))
+ // case "${门店名}":
+ // template = strings.ReplaceAll(template, v[0], order.StoreName)
+ // case "${门店电话}":
+ // template = strings.ReplaceAll(template, v[0], storeTel)
+ // case "${商品明细}":
+ // skus := ""
+ // skuParams := []interface{}{}
+ // for i := 0; i < len(order.Skus); i++ {
+ // skus += "%s
"
+ // skus += "%8s%10s%10s
"
+ // skuParams = append(skuParams, order.Skus[i].SkuName)
+ // skuParams = append(skuParams, "x"+utils.Int2Str(order.Skus[i].Count))
+ // skuParams = append(skuParams, jxutils.IntPrice2StandardCurrencyString(order.Skus[i].SalePrice))
+ // skuParams = append(skuParams, jxutils.IntPrice2StandardCurrencyString(order.Skus[i].SalePrice*int64(order.Skus[i].Count)))
+ // }
+ // skus = fmt.Sprintf(skus, skuParams...)
+ // template = strings.ReplaceAll(template, v[0], skus)
+ // }
+ //}
+ //orderFmt += template
+ //return strings.Replace(orderFmt, "\n", "", -1)
+ return ""
}
-func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
+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
}
- printData := ManagerOrderAndStore(order, store.Tel1, storeDetail)
- printData[BigFont] = "small"
- if store.PrinterFontSize == partner.PrinterFontSizeBig || store.PrinterFontSize == partner.PrinterFontSizeBig2 {
- printData[BigFont] = "big"
- }
- // 打印次数
- printData[PrintNumber] = utils.Int2Str(model.YES)
- if store.PrinterFontSize == partner.PrinterFontSizeBig2 || store.PrinterFontSize == partner.PrinterFontSizeNormal2 {
- printData[PrintNumber] = utils.Int2Str(2)
- }
+ printData := ManagerOrderPrint(order, store.Tel1, storeDetail)
+ //printData[BigFont] = "small"
+ //if store.PrinterFontSize == partner.PrinterFontSizeBig || store.PrinterFontSize == partner.PrinterFontSizeBig2 {
+ // printData[BigFont] = "big"
+ //}
+ //// 打印次数
+ //printData[PrintNumber] = utils.Int2Str(model.YES)
+ //if store.PrinterFontSize == partner.PrinterFontSizeBig2 || store.PrinterFontSize == partner.PrinterFontSizeNormal2 {
+ // printData[PrintNumber] = utils.Int2Str(2)
+ //}
printData[AppID] = "1000" // 菜市应用
+ switch printType {
+ case "order":
+ printData[OrderStatus] = utils.Int2Str(order.Status) // 订单状态
+ case "wayBill":
+ printData[WayBillStatus] = order.VendorStatus // 运单状态
+ case "store":
+ printData[StoreStatus] = utils.Int2Str(store.Status) // 门店状态
+ case "enter":
+ printData[ReminderStatus] = "1" // 催单
+ }
orderPrint, err := json.Marshal(printData)
if err != nil {
return nil, err
}
- return c.PrintMsg(ctx, store.PrinterSN, order.VendorOrderID, "", string(orderPrint))
+ orderSel := utils.Int2Str(order.VendorID) + utils.Int2Str(order.OrderSeq)
+ return c.PrintMsg(ctx, store.PrinterSN, orderSel, "", string(orderPrint))
+}
+
+// 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[StoreName] = storeDetail.VendorStoreName
+ data[VendorName] = model.VendorChineseNames[vendorCode]
+ orderPrint, err := json.Marshal(data)
+ if err != nil {
+ return nil, err
+ }
+
+ return c.PrintMsg(ctx, store.PrinterSN, "99999", "", 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) {
diff --git a/business/partner/printer/jxprint/jxprint_const.go b/business/partner/printer/jxprint/jxprint_const.go
index 2ef5154b2..3c8e3a1fc 100644
--- a/business/partner/printer/jxprint/jxprint_const.go
+++ b/business/partner/printer/jxprint/jxprint_const.go
@@ -6,6 +6,7 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
+ "git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
)
@@ -38,6 +39,18 @@ const (
BigFont = "bigFont" // 是否为大字体
PrintNumber = "printNumber" // 打印次数
AppID = "appId" // 应用id
+ // 状态对应打印设置的变化
+ OrderStatus = "orderStatus" // 订单状态
+ WayBillStatus = "wayBillStatus" // 运单状态
+ StoreStatus = "storeStatus" // 门店状态
+ ReminderStatus = "reminderStatus" // 催单状态
+
+ RiderVendorId = "riderVendorId" // 骑手所属平台id
+ RiderName = "riderName" // 骑手名称
+ RiderPhone = "riderPhone" // 骑手电话
+ RejectionReason = "rejectionReason" // 拒收原因
+ CustcareRefundReason = "custcareRefundReason" // 客服退款理由
+ EnterTheStore = "enterTheStore" // 催单
)
type SkuListPrintOrder struct {
@@ -48,8 +61,8 @@ type SkuListPrintOrder struct {
Upc string `json:"upc"` // 条形码
}
-// ManagerOrderAndStore 京西云参数组装
-func ManagerOrderAndStore(order *model.GoodsOrder, storeTel string, storeDetail *dao.StoreDetail) map[string]string {
+// ManagerOrderPrint 京西云参数组装(订单参数)
+func ManagerOrderPrint(order *model.GoodsOrder, storeTel string, storeDetail *dao.StoreDetail) map[string]string {
printOrder := make(map[string]string, 0)
skuList := make([]*SkuListPrintOrder, 0, 0)
// 获取品牌名称
@@ -97,5 +110,48 @@ func ManagerOrderAndStore(order *model.GoodsOrder, storeTel string, storeDetail
printOrder[StoreName] = order.StoreName
printOrder[StoreTel] = storeTel
printOrder[OfficialName] = globals.StoreName
+
+ bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
+ //printOrder[StoreStatus] = utils.Int2Str(storeDetail.Status)
+ printOrder[RiderVendorId] = utils.Int2Str(bill.WaybillVendorID)
+ printOrder[RiderName] = bill.CourierName
+ printOrder[RiderPhone] = bill.CourierMobile
return printOrder
}
+
+// ManageWayBillPrint 组装运单打印数据
+//func ManageWayBillPrint(order *model.GoodsOrder, storeTel string, storeDetail *dao.StoreDetail) map[string]string {
+// printOrder := make(map[string]string, 0)
+// // 获取品牌名称
+// if storeDetail != nil && storeDetail.BrandIsPrint == model.NO {
+// if order.VendorOrgCode == "34665" {
+// printOrder[EBailOrderNo] = globals.StoreNameEbai2
+// } else {
+// printOrder[EBailOrderNo] = storeDetail.BrandName
+// }
+// }
+//
+// printOrder[VendOrID] = utils.Int2Str(order.VendorID)
+// printOrder[VendorName] = jxutils.GetVendorName(order.VendorID)
+// printOrder[StoreName] = order.StoreName
+// printOrder[StoreTel] = storeTel
+// printOrder[OfficialName] = globals.StoreName
+// return printOrder
+//}
+//
+//// ManagerStore 送达提示数据组装
+//func ManagerStore(order *model.GoodsOrder, storeTel string, storeDetail *dao.StoreDetail) map[string]string {
+// printOrder := make(map[string]string, 0)
+// printOrder[OrderNo] = order.VendorOrderID
+// printOrder[VendorOrderNo] = utils.Int2Str(order.VendorID)
+// printOrder[VendorName] = jxutils.GetVendorName(order.VendorID)
+// printOrder[StoreName] = order.StoreName
+// printOrder[StoreTel] = storeTel
+// return printOrder
+//}
+//
+//// ManagerEnterTheStore 进店咨询
+//func ManagerEnterTheStore(order *model.GoodsOrder, storeTel string, storeDetail *dao.StoreDetail) map[string]string {
+// printOrder := make(map[string]string, 0)
+// return printOrder
+//}
diff --git a/business/partner/printer/xiaowm/xiaowm.go b/business/partner/printer/xiaowm/xiaowm.go
index e0d933ffb..6ec3ec472 100644
--- a/business/partner/printer/xiaowm/xiaowm.go
+++ b/business/partner/printer/xiaowm/xiaowm.go
@@ -292,7 +292,7 @@ func (c *PrinterHandler) GetPrinterStatus(ctx *jxcontext.Context, printerNumber,
return printerStatus, err
}
-func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
+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("xiaowm PrintOrderByOrder orderID:%s, storeID:%d", order.VendorOrderID, store.ID)
var content string
if isV500(store.PrinterSN) {
@@ -307,6 +307,10 @@ 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, vendorId int) (printerStatus *partner.PrinterStatus, err error) {
+ return nil, err
+}
+
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}
@@ -316,7 +320,7 @@ func isV500(printerNo string) bool {
return printerNoNum > 1000000000
}
-func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerNumber, notUsed, printerName string) (newID1, printerToken string, err error) {
+func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerNumber, notUsed, printerName string, storeID int64) (newID1, printerToken string, err error) {
globals.SugarLogger.Debugf("xiaowm RegisterPrinter printerNumber:%s", printerNumber)
if printerNumber == "" { //len(printerNumber) != len("7JizmSyiXNzkggaqU") {
err = fmt.Errorf("外卖管家打印机设备编号:%s长度不合法", printerNumber)
diff --git a/business/partner/printer/yilianyun/yilianyun.go b/business/partner/printer/yilianyun/yilianyun.go
index 99cbf896d..360dced3f 100644
--- a/business/partner/printer/yilianyun/yilianyun.go
+++ b/business/partner/printer/yilianyun/yilianyun.go
@@ -395,7 +395,7 @@ func (c *PrinterHandler) GetPrinterStatus(ctx *jxcontext.Context, machineCode, p
return printerStatus, err
}
-func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
+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("yilianyun PrintOrderByOrder orderID:%s, storeID:%d", order.VendorOrderID, store.ID)
if len(order.Skus) == 0 {
return
@@ -419,6 +419,10 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
}
}
+func (c *PrinterHandler) PrintStore(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, vendorId int) (printerStatus *partner.PrinterStatus, err error) {
+ return nil, err
+}
+
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
globals.SugarLogger.Debugf("yilianyun PrintCancelOrRefundOrder orderID:%s, storeID:%d", order.VendorOrderID, store.ID)
if len(order.Skus) == 0 {
@@ -438,7 +442,7 @@ func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printT
return c.PrintMsg(ctx, store.PrinterSN, store.PrinterKey, order.VendorOrderID, content)
}
-func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, machineCode, secret, printerName string) (notUsed1, notUsed2 string, err error) {
+func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, machineCode, secret, printerName string, storeID int64) (notUsed1, notUsed2 string, err error) {
if globals.EnableStoreWrite {
err = api.YilianyunAPI.AddPrinter(machineCode, secret, printerName)
}
diff --git a/business/partner/printer/zhongwu/zhongwu.go b/business/partner/printer/zhongwu/zhongwu.go
index bb74419a5..78cf43e51 100644
--- a/business/partner/printer/zhongwu/zhongwu.go
+++ b/business/partner/printer/zhongwu/zhongwu.go
@@ -219,7 +219,7 @@ func (c *PrinterHandler) GetPrinterStatus(ctx *jxcontext.Context, deviceID, devi
return printerStatus, err
}
-func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
+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("zhongwu PrintOrderByOrder orderID:%s, storeID:%d", order.VendorOrderID, store.ID)
content := ""
if store.PrinterFontSize == partner.PrinterFontSizeBig {
@@ -230,11 +230,15 @@ 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, vendorId int) (printerStatus *partner.PrinterStatus, err error) {
+ return nil, err
+}
+
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}
-func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, deviceID, deviceSecret, printerName string) (notUsed1, notUsed2 string, err error) {
+func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, deviceID, deviceSecret, printerName string, storeID int64) (notUsed1, notUsed2 string, err error) {
if deviceID == "" || deviceSecret == "" {
err = fmt.Errorf("打印机ID与打印机密钥都不能为空")
}
diff --git a/business/partner/purchase/ebai/callback.go b/business/partner/purchase/ebai/callback.go
index b3234c88d..0af4a941b 100644
--- a/business/partner/purchase/ebai/callback.go
+++ b/business/partner/purchase/ebai/callback.go
@@ -4,8 +4,12 @@ import (
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
"git.rosy.net.cn/baseapi/utils"
"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/model"
+ "git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
+ "git.rosy.net.cn/jx-callback/globals/api"
)
func OnCallbackMsg(msg *ebaiapi.CallbackMsg) (response *ebaiapi.CallbackResponse) {
@@ -29,6 +33,12 @@ func OnCallbackMsg(msg *ebaiapi.CallbackMsg) (response *ebaiapi.CallbackResponse
response = CurPurchaseHandler.OnFinancialMsg(msg)
} else if msg.Cmd == ebaiapi.CmdShopMsgPush {
response = CurPurchaseHandler.onShopMsgPush(msg)
+ } else if msg.Cmd == ebaiapi.CmdShopUnbindMsg {
+ // 门店授权发生变化 17,失去授权
+ vendorStoreID := msg.Body["shop_list"].([]*ebaiapi.EBaiShopList)[0].ShopID
+ storeDetail, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreID, model.VendorIDEBAI, "")
+ _, err := netprinter.PrintStoreStatus(jxcontext.AdminCtx, storeDetail, model.VendorIDMTWM, -9)
+ response = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, msg.Cmd)
}
}
return response
diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go
index ff0d047b3..6395df866 100644
--- a/business/partner/purchase/jd/store.go
+++ b/business/partner/purchase/jd/store.go
@@ -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, "")
}
diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go
index d7bf60768..5ba93357d 100644
--- a/business/partner/purchase/jx/localjx/order.go
+++ b/business/partner/purchase/jx/localjx/order.go
@@ -559,12 +559,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)
+ netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order, model.PrintTypeOrder)
}
PickupGoods(order, false, "jxadmin")
- // }
} else {
//普通的订单要看用没用优惠券,用了的话,要把这个用户用过的优惠券状态改了
if order.CouponIDs != "" {
diff --git a/business/partner/purchase/mtwm/callback.go b/business/partner/purchase/mtwm/callback.go
index 7ad771f15..356c4e1c2 100644
--- a/business/partner/purchase/mtwm/callback.go
+++ b/business/partner/purchase/mtwm/callback.go
@@ -3,7 +3,10 @@ package mtwm
import (
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"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/model"
+ "git.rosy.net.cn/jx-callback/business/model/dao"
)
// 美团回调接口
@@ -14,6 +17,11 @@ func OnCallbackMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse
} else if msg.Cmd == mtwmapi.MsgTypePrivateNumberDowngrade {
response = CurPurchaseHandler.onNumberDowngrade(msg)
} else if msg.Cmd == mtwmapi.MsgTypeStoreBind {
+ // 门店授权发生变化 17,失去授权
+ vendorStoreID := msg.FormData.Get("app_poi_code")
+ storeDetail, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreID, model.VendorIDMTWM, "")
+ _, err := netprinter.PrintStoreStatus(jxcontext.AdminCtx, storeDetail, model.VendorIDMTWM, -9)
+ response = mtwmapi.Err2CallbackResponse(err, "")
} else {
if orderID := GetOrderIDFromMsg(msg); orderID != "" {
jxutils.CallMsgHandler(func() {
diff --git a/controllers/cms_store.go b/controllers/cms_store.go
index 3e0a603bf..6edb3538e 100644
--- a/controllers/cms_store.go
+++ b/controllers/cms_store.go
@@ -148,6 +148,22 @@ func (c *StoreController) CreateStore() {
})
}
+// @Title 打印机授权创建京西门店(除门店名称和登录授权电话真实有效其他使用默认值)
+// @Description 打印机授权创建京西门店
+// @Param payload formData string true "json数据,store对象"
+// @Success 200 {object} controllers.CallResult
+// @Failure 200 {object} controllers.CallResult
+// @router /CreateStore2Print [post]
+func (c *StoreController) CreateStore2Print() {
+ c.callCreateStore2Print(func(params *tStoreCreateStore2PrintParams) (retVal interface{}, errCode string, err error) {
+ store := &cms.StoreExt{}
+ if err = utils.UnmarshalUseNumber([]byte(params.Payload), store); err == nil {
+ retVal, err = cms.CreateStore(params.Ctx, store, params.Ctx.GetUserName())
+ }
+ return retVal, "", err
+ })
+}
+
// @Title 商户创建京西门店
// @Description 商户创建京西门店
// @Param token header string true "认证token"
diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go
index 2e128570f..b70369015 100644
--- a/controllers/cms_store_sku.go
+++ b/controllers/cms_store_sku.go
@@ -273,7 +273,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
diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go
index 19544ff0b..4dd595012 100644
--- a/routers/commentsRouter_controllers.go
+++ b/routers/commentsRouter_controllers.go
@@ -2313,6 +2313,15 @@ func init() {
Filters: nil,
Params: nil})
+ web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
+ web.ControllerComments{
+ Method: "CreateStore2Print",
+ Router: `/CreateStore2Print`,
+ AllowHTTPMethods: []string{"post"},
+ MethodParams: param.Make(),
+ Filters: nil,
+ Params: nil})
+
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
web.ControllerComments{
Method: "CreateStoreByUser",