转桌操作
This commit is contained in:
@@ -741,21 +741,56 @@ class Base extends Model
|
|||||||
// 转桌
|
// 转桌
|
||||||
public static function rottable($message)
|
public static function rottable($message)
|
||||||
{
|
{
|
||||||
$update_time = date('Y-m-d H:i:s');
|
try {
|
||||||
if(!empty($message['cart_id'])) {
|
Db::startTrans();
|
||||||
if(is_string($message['cart_id'])) {
|
$update_time = date('Y-m-d H:i:s');
|
||||||
$cart_id = json_decode($message['cart_id'], true);
|
if(!empty($message['cart_id'])) {
|
||||||
}else {
|
if(is_string($message['cart_id'])) {
|
||||||
$cart_id = implode(',', $message['cart_id']);
|
$cart_id = json_decode($message['cart_id'], true);
|
||||||
}
|
}else {
|
||||||
$sql = " UPDATE `tb_cashier_cart` SET `table_code`='{$message['new_table_code']}',`update_time`='" . $update_time . "' WHERE
|
$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
|
`id` IN (" . $cart_id . ") AND
|
||||||
`table_code`= '{$message['table_code']}'";
|
`table_code`= '{$message['table_code']}'";
|
||||||
}else {
|
$old_arr = Db::name('tb_cashier_cart')->where(['table_code' => $message['table_code']])->where('id', 'in', explode(',', $cart_id))->column('number,product_id');
|
||||||
$sql = " UPDATE `tb_cashier_cart` SET `table_code`='{$message['new_table_code']}',`update_time`='" . $update_time . "' WHERE
|
}else {
|
||||||
|
$sql = " UPDATE `tb_cashier_cart` SET `table_code`='{$message['new_table_code']}',`update_time`='" . $update_time . "' WHERE
|
||||||
`table_code`= '{$message['table_code']}'";
|
`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);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,11 @@ class Shopping extends Base
|
|||||||
if($time_dis_info) {
|
if($time_dis_info) {
|
||||||
$time_dis_info = json_decode($time_dis_info, true);
|
$time_dis_info = json_decode($time_dis_info, true);
|
||||||
}else {
|
}else {
|
||||||
$time_dis_info = null;
|
if(!empty($message['time_dis_info'])) {
|
||||||
|
$time_dis_info = !is_array($message['time_dis_info'])?json_decode($message['time_dis_info'], true):$message['time_dis_info'];
|
||||||
|
}else {
|
||||||
|
$time_dis_info = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(!empty($message['one_more_order'])) {
|
if(!empty($message['one_more_order'])) {
|
||||||
// 再来一单
|
// 再来一单
|
||||||
@@ -304,6 +308,31 @@ class Shopping extends Base
|
|||||||
self::gateway_query('sendToClient', [$client_id, json_encode(['msg' => '购物车不存在'])]);
|
self::gateway_query('sendToClient', [$client_id, json_encode(['msg' => '购物车不存在'])]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查看目标桌有没有商品,有的话返回提示
|
||||||
|
// 参数第一次出发 is_hb 1 第一次触发 id_hb 2 第二次触发
|
||||||
|
if(!empty($message['is_hb'])) {
|
||||||
|
// 第一次触发
|
||||||
|
if($message['is_hb'] == 1) {
|
||||||
|
$y_product = Db::name('tb_cashier_cart')->where(['table_code' => $message['new_table_code'], 'shop_id' => $message['shop_id']])->find();
|
||||||
|
if($y_product) {
|
||||||
|
// 有商品,返回提示合并还是舍弃
|
||||||
|
Gateway::sendToClient($client_id, json_encode([
|
||||||
|
'msg' => '目标台桌存在其他商品,请选择合并还是舍弃',
|
||||||
|
'status' => 0,
|
||||||
|
'operate_type' => 'rottable_error',
|
||||||
|
'type' => 'shopping'
|
||||||
|
]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}elseif($message['is_hb'] == 2) {
|
||||||
|
// 第二次触发 现选择的是合并还是舍弃
|
||||||
|
if(!empty($message['give_up'])) {
|
||||||
|
// 如果是舍弃,直接删掉
|
||||||
|
Db::name('tb_cashier_cart')->where(['table_code' => $message['new_table_code'], 'shop_id' => $message['shop_id']])->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
$res = self::rottable($message);
|
$res = self::rottable($message);
|
||||||
if($res) {
|
if($res) {
|
||||||
$status = 1;
|
$status = 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user