1
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -3728,19 +3732,20 @@ func ReCalculateJxPriceLight(db *dao.DaoDB, ctx *jxcontext.Context, storeID int)
|
|||||||
|
|
||||||
func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameExt2 []*dao.StoreSkuNameExt, err error) {
|
func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameExt2 []*dao.StoreSkuNameExt, err error) {
|
||||||
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 {
|
||||||
if err != nil {
|
storeSkuName, err := dao.GetTopSkusByStoreIDs(db, []int{storeId})
|
||||||
return nil, err
|
if err != nil {
|
||||||
}
|
return nil, err
|
||||||
for _, v := range storeSkuNameExt {
|
}
|
||||||
globals.SugarLogger.Debugf("----------------storeSkuNameExtv := %d,%d", v.StoreID, v.SkuID)
|
storeSkuNameExt = append(storeSkuNameExt, storeSkuName...)
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1171,8 +1171,7 @@ 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(
|
||||||
SELECT SUM(b.count) count,c.id,a.store_id,d.name store_name
|
SELECT SUM(b.count) count,c.id,a.store_id,d.name store_name
|
||||||
@@ -1185,18 +1184,18 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk
|
|||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
AND a.order_created_at BETWEEN ? and NOW()
|
AND a.order_created_at BETWEEN ? and NOW()
|
||||||
`
|
`
|
||||||
sqlParams := []interface{}{
|
sqlParams := []interface{}{
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
model.SkuStatusNormal,
|
model.SkuStatusNormal,
|
||||||
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 > ?
|
||||||
GROUP BY 2,3,4 LIMIT 0, 1000 )t1
|
GROUP BY 2,3,4 LIMIT 0, 1000 )t1
|
||||||
JOIN sku t2 ON t2.id = t1.id
|
JOIN sku t2 ON t2.id = t1.id
|
||||||
@@ -1212,13 +1211,13 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk
|
|||||||
JOIN sku_name g ON g.id = f.name_id AND g.deleted_at = ?
|
JOIN sku_name g ON g.id = f.name_id AND g.deleted_at = ?
|
||||||
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 +=
|
||||||
`
|
`
|
||||||
AND NOW() BETWEEN d.begin_at AND d.end_at
|
AND NOW() BETWEEN d.begin_at AND d.end_at
|
||||||
AND a.status = ?
|
AND a.status = ?
|
||||||
AND a.deleted_at = ?
|
AND a.deleted_at = ?
|
||||||
@@ -1229,25 +1228,20 @@ 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)
|
var skuNamesInfo = &StoreSkuNamesInfo{
|
||||||
err = GetRows(db, &storeSkuName, sql, sqlParams...)
|
SkuNames: storeSkuNameExt,
|
||||||
var skuNamesInfo = &StoreSkuNamesInfo{
|
}
|
||||||
SkuNames: storeSkuName,
|
var skuIdList = make([]int, 0, 0)
|
||||||
}
|
sql2 := `
|
||||||
if len(storeSkuName) != 0 {
|
|
||||||
storeSkuNameExt = append(storeSkuNameExt, storeSkuName...)
|
|
||||||
}
|
|
||||||
var skuIdList = make([]int, 0, 0)
|
|
||||||
sql2 := `
|
|
||||||
SELECT a.id sku_id,a.*,t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at,
|
SELECT a.id sku_id,a.*,t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at,
|
||||||
t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at,
|
t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at,
|
||||||
t4.ebai_id, t4.mtwm_id,t4.dd_id,t4.tao_id,
|
t4.ebai_id, t4.mtwm_id,t4.dd_id,t4.tao_id,
|
||||||
@@ -1260,26 +1254,24 @@ 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,
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -641,16 +641,16 @@ func (c *StoreController) GetStoreListByLocation() {
|
|||||||
|
|
||||||
// @Title 根据位置得到首页商店详细信息
|
// @Title 根据位置得到首页商店详细信息
|
||||||
// @Description 根据位置得到首页商店详细信息
|
// @Description 根据位置得到首页商店详细信息
|
||||||
// @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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 "是否按门店结算比例缩放"
|
||||||
|
|||||||
Reference in New Issue
Block a user