This commit is contained in:
邹宗楠
2024-10-10 14:09:33 +08:00
parent 12918649cb
commit f6c53db233
5 changed files with 67 additions and 74 deletions

View File

@@ -6002,7 +6002,7 @@ func FilterByB2B(locationList []*common.Store4User) (retVal []*common.Store4User
} }
//首页信息展示 //首页信息展示
func GetHomePageByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDistance bool) (interface{}, string, error) { func GetHomePageByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDistance bool, brandId int) (interface{}, string, error) {
//获取门店信息 //获取门店信息
var ( var (
storeID []int storeID []int
@@ -6014,7 +6014,7 @@ func GetHomePageByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDis
StoreSkuInfos []StoreSkuInfo StoreSkuInfos []StoreSkuInfo
homePages []HomePageInfos homePages []HomePageInfos
) )
locationList, err := common.GetStoreListByLocation(ctx, lng, lat, 20000, needWalkDistance, false, 0) locationList, err := common.GetStoreListByLocation(ctx, lng, lat, 50000, needWalkDistance, false, brandId)
if err != nil { if err != nil {
return nil, "经纬度获取推荐门店失败", err return nil, "经纬度获取推荐门店失败", err
} }

View File

@@ -1937,6 +1937,9 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
scaleFactor = 100 / float64(jxutils.ConstrainPayPercentage(storeDetail.PayPercentage)) scaleFactor = 100 / float64(jxutils.ConstrainPayPercentage(storeDetail.PayPercentage))
} }
for _, skuBindInfo := range skuBindInfos { for _, skuBindInfo := range skuBindInfos {
if skuBindInfo.StoreID == 668470 {
globals.SugarLogger.Debugf("---------skuBindInfo := %s", utils.Format4Output(skuBindInfo, false))
}
// 关注且没有给价时需要尝试从store_sku_bind中得到已有的单价 // 关注且没有给价时需要尝试从store_sku_bind中得到已有的单价
needGetExistingUnitPrice := skuBindInfo.UnitPrice == 0 && skuBindInfo.IsFocus == 1 needGetExistingUnitPrice := skuBindInfo.UnitPrice == 0 && skuBindInfo.IsFocus == 1
inSkuBinds := skuBindInfo.Skus inSkuBinds := skuBindInfo.Skus
@@ -2018,6 +2021,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
} }
} }
unitPrice = int(math.Floor(float64(unitPrice)*scaleFactor/10+0.5)) * 10 //四舍五入 价格为100倍 角分为十位个位 除以10 + 0.5对分位向下取整(完成四舍五入的方法) unitPrice = int(math.Floor(float64(unitPrice)*scaleFactor/10+0.5)) * 10 //四舍五入 价格为100倍 角分为十位个位 除以10 + 0.5对分位向下取整(完成四舍五入的方法)
globals.SugarLogger.Debugf("-----------allBinds := %s", utils.Format4Output(allBinds, false))
for _, v := range allBinds { for _, v := range allBinds {
if v.Stock == 0 { if v.Stock == 0 {
v.Stock = model.MaxStoreSkuStockQty v.Stock = model.MaxStoreSkuStockQty
@@ -3730,17 +3734,18 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE
var ( var (
db = dao.GetDB() db = dao.GetDB()
skuMap = make(map[int]*dao.StoreSkuNameExt) skuMap = make(map[int]*dao.StoreSkuNameExt)
storeSkuNameExt = make([]*dao.StoreSkuNameExt, 0, 0)
) )
if len(storeIDs) == 0 { if len(storeIDs) == 0 {
return storeSkuNameExt2, err return storeSkuNameExt2, err
} }
globals.SugarLogger.Debugf("---storeIds := %s", utils.Format4Output(storeIDs, false))
storeSkuNameExt, err := dao.GetTopSkusByStoreIDs(db, storeIDs) for _, storeId := range storeIDs {
storeSkuName, err := dao.GetTopSkusByStoreIDs(db, []int{storeId})
if err != nil { if err != nil {
return nil, err return nil, err
} }
for _, v := range storeSkuNameExt { storeSkuNameExt = append(storeSkuNameExt, storeSkuName...)
globals.SugarLogger.Debugf("----------------storeSkuNameExtv := %d,%d", v.StoreID, v.SkuID)
} }
for _, v := range storeSkuNameExt { for _, v := range storeSkuNameExt {
@@ -3762,9 +3767,6 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE
} }
} }
} }
for _, v := range storeSkuNameExt2 {
globals.SugarLogger.Debugf("---------------- storeSkuNameExt 2 v := %d,%d", v.StoreID, v.SkuID)
}
return storeSkuNameExt2, err return storeSkuNameExt2, err
} }

View File

@@ -1171,7 +1171,6 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St
} }
func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSkuNameExt, err error) { func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSkuNameExt, err error) {
for _, storeId := range storeIDs {
sql := ` sql := `
SELECT t1.count, t2.id sku_id, t3.*, t1.store_id, t1.store_name SELECT t1.count, t2.id sku_id, t3.*, t1.store_id, t1.store_name
FROM( FROM(
@@ -1192,9 +1191,9 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk
utils.DefaultTimeValue, utils.DefaultTimeValue,
time.Now().AddDate(0, -1, 0), time.Now().AddDate(0, -1, 0),
} }
if storeId > 0 { if len(storeIDs) > 0 {
sql += " AND a.store_id = ? " sql += " AND a.store_id IN(" + GenQuestionMarks(len(storeIDs)) + ")"
sqlParams = append(sqlParams, storeId) sqlParams = append(sqlParams, storeIDs)
} }
sql += ` sql += `
AND b.sale_price > ? AND b.sale_price > ?
@@ -1213,9 +1212,9 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk
WHERE 1=1 WHERE 1=1
` `
sqlParams = append(sqlParams, salePriceLimit, utils.DefaultTimeValue, utils.DefaultTimeValue) sqlParams = append(sqlParams, salePriceLimit, utils.DefaultTimeValue, utils.DefaultTimeValue)
if storeId > 0 { if len(storeIDs) > 0 {
sql += " AND a.store_id = ?" sql += " AND a.store_id IN(" + GenQuestionMarks(len(storeIDs)) + ")"
sqlParams = append(sqlParams, storeId) sqlParams = append(sqlParams, storeIDs)
} }
sql += sql +=
` `
@@ -1229,22 +1228,17 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk
JOIN sku b ON a.sku_id = b.id AND b.deleted_at = ? AND b.status = ? JOIN sku b ON a.sku_id = b.id AND b.deleted_at = ? AND b.status = ?
JOIN sku_name c ON b.name_id = c.id AND c.deleted_at = ? AND c.status = ? JOIN sku_name c ON b.name_id = c.id AND c.deleted_at = ? AND c.status = ?
JOIN store d ON d.id = a.store_id AND d.deleted_at = ? AND d.status <> ? JOIN store d ON d.id = a.store_id AND d.deleted_at = ? AND d.status <> ?
WHERE a.store_id = ? WHERE a.store_id IN (` + GenQuestionMarks(len(storeIDs)) + `)
AND a.deleted_at = ? AND a.status = ? AND a.deleted_at = ? AND a.status = ?
ORDER BY 1 DESC ORDER BY 1 DESC
LIMIT ? LIMIT ?
` `
sqlParams = append(sqlParams, model.StoreSkuBindStatusNormal, utils.DefaultTimeValue, model.ActSkuDirectDown, model.ActSkuSecKill, sqlParams = append(sqlParams, model.StoreSkuBindStatusNormal, utils.DefaultTimeValue, model.ActSkuDirectDown, model.ActSkuSecKill,
utils.DefaultTimeValue, model.SkuStatusNormal, utils.DefaultTimeValue, model.SkuStatusNormal, utils.DefaultTimeValue, model.StoreStatusDisabled, utils.DefaultTimeValue, model.SkuStatusNormal, utils.DefaultTimeValue, model.SkuStatusNormal, utils.DefaultTimeValue, model.StoreStatusDisabled,
storeId, utils.DefaultTimeValue, model.StoreSkuBindStatusNormal, 30) storeIDs, utils.DefaultTimeValue, model.StoreSkuBindStatusNormal, 30)
err = GetRows(db, &storeSkuNameExt, sql, sqlParams...)
storeSkuName := make([]*StoreSkuNameExt, 0, 0)
err = GetRows(db, &storeSkuName, sql, sqlParams...)
var skuNamesInfo = &StoreSkuNamesInfo{ var skuNamesInfo = &StoreSkuNamesInfo{
SkuNames: storeSkuName, SkuNames: storeSkuNameExt,
}
if len(storeSkuName) != 0 {
storeSkuNameExt = append(storeSkuNameExt, storeSkuName...)
} }
var skuIdList = make([]int, 0, 0) var skuIdList = make([]int, 0, 0)
sql2 := ` sql2 := `
@@ -1260,7 +1254,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk
WHERE a.id = ? WHERE a.id = ?
AND a.deleted_at = ? AND a.deleted_at = ?
` `
for _, v := range storeSkuName { for _, v := range storeSkuNameExt {
var skus []*StoreSkuExt var skus []*StoreSkuExt
sqlParams2 := []interface{}{ sqlParams2 := []interface{}{
utils.DefaultTimeValue, utils.DefaultTimeValue,
@@ -1268,18 +1262,16 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk
v.SkuID, v.SkuID,
utils.DefaultTimeValue, utils.DefaultTimeValue,
} }
if storeId > 0 { if len(storeIDs) > 0 {
sql2 += " AND t4.store_id = ? " sql2 += " AND t4.store_id IN(" + GenQuestionMarks(len(storeIDs)) + ")"
sqlParams2 = append(sqlParams2, storeId) sqlParams2 = append(sqlParams2, storeIDs)
} }
if err = GetRows(db, &skus, sql2, sqlParams2...); err == nil { if err = GetRows(db, &skus, sql2, sqlParams2...); err == nil {
v.Skus = skus v.Skus = skus
skuIdList = append(skuIdList, v.SkuID) skuIdList = append(skuIdList, v.SkuID)
} }
} }
err = UpdateActPrice4StoreSkuNameNew(db, []int{storeId}, skuIdList, skuNamesInfo, model.VendorIDJX) err = UpdateActPrice4StoreSkuNameNew(db, storeIDs, skuIdList, skuNamesInfo, model.VendorIDJX)
}
return storeSkuNameExt, err return storeSkuNameExt, err
} }

View File

@@ -644,13 +644,13 @@ func (c *StoreController) GetStoreListByLocation() {
// @Param lng query float64 true "经度" // @Param lng query float64 true "经度"
// @Param lat query float64 true "纬度" // @Param lat query float64 true "纬度"
// @Param needWalkDistance query bool false "是否需要返回步行距离(且以步行距离排序)" // @Param needWalkDistance query bool false "是否需要返回步行距离(且以步行距离排序)"
// @Param brandID query int false "品牌ID" // @Param brandID query int true "品牌ID"
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult
// @router /GetHomePageByLocation [get] // @router /GetHomePageByLocation [get]
func (c *StoreController) GetHomePageByLocation() { func (c *StoreController) GetHomePageByLocation() {
c.callGetHomePageByLocation(func(params *tStoreGetHomePageByLocationParams) (interface{}, string, error) { c.callGetHomePageByLocation(func(params *tStoreGetHomePageByLocationParams) (interface{}, string, error) {
details, _, err := cms.GetHomePageByLocation(params.Ctx, params.Lng, params.Lat, params.NeedWalkDistance) details, _, err := cms.GetHomePageByLocation(params.Ctx, params.Lng, params.Lat, params.NeedWalkDistance, params.BrandID)
if err != nil { if err != nil {
return nil, "根据经纬度获取门店详细信息失败", err return nil, "根据经纬度获取门店详细信息失败", err
} }

View File

@@ -268,7 +268,6 @@ func (c *StoreSkuController) SyncStoresSkus() {
// @Title 批量修改多商家商品绑定 // @Title 批量修改多商家商品绑定
// @Description 批量修改多商家商品绑定 // @Description 批量修改多商家商品绑定
// @Param token header string true "认证token"
// @Param storeIDs formData string true "门店ID列表" // @Param storeIDs formData string true "门店ID列表"
// @Param payload formData string true "json数据StoreSkuBindInfo对象数组" // @Param payload formData string true "json数据StoreSkuBindInfo对象数组"
// @Param isScale formData bool false "是否按门店结算比例缩放" // @Param isScale formData bool false "是否按门店结算比例缩放"