From 435b4397d62ca46d2c8024569a9ea1cc333a9c19 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 17:37:57 +0800 Subject: [PATCH 1/9] =?UTF-8?q?-=20=E9=97=A8=E5=BA=97=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E6=8F=90=E7=A4=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 4 ++-- business/model/store.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index c01cb6aca..cc2eadf7f 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1716,8 +1716,8 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p curSnapshot := curSnapshotMap[v.GenMapKey()] // storeDetail := storeDetailMap[v.StoreID] curStoreStatus := "下线" - if curSnapshot != nil && curSnapshot.Status == model.StoreStatusOpened { - curStoreStatus = "上线" + if curSnapshot != nil { + curStoreStatus = model.StoreStatusName[curSnapshot.Status] } txtAlarm = append(txtAlarm, fmt.Sprintf("您的门店:%s,平台:%s,%s了", v.StoreName, model.VendorChineseNames[v.VendorID], curStoreStatus)) } diff --git a/business/model/store.go b/business/model/store.go index cb7fb5bf6..da19eabd8 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -49,7 +49,7 @@ const ( var ( StoreStatusName = map[int]string{ StoreStatusDisabled: "禁用", - StoreStatusClosed: "长期休息", + StoreStatusClosed: "休息", StoreStatusHaveRest: "临时休息", StoreStatusOpened: "营业中", } From 5baecb3b37d8d84c8de7b20079a32eb87e268abe Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 17:44:09 +0800 Subject: [PATCH 2/9] =?UTF-8?q?-=20dao.QueryPageStores=20keyword=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2licence=5Fcode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/page_store.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/model/dao/page_store.go b/business/model/dao/page_store.go index f7660b502..e63108c8c 100644 --- a/business/model/dao/page_store.go +++ b/business/model/dao/page_store.go @@ -61,8 +61,8 @@ func QueryPageStores(db *DaoDB, pageSize, offset int, keyword string, vendorStor } if keyword != "" { keywordLike := "%" + keyword + "%" - sql += " AND (t1.name LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.org_code LIKE ? OR t1.address LIKE ? OR t2.name LIKE ? OR t3.name LIKE ?" - sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) + sql += " AND (t1.name LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.org_code LIKE ? OR t1.address LIKE ? OR t2.name LIKE ? OR t3.name LIKE ? OR t1.licence_code LIKE ?" + sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) sql += ")" } sql += ` From 33509235e704998b9b931f570ae6d8b1c27dab5f Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 17:48:10 +0800 Subject: [PATCH 3/9] - fk --- routers/commentsRouter_controllers.go | 9 --------- 1 file changed, 9 deletions(-) diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 2669a87c9..4208035e1 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -891,15 +891,6 @@ func init() { Filters: nil, Params: nil}) - beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], - beego.ControllerComments{ - Method: "GetStoreOrderCountInfo2", - Router: `/GetStoreOrderCountInfo2`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], beego.ControllerComments{ Method: "GetStoresOrderSaleInfo", From 88f55a1234441c0ecd4081079770f7c698fbb1a2 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 17:58:09 +0800 Subject: [PATCH 4/9] - checkConfig --- business/jxstore/cms/cms.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index f42b79cb2..2e8ad0f10 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -204,7 +204,7 @@ func SendMsg2Somebody(ctx *jxcontext.Context, mobileNum, verifyCode, msgType, ms return err } -func checkConfig(configType, key, value string) (err error) { +func checkConfig(opFlag int, configType, key, value string) (err error) { switch configType { case model.ConfigTypePricePack: if value != "" { @@ -221,7 +221,9 @@ func checkConfig(configType, key, value string) (err error) { } case model.ConfigTypeRole: case model.ConfigTypeSys: - err = fmt.Errorf("系统参数只支持修改,不支持自由添加") + if opFlag&(model.SyncFlagNewMask|model.SyncFlagDeletedMask) != 0 { + err = fmt.Errorf("系统参数只支持修改,不支持自由添加") + } default: err = fmt.Errorf("当前只支持配置:%s, 传入的配置类型:%s", utils.Format4Output(model.ConfigTypeName, true), configType) } @@ -229,7 +231,7 @@ func checkConfig(configType, key, value string) (err error) { } func AddConfig(ctx *jxcontext.Context, key, configType, value string) (err error) { - if err = checkConfig(configType, key, value); err != nil { + if err = checkConfig(model.SyncFlagNewMask, configType, key, value); err != nil { return err } @@ -244,7 +246,7 @@ func AddConfig(ctx *jxcontext.Context, key, configType, value string) (err error } func DeleteConfig(ctx *jxcontext.Context, key, configType string) (err error) { - if err = checkConfig(configType, key, ""); err != nil { + if err = checkConfig(model.SyncFlagDeletedMask, configType, key, ""); err != nil { return err } db := dao.GetDB() @@ -299,7 +301,7 @@ func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (err er if key == "" { return fmt.Errorf("修改配置必须给定key") } - if err = checkConfig(configType, key, value); err != nil { + if err = checkConfig(model.SyncFlagModifiedMask, configType, key, value); err != nil { return err } From 11e30ffb241ba568583babebf1148f3b36b51595 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 18:13:08 +0800 Subject: [PATCH 5/9] =?UTF-8?q?-=20=E8=87=AA=E8=AE=A2=E5=8D=95=E5=8D=95?= =?UTF-8?q?=E4=B8=8E=E5=81=87=E8=AE=A2=E5=8D=95=E7=9A=84=E8=B0=83=E5=BA=A6?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 2 +- .../jxcallback/scheduler/defsch/defsch.go | 36 +++++++++++-------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 877ad001e..cee6d2de1 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -192,7 +192,7 @@ func setFakeOrderFlag(db *dao.DaoDB, order *model.GoodsOrder) { isMatch := false mobileList := strings.Split(configList[0].Value, ",") for _, v := range mobileList { - if v == realMobile { + if jxutils.TrimDecorationChar(v) == realMobile { isMatch = true break } diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 5d48196a9..16ff34b09 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -223,13 +223,13 @@ func init() { TimeoutGap: 0, }, TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) { - if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore { // 自配送商家使用 + if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore && savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake { // 自配送商家使用 return sch.createWaybillOn3rdProviders(savedOrderInfo, 0, nil) } return nil }, ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool { - return savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore + return savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore && savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake }, }, }, @@ -245,7 +245,8 @@ func init() { if savedOrderInfo.isDeliveryCompetition && savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore && savedOrderInfo.order.VendorID == bill.WaybillVendorID && - savedOrderInfo.order.VendorID != model.VendorIDEBAI { // 非自配送商家使用 + savedOrderInfo.order.VendorID != model.VendorIDEBAI && + savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake { // 非自配送商家使用 return sch.createWaybillOn3rdProviders(savedOrderInfo, 0, nil) } return nil @@ -254,7 +255,8 @@ func init() { return savedOrderInfo.isDeliveryCompetition && savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore && savedOrderInfo.order.VendorID == bill.WaybillVendorID && - savedOrderInfo.order.VendorID != model.VendorIDEBAI + savedOrderInfo.order.VendorID != model.VendorIDEBAI && + savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake }, }, //* @@ -269,7 +271,8 @@ func init() { savedOrderInfo.isDeliveryCompetition && savedOrderInfo.order.VendorID == bill.WaybillVendorID && savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore && - order.VendorID == model.VendorIDEBAI { // 非自配送商家使用 + order.VendorID == model.VendorIDEBAI && + savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake { // 非自配送商家使用 return sch.createWaybillOn3rdProviders(savedOrderInfo, ebaiCancelWaybillMaxFee, nil) } return nil @@ -280,7 +283,8 @@ func init() { savedOrderInfo.isDeliveryCompetition && savedOrderInfo.order.VendorID == bill.WaybillVendorID && savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore && - order.VendorID == model.VendorIDEBAI + order.VendorID == model.VendorIDEBAI && + savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake }, }, //*/ @@ -1101,11 +1105,13 @@ func OnDefSchConfChanged(key, value string) { } func (s *DefScheduler) notifyNewOrder(order *model.GoodsOrder) { - utils.CallFuncAsync(func() { - netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order) - weixinmsg.NotifyNewOrder(order) - smsmsg.NotifyNewOrder(order) - }) + if order.Flag&model.OrderFlagMaskFake == 0 { + utils.CallFuncAsync(func() { + netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order) + weixinmsg.NotifyNewOrder(order) + smsmsg.NotifyNewOrder(order) + }) + } } func (s *DefScheduler) notifyUserApplyCancel(order *model.GoodsOrder, cancelReason string) { @@ -1115,7 +1121,9 @@ func (s *DefScheduler) notifyUserApplyCancel(order *model.GoodsOrder, cancelReas } func (s *DefScheduler) notify3rdPartyWaybill(order *model.GoodsOrder, bill *model.Waybill, isBillAlreadyCandidate bool) { - utils.CallFuncAsync(func() { - weixinmsg.NotifyWaybillStatus(bill, order, isBillAlreadyCandidate) - }) + if order.Flag&model.OrderFlagMaskFake == 0 { + utils.CallFuncAsync(func() { + weixinmsg.NotifyWaybillStatus(bill, order, isBillAlreadyCandidate) + }) + } } From 8e49f412273a89457dbb96554635e7adfbefd683 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 21:21:13 +0800 Subject: [PATCH 6/9] =?UTF-8?q?-=20GetAndStoreCitiesShops=E4=BC=9A?= =?UTF-8?q?=E4=BB=8E=E4=B8=8A=E4=B8=80=E6=AC=A1=E7=9A=84=E5=9C=B0=E6=96=B9?= =?UTF-8?q?=E7=BB=A7=E7=BB=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/netspider/netspider.go | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/business/netspider/netspider.go b/business/netspider/netspider.go index 860239f88..3cf4d7e57 100644 --- a/business/netspider/netspider.go +++ b/business/netspider/netspider.go @@ -54,7 +54,9 @@ func getStorePageInfo(ctx *jxcontext.Context, handler partner.IPurchasePlatformN if !(storePageInfo.Lng != 0 && storePageInfo.Lat != 0) { storePageInfo.Lng, storePageInfo.Lat, storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateFromAddress(storePageInfo.Address, utils.Int2Str(cityCode)) if storePageInfo.DistrictCode == 0 && cityCode != 0 { - storePageInfo.Lng, storePageInfo.Lat, storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateFromAddress(storePageInfo.Address, "") + if place, err := dao.GetPlaceByCode(dao.GetDB(), cityCode); err == nil { + storePageInfo.Lng, storePageInfo.Lat, storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateFromAddress(storePageInfo.Address, utils.Int2Str(place.ParentCode)) + } } } else if storePageInfo.DistrictCode == 0 { storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateDistrictCode(storePageInfo.Lng, storePageInfo.Lat) @@ -140,6 +142,31 @@ func GetAndStoreCitiesShops(ctx *jxcontext.Context, vendorIDs []int, cityCodeLis rand.Shuffle(len(cityCodeList), func(i, j int) { cityCodeList[i], cityCodeList[j] = cityCodeList[j], cityCodeList[i] }) + } else { + sql := ` + SELECT * + FROM page_shop t1 + ORDER BY t1.id DESC + LIMIT 1` + var lastShop *model.PageShop + if dao.GetRow(db, &lastShop, sql) != nil { + index := -1 + for k, v := range cityCodeList { + if v == lastShop.CityCode { + index = k + 1 + if index >= len(cityCodeList) { + index = -1 + } + break + } + } + if index > 0 { + var cityCodeList2 []int + cityCodeList2 = append(cityCodeList2, cityCodeList[index:]...) + cityCodeList2 = append(cityCodeList2, cityCodeList[:index]...) + cityCodeList = cityCodeList2 + } + } } if len(vendorIDs) == 0 { vendorIDs = []int{model.VendorIDJD, model.VendorIDEBAI} From 9345f127382f04d08a7f2a7ede8b87f1cd7a3b90 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 21:44:06 +0800 Subject: [PATCH 7/9] =?UTF-8?q?-=20beta=E5=90=AF=E5=8A=A8=E6=97=B6?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=BF=90=E8=A1=8Cnetspider.GetAndStoreCities?= =?UTF-8?q?Shops?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 6 ++++++ business/netspider/netspider.go | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 44dbd2029..f1e4c563e 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -15,8 +15,10 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/netspider" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" + "github.com/astaxie/beego" ) const ( @@ -106,6 +108,10 @@ func Init() { ScheduleTimerFunc("AutoSaleStoreSku", func() { cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false) }, autoSaleStoreSkuTimeList) + + if beego.BConfig.RunMode == "beta" { + netspider.GetAndStoreCitiesShops(jxcontext.AdminCtx, nil, nil, 0, 0, false, true) + } } func doDailyWork() { diff --git a/business/netspider/netspider.go b/business/netspider/netspider.go index 3cf4d7e57..5a661aa1c 100644 --- a/business/netspider/netspider.go +++ b/business/netspider/netspider.go @@ -192,9 +192,11 @@ func GetAndStoreCitiesShops(ctx *jxcontext.Context, vendorIDs []int, cityCodeLis } }() for _, v := range shopList { - tmpShop := *v - dao.DeleteEntity(db, &tmpShop, model.FieldVendorStoreID, model.FieldVendorID) - if err = dao.CreateEntity(db, v); err != nil { + if v.DistrictCode > 0 { + tmpShop := *v + dao.DeleteEntity(db, &tmpShop, model.FieldVendorStoreID, model.FieldVendorID) + } + if err = dao.CreateEntity(db, v); err != nil && !dao.IsDuplicateError(err) { break } } From 5ffeb4142c5b9f10f6109d49011fc50e0251aa04 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 21:55:36 +0800 Subject: [PATCH 8/9] - fk --- business/netspider/netspider.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/netspider/netspider.go b/business/netspider/netspider.go index 5a661aa1c..9994ca6aa 100644 --- a/business/netspider/netspider.go +++ b/business/netspider/netspider.go @@ -149,7 +149,7 @@ func GetAndStoreCitiesShops(ctx *jxcontext.Context, vendorIDs []int, cityCodeLis ORDER BY t1.id DESC LIMIT 1` var lastShop *model.PageShop - if dao.GetRow(db, &lastShop, sql) != nil { + if dao.GetRow(db, &lastShop, sql) == nil { index := -1 for k, v := range cityCodeList { if v == lastShop.CityCode { From 84b4d400e428b82cc1d377d4d49ec31c8dec7ef4 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 22:59:19 +0800 Subject: [PATCH 9/9] =?UTF-8?q?-=20BatchUpdateEntityByKV=E4=B8=AD=E4=B8=8D?= =?UTF-8?q?=E7=94=A8=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/dao_bz.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/business/model/dao/dao_bz.go b/business/model/dao/dao_bz.go index a653b54ee..70838b7c5 100644 --- a/business/model/dao/dao_bz.go +++ b/business/model/dao/dao_bz.go @@ -63,15 +63,16 @@ func UpdateEntityByKV(db *DaoDB, item interface{}, kvs map[string]interface{}, c func BatchUpdateEntityByKV(db *DaoDB, items []*KVUpdateItem) (num int64, err error) { if len(items) > 0 { - Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - Rollback(db) - if r != nil { - panic(r) - } - } - }() + // 不用事务应该是OK的吧,用事务经常会导致死锁(不同平台在同步同一条数据) + // Begin(db) + // defer func() { + // if r := recover(); r != nil || err != nil { + // Rollback(db) + // if r != nil { + // panic(r) + // } + // } + // }() for _, v := range items { num2, err2 := UpdateEntityByKV(db, v.Item, v.KVs, nil) if err = err2; err != nil { @@ -79,7 +80,7 @@ func BatchUpdateEntityByKV(db *DaoDB, items []*KVUpdateItem) (num int64, err err } num += num2 } - Commit(db) + // Commit(db) } return num, nil }