From 6f3efaf9a3661f190e5b2b20517d596c983439d7 Mon Sep 17 00:00:00 2001 From: wangxiaowei Date: Thu, 15 Aug 2024 15:32:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=AC=E5=9C=B0=E7=94=9F?= =?UTF-8?q?=E6=B4=BB=E8=AE=A2=E5=8D=95=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/shop/LocalStore.php | 1 - app/admin/logic/shop/LocalStoreLogic.php | 44 +++++++++++++++++------- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/app/admin/controller/shop/LocalStore.php b/app/admin/controller/shop/LocalStore.php index 36e23ee4..26a6bdec 100755 --- a/app/admin/controller/shop/LocalStore.php +++ b/app/admin/controller/shop/LocalStore.php @@ -66,7 +66,6 @@ class LocalStore extends AdminBase ]); } - public function del() { if ($this->request->isAjax()) { $post = $this->request->post(); diff --git a/app/admin/logic/shop/LocalStoreLogic.php b/app/admin/logic/shop/LocalStoreLogic.php index dd4175b5..8a14ef24 100755 --- a/app/admin/logic/shop/LocalStoreLogic.php +++ b/app/admin/logic/shop/LocalStoreLogic.php @@ -101,32 +101,42 @@ class LocalStoreLogic extends Logic // 导出数据 public static function exportOrderData() { - $time = date('Y-m-d H:i:s', strtotime('today 2:00:00')); + $today = date('Y-m-d H:i:s', strtotime('today 02:00:00')); try { - $result = LocalStoreOrderRecord::where([ ['local_store_order_time', '<=', $time]])->field('local_store_order_id')->select()->toArray(); + $localStoreOrder = new LocalStoreOrder(); - if ($result) { - foreach ($result as &$v) { - $ids[] = $v['local_store_order_id']; - } - $lists = LocalStoreOrder::whereIn('id', $ids) - ->field('payment_type, account_name, bank_name, bank_card, large_number, separate_account, sum(separate_account) as total, tips, notes') + // 先将之前已导出的数据状态为2,这样就不会在重复导出之前的数据了(如果昨天的日期导出的状态还是为1则立马转换为2) + $last_where[] = ['create_time', '<=', date('Y-m-d H:i:s', strtotime('yesterday 02:00:00'))]; + $last_where[] = ['is_checkout', '=', 1]; + $last_where[] = ['is_export', '=', 1]; + $localStoreOrder->where($last_where)->update(['is_export' => 2]); + + $l_where[] = ['is_checkout', '=', 1]; + $l_where[] = ['create_time', '<=', $today]; + $l_where[] = ['is_export', '=', 1]; + $result = LocalStoreOrder::where($l_where)->limit(1)->select()->toArray(); + if (!empty($result)) { + // 当天可以多次导出数据 + $lists = LocalStoreOrder::where($l_where) + ->field('lstore_id, payment_type, account_name, bank_name, bank_card, large_number, separate_account, sum(separate_account) as total, tips, notes') ->group('bank_card') ->select() ->toArray(); } else { $where[] = ['is_checkout', '=', 0]; - $where[] = ['create_time', '<=', $time]; + $where[] = ['create_time', '<=', $today]; + $where[] = ['is_export', '=', 0]; - $localStoreOrder = new LocalStoreOrder(); + // 获取导出结果的数据集 $lists = $localStoreOrder ->where($where) - ->field('payment_type, account_name, bank_name, bank_card, large_number, separate_account, sum(separate_account) as total, tips, notes') + ->field('lstore_id, payment_type, account_name, bank_name, bank_card, large_number, separate_account, sum(separate_account) as total, tips, notes') ->group('bank_card') ->select() ->toArray(); + // 把导出的数据存放到记录表中 $data = $localStoreOrder->field('id, create_time')->where($where)->select()->toArray(); $record = []; $insert_time = date('Y-m-d H:i:s'); @@ -134,13 +144,21 @@ class LocalStoreLogic extends Logic $record[] = ['local_store_order_id' => $v['id'], 'local_store_order_time' => $v['create_time'], 'export_time' => $insert_time]; } LocalStoreOrderRecord::insertAll($record); - $localStoreOrder->where($where)->update(['is_checkout' => 1]); + + // 更新状态数据为已结账和可以继续导出 + $localStoreOrder->where($where)->update(['is_checkout' => 1, 'is_export' => 1]); } foreach ($lists as &$v) { $v['bank_card'] = $v['bank_card'] . ' '; $v['large_number'] = $v['large_number'] . ' '; - $v['payment_type'] = self::$PAYMENT_TYPE[$v['payment_type']]; + if ($v['payment_type'] == 1) { + $v['payment_type'] = self::$PAYMENT_TYPE[$v['payment_type']]; + } else { + // 对私银行账户 + $res = LocalStore::where('lstore_id', $v['lstore_id'])->field('bank_user_name')->find(); + $v['payment_type'] = $res['bank_user_name']; + } } $excelFields = [