diff --git a/app/admin/logic/shop/LocalStoreLogic.php b/app/admin/logic/shop/LocalStoreLogic.php index 3709025a..3e8f016c 100755 --- a/app/admin/logic/shop/LocalStoreLogic.php +++ b/app/admin/logic/shop/LocalStoreLogic.php @@ -5,8 +5,8 @@ namespace app\admin\logic\shop; use app\common\basics\Logic; use app\common\model\LocalStore; use app\common\model\LocalStoreOrder; +use app\common\model\LocalStoreOrderRecord; use app\common\server\ExportExcelServer; -use app\common\server\UrlServer; use app\common\server\WeChatServer; use EasyWeChat\Factory; use app\common\model\user\User; @@ -61,12 +61,41 @@ class LocalStoreLogic extends Logic // 导出数据 public static function exportOrderData() { + $time = date('Y-m-d H:i:s', strtotime('today 2:00:00')); + try { - $lists = LocalStoreOrder::order('id desc') - ->field('payment_type, account_name, bank_name, bank_card, large_number, separate_account, sum(separate_account) as total, tips, notes') - ->group('bank_card') - ->select() - ->toArray(); + $result = LocalStoreOrderRecord::where([ ['local_store_order_time', '<=', $time]])->field('local_store_order_id')->select()->toArray(); + + 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') + ->group('bank_card') + ->select() + ->toArray(); + } else { + $where[] = ['is_checkout', '=', 0]; + $where[] = ['create_time', '<=', $time]; + + $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') + ->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'); + foreach ($data as &$v) { + $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]); + } foreach ($lists as &$v) { $v['bank_card'] = $v['bank_card'] . ' '; diff --git a/app/common/model/LocalStoreOrderRecord.php b/app/common/model/LocalStoreOrderRecord.php new file mode 100755 index 00000000..2ab58077 --- /dev/null +++ b/app/common/model/LocalStoreOrderRecord.php @@ -0,0 +1,10 @@ +