From 15f0be1b44bf96318228ea19e489224dffc186e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 13:46:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=AC=E4=B8=9Cpage=E7=9A=84cookie=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 2 +- business/jxstore/event/event.go | 10 +++ business/jxstore/misc/misc.go | 6 +- business/model/order.go | 1 + business/partner/purchase/jx/localjx/order.go | 71 ++++++++++++------- conf/app.conf | 1 + globals/api/api.go | 6 +- 7 files changed, 62 insertions(+), 35 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 7b15f1dcc..2085b05e9 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2322,7 +2322,7 @@ func SyncStoresCourierInfo(ctx *jxcontext.Context, storeIDs []int, isAsync, isCo func SyncStoresQualify(ctx *jxcontext.Context, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { if len(storeIDs) > 0 { db := dao.GetDB() - task := tasksch.NewParallelTask(fmt.Sprintf("上传门店资质:%v", storeIDs), tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, + task := tasksch.NewParallelTask(fmt.Sprintf("上传门店资质:%v", storeIDs), tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { vendorID := model.VendorIDJD if handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreSyncQualifyHandler); handler != nil { diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index 30e89778e..5cfd08385 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -201,6 +201,16 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) flag = true } } + result2, err2 := api.JdPageAPI.GetCorporationInfo("11926674", "92510108MA68KK3M8P") + if err2 != nil || result2 == nil { + cc := &CheckCookie{} + cc.VendorID = v + cc.VendorOrgCode = "京东page账号" + cc.Status = "无效" + ccList = append(ccList, cc) + errMsg += fmt.Sprintf(" 京东page账号:的Cookie无效了!", vv) + flag = true + } } cc.VendorID = v cc.VendorOrgCode = vv diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 7830ad3d9..662e79660 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -6,8 +6,6 @@ import ( "sync" "time" - "git.rosy.net.cn/baseapi/platformapi/jdapi" - "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" "git.rosy.net.cn/jx-callback/globals/api" @@ -252,8 +250,8 @@ func Init() { api.MtwmAPI.SetCookieWithStr(mtwmCookieStr) api.MtpsAPI.SetCookie("token", mtpsStoreToken) api.JdAPI.SetJdCookie(JdStorePageCookie) - api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) - api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) + // api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) + // api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) } func syncStoreSku() { diff --git a/business/model/order.go b/business/model/order.go index bbe63abbe..22a98f4c7 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -104,6 +104,7 @@ type GoodsOrder struct { InvoiceEmail string `orm:"size(64)" json:"invoiceEmail"` // 发票邮箱 VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 FromStoreID int `orm:"column(from_store_id)" json:"fromStoreID"` //物料配送门店 + EclpOutID string `orm:"column(eclp_out_id)" json:"eclpOutID"` //物料配送的出库单号 // 以下只是用于传递数据 OriginalData string `orm:"-" json:"-"` diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 96e314583..c9fd16797 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -83,9 +83,10 @@ type JxOrderInfo struct { OrderPrice int64 `json:"orderPrice"` // 单位为分 订单商品价格 ActualPayPrice int64 `json:"actualPayPrice"` // 单位为分 顾客实际支付 - OrderID int64 `json:"orderID"` - StoreName string `json:"storeName"` - Weight int `json:"weight"` + OrderID int64 `json:"orderID"` + StoreName string `json:"storeName"` + Weight int `json:"weight"` + FromStoreID int `json:"fromStoreID"` } type DeliveryTimeItem struct { @@ -99,6 +100,12 @@ type DeliveryDayTimeInfo struct { TimeList []*DeliveryTimeItem `json:"timeList"` } +type MatterOrderStatus struct { + Time string `json:"time"` + Status string `json:"status"` + Name string `json:"name"` +} + var ( orderNoBeginTimestamp int64 @@ -388,6 +395,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID) } deliveryAddress.ConsigneeName = storeDetail2.Name + outJxOrder.FromStoreID = fromStoreID } // 营业状态及时间检查 @@ -579,15 +587,12 @@ func AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList } func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { - globals.SugarLogger.Debugf("orderSolutionForWuLiao1") err = changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "") - globals.SugarLogger.Debugf("orderSolutionForWuLiao2") err = orderSolutionForWuLiao(order) return err } func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { - globals.SugarLogger.Debugf("orderSolutionForWuLiao3, [%v]", *order) if order.FromStoreID != 0 { // var ( // goodsNos []string @@ -628,20 +633,8 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { // if err != nil { // return err // } - // wayBill := &model.Waybill{ - // VendorOrderID: order.VendorOrderID, - // OrderVendorID: model.VendorIDJX, - // VendorWaybillID: result.EclpSoNo, - // WaybillVendorID: model.VendorIDJD, - // CourierName: "京东物流", - // CourierMobile: "", - // Status: model.WaybillStatusNew, - // VendorStatus: utils.Int2Str(model.WaybillStatusDelivering), - // WaybillCreatedAt: utils.DefaultTimeValue, - // WaybillFinishedAt: utils.DefaultTimeValue, - // StatusTime: time.Now(), - // } - // dao.CreateEntity(db, wayBill) + // order.EclpOutID = result.EclpSoNo + // dao.UpdateEntity(db, order, "EclpOutID") } return err } @@ -661,7 +654,6 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) payList, err2 := dao.GetOrderPayList(db, order.VendorOrderID, jxutils.GetPossibleVendorIDFromVendorOrderID(order.VendorOrderID)) if err = err2; err == nil { for _, orderPay := range payList { - globals.SugarLogger.Debugf("CancelOrderTL2, [%v]", *orderPay) if orderPay.Status == model.PayStatusYes { // refundID := utils.Int64ToStr(GenRefundID(order)) refundID := order.VendorOrderID @@ -672,6 +664,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) errList.AddErr(dao.CreateEntity(dao.GetDB(), orderPayRefund)) MarkArrears(db, order, orderPay) + CancelMatterOrder(db, order) } else { errList.AddErr(err) } @@ -679,6 +672,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) orderPayRefund, err = refundOrderByTL(ctx, orderPay, refundID, orderPay.TotalFee, reason) if err == nil { MarkArrears(db, order, orderPay) + CancelMatterOrder(db, order) } else { errList.AddErr(err) } @@ -704,6 +698,13 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) return err } +func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder) (err error) { + if order.FromStoreID != 0 { + _, err = api.JdEclpAPI.CancelOrder(order.EclpOutID) + } + return err +} + func MarkArrears(db *dao.DaoDB, order *model.GoodsOrder, orderPay *model.OrderPay) { //退款后,若此订单下单用户有推广人,则需要将分给推广人的金额记录到该推广人的欠款中 orders, _ := dao.QueryOrders(db, order.VendorOrderID, 0, []int{model.VendorIDJX}, 0, utils.DefaultTimeValue, utils.DefaultTimeValue) @@ -943,10 +944,26 @@ func GetHalfHoursList() (strs []string) { return strs } -func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (err error) { - // var ( - // db = dao.GetDB() - // ) - - return err +func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result []*MatterOrderStatus, err error) { + var ( + db = dao.GetDB() + ) + waybills, err := dao.GetWayBillByOrderID(db, -1, model.VendorIDJX, -1, vendorOrderID) + order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJX) + if len(waybills) > 0 { + // queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(waybills[0].VendorWaybillID) + } + // getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + dao.UpdateEntity(db, order, "Status") + waybills[0].StatusTime = time.Now() + dao.UpdateEntity(db, waybills[0], "Status", "StatusTime") + dao.Commit(db) + return result, err } diff --git a/conf/app.conf b/conf/app.conf index 73f03045f..1baf8c612 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -173,6 +173,7 @@ jd2Secret = "1097abd7ef09427099b4922784af123a" jdEclpAccessToken = "" jdEclpAppKey = "" jdEclpAppSecret = "" +jdEclpRedirectUri = "" elmIsProd = true elmToken = "" diff --git a/globals/api/api.go b/globals/api/api.go index 1e1fa6cbd..7eafb97ab 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -88,12 +88,12 @@ func init() { func Init() { if !beego.AppConfig.DefaultBool("disableJd", false) { JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret")) - // cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") + cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") // JdAPI.SetJdCookie(cookieValue) conf := platformapi.NewDefAPIConfig() conf.MaxSleepSecondWhenExceedLimit = 60 * 30 // 最大重试间隙30分钟 - JdPageAPI = jdapi.NewPageOnly("", conf) + JdPageAPI = jdapi.NewPageOnly(cookieValue, conf) if globals.Jd2OrgCode != "" { Jd2API = jdapi.New(beego.AppConfig.String("jd2Token"), beego.AppConfig.String("jd2AppKey"), beego.AppConfig.String("jd2Secret")) @@ -108,7 +108,7 @@ func Init() { JdAPI = nil } if !beego.AppConfig.DefaultBool("disableJdEclp", false) { - JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret")) + JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret"), beego.AppConfig.String("jdEclpRedirectUri")) } else { JdEclpAPI = nil }