counts问题

This commit is contained in:
邓皓元 2019-01-23 10:40:20 +08:00
parent ed04a81983
commit 85dfd3352e

View File

@ -96,6 +96,8 @@ class LogSyncJob implements ShouldQueue
// 按规则生成订单编号 (月6+类型1+公司3+套餐4+价格6) // 按规则生成订单编号 (月6+类型1+公司3+套餐4+价格6)
$sn = date('Ym', $value['create_time']) . $type . sprintf('%03d', $company['id']) . sprintf('%04d', $package['id']) . sprintf('%06d', $custom_price); $sn = date('Ym', $value['create_time']) . $type . sprintf('%03d', $company['id']) . sprintf('%04d', $package['id']) . sprintf('%06d', $custom_price);
$counts = isset($orderArray[$sn]) ? $orderArray[$sn]['counts'] + 1 : 1;
$orderArray[$sn] = [ $orderArray[$sn] = [
'sn' => $sn, 'sn' => $sn,
'source' => 1, 'source' => 1,
@ -105,7 +107,7 @@ class LogSyncJob implements ShouldQueue
'product_id' => $product['id'], 'product_id' => $product['id'],
'pay_channel' => $pay_channel, 'pay_channel' => $pay_channel,
'unit_price' => $unit_price, 'unit_price' => $unit_price,
'counts' => 1, 'counts' => $counts,
'total_price' => $unit_price, 'total_price' => $unit_price,
'custom_price' => $custom_price, 'custom_price' => $custom_price,
'order_at' => date('Y-m-d H:i:s', $value['create_time']), 'order_at' => date('Y-m-d H:i:s', $value['create_time']),
@ -114,13 +116,17 @@ class LogSyncJob implements ShouldQueue
'created_at' => date('Y-m-d H:i:s', $value['create_time']), 'created_at' => date('Y-m-d H:i:s', $value['create_time']),
]; ];
$k = $sn . '-' . $value['sim'];
$counts = isset($relationArray[$k]) ? $relationArray[$k]['counts'] + 1 : 1;
$relationArray[] = [ $relationArray[] = [
'order_sn' => $sn, 'order_sn' => $sn,
'type' => $type, 'type' => $type,
'sim' => $value['sim'], 'sim' => $value['sim'],
'company_id' => $company['id'], 'company_id' => $company['id'],
'package_id' => $package['id'], 'package_id' => $package['id'],
'counts' => 1, 'counts' => $counts,
'created_at' => date('Y-m-d H:i:s', $value['create_time']), 'created_at' => date('Y-m-d H:i:s', $value['create_time']),
'updated_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
]; ];
@ -132,9 +138,9 @@ class LogSyncJob implements ShouldQueue
$sql = $builder->getGrammar()->compileInsert($builder, $orderArray); $sql = $builder->getGrammar()->compileInsert($builder, $orderArray);
$sql .= " on conflict (sn, COALESCE(deleted_at, '1970-01-01 08:00:00'::timestamp)) do update set $sql .= " on conflict (sn, COALESCE(deleted_at, '1970-01-01 08:00:00'::timestamp)) do update set
counts=virtual_orders.counts + 1, counts=virtual_orders.counts + excluded.counts,
total_price=virtual_orders.unit_price * (virtual_orders.counts + 1), total_price=virtual_orders.unit_price * (virtual_orders.counts + excluded.counts),
custom_price=virtual_orders.unit_price * (virtual_orders.counts + 1)"; custom_price=virtual_orders.unit_price * (virtual_orders.counts + excluded.counts)";
$builder->connection->insert($sql, Arr::flatten($orderArray, 1)); $builder->connection->insert($sql, Arr::flatten($orderArray, 1));
@ -150,7 +156,7 @@ class LogSyncJob implements ShouldQueue
$sql = $builder->getGrammar()->compileInsert($builder, $relationArray); $sql = $builder->getGrammar()->compileInsert($builder, $relationArray);
$sql .= " on conflict (type, order_id, sim, COALESCE(deleted_at, '1970-01-01 08:00:00'::timestamp)) do update set $sql .= " on conflict (type, order_id, sim, COALESCE(deleted_at, '1970-01-01 08:00:00'::timestamp)) do update set
counts=virtual_order_cards_partition.counts + 1"; counts=virtual_order_cards_partition.counts + excluded.counts";
$builder->connection->insert($sql, Arr::flatten($relationArray, 1)); $builder->connection->insert($sql, Arr::flatten($relationArray, 1));
} catch (\Exception $e) { } catch (\Exception $e) {