From 966646f95334e89708c4c52f2b79c938140f76fc Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 21 Aug 2019 21:28:23 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=8E=BB=E6=8E=89GetStores=E7=9A=84?= =?UTF-8?q?=E5=9D=90=E6=A0=87=E8=BD=AC=EF=BC=88=E8=BD=AC=E6=8D=A2=E8=87=B3?= =?UTF-8?q?=E7=99=BE=E5=BA=A6=E5=9D=90=E6=A0=87=E8=A6=81=E7=99=BE=E5=BA=A6?= =?UTF-8?q?API=EF=BC=8C=E9=AB=98=E5=BE=B7=E4=B8=8D=E8=A1=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 5c53f8d26..86c9aea67 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -404,9 +404,29 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa retVal.Stores = retVal.Stores[offset : offset+pageSize] } if needConver2Baidu { - for _, v := range storeList { - v.FloatLng, v.FloatLat, _ = api.AutonaviAPI.CoordinateConvert(v.FloatLng, v.FloatLat, autonavi.CoordSysBaidu) - } + task := tasksch.NewParallelTask("坐标转换", tasksch.NewParallelConfig().SetParallelCount(4).SetBatchSize(autonavi.MaxConvertCount), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + var coords []*autonavi.Coordinate + for _, v := range batchItemList { + store := v.(*StoreExt) + coords = append(coords, &autonavi.Coordinate{ + Lng: store.FloatLng, + Lat: store.FloatLat, + }) + } + coords, err = api.AutonaviAPI.BatchCoordinateConvert(coords, autonavi.CoordSysBaidu) + if err == nil { + for k, v := range batchItemList { + store := v.(*StoreExt) + coord := coords[k] + store.FloatLng = coord.Lng + store.FloatLat = coord.Lat + } + } + return retVal, err + }, retVal.Stores) + task.Run() + task.GetResult(0) } // if mapLimit { // retVal.TotalCount = len(retVal.Stores)