fix
This commit is contained in:
		
							parent
							
								
									2f5ce8dd77
								
							
						
					
					
						commit
						0e752e31fd
					
				| @ -18,7 +18,7 @@ func (r *FsProductRecommendModel) GetRecommendProductList(req GetRecommendProduc | |||||||
| 		Table("fs_product_recommend as r"). | 		Table("fs_product_recommend as r"). | ||||||
| 		Joins("inner join fs_product as p on r.product_id = p.id"). | 		Joins("inner join fs_product as p on r.product_id = p.id"). | ||||||
| 		Where("r.status = ? ", 1). | 		Where("r.status = ? ", 1). | ||||||
| 		Where("and p.is_shelf = ? and p.is_del = ? and p.status = ?", 1, 0, 1) | 		Where("p.is_shelf = ? and p.is_del = ? and p.status = ?", 1, 0, 1) | ||||||
| 	if req.Category != 0 { | 	if req.Category != 0 { | ||||||
| 		db = db.Where("r.category = ?", req.Category) | 		db = db.Where("r.category = ?", req.Category) | ||||||
| 	} | 	} | ||||||
| @ -29,10 +29,14 @@ func (r *FsProductRecommendModel) GetRecommendProductList(req GetRecommendProduc | |||||||
| 	err = db.Offset(offset).Limit(req.Limit).Find(&resp).Error | 	err = db.Offset(offset).Limit(req.Limit).Find(&resp).Error | ||||||
| 	return resp, total, err | 	return resp, total, err | ||||||
| } | } | ||||||
| func (r *FsProductRecommendModel) GetIgnoreRandomRecommendProductList(ctx context.Context, limit int, category int64, idNotInt []int64) (resp []FsProductRecommend, err error) { | func (r *FsProductRecommendModel) GetIgnoreRandomRecommendProductList(ctx context.Context, limit int, category int64, idNotInt []int64) (resp []FsProduct, err error) { | ||||||
| 	err = r.db.WithContext(ctx).Model(&FsProductRecommend{}). | 	err = r.db.WithContext(ctx).Debug().Select("p.*"). | ||||||
| 		Where("`product_id` not in(?) and `category` = ? and `status` = ?", idNotInt, category, 1). | 		Table("fs_product_recommend as r"). | ||||||
| 		Order("RAND()").Limit(limit).Find(&resp).Error | 		Joins("inner join fs_product as p on r.product_id = p.id"). | ||||||
|  | 		Where("r.product_id not in (?)", idNotInt). | ||||||
|  | 		Where("r.status = ? ", 1). | ||||||
|  | 		Where("p.is_shelf = ? and p.is_del = ? and p.status = ?", 1, 0, 1). | ||||||
|  | 		Where("r.category = ?", category).Order("RAND()").Limit(limit).Find(&resp).Error | ||||||
| 	return resp, err | 	return resp, err | ||||||
| } | } | ||||||
| func (r *FsProductRecommendModel) CreateOrUpdate(ctx context.Context, productId int64, category int64, data *FsProductRecommend) error { | func (r *FsProductRecommendModel) CreateOrUpdate(ctx context.Context, productId int64, category int64, data *FsProductRecommend) error { | ||||||
|  | |||||||
| @ -47,24 +47,18 @@ func (l *GetRecommandProductListLogic) GetRecommandProductList(req *types.GetRec | |||||||
| 		return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get detail product info") | 		return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get detail product info") | ||||||
| 	} | 	} | ||||||
| 	//随机取产品列表(不包含详情产品) | 	//随机取产品列表(不包含详情产品) | ||||||
| 	recommendList, err := l.svcCtx.AllModels.FsProductRecommend.GetIgnoreRandomRecommendProductList(l.ctx, int(req.Num), int64(constants.PRODUCT_DETAIL_RECOMMEND_CATEGORY), []int64{productInfo.Id}) | 	recommendProductList, err := l.svcCtx.AllModels.FsProductRecommend.GetIgnoreRandomRecommendProductList(l.ctx, int(req.Num), int64(constants.PRODUCT_DETAIL_RECOMMEND_CATEGORY), []int64{productInfo.Id}) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logx.Error(err) | 		logx.Error(err) | ||||||
| 		return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get random recommend  list") | 		return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get random recommend  list") | ||||||
| 	} | 	} | ||||||
| 	//需要填充时需要忽略的id | 	//需要填充时需要忽略的id | ||||||
| 	ignoreProductIds := make([]int64, 0, len(recommendList)+1) | 	ignoreProductIds := make([]int64, 0, len(recommendProductList)+1) | ||||||
| 	ignoreProductIds = append(ignoreProductIds, productInfo.Id) | 	ignoreProductIds = append(ignoreProductIds, productInfo.Id) | ||||||
| 	productIds := make([]int64, 0, len(recommendList)) | 	productIds := make([]int64, 0, len(recommendProductList)) | ||||||
| 	for _, v := range recommendList { | 	for _, v := range recommendProductList { | ||||||
| 		ignoreProductIds = append(ignoreProductIds, *v.ProductId) | 		ignoreProductIds = append(ignoreProductIds, v.Id) | ||||||
| 		productIds = append(productIds, *v.ProductId) | 		productIds = append(productIds, v.Id) | ||||||
| 	} |  | ||||||
| 	//获取推荐产品列表 |  | ||||||
| 	recommendProductList, err := l.svcCtx.AllModels.FsProduct.GetProductListByIds(l.ctx, productIds, "") |  | ||||||
| 	if err != nil { |  | ||||||
| 		logx.Error(err) |  | ||||||
| 		return resp.SetStatus(basic.CodeDbSqlErr, "failed to get recommend product list") |  | ||||||
| 	} | 	} | ||||||
| 	//在合并之前记住推荐的产品 | 	//在合并之前记住推荐的产品 | ||||||
| 	mapRecommend := make(map[int64]struct{}) | 	mapRecommend := make(map[int64]struct{}) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user