|
|
@@ -260,23 +260,12 @@ class Merchant extends BaseController
|
|
260
|
260
|
}
|
|
261
|
261
|
}
|
|
262
|
262
|
|
|
263
|
|
- // 5. 随机混入:从原列表中随机移除同等数量商品,再随机插入推荐商品
|
|
264
|
|
- $actualMixCount = min(count($matchList), $mixCount, $limit);
|
|
|
263
|
+ // 5. 随机混入:不移除原商品,将推荐商品随机插入到列表中
|
|
|
264
|
+ $actualMixCount = min(count($matchList), $mixCount);
|
|
265
|
265
|
if ($actualMixCount > 0) {
|
|
266
|
266
|
$matchList = array_slice($matchList, 0, $actualMixCount);
|
|
267
|
267
|
|
|
268
|
|
- // 随机选择要移除的商品位置
|
|
269
|
|
- $removeKeys = array_rand($result['list'], $actualMixCount);
|
|
270
|
|
- if (!is_array($removeKeys)) {
|
|
271
|
|
- $removeKeys = [$removeKeys];
|
|
272
|
|
- }
|
|
273
|
|
- // 从大到小排序,避免删除时索引错乱
|
|
274
|
|
- rsort($removeKeys);
|
|
275
|
|
- foreach ($removeKeys as $rk) {
|
|
276
|
|
- array_splice($result['list'], $rk, 1);
|
|
277
|
|
- }
|
|
278
|
|
-
|
|
279
|
|
- // 随机插入推荐商品
|
|
|
268
|
+ // 随机插入推荐商品(不移除任何原商品)
|
|
280
|
269
|
foreach ($matchList as $ml) {
|
|
281
|
270
|
$insertPos = rand(0, count($result['list']));
|
|
282
|
271
|
array_splice($result['list'], $insertPos, 0, [$ml]);
|