转桌操作
This commit is contained in:
@@ -741,21 +741,56 @@ class Base extends Model
|
||||
// 转桌
|
||||
public static function rottable($message)
|
||||
{
|
||||
$update_time = date('Y-m-d H:i:s');
|
||||
if(!empty($message['cart_id'])) {
|
||||
if(is_string($message['cart_id'])) {
|
||||
$cart_id = json_decode($message['cart_id'], true);
|
||||
}else {
|
||||
$cart_id = implode(',', $message['cart_id']);
|
||||
}
|
||||
$sql = " UPDATE `tb_cashier_cart` SET `table_code`='{$message['new_table_code']}',`update_time`='" . $update_time . "' WHERE
|
||||
try {
|
||||
Db::startTrans();
|
||||
$update_time = date('Y-m-d H:i:s');
|
||||
if(!empty($message['cart_id'])) {
|
||||
if(is_string($message['cart_id'])) {
|
||||
$cart_id = json_decode($message['cart_id'], true);
|
||||
}else {
|
||||
$cart_id = implode(',', $message['cart_id']);
|
||||
}
|
||||
$sql = " UPDATE `tb_cashier_cart` SET `table_code`='{$message['new_table_code']}',`update_time`='" . $update_time . "' WHERE
|
||||
`id` IN (" . $cart_id . ") AND
|
||||
`table_code`= '{$message['table_code']}'";
|
||||
}else {
|
||||
$sql = " UPDATE `tb_cashier_cart` SET `table_code`='{$message['new_table_code']}',`update_time`='" . $update_time . "' WHERE
|
||||
$old_arr = Db::name('tb_cashier_cart')->where(['table_code' => $message['table_code']])->where('id', 'in', explode(',', $cart_id))->column('number,product_id');
|
||||
}else {
|
||||
$sql = " UPDATE `tb_cashier_cart` SET `table_code`='{$message['new_table_code']}',`update_time`='" . $update_time . "' WHERE
|
||||
`table_code`= '{$message['table_code']}'";
|
||||
$old_arr = Db::name('tb_cashier_cart')->where(['table_code' => $message['table_code']])->column('number,product_id');
|
||||
|
||||
}
|
||||
|
||||
// 如果新桌子有相同的商品,合并
|
||||
// 先拿到旧桌子的商品
|
||||
$new_arr = Db::name('tb_cashier_cart')->where(['table_code' => $message['new_table_code']])->column('number,product_id');
|
||||
if($old_arr) {
|
||||
foreach ($old_arr as $lk => $lv) {
|
||||
foreach ($new_arr as $nk => $nv) {
|
||||
if($nv['product_id'] == $lv['product_id']) {
|
||||
// 新增数量
|
||||
Db::name('tb_cashier_cart')
|
||||
->where(['table_code' => $message['table_code'], 'product_id' => $lv['product_id']])
|
||||
->inc('number', $lv['number'])
|
||||
->update();
|
||||
// 删除原数据
|
||||
Db::name('tb_cashier_cart')
|
||||
->where(['table_code' => $message['new_table_code'], 'product_id' => $lv['product_id']])
|
||||
->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$res = Db::execute($sql);
|
||||
Db::commit();
|
||||
return $res;
|
||||
}catch (Exception $e) {
|
||||
Db::rollback();
|
||||
Log::info('转桌时出错' . $e->getTraceAsString());
|
||||
}
|
||||
return Db::execute($sql);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user