12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
- namespace statistics;
- use function PHPUnit\Framework\isNull;
- class order_reader
- {
- public function refill_vr_reader($cond,$order='refill_order.order_id asc')
- {
- $result = Model('')->table('refill_order,vr_order')
- ->field('min(refill_order.order_id) as min_oid,max(vr_order.order_id) as max_oid')
- ->join('inner')
- ->on('refill_order.order_id=vr_order.order_id')
- ->where($cond)
- ->find();
- $min_oid = $result['min_oid'];
- $max_oid = $result['max_oid'];
- if(is_null($min_oid) || is_null($max_oid)) {
- return false;
- }
- $start = intval($min_oid);
- while (true)
- {
- $cond['vr_order.order_id'] = ['egt', $start];
- $items = Model('')->table('refill_order,vr_order')
- ->field('*')
- ->join('inner')
- ->on('refill_order.order_id=vr_order.order_id')
- ->where($cond)
- ->limit(1000)
- ->order($order)
- ->select();
- if(empty($items)) {
- break;
- }
- foreach ($items as $item) {
- $start = intval($item['order_id']) + 1;
- yield $item;
- }
- }
- return true;
- }
- }
|