Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -12,11 +12,7 @@ import (
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/common"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/smsmsg"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||||
"git.rosy.net.cn/jx-callback/business/msghub"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/jdshop"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
|
||||
@@ -142,7 +138,7 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model
|
||||
// }, "OnAdjustOrder delete order_sku, orderID:%s", order.VendorOrderID)
|
||||
order.AdjustCount = adjustCount + 1
|
||||
//扣点的订单需要修改订单的totalshopmoney
|
||||
if err == nil && order.EarningType == model.EarningTypePoints {
|
||||
if err == nil && order.OrderPayPercentage < 100 {
|
||||
order2, _ := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrgCode, order.VendorOrderID)
|
||||
order.TotalShopMoney = order2.TotalShopMoney
|
||||
}
|
||||
@@ -364,9 +360,9 @@ func ModifyOrderSkusStock(db *dao.DaoDB, order *model.GoodsOrder, isAdd bool) (e
|
||||
for _, sku := range skus {
|
||||
storeSkus, _ := dao.GetStoresSkusInfo(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, []int{sku.SkuID})
|
||||
if len(storeSkus) == 0 {
|
||||
if !isAdd {
|
||||
globals.SugarLogger.Warnf("此订单商品没得storsku,%v,%v", order.VendorOrderID, sku.SkuID)
|
||||
}
|
||||
// if !isAdd {
|
||||
// globals.SugarLogger.Warnf("此订单商品没得storsku,%v,%v", order.VendorOrderID, sku.SkuID)
|
||||
// }
|
||||
continue
|
||||
}
|
||||
storeSku, stock := storeSkus[0], 0
|
||||
@@ -1845,11 +1841,11 @@ func AcceptOrRefuseOrder(ctx *jxcontext.Context, vendorOrderID string, vendorID
|
||||
handler := partner.GetPurchaseOrderHandlerFromVendorID(vendorID)
|
||||
err = handler.AcceptOrRefuseOrder(order, isAccept, ctx.GetUserName())
|
||||
if err == nil && isAccept && vendorID == model.VendorIDEBAI {
|
||||
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
||||
smsmsg.NotifyNewOrder(order)
|
||||
smsmsg.NotifyNewUserOrder(order)
|
||||
weixinmsg.NotifyNewOrder(order)
|
||||
msghub.OnNewOrder(order)
|
||||
// netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
||||
// smsmsg.NotifyNewOrder(order)
|
||||
// smsmsg.NotifyNewUserOrder(order)
|
||||
// weixinmsg.NotifyNewOrder(order)
|
||||
// msghub.OnNewOrder(order)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -705,8 +705,15 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID
|
||||
}
|
||||
saleInfoMap[index] = saleInfo
|
||||
}
|
||||
if v.EarningType == model.EarningTypeQuote {
|
||||
saleInfo.RealEarningPrice += v.ShopPrice * int64(v.Count)
|
||||
//成都菜市
|
||||
if beego.BConfig.RunMode == "prod" {
|
||||
if v.EarningType == model.EarningTypeQuote && v.VendorID != model.VendorIDJD && v.CityCode != 510100 {
|
||||
saleInfo.RealEarningPrice += v.ShopPrice * int64(v.Count)
|
||||
}
|
||||
} else {
|
||||
if v.OrderPayPercentage == 100 {
|
||||
saleInfo.RealEarningPrice += v.ShopPrice * int64(v.Count)
|
||||
}
|
||||
}
|
||||
saleInfo.ShopPrice += v.ShopPrice * int64(v.Count)
|
||||
saleInfo.VendorPrice += v.VendorPrice * int64(v.Count)
|
||||
@@ -715,15 +722,27 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID
|
||||
if v.VendorOrderID == flagVendorOrderID {
|
||||
if k == 0 {
|
||||
saleInfo.EarningPrice = v.NewEarningPrice
|
||||
if v.EarningType == model.EarningTypePoints {
|
||||
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||
if beego.BConfig.RunMode == "prod" {
|
||||
if v.EarningType == model.EarningTypePoints && v.VendorID != model.VendorIDJD && v.CityCode != 510100 {
|
||||
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||
}
|
||||
} else {
|
||||
if v.OrderPayPercentage < 100 {
|
||||
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
flagVendorOrderID = v.VendorOrderID
|
||||
saleInfo.EarningPrice += v.NewEarningPrice
|
||||
if v.EarningType == model.EarningTypePoints {
|
||||
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||
if beego.BConfig.RunMode == "prod" {
|
||||
if v.EarningType == model.EarningTypePoints && v.VendorID != model.VendorIDJD && v.CityCode != 510100 {
|
||||
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||
}
|
||||
} else {
|
||||
if v.OrderPayPercentage < 100 {
|
||||
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -376,11 +376,27 @@ func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder, isPending bool) (err
|
||||
globals.SugarLogger.Debugf("OnOrderNew orderID:%s", order.VendorOrderID)
|
||||
savedOrderInfo := s.loadSavedOrderFromMap(model.Order2Status(order), false)
|
||||
savedOrderInfo.SetOrder(order)
|
||||
if order.Status == model.OrderStatusWaitAccepted {
|
||||
s.resetTimer(savedOrderInfo, nil, isPending)
|
||||
// push.NotifyNewOrder(order)
|
||||
s.notifyNewOrder(order)
|
||||
msghub.OnNewOrder(order)
|
||||
if order.VendorID == model.VendorIDEBAI { //饿百订单待接单的时候就推所有东西
|
||||
if order.Status == model.OrderStatusWaitAccepted || order.Status == model.OrderStatusFinishedPickup { //错序
|
||||
s.resetTimer(savedOrderInfo, nil, isPending)
|
||||
if order.Flag&model.OrderFlagMaskFake == 0 {
|
||||
utils.CallFuncAsync(func() {
|
||||
order = setFakeActualPayPrice(order)
|
||||
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
||||
//目前暂且认为AdjustCount > 0 就是调整单
|
||||
if order.AdjustCount > 0 {
|
||||
weixinmsg.NotifyAdjustOrder(order)
|
||||
} else {
|
||||
weixinmsg.NotifyNewOrder(order)
|
||||
}
|
||||
OrderProfitWarning(order)
|
||||
smsmsg.NotifyNewOrder(order)
|
||||
smsmsg.NotifyNewUserOrder(order)
|
||||
push.NotifyNewOrder(order)
|
||||
})
|
||||
}
|
||||
msghub.OnNewOrder(order)
|
||||
}
|
||||
}
|
||||
if order.Status >= model.OrderStatusNew {
|
||||
s.resetTimer(savedOrderInfo, nil, isPending)
|
||||
@@ -1459,7 +1475,7 @@ func setFakeActualPayPrice(order *model.GoodsOrder) (newOrder *model.GoodsOrder)
|
||||
}
|
||||
|
||||
func (s *DefScheduler) notifyNewOrder(order *model.GoodsOrder) {
|
||||
if order.Flag&model.OrderFlagMaskFake == 0 {
|
||||
if order.Flag&model.OrderFlagMaskFake == 0 && order.VendorID != model.VendorIDEBAI {
|
||||
utils.CallFuncAsync(func() {
|
||||
order = setFakeActualPayPrice(order)
|
||||
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
||||
|
||||
@@ -8,8 +8,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/authz/autils"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
||||
"github.com/360EntSecGroup-Skylar/excelize"
|
||||
@@ -1712,12 +1710,99 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) {
|
||||
// cms.UpdateStoreSkus(ctx, 0, storeDetail.ID, skuBindInfos, true, true)
|
||||
// }
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
jdStoreIDs = []string{
|
||||
"11734848",
|
||||
"11734850",
|
||||
"11734854",
|
||||
"11734862",
|
||||
"11734868",
|
||||
"11734873",
|
||||
"11734874",
|
||||
"11734886",
|
||||
"11748353",
|
||||
"11890095",
|
||||
"11800399",
|
||||
"11738114",
|
||||
"11857499",
|
||||
"11873440",
|
||||
"11883071",
|
||||
"11734852",
|
||||
"11886763",
|
||||
"11874614",
|
||||
"11734884",
|
||||
"11926674",
|
||||
"11929173",
|
||||
"11894144",
|
||||
"11734861",
|
||||
"11951611",
|
||||
"11800403",
|
||||
"11913597",
|
||||
"11980746",
|
||||
"11981675",
|
||||
"12011812",
|
||||
"12007545",
|
||||
"11734846",
|
||||
"12005417",
|
||||
"12005640",
|
||||
"12005682",
|
||||
"12006134",
|
||||
"11982352",
|
||||
"12007250",
|
||||
"12007560",
|
||||
"11982427",
|
||||
"12008087",
|
||||
"12035806",
|
||||
"12008160",
|
||||
"12008395",
|
||||
"12009345",
|
||||
"11940019",
|
||||
"12010237",
|
||||
"12010654",
|
||||
"12011111",
|
||||
"12006857",
|
||||
"11734851",
|
||||
"12030632",
|
||||
"12050456",
|
||||
}
|
||||
jdStoreIDxipu = "11890095"
|
||||
skuMap = make(map[string]*partner.StoreSkuInfo)
|
||||
priceList []*pa
|
||||
)
|
||||
stores, _ := dao.GetStoreList(db, nil, nil, nil, nil, "")
|
||||
for _, v := range stores {
|
||||
cms.AddUsers4Role(jxcontext.AdminCtx, autils.NewRole("StoreBoss", v.ID), []string{"5CD3666C666711E9B19B525400E86DC0"})
|
||||
StoreSkuFullList2BareFilter := func(storeSkuFull []*partner.SkuNameInfo) (bareStoreSkuList []*partner.StoreSkuInfo) {
|
||||
for _, v := range storeSkuFull {
|
||||
for _, v2 := range v.SkuList {
|
||||
if v2.Status > model.SkuStatusDontSale {
|
||||
bareStoreSkuList = append(bareStoreSkuList, &v2.StoreSkuInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
return bareStoreSkuList
|
||||
}
|
||||
handler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
multiHandler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IMultipleStoresHandler)
|
||||
allSkuNameInfoList, err := multiHandler.GetSkus(ctx, "320406", 0, "")
|
||||
skuInfos := StoreSkuFullList2BareFilter(allSkuNameInfoList)
|
||||
outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, "320406", nil, 0, jdStoreIDxipu, skuInfos)
|
||||
for _, v := range outStoreSkuList {
|
||||
skuMap[v.VendorSkuID] = v
|
||||
}
|
||||
task := tasksch.NewParallelTask("初始化京东", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
jdStoreID := batchItemList[0].(string)
|
||||
outStoreSkuList2, err := handler.GetStoreSkusBareInfo(ctx, "320406", nil, 0, jdStoreID, skuInfos)
|
||||
for _, v := range outStoreSkuList2 {
|
||||
if skuMap[v.VendorSkuID] != nil {
|
||||
continue
|
||||
}
|
||||
if skuMap[v.VendorSkuID].VendorPrice != v.VendorPrice {
|
||||
v.VendorPrice = skuMap[v.VendorSkuID].VendorPrice
|
||||
|
||||
}
|
||||
}
|
||||
return retVal, err
|
||||
}, jdStoreIDs)
|
||||
tasksch.HandleTask(task, nil, true).Run()
|
||||
task.GetID()
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -45,9 +45,11 @@ type OrderSkuWithActualPayPrice struct {
|
||||
StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid
|
||||
Status int `json:"status"` // 参见OrderStatus*相关的常量定义
|
||||
|
||||
PayPercentage int `json:"payPercentage"`
|
||||
NewEarningPrice int64 `json:"newEarningPrice"`
|
||||
EarningType int `json:"earningType"`
|
||||
PayPercentage int `json:"payPercentage"`
|
||||
OrderPayPercentage int `json:"orderPayPercentage"`
|
||||
NewEarningPrice int64 `json:"newEarningPrice"`
|
||||
EarningType int `json:"earningType"`
|
||||
CityCode int `json:"cityCode"`
|
||||
}
|
||||
|
||||
type tGoodsAndOrder struct {
|
||||
@@ -376,7 +378,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt
|
||||
sql := `
|
||||
SELECT t1.*,
|
||||
IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.status, t2.actual_pay_price, t2.distance_freight_money, t2.waybill_tip_money, t2.new_earning_price,
|
||||
t3.pay_percentage, t2.earning_type
|
||||
t3.pay_percentage, t2.earning_type, t2.order_pay_percentage, t3.city_code
|
||||
FROM order_sku t1
|
||||
JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id
|
||||
LEFT JOIN store t3 ON t3.id = IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id)
|
||||
|
||||
@@ -293,6 +293,7 @@ type Store struct {
|
||||
AutoReplyType int8 `json:"autoReplyType"` // 订单评价自动回复类型
|
||||
LinkStoreID int `orm:"column(link_store_id);default(0);index" json:"linkStoreID"` // 关联门店ID
|
||||
StoreLevel string `orm:"default(C);size(32)" json:"storeLevel"` // 门店等级(筛选用,京西的)
|
||||
Comment string `orm:"size(255)" json:"comment"` //门店备注
|
||||
|
||||
PrinterDisabled int8 `orm:"default(0)" json:"printerDisabled"` // 是否禁用网络打印机
|
||||
PrinterFontSize int8 `orm:"default(0)" json:"printerFontSize"` // 打印字体-1:小,0:正常,1:大
|
||||
|
||||
@@ -248,6 +248,11 @@ func Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) {
|
||||
if result[statusTimeField] == nil { // 814560888003021 orderPurchaseTime为空
|
||||
statusTimeField = "orderStartTime"
|
||||
}
|
||||
//物竞天择订单备注改一下
|
||||
comment := utils.TrimBlankChar(utils.Interface2String(result["orderBuyerRemark"]))
|
||||
if strings.Contains(comment, "【JD】") {
|
||||
comment += "【京东商城】"
|
||||
}
|
||||
order = &model.GoodsOrder{
|
||||
VendorOrderID: orderID,
|
||||
VendorID: model.VendorIDJD,
|
||||
@@ -259,7 +264,7 @@ func Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) {
|
||||
ConsigneeMobile: jxutils.FormalizeMobile(utils.Interface2String(result["buyerMobile"])),
|
||||
ConsigneeAddress: utils.Interface2String(result["buyerFullAddress"]),
|
||||
CoordinateType: model.CoordinateTypeMars,
|
||||
BuyerComment: utils.TrimBlankChar(utils.Interface2String(result["orderBuyerRemark"])),
|
||||
BuyerComment: comment,
|
||||
ExpectedDeliveredTime: utils.Str2TimeWithDefault(utils.Interface2String(result["orderPreEndDeliveryTime"]), utils.DefaultTimeValue),
|
||||
PickDeadline: utils.Str2TimeWithDefault(utils.Interface2String(result["pickDeadline"]), utils.DefaultTimeValue), // 813951615000022 pickDeadline为空
|
||||
VendorStatus: utils.Int64ToStr(utils.MustInterface2Int64(result["orderStatus"])),
|
||||
|
||||
Reference in New Issue
Block a user