+ UpdateStoreOpTime

This commit is contained in:
gazebo
2019-07-22 13:36:21 +08:00
parent e2453e6832
commit 606bd420fb
5 changed files with 90 additions and 39 deletions

View File

@@ -5,5 +5,5 @@ import "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
type IStoreHandler interface {
UpdateStoreStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, status int) (err error)
// opTime格式为整数1130代表11:30
// ChangeStoreOptime(ctx *jxcontext.Context, opTimeList []int) (err error)
UpdateStoreOpTime(ctx *jxcontext.Context, storeID int, vendorStoreID string, opTimeList []int) (err error)
}

View File

@@ -335,25 +335,32 @@ func JxDeliveryRegion2Ebai(store *model.Store) (deliveryRegion interface{}) {
return deliveryRegion
}
func JxBusinessTime2Ebai(store *model.Store) interface{} {
bTime := make([]map[string]interface{}, 1)
bTime[0] = map[string]interface{}{
"start": jxutils.JxOperationTime2StrTime(store.OpenTime1),
"end": jxutils.JxOperationTime2StrTime(store.CloseTime1),
func fillOpTimeParams(params map[string]interface{}, opTimeList []int16) map[string]interface{} {
if params == nil {
params = make(map[string]interface{})
}
if store.OpenTime2 != 0 {
bTime = append(bTime, map[string]interface{}{
"start": jxutils.JxOperationTime2StrTime(store.OpenTime2),
"end": jxutils.JxOperationTime2StrTime(store.CloseTime2),
})
var pairList []map[string]string
opTimeListLen := len(opTimeList)
if opTimeListLen > 4 {
opTimeListLen = 4
}
return bTime
opTimeListLen = opTimeListLen / 2 * 2
for k := 0; k < len(opTimeList); k += 2 {
if opTimeList[k] != 0 {
pairList = append(pairList, map[string]string{
"start": jxutils.JxOperationTime2StrTime(opTimeList[k]),
"end": jxutils.JxOperationTime2StrTime(opTimeList[k+1]),
})
} else {
break
}
}
params["business_time"] = pairList
return params
}
func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} {
params := map[string]interface{}{
"business_time": JxBusinessTime2Ebai(&store.Store),
}
params := fillOpTimeParams(nil, []int16{store.OpenTime1, store.CloseTime1, store.OpenTime2, store.CloseTime2})
// if store.Tel2 != "" {
// params["ivr_phone"] = store.Tel2
// }
@@ -447,3 +454,14 @@ func (c *PurchaseHandler) updateStoreStatus(userName string, storeID int, vendor
}
return err
}
func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, storeID int, vendorStoreID string, opTimeList []int16) (err error) {
params := map[string]interface{}{
ebaiapi.KeyBaiduShopID: vendorStoreID,
}
fillOpTimeParams(params, opTimeList)
if globals.EnableEbaiStoreWrite {
api.EbaiAPI.ShopUpdate(params)
}
return err
}

View File

@@ -1,6 +1,7 @@
package jd
import (
"fmt"
"strings"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
@@ -113,12 +114,11 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
outSystemID = utils.Int2Str(int(store.ID))
}
params := map[string]interface{}{
"outSystemId": outSystemID, // todo 直接修改这个字段可能会有问题
"serviceTimeStart1": JxOperationTime2JdOperationTime(store.OpenTime1),
"serviceTimeEnd1": JxOperationTime2JdOperationTime(store.CloseTime1),
"phone": store.Tel1,
"mobile": store.Tel2,
"outSystemId": outSystemID, // todo 直接修改这个字段可能会有问题
"phone": store.Tel1,
"mobile": store.Tel2,
}
fillOpTimeParams(params, []int16{store.OpenTime1, store.CloseTime1, store.OpenTime2, store.CloseTime2})
if store.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0 {
params["stationName"] = jxutils.ComposeStoreName(store.Name, model.VendorIDJD)
}
@@ -140,11 +140,6 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
params["deliveryRangeRadius"] = utils.Str2Int64WithDefault(store.DeliveryRange, 0)
}
}
openTime2 := JxOperationTime2JdOperationTime(store.OpenTime2)
if openTime2 != 0 {
params["serviceTimeStart2"] = openTime2
params["serviceTimeEnd2"] = JxOperationTime2JdOperationTime(store.CloseTime2)
}
_, params["closeStatus"] = JxStoreStatus2JdStatus(jxutils.MergeStoreStatus(store.Status, store.JdStoreStatus))
globals.SugarLogger.Debug(utils.Format4Output(params, false))
if globals.EnableJdStoreWrite {
@@ -328,3 +323,33 @@ func (c *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, storeID int,
}
return err
}
func fillOpTimeParams(params map[string]interface{}, opTimeList []int16) map[string]interface{} {
if params == nil {
params = make(map[string]interface{})
}
index := 1
opTimeListLen := len(opTimeList)
if opTimeListLen > 4 {
opTimeListLen = 4
}
opTimeListLen = opTimeListLen / 2 * 2
for k := 0; k < len(opTimeList); k += 2 {
if opTimeList[k] != 0 {
params[fmt.Sprintf("serviceTimeStart%d", index)] = JxOperationTime2JdOperationTime(int16(opTimeList[k]))
params[fmt.Sprintf("serviceTimeEnd%d", index)] = JxOperationTime2JdOperationTime(int16(opTimeList[k+1]))
} else {
break
}
index++
}
return params
}
func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, storeID int, vendorStoreID string, opTimeList []int16) (err error) {
params := fillOpTimeParams(nil, opTimeList)
if globals.EnableJdStoreWrite {
err = api.JdAPI.UpdateStoreInfo4Open(vendorStoreID, ctx.GetUserName(), params)
}
return err
}

View File

@@ -124,10 +124,15 @@ func openTimeMtwm2JX(vendorOpenTime string) [][2]int16 {
return jxOpenTimers
}
func openTimeJX2Mtwm(times [][2]int16) string {
strPairs := make([]string, len(times))
for k, v := range times {
strPairs[k] = jxutils.JxOperationTime2StrTime(v[0]) + "-" + jxutils.JxOperationTime2StrTime(v[1])
func openTimeJX2Mtwm(times []int16) string {
timesLen := len(times) / 2 * 2
var strPairs []string
for i := 0; i < timesLen; i += 2 {
if times[i] != 0 {
strPairs = append(strPairs, jxutils.JxOperationTime2StrTime(times[i])+"-"+jxutils.JxOperationTime2StrTime(times[i+1]))
} else {
break
}
}
return strings.Join(strPairs, ",")
}

View File

@@ -5,6 +5,7 @@ import (
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/baseapi/utils/errlist"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
@@ -103,10 +104,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
if err != nil {
return err
}
openTime := [][2]int16{[2]int16{storeDetail.OpenTime1, storeDetail.CloseTime1}}
if storeDetail.OpenTime2 > 0 {
openTime = append(openTime, [2]int16{storeDetail.OpenTime2, storeDetail.CloseTime2})
}
errList := errlist.New()
// remoteStoreInfo, err := api.MtwmAPI.PoiGet(storeDetail.VendorStoreID)
// if err != nil {
// return err
@@ -129,12 +127,9 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
// if globals.EnableMtwmStoreWrite {
// err = api.MtwmAPI.PoiSave(storeDetail.VendorStoreID, params)
// }
if err = p.UpdateStoreStatus(jxcontext.AdminCtx, storeID, storeDetail.VendorStoreID, jxutils.MergeStoreStatus(storeDetail.Status, storeDetail.VendorStatus)); err == nil {
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.PoiShipTimeUpdate(storeDetail.VendorStoreID, openTimeJX2Mtwm(openTime))
}
}
return err
errList.AddErr(p.UpdateStoreStatus(jxcontext.AdminCtx, storeID, storeDetail.VendorStoreID, jxutils.MergeStoreStatus(storeDetail.Status, storeDetail.VendorStatus)))
errList.AddErr(p.UpdateStoreOpTime(jxcontext.AdminCtx, storeID, storeDetail.VendorStoreID, []int16{storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2}))
return errList.GetErrListAsOne()
}
func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error) {
@@ -195,3 +190,11 @@ func (c *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, storeID int,
}
return err
}
func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, storeID int, vendorStoreID string, opTimeList []int16) (err error) {
shippingTime := openTimeJX2Mtwm(opTimeList)
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.PoiShipTimeUpdate(vendorStoreID, shippingTime)
}
return err
}