问题说明:收银台桌码订单详情数量不符合
修改文件:app\services\activity\collage\UserCollagePartakeServices
修改方法:allUserSettleAccountsTableCode()
public function allUserSettleAccountsTableCode(int $tableId, int $uid, int $type)
{
$data = $this->dao->getUserPartakeList(['collate_code_id' => $tableId, 'status' => 1], 'id,product_id,product_type,store_id,product_attr_unique,cart_num,status,is_settle');
if (count($data) <= 0) return false;
/** @var StoreCartServices $cartServices */
$cartServices = app()->make(StoreCartServices::class);
$cartIds = [];
$data = $this->dataPartake($data, false);
foreach ($data['cart'] as $key => $item) {
$cartKey = md5($item['uid'] . $item['product_id'] . $item['product_attr_unique'] . $item['cart_num']);
$info = CacheService::redisHandler()->get($cartKey);
if (!$info) {
try {
$cartServices->setItem('key', $cartKey);
[$cartKey, $cart_num] = $cartServices->setCart($uid, (int)$item['product_id'], $item['cart_num'], $item['product_attr_unique'], $type, true, $tableId, 0);
$cartServices->reset();
$cartIds[] = $cartKey;
} catch (\Exception $e) {
continue;
}
} else {
$cartIds[] = $cartKey;
}
}
if (count($cartIds) < 0) return false;
$cartIds = array_unique($cartIds);
$cartIds = implode(',', $cartIds);
return $cartIds;
}