From b384210fe72e733a8fa6e2a5ce3a67feb629deee Mon Sep 17 00:00:00 2001 From: ASUS <515617283@qq.com> Date: Wed, 12 Nov 2025 14:06:05 +0800 Subject: [PATCH] bulk_edit --- extend/workermans/model/Base.php | 65 ++++++++++++++++++++++++++++ extend/workermans/model/Cashier.php | 23 ++++++++++ extend/workermans/model/Manage.php | 23 ++++++++++ extend/workermans/model/Onboc.php | 23 ++++++++++ extend/workermans/model/Pad.php | 23 ++++++++++ extend/workermans/model/Shopping.php | 23 ++++++++++ 6 files changed, 180 insertions(+) diff --git a/extend/workermans/model/Base.php b/extend/workermans/model/Base.php index 4c8a4fc..b3b0c03 100644 --- a/extend/workermans/model/Base.php +++ b/extend/workermans/model/Base.php @@ -650,6 +650,71 @@ class Base extends Model } return $res; } + + // 批量修改购物车 + public static function bulk_edit_data($message) + { + // 需要过滤的字段 + $arr = [ + 'type', + 'operate_type', + 'account', + 'active', + 'create_time', + 'goods_type', + 'group_type', + 'selectSpecInfo', + 'limitDiscountPrice', + 'isStock', + 'stockNumber', + 'group_text', + 'skuList', + 'update_time', + 'lowPrice', + 'salePrice', + 'coverImg', + 'name', + 'packFee', + 'unitName', + 'suitNum', + 'memberPrice', + 'tableCode', + ]; + $res = 0; + if(!empty($message['history'])) { + $list = $message['history']; + $table_name = 'tb_order_detail'; + $edit_type = 'history'; + $num = 'num'; + }elseif (!empty($message['cart'])) { + $list = $message['cart']; + $table_name = 'tb_cashier_cart'; + $edit_type = 'cart'; + $num = 'number'; + } + // 过滤字段 + foreach ($list as $k => $v) { + foreach ($arr as $av) { + if(!empty($v[$av])) { + unset($list[$k][$v]); + } + } + } + foreach ($list as $k => $data) { + $data['update_time'] = date('Y-m-d H:i:s'); + if($edit_type == 'cart' && !empty($data['pro_group_info']) && is_array($data['pro_group_info'])) { + $data['pro_group_info'] = json_encode($data['pro_group_info']); + } + if(isset($data[$num]) && $data[$num] <= 0) { + $res += Db::table($table_name)->where('id' , $data['id'])->delete(); + }else { + $res += Db::table($table_name)->update($data); + } + } + return ['status' => $res>1?1:0, 'data_type' => $edit_type]; + } + + // 转桌 public static function rottable($message) { diff --git a/extend/workermans/model/Cashier.php b/extend/workermans/model/Cashier.php index e347865..5ef0c70 100644 --- a/extend/workermans/model/Cashier.php +++ b/extend/workermans/model/Cashier.php @@ -378,6 +378,29 @@ class Cashier extends Base case 'search_pay_lock': self::searchpaylock($client_id, $message); break; + // 批量修改(历史订单与购物车) + case 'bulk_edit': + try { + if(empty($message['history']) && empty($message['cart'])) { + self::gateway_query('sendToClient', [$client_id, json_encode(['msg' => '数据结构错误'])]); + return; + } + $res = self::bulk_edit_data($message); + $rand = 'cashier_edit' . Random::build(); + $snd_data = [ + 'msg' => '购物车修改', + 'type' => 'cashier', + 'status' => $res['status'], + 'operate_type' => 'edit', + 'data_type' => $res['data_type'], + 'msg_id' => $rand, + 'data' => [] + ]; + self::gateway_query('sendToClient', [$client_id, json_encode($snd_data)]); + }catch (Exception $e) { + Log::info('修改购物车时[error]->>>>>' . $e->getMessage()); + } + break; } } } \ No newline at end of file diff --git a/extend/workermans/model/Manage.php b/extend/workermans/model/Manage.php index c6600b5..5d57919 100644 --- a/extend/workermans/model/Manage.php +++ b/extend/workermans/model/Manage.php @@ -335,6 +335,29 @@ class Manage extends Base case 'search_pay_lock': self::searchpaylock($client_id, $message); break; + // 批量修改(历史订单与购物车) + case 'bulk_edit': + try { + if(empty($message['history']) && empty($message['cart'])) { + self::gateway_query('sendToClient', [$client_id, json_encode(['msg' => '数据结构错误'])]); + return; + } + $res = self::bulk_edit_data($message); + $rand = 'cashier_edit' . Random::build(); + $snd_data = [ + 'msg' => '购物车修改', + 'type' => 'manage', + 'status' => $res['status'], + 'operate_type' => 'edit', + 'data_type' => $res['data_type'], + 'msg_id' => $rand, + 'data' => [] + ]; + self::gateway_query('sendToClient', [$client_id, json_encode($snd_data)]); + }catch (Exception $e) { + \support\Log::info('修改购物车时[error]->>>>>' . $e->getMessage()); + } + break; } } } \ No newline at end of file diff --git a/extend/workermans/model/Onboc.php b/extend/workermans/model/Onboc.php index 16c7e19..9ef5fda 100644 --- a/extend/workermans/model/Onboc.php +++ b/extend/workermans/model/Onboc.php @@ -336,6 +336,29 @@ class Onboc extends Base case 'search_pay_lock': self::searchpaylock($client_id, $message); break; + // 批量修改(历史订单与购物车) + case 'bulk_edit': + try { + if(empty($message['history']) && empty($message['cart'])) { + self::gateway_query('sendToClient', [$client_id, json_encode(['msg' => '数据结构错误'])]); + return; + } + $res = self::bulk_edit_data($message); + $rand = 'cashier_edit' . Random::build(); + $snd_data = [ + 'msg' => '购物车修改', + 'type' => 'onboc', + 'status' => $res['status'], + 'operate_type' => 'edit', + 'data_type' => $res['data_type'], + 'msg_id' => $rand, + 'data' => [] + ]; + self::gateway_query('sendToClient', [$client_id, json_encode($snd_data)]); + }catch (Exception $e) { + Log::info('修改购物车时[error]->>>>>' . $e->getMessage()); + } + break; } } diff --git a/extend/workermans/model/Pad.php b/extend/workermans/model/Pad.php index 236df94..1500ab0 100644 --- a/extend/workermans/model/Pad.php +++ b/extend/workermans/model/Pad.php @@ -350,6 +350,29 @@ class Pad extends Base case 'search_pay_lock': self::searchpaylock($client_id, $message); break; + // 批量修改(历史订单与购物车) + case 'bulk_edit': + try { + if(empty($message['history']) && empty($message['cart'])) { + self::gateway_query('sendToClient', [$client_id, json_encode(['msg' => '数据结构错误'])]); + return; + } + $res = self::bulk_edit_data($message); + $rand = 'cashier_edit' . Random::build(); + $snd_data = [ + 'msg' => '购物车修改', + 'type' => 'pad', + 'status' => $res['status'], + 'operate_type' => 'edit', + 'data_type' => $res['data_type'], + 'msg_id' => $rand, + 'data' => [] + ]; + self::gateway_query('sendToClient', [$client_id, json_encode($snd_data)]); + }catch (Exception $e) { + Log::info('修改购物车时[error]->>>>>' . $e->getMessage()); + } + break; } } } \ No newline at end of file diff --git a/extend/workermans/model/Shopping.php b/extend/workermans/model/Shopping.php index a3ef1ac..8455071 100644 --- a/extend/workermans/model/Shopping.php +++ b/extend/workermans/model/Shopping.php @@ -315,6 +315,29 @@ class Shopping extends Base case 'search_pay_lock': self::searchpaylock($client_id, $message); break; + // 批量修改(历史订单与购物车) + case 'bulk_edit': + try { + if(empty($message['history']) && empty($message['cart'])) { + self::gateway_query('sendToClient', [$client_id, json_encode(['msg' => '数据结构错误'])]); + return; + } + $res = self::bulk_edit_data($message); + $rand = 'cashier_edit' . Random::build(); + $snd_data = [ + 'msg' => '购物车修改', + 'type' => 'shopping', + 'status' => $res['status'], + 'operate_type' => 'edit', + 'data_type' => $res['data_type'], + 'msg_id' => $rand, + 'data' => [] + ]; + self::gateway_query('sendToClient', [$client_id, json_encode($snd_data)]); + }catch (\ba\Exception $e) { + Log::info('修改购物车时[error]->>>>>' . $e->getMessage()); + } + break; } } } \ No newline at end of file