0) { $extend['m.game_id'] = $_REQUEST['game_id']; } if (is_numeric($_REQUEST['pay_status'])) { if (intval($_REQUEST['pay_status']) == 2) { $extend['pay_status'] = 0; $extend['order_time'] = array('lt', time() - 1800); } elseif (intval($_REQUEST['pay_status']) == 0) { $extend['pay_status'] = $_REQUEST['pay_status']; $extend['order_time'] = array('egt', time() - 1800); } else { $extend['pay_status'] = $_REQUEST['pay_status']; } } if (!empty($_REQUEST['keyword'])) { $extend['game_name|title|server_name|small_account'] = array('like', '%' . $_REQUEST['keyword'] . '%'); } $extend['admin_status'] = 0; $this -> m_title = '订单列表'; $this -> meta_title = '订单列表'; $this -> assign('commonset', M('Kuaijieicon') -> where(['url' => 'Order/lists', 'status' => 1]) -> find()); $data = D(self::model_name) -> lists($_GET['p'], $extend); $this -> assign('list_data', $data['data']); $this -> assign('_page', $data['page']); $this -> display(); } public function del() { $this -> update_status(I('request.ids'), - 2); } /** * 订单状态 */ public function update_status($ids = '', $status = 0) { $ids = $ids ? $ids : I('request.ids'); $field = 'pay_status'; if (empty($ids)) { $this -> error('请选择要操作的数据'); } $map['id'] = array('in', $ids); switch ($status) { case - 2 : /* 删除 */ $data = ['admin_status' => 1]; $msg = array('success' => '删除成功', 'error' => '删除失败'); break; case 0 : /* 禁用 */ $data = [$field => 0]; $msg = array('success' => '禁用成功', 'error' => '禁用失败'); break; case 1 : /* 成功 */ $data = [$field => 1]; $msg = array('success' => '交易成功', 'error' => '交易失败'); break; case 2 : /* 驳回/拒绝 */ $data = [$field => 2]; $msg = array('success' => '取消成功', 'error' => '取消失败'); break; case 3 : $data = ['send_time' => time()]; $msg = array('success' => '发货成功', 'error' => '发货失败'); break; case 4 : $data = ['is_refund' => 1, 'pay_status' => 2]; $msg = array('success' => '退款成功', 'error' => '退款失败'); break; case 5 :/* 补单 */ $orderModel = D(self::model_name); $result = $orderModel->field('id, merchandise_id, seller_id')->where($map)->select(); $newIds = null; $refundIds = null; foreach ($result as $key => $value) { $extend = array( 'pay_time'=>['gt', 0], 'seller_id'=>$value['seller_id'], 'merchandise_id'=>$value['merchandise_id'], 'id'=>['neq', $value['id']] ); $orderData = $orderModel->field('id')->where($extend)->find(); if(empty($orderData)) { $newIds[] = $value['id']; } else { $refundIds[] = $value['id']; } } if(!empty($refundIds)) { $orderModel->where(['id'=>['in',$refundIds]])->save(['is_refund'=>2]); } if(empty($newIds)) { $this->error('补单失败,此商品已出售', U('lists')); } $map['id'] = ['in', $newIds]; $data = ['pay_time' => time(), 'pay_status' => 1]; $msg = array('success' => '补单成功', 'error' => '补单失败'); break; default : $this -> error('参数错误'); break; } $user = D('User'); if (D(self::model_name) -> where($map) -> save($data) !== false) { switch ($status) { case 3 : { $order = D(self::model_name) -> field('merchandise_id,real_money,seller_id,buyer_id,order_small_id') -> where(['id' => $ids]) -> find(); D('Merchandise') -> where(['id' => $order['merchandise_id']]) -> save(['over_time' => time(), 'status' => 1]); $buyer = $user -> field('promote_id,promote_account,parent_id,parent_name') -> where(['id' => $order['buyer_id']]) -> find(); $user -> where(['id' => $order['order_small_id']]) -> save(['puid' => $order['buyer_id'], 'source_time' => time(), 'promote_id' => $buyer['promote_id'], 'promote_account' => $buyer['promote_account'], 'parent_id' => $buyer['parent_id'], 'parent_name' => $buyer['parent_name']]); $gold_coin = $user -> field('gold_coin') -> where(['id' => $order['seller_id']]) -> find(); $user -> where(['id' => $order['seller_id']]) -> save(['gold_coin' => $gold_coin['gold_coin'] + $order['real_money']]); }; break; } $this -> success($msg['success'], '', IS_AJAX); } else { $this -> error($msg['error'], '', IS_AJAX); } } }