getOrderList($condition, $this->page_size, '*', 'order_id desc'); $page_count = $model_vr_order->gettotalpage(); $helper = new vorder_helper($order_list); $result = $helper->format(); return self::outsuccess(['vorders' => $result, 'mobile_page' => mobile_page($page_count)], mobile_page($page_count)); } public function infoOp() { $condition = []; if (isset($_GET['order_id'])) { $condition['order_id'] = intval($_GET['order_id']); } if (isset($_GET['pay_sn'])) { $condition['order_sn'] = $_GET['pay_sn']; } if (empty($condition)) { return self::outerr(errcode::ErrParamter); } $order = $this->get_order($condition); if($order == false) { return self::outerr(errcode::ErrOrder); } else { return self::outsuccess(['order' => $order]); } } public function change_stateOp() { $act_type = $_GET['act_type']; $order_id = intval($_GET['order_id']); $state_type = $this->state_type($act_type); if($state_type == false || $order_id <= 0) { return self::outerr(errcode::ErrParamter); } $vorder_action = new vorder_action(); $fOk = $vorder_action->change_state($state_type,$order_id); if($fOk == true) { $order = $this->get_order(["buyer_id" => session_helper::memberid(),'order_id' => $order_id]); if($order == false) { $order = null; } return self::outsuccess(["act_type" => $act_type,"order_id" => $order_id, "order" => $order]); } else { return self::outerr(errcode::ErrOrder); } } public function payOp() { $pay_sn = $_GET['pay_sn']; $payment = $_GET['payment']; if(empty($pay_sn) || empty($payment)) { return self::outerr(errcode::ErrParamter,"支付号或者支付类型错误"); } $payer = new pay_helper($pay_sn); $out_put = $payer->pay($payment,$err); if($out_put == false) { return self::outerr($err['code'],$err['msg']); } else { $out_put['payment'] = $payment; $out_put['pay_sn'] = $pay_sn; return self::outsuccess($out_put); } } public function pay_infoOp() { $order_sn = $_GET['pay_sn']; if(empty($order_sn)) { return self::outerr(errcode::ErrParamter); } $order = $this->get_order(["buyer_id" => session_helper::memberid(),'order_sn' => $order_sn]); $pay_ments = pay_helper::pay_types(); if($order == false) { return self::outerr(errcode::ErrOrder); } else { return self::outsuccess(['order' => $order,"paytype" => $pay_ments]); } } private function get_order($condition) { $model_vr_order = Model('vr_order'); $order_list = $model_vr_order->getOrderList($condition); $helper = new vorder_helper($order_list); $orders = $helper->format(); //$model_vr_order->cls(); if(!empty($orders)) { return $orders[0]; } else { return false; } } private function state_type($act_type) { if($act_type == "if_cancel") return "order_cancel"; if($act_type == "if_delete") return "order_delete"; if($act_type == "if_receive") return "order_receive"; return false; } public function indate_code_listOp() { $order_id = intval($_POST['order_id']); if ($order_id <= 0) { output_error('订单不存在'); } $model_vr_order = Model('vr_order'); $condition = []; $condition['order_id'] = $order_id; $condition['buyer_id'] = session_helper::memberid(); $order_info = $model_vr_order->getOrderInfo($condition); if (empty($order_info) || $order_info['delete_state'] == ORDER_DEL_STATE_DROP) { output_error('订单不存在'); } $order_list = []; $order_list[$order_id] = $order_info; $order_list = $model_vr_order->getCodeRefundList($order_list);//没有使用的兑换码列表 $code_list = []; if(!empty($order_list[$order_id]['code_list'])) { foreach ($order_list[$order_id]['code_list'] as $value) { $code = []; $code['vr_code'] = $value['vr_code']; $code['vr_indate'] = $value['vr_indate']; $code_list[] = $code; } } output_data(['code_list' => $code_list]); } public function upload_certOp() { $member_id = session_helper::memberid(); $order_sn = $_GET['order_sn']; $phone = $_GET['phone']; $code = $_GET['code']; $cert_account = $_GET['ali_account']; $contract_img = $_GET['contract_img']; $invoice_img = $_GET['invoice_img']; $liences_img = $_GET['license_img']; $contract_img = explode(",", $contract_img); $invoice_img = explode(",", $invoice_img); $liences_img = explode(",", $liences_img); // 输入内容判断 $validator = new Validator(); $validator->setValidate(Validator::verify_mobile($phone)); $err = $validator->validate(); if ($err != '') { return self::outerr(errcode::ErrInputParam,$err); } //校验验证码 $ret = sms_helper::check_code(Sms::register_code,$code,$phone); if(is_array($ret)) { return self::outerr($ret['code'], $ret['msg']); } //校验本人订单 $mod = Model(); $orderinfo = $mod->table('vr_order')->where(['buyer_id'=>$member_id,'order_sn'=>$order_sn])->find(); if(empty($orderinfo)){ Log::record("orderSn:{$order_sn} buyer_id:{$member_id} member_id:{$member_id}",Log::DEBUG); return self::outerr(errcode::ErrMemberRight,"非本人不能操作"); } if($phone != $orderinfo['buyer_phone']){ return self::outerr(errcode::ErrOrderMobile,"验证手机与订单手机不同"); } //已经上传过了 cert_state 0:未上传 1:等待审核 2:同意 3:拒绝 4:已打款 if(!($orderinfo['cert_state'] <= 0 || $orderinfo['cert_state'] == 3)){ return self::outerr(errcode::ErrHasOrderCert,"不可重复上传过凭证"); } //移动图片 $save_root_path = BASE_UPLOAD_PATH; $contract_path = '/contract/'; $save_path = $save_root_path.$contract_path; //下载图片至临时目录 if(! is_dir($save_path)) { if (! mkdir($save_path)) { return false; } @chmod($save_path, 0777); } $image_need_mv = [ 'img_contract'=> $contract_img, 'img_invoice' => $invoice_img, 'img_license' => $liences_img, ]; foreach ($image_need_mv as $key=>$v) { $tmp_arr = []; foreach ($v as $k =>$value){ $arr = explode('.',$value); $ext = end($arr); $newfileName = md5(time().$value).'.'.$ext; @unlink($save_path.$newfileName); $move = copy($value,$save_path.$newfileName); if($move != true){ return self::outerr(errcode::ErrOrder,"凭证上传失败,请稍后再试"); } @unlink($value); $tmp_arr[] = $newfileName; } $image_need_mv[$key] = implode(",", $tmp_arr); unset($tmp_arr); } //上传凭证 $order_id = intval($orderinfo['order_id']); $update = [ 'cert_state' => 1, 'pay_account' => $cert_account, 'img_contract'=> $image_need_mv['img_contract'], 'img_invoice'=> $image_need_mv['img_invoice'], 'img_license' =>$image_need_mv['img_license'] ]; $res = $mod->table('vr_order')->where(['order_id'=>$order_id,'cert_state'=>['in','0,3']])->update($update); if($res) { $this->add_track_log($order_id,$member_id); return self::outsuccess(array('success' => true)); } else { return self::outsuccess(array('success' => false)); } } private function add_track_log($order_id,$buyer_id){ $data['order_id'] = $order_id; $data['log_type'] = "上传凭证"; $data['log_time'] = time(); $data['log_msg'] = ""; $data['log_role'] = "用户"; $data['log_user'] = $buyer_id; $data['log_username'] = ""; $data['ip'] = getIp(); return Model('vr_order_track_log')->insert($data); } /** * 获取不同状态下订单数量 */ public function orderCountStateOp() { $result = []; $all = 0; $items = Model()->table('vr_order') ->field('order_state, count(*) as count') ->where(['buyer_id' => $_SESSION['member_id'],'delete_state' => 0]) ->group('order_state') ->select(); foreach ($items as $item) { $state = intval($item['order_state']); $count = intval($item['count']); if($state == ORDER_STATE_NEW) { $val = ['count' => $count,'order_state' => ORDER_STATE_NEW]; $all += $count; } elseif($state == ORDER_STATE_PAY) { $val = ['count' => $count,'order_state' => ORDER_STATE_PAY]; $all += $count; } elseif($state == ORDER_STATE_SEND) { $val = ['count' => $count,'order_state' => ORDER_STATE_SEND]; $all += $count; } elseif($state == ORDER_STATE_SUCCESS) { $all += $count; $val = ['count' => $count,'order_state' => ORDER_STATE_SUCCESS]; } else { continue; } $result[] = $val; } $result[] = ['order_state' => '0','count' => $all]; // //待评价 // $ev_items = Model()->table('vr_order') // ->field('order_state, count(*) as count') // ->where(['buyer_id' => $_SESSION['member_id'],'delete_state' => 0,'order_state' => ORDER_STATE_SUCCESS, 'evaluation_state' => 0]) // ->group('order_state') // ->select(); // if(!empty($ev_items)) { // $result[] = ['order_state' => '40','count' => intval($ev_items[0]['count'])]; // } self::outsuccess(['order_count' => $result]); } }