Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2022-08-24 17:25:11 +08:00
23 changed files with 401 additions and 203 deletions

View File

@@ -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
}

View File

@@ -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)

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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()

View File

@@ -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

View File

@@ -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
}

View File

@@ -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)
}

View File

@@ -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)

View File

@@ -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{

View File

@@ -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) {

View File

@@ -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
//}

View File

@@ -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)

View File

@@ -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)
}

View File

@@ -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与打印机密钥都不能为空")
}

View File

@@ -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

View File

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

View File

@@ -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 != "" {

View File

@@ -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() {

View File

@@ -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"

View File

@@ -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

View File

@@ -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",