From b00882859f786d089eaa2424ace49c1a013a693c Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Wed, 12 May 2021 16:05:16 +0800 Subject: [PATCH] aa --- business/jxstore/cms/store.go | 113 +++++++++++++++++++++++++- controllers/net_spider.go | 20 +++++ routers/commentsRouter_controllers.go | 9 ++ 3 files changed, 138 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index a60382750..8ffb9b938 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -4266,10 +4266,6 @@ func QueryPageStores2(db *dao.DaoDB, pageSize, offset int, keyword string, vendo sql += " AND t1.vendor_store_id = ?" sqlParams = append(sqlParams, vendorStoreID) } - if vendorID != -1 { - sql += " AND t1.vendor_id = ?" - sqlParams = append(sqlParams, vendorID) - } if cityCode != 0 { sql += " AND t2.code = ?" sqlParams = append(sqlParams, cityCode) @@ -4349,3 +4345,112 @@ func QueryPageStores2(db *dao.DaoDB, pageSize, offset int, keyword string, vendo } return pagedInfo, err } + +type QueryPageSkusResult struct { + OrgCode string `json:"orgCode"` //商家ID + StoreId string `orm:"column(store_id)" json:"storeId"` //门店ID + StoreName string `json:"storeName"` //门店名 + SkuId string `orm:"column(sku_id)" json:"skuId"` //skuID + SkuName string `json:"skuName"` //商品名 + Parameter string `json:"parameter"` //规格 + MonthSales string `json:"monthSales"` //月销量 + RealTimePrice string `json:"realTimePrice"` //促销价 + BasicPrice string `json:"basicPrice"` // 原价 + + Address string `json:"address"` + CityName string `json:"cityName"` +} + +func QueryPageSkus(ctx *jxcontext.Context, vendorID int, keyword string, lng, lat float64, radius, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { + var ( + db = dao.GetDB() + results []*QueryPageSkusResult + ) + db.Db = orm.NewOrmUsingDB("c4beta") + sqlJD := ` + SELECT b.orgcode org_code, a.wmpoiid store_id, b.name store_name, a.Base sku_id, a.name sku_name, a.month_saled month_sales, a.basic_price, b.address, b.bak_info city_name + FROM jingdong_foodlist a + LEFT JOIN jingdong_showd b ON a.wmpoiid = b.wmpoiid + ` + sqlEbai := ` + + ` + sqlMT := ` + SELECT a.wmpoiid store_id, b.name store_name, a.Base sku_id, a.name sku_name, a.month_saled month_sales, a.basic_price, b.address + FROM meituan_foodlist a + LEFT JOIN meituan_showd b ON a.wmpoiid = b.wmpoiid + ` + sql := ` + SELECT SQL_CALC_FOUND_ROWS + t1.* + FROM ( + ` + if vendorID == -1 { + sql += sqlJD + ` UNION` + sql += sqlMT + //sql += sqlEbai + ` UNION` + } else { + switch vendorID { + case model.VendorIDJD: + sql += sqlJD + case model.VendorIDMTWM: + sql += sqlMT + case model.VendorIDEBAI: + sql += sqlEbai + } + } + sql += ` + )t1 + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if keyword != "" { + keywordLike := "%" + keyword + "%" + sql += " AND t1.sku_name LIKE ?" + sqlParams = append(sqlParams, keywordLike) + } + sql += ` + LIMIT ? OFFSET ? + ` + pageSize = jxutils.FormalizePageSize(pageSize) + offset = jxutils.FormalizePageOffset(offset) + sqlParams = append(sqlParams, pageSize, offset) + txDB, _ := dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db, txDB) + panic(r) + } + }() + if err = dao.GetRowsTx(txDB, &results, sql, sqlParams...); err == nil { + pagedInfo = &model.PagedInfo{ + TotalCount: dao.GetLastTotalRowCount2(db, txDB), + //Data: shopList, + } + dao.Commit(db, txDB) + var newShopList []*QueryPageSkusResult + task := tasksch.NewParallelTask("", tasksch.NewParallelConfig().SetIsContinueWhenError(true), jxcontext.AdminCtx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + v := batchItemList[0].(*QueryPageSkusResult) + if radius > 0 { + result, _ := api.AutonaviAPI.GetCoordinateFromAddressAll(v.Address, v.CityName) + distance := jxutils.EarthDistance(lng, lat, result.Lng, result.Lat) + if utils.Float64TwoInt(math.Round(distance*1000)) < radius { + retVal = []*QueryPageSkusResult{v} + } + } else { + retVal = []*QueryPageSkusResult{v} + } + return retVal, err + }, results) + tasksch.HandleTask(task, nil, true).Run() + result, _ := task.GetResult(0) + for _, v := range result { + newShopList = append(newShopList, v.(*QueryPageSkusResult)) + } + pagedInfo.Data = newShopList + } else { + dao.Rollback(db, txDB) + } + return pagedInfo, err +} diff --git a/controllers/net_spider.go b/controllers/net_spider.go index c8a80f7e3..d1a366564 100644 --- a/controllers/net_spider.go +++ b/controllers/net_spider.go @@ -149,3 +149,23 @@ func (c *NetSpiderController) RefreshPageShops() { return retVal, "", err }) } + +// @Title 参考信息,商品搜索 +// @Description 参考信息,商品搜索 +// @Param token header string true "认证token" +// @Param vendorID query int false "平台ID" +// @Param keyword query string false "关键字" +// @Param lng query string false "关注点经度" +// @Param lat query string false "关注点纬度" +// @Param radius query int false "半径(米)" +// @Param offset query int false "列表起始序号(以0开始,缺省为0)" +// @Param pageSize query int false "列表页大小(缺省为50,-1表示全部)" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /QueryPageSkus [get] +func (c *NetSpiderController) QueryPageSkus() { + c.callQueryPageSkus(func(params *tNetspiderQueryPageSkusParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.QueryPageSkus(params.Ctx, params.VendorID, params.Keyword, utils.Str2Float64(params.Lng), utils.Str2Float64(params.Lat), params.Radius, params.Offset, params.PageSize) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index b822457a4..16a14c22a 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -981,6 +981,15 @@ func init() { Filters: nil, Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:NetSpiderController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:NetSpiderController"], + web.ControllerComments{ + Method: "QueryPageSkus", + Router: `/QueryPageSkus`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], web.ControllerComments{ Method: "AcceptOrRefuseFailedGetOrder",