From 4b2af44a882aa43688cc3ff42c4be3dbfe9674a3 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Thu, 20 May 2021 10:04:42 +0800 Subject: [PATCH] aa --- business/jxstore/cms/store.go | 85 ++++++++++++++++------------------- business/model/net_spider.go | 46 +++++++++++++++++++ business/model/sku.go | 26 ----------- controllers/net_spider.go | 9 ++-- globals/beegodb/beegodb.go | 3 +- 5 files changed, 91 insertions(+), 78 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 4219be734..42bd34bc1 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -4362,6 +4362,24 @@ func RefreshPageStore() { )t1 ` dao.ExecuteSQL(db, sql4) + //门店表合并 + sql5 := ` TRUNCATE page_store` + dao.ExecuteSQL(db, sql5) + sql6 := ` + INSERT INTO page_store (created_at,updated_at,last_operator,vendor_id,vendor_store_id,vendor_store_name,address,city_name,org_code,lng,lat) + SELECT NOW(),NOW(),'jxadmin',t1.* FROM ( + ( + SELECT 0, a.wmpoiid, a.name, a.address, a.bak_info, a.orgcode, a.lng, a.lat + FROM jingdong_showd a + ) + UNION ALL + ( + SELECT 1, a.wmpoiid, a.name, a.address, a.city_name, '', a.lng, a.lat + FROM meituan_showd a + ) + )t1 + ` + dao.ExecuteSQL(db, sql6) } func QueryPageStores2(db *dao.DaoDB, pageSize, offset int, keyword string, vendorStoreID string, vendorID, cityCode, districtCode int, tel string, @@ -4510,78 +4528,51 @@ type QueryPageSkusResult struct { CityCode int `json:"cityCode"` } -func QueryPageSkus(ctx *jxcontext.Context, vendorID int, vendorStoreIDs []string, keyword string, cityCode int, lng, lat float64, radius, sortType, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { +func QueryPageSkus(ctx *jxcontext.Context, vendorIDs []int, vendorStoreIDs []string, keyword string, cityCode int, lng, lat float64, radius, sortType, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { var ( db = dao.GetDB() results []*QueryPageSkusResult ) db.Db = orm.NewOrmUsingDB("c4beta") sqlParams := []interface{}{} - sqlJD := ` - SELECT 0 vendor_id, 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, '' parameter, b.bak_info city_name, getDistance(?, ?,b.lng, b.lat) distance - FROM jingdong_foodlist a - LEFT JOIN jingdong_showd b ON a.wmpoiid = b.wmpoiid - ` - sqlEbai := ` - - ` - sqlMT := ` - SELECT 1 vendor_id, '' org_code, a.wmpoiid store_id, b.name store_name, '' sku_id, a.name sku_name, a.month_saled month_sales, - a.min_price basic_price, b.address, a.unit parameter, b.city_name, getDistance(?, ?, b.lng, b.lat) distance - FROM meituan_foodlist a - LEFT JOIN meituan_showd b ON a.wmpoiid = b.wmpoiid - ` sql := ` - SELECT SQL_CALC_FOUND_ROWS - t1.*, t2.code city_code - FROM ( - ` - if vendorID == -1 { - sql += sqlJD + ` UNION` - sql += sqlMT - //sql += sqlEbai + ` UNION` - sqlParams = append(sqlParams, lng, lat, lng, lat) - } else { - switch vendorID { - case model.VendorIDJD: - sql += sqlJD - case model.VendorIDMTWM: - sql += sqlMT - case model.VendorIDEBAI: - sql += sqlEbai - } - sqlParams = append(sqlParams, lng, lat) - } - sql += ` - )t1 - LEFT JOIN place t2 ON t2.name = t1.city_name - WHERE 1 = 1 + SELECT SQL_CALC_FOUND_ROWS + a.vendor_id, b.org_code, a.vendor_store_id store_id, b.vendor_store_name store_name, a.vendor_sku_id sku_id, a.vendor_sku_name sku_name, a.month_saled month_sales, + a.sale_price basic_price, b.address, a.unit parameter, b.city_name, + c.code city_code + FROM page_sku a + LEFT JOIN page_store b ON a.vendor_id = b.vendor_id AND a.vendor_store_id = b.vendor_store_id + LEFT JOIN place c ON c.name = b.city_name + WHERE 1 = 1 ` if keyword != "" { keywordLike := "%" + keyword + "%" - sql += " AND t1.sku_name LIKE ?" + sql += " AND t1.vendor_sku_name LIKE ?" sqlParams = append(sqlParams, keywordLike) } if len(vendorStoreIDs) > 0 { - sql += " AND t1.store_id IN (" + dao.GenQuestionMarks(len(vendorStoreIDs)) + ")" + sql += " AND a.vendor_store_id IN (" + dao.GenQuestionMarks(len(vendorStoreIDs)) + ")" sqlParams = append(sqlParams, vendorStoreIDs) } + if len(vendorIDs) > 0 { + sql += " AND a.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDs)) + ")" + sqlParams = append(sqlParams, vendorIDs) + } if cityCode > 0 { - sql += " AND t2.code = ?" + sql += " AND c.code = ?" sqlParams = append(sqlParams, cityCode) } if radius > 0 { - sql += " AND ROUND(t1.distance * 1000) < ?" - sqlParams = append(sqlParams, radius) + sql += " AND ROUND(getDistance(?, ?, b.lng, b.lat) * 1000) < ?" + sqlParams = append(sqlParams, lng, lat, radius) } if sortType != 0 { switch math.Abs(float64(sortType)) { case 1: if sortType < 0 { - sql += " ORDER BY t1.month_sales DESC" + sql += " ORDER BY a.month_saled DESC" } else { - sql += " ORDER BY t1.month_sales" + sql += " ORDER BY a.month_saled" } } } diff --git a/business/model/net_spider.go b/business/model/net_spider.go index 90612f38e..2dac5d527 100644 --- a/business/model/net_spider.go +++ b/business/model/net_spider.go @@ -33,3 +33,49 @@ func (*PageShop) TableUnique() [][]string { []string{"VendorStoreID", "VendorID"}, } } + +//各平台商品数据 +type PageSku struct { + ModelIDCUL + + VendorID int `orm:"column(vendor_id)" json:"vendorID"` + VendorStoreID string `orm:"column(vendor_store_id)" json:"vendorStoreID"` + VendorSkuID string `orm:"column(vendor_sku_id)" json:"vendorSkuID"` + VendorSkuName string `json:"vendorSkuName"` + MonthSaled int `json:"monthSaled"` + ActPrice int `json:"actPrice"` + SalePrice int `json:"salePrice"` + Unit string `json:"unit"` +} + +func (*PageSku) TableUnique() [][]string { + return [][]string{ + []string{"VendorID", "VendorStoreID", "VendorSkuID"}, + } +} + +func (*PageSku) TableIndex() [][]string { + return [][]string{ + []string{"MonthSaled", "SalePrice"}, + } +} + +//各平台门店数据 +type PageStore struct { + ModelIDCUL + + VendorID int `orm:"column(vendor_id)" json:"vendorID"` + VendorStoreID string `orm:"column(vendor_store_id)" json:"vendorStoreID"` + VendorStoreName string `json:"vendorStoreName"` + Address string `json:"address"` + CityName string `json:"cityName"` + OrgCode string `json:"orgCode` + Lng string `json:"lng"` + Lat string `json:"lat"` +} + +func (*PageStore) TableIndex() [][]string { + return [][]string{ + []string{"VendorID", "VendorStoreID"}, + } +} diff --git a/business/model/sku.go b/business/model/sku.go index 74763afe9..4bec88c92 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -350,29 +350,3 @@ func (*VendorCategoryMap) TableUnique() [][]string { []string{"VendorID", "VendorOrgCode", "CategoryID", "DeletedAt"}, } } - -//各平台商品数据 -type PageSku struct { - ModelIDCUL - - VendorID int `orm:"column(vendor_id)" json:"vendorID"` - VendorStoreID string `orm:"column(vendor_store_id)" json:"vendorStoreID"` - VendorSkuID string `orm:"column(vendor_sku_id)" json:"vendorSkuID"` - VendorSkuName string `json:"vendorSkuName"` - MonthSaled int `json:"monthSaled"` - ActPrice int `json:"actPrice"` - SalePrice int `json:"salePrice"` - Unit string `json:"unit"` -} - -func (*PageSku) TableUnique() [][]string { - return [][]string{ - []string{"VendorID", "VendorStoreID", "VendorSkuID"}, - } -} - -func (*PageSku) TableIndex() [][]string { - return [][]string{ - []string{"MonthSaled", "SalePrice"}, - } -} diff --git a/controllers/net_spider.go b/controllers/net_spider.go index df43bab5c..54ae0c490 100644 --- a/controllers/net_spider.go +++ b/controllers/net_spider.go @@ -153,8 +153,8 @@ func (c *NetSpiderController) RefreshPageShops() { // @Title 参考信息,商品搜索 // @Description 参考信息,商品搜索 // @Param token header string true "认证token" -// @Param vendorID query int false "平台ID" -// @Param vendorStoreIDs query string false "门店ID" +// @Param vendorIDs query string false "平台IDs" +// @Param vendorStoreIDs query string false "门店IDs" // @Param keyword query string false "关键字" // @Param cityCode query int false "城市" // @Param lng query string false "关注点经度" @@ -169,8 +169,9 @@ func (c *NetSpiderController) RefreshPageShops() { func (c *NetSpiderController) QueryPageSkus() { c.callQueryPageSkus(func(params *tNetspiderQueryPageSkusParams) (retVal interface{}, errCode string, err error) { var vendorStoreIDs []string - jxutils.Strings2Objs(params.VendorStoreIDs, &vendorStoreIDs) - retVal, err = cms.QueryPageSkus(params.Ctx, params.VendorID, vendorStoreIDs, params.Keyword, params.CityCode, utils.Str2Float64WithDefault(params.Lng, 0), utils.Str2Float64WithDefault(params.Lat, 0), params.Radius, params.SortType, params.Offset, params.PageSize) + var vendorIDs []int + jxutils.Strings2Objs(params.VendorStoreIDs, &vendorStoreIDs, params.VendorIDs, &vendorIDs) + retVal, err = cms.QueryPageSkus(params.Ctx, vendorIDs, vendorStoreIDs, params.Keyword, params.CityCode, utils.Str2Float64WithDefault(params.Lng, 0), utils.Str2Float64WithDefault(params.Lat, 0), params.Radius, params.SortType, params.Offset, params.PageSize) return retVal, "", err }) } diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index 2f1521d70..04701120d 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -36,7 +36,6 @@ func Init() { orm.RegisterModel(&model.SkuVendorCategory{}, &model.StoreSkuCategoryMap{}, &model.SkuName{}, &model.Sku{}, &model.SkuNamePlaceBind{}, &model.StoreSkuBind{}) orm.RegisterModel(&model.SkuVendorCategoryMap{}) //商品映射平台类目 orm.RegisterModel(&model.VendorCategoryMap{}) //平台分类 - orm.RegisterModel(&model.PageSku{}) orm.RegisterModel(&model.StoreSkuBindHistory{}) orm.RegisterModel(&model.StoreSkuAudit{}) orm.RegisterModel(&model.SkuCategory{}) @@ -50,6 +49,8 @@ func Init() { orm.RegisterModel(&model.AuthBind{}, &model.User{}) orm.RegisterModel(&model.PageShop{}) + orm.RegisterModel(&model.PageSku{}) + orm.RegisterModel(&model.PageStore{}) orm.RegisterModel(&model.VendorStoreSnapshot{}) orm.RegisterModel(&model.PriceReferSnapshot{}) orm.RegisterModel(&model.StoreManageState{})