Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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("<b>饿百取货码:%s</b><br><br>\n", jxutils.GetEbaiOrderGetCode(order))
|
||||
}
|
||||
orderFmt := ``
|
||||
if storeDetail != nil {
|
||||
if storeDetail.BrandIsPrint == model.NO {
|
||||
orderFmt += `
|
||||
<sound>您有新订单啦!</sound><br>
|
||||
<center><b>%s</b></center><br><br>
|
||||
`
|
||||
if order.VendorOrgCode == "34665" {
|
||||
orderParams = append(orderParams, globals.StoreNameEbai2)
|
||||
} else {
|
||||
orderParams = append(orderParams, storeDetail.BrandName)
|
||||
}
|
||||
}
|
||||
}
|
||||
orderFmt += `
|
||||
<center>手机买菜上京西</center><br>
|
||||
<center>极速到家送惊喜</center><br>
|
||||
--------------------------------<br>
|
||||
下单时间: %s<br>
|
||||
预计送达: %s<br>
|
||||
订单编号: %s<br>
|
||||
<br>
|
||||
|
||||
<b>%s#%d</b><br>
|
||||
<qrc>%s</qrc><br>
|
||||
` + getCode +
|
||||
`客户: %s<br>
|
||||
电话: %s<br>
|
||||
地址: %s<br>
|
||||
<br>
|
||||
客户备注: <br>
|
||||
<b>%s</b><br>
|
||||
<br>
|
||||
|
||||
<br>
|
||||
商品明细: <br>
|
||||
品名 数量 单价 小计<br>
|
||||
--------------------------------<br>`
|
||||
// <BOLD>实际支付:</BOLD>%s<BR>
|
||||
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<br>`
|
||||
orderFmt += `%8s%10s%10s<br>`
|
||||
orderParams = append(orderParams, sku.SkuName, "x"+utils.Int2Str(sku.Count), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice*int64(sku.Count)))
|
||||
}
|
||||
orderFmt += `<br>
|
||||
共%d种%d件商品
|
||||
<br>
|
||||
--------------------------------<br>
|
||||
<center><hb>商品质量问题请联系:</hb></center><br>
|
||||
<center><hb>%s:%s</hb></center><br>
|
||||
<br>
|
||||
更多信息请关注官方微信: %s<br>
|
||||
<br>
|
||||
<br>
|
||||
--------------------------------<br>
|
||||
--------------------------------<br>
|
||||
<br>
|
||||
`
|
||||
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("<b>饿百取货码:%s</b><br><br>\n", jxutils.GetEbaiOrderGetCode(order))
|
||||
// }
|
||||
// orderFmt := ``
|
||||
// if storeDetail != nil {
|
||||
// if storeDetail.BrandIsPrint == model.NO {
|
||||
// orderFmt += `
|
||||
// <sound>您有新订单啦!</sound><br>
|
||||
// <center><b>%s</b></center><br><br>
|
||||
// `
|
||||
// if order.VendorOrgCode == "34665" {
|
||||
// orderParams = append(orderParams, globals.StoreNameEbai2)
|
||||
// } else {
|
||||
// orderParams = append(orderParams, storeDetail.BrandName)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// orderFmt += `
|
||||
//<center>手机买菜上京西</center><br>
|
||||
//<center>极速到家送惊喜</center><br>
|
||||
//--------------------------------<br>
|
||||
//下单时间: %s<br>
|
||||
//预计送达: %s<br>
|
||||
//订单编号: %s<br>
|
||||
//<br>
|
||||
//
|
||||
//<b>%s#%d</b><br>
|
||||
//<qrc>%s</qrc><br>
|
||||
//` + getCode +
|
||||
// `客户: %s<br>
|
||||
//电话: %s<br>
|
||||
//地址: %s<br>
|
||||
//<br>
|
||||
//客户备注: <br>
|
||||
//<b>%s</b><br>
|
||||
//<br>
|
||||
//
|
||||
//<br>
|
||||
//商品明细: <br>
|
||||
//品名 数量 单价 小计<br>
|
||||
//--------------------------------<br>`
|
||||
// // <BOLD>实际支付:</BOLD>%s<BR>
|
||||
// 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<br>`
|
||||
// orderFmt += `%8s%10s%10s<br>`
|
||||
// orderParams = append(orderParams, sku.SkuName, "x"+utils.Int2Str(sku.Count), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice*int64(sku.Count)))
|
||||
// }
|
||||
// orderFmt += `<br>
|
||||
//共%d种%d件商品
|
||||
//<br>
|
||||
//--------------------------------<br>
|
||||
//<center><hb>商品质量问题请联系:</hb></center><br>
|
||||
//<center><hb>%s:%s</hb></center><br>
|
||||
//<br>
|
||||
//更多信息请关注官方微信: %s<br>
|
||||
//<br>
|
||||
//<br>
|
||||
//--------------------------------<br>
|
||||
//--------------------------------<br>
|
||||
//<br>
|
||||
//`
|
||||
// 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 += "<sound>" + storeDetail.PrinterSound + "</sound><br>"
|
||||
}
|
||||
}
|
||||
//把带有${}的变量换成实际值
|
||||
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<br>"
|
||||
skus += "%8s%10s%10s<br><br>"
|
||||
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 += "<sound>" + storeDetail.PrinterSound + "</sound><br>"
|
||||
// }
|
||||
//}
|
||||
////把带有${}的变量换成实际值
|
||||
//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<br>"
|
||||
// skus += "%8s%10s%10s<br><br>"
|
||||
// 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) {
|
||||
|
||||
@@ -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
|
||||
//}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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与打印机密钥都不能为空")
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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, "")
|
||||
}
|
||||
|
||||
|
||||
@@ -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 != "" {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user