<?php namespace App\Model\Pcb; use App\Map\PcbOrderMap; use App\Map\PcbPurchaseMap; use Illuminate\Database\Eloquent\Model; use Request; use DB; class PcbPurchaseModel extends Model { protected $connection='pcb'; protected $table='purchase'; protected $primaryKey='id'; public $timestamps = false; //列表 public function getList($type =1) { $arr = ['p', 'limit','self','start_time','end_time','status',"user_account","order_sn","purchase_sn","order_type","adtag","ptag"]; $input = Request::only($arr); $input=TrimX($input,true,$arr); // //查询数据\ $list = $this->where(function ($query) use ($input) { foreach ($input as $k => $v){ $v = trim($v); switch ($k){ case "p": case "limit": case "_url": continue; break; case "start_time": $query->where('create_time', '>=', strtotime($v)); break; case "end_time": $query->where('create_time', '<=',strtotime($v)); break; default: $query->whereIn($k, explode(',',trim($v,','))); break; } } })->orderBy('purchase_id','desc'); //getSql(); if ($type == 1){ $input['limit'] = 10; $input['p'] = isset($input['p']) ? $input['p'] : 1; $list = $list->paginate($input['limit'], ['*'], 'p', $input['p'])->toArray(); if (!$list) return [20001, '没有数据']; $data = $this->clearData($list['data']); return [0, '成功', $data, $list['total']]; }else{ return $this->clearData($list->get()->toArray()); } } //清洗列表数据 private function clearData($data){ if (!is_array($data) || count($data) == 0 || $data == ""){ return []; } $con = DB::connection('pcb'); foreach ($data as $k=>&$v){ //查询采购 if ($v['purchase_amount'] > 0){ $v['tiaojia'] = $v['purchase_amount'] != $v['order_amount'] ? "是" :"否"; //是否调价 }else{ $v['tiaojia'] = $v['purchase_amount'] = ""; } $v['order_pay_type'] = PcbOrderMap::$order_pay_type[$v['order_pay_type']]; $v['order_type'] = PcbOrderMap::$order_type[$v['order_type']]; $v['status_name'] = @PcbPurchaseMap::$status[$v['status']]; $v['create_time'] = date('Y-m-d H:i:s',$v['create_time']); $v['pay_time'] = $v['pay_time'] > 0 ? date('Y-m-d H:i:s',$v['pay_time']) : ""; $shipping = $con->table('shipping')->where(['relevance_id' => $v['order_id'],'shipping_type'=>1])->first(); $v['shipping_no'] = $shipping ? $shipping->shipping_no : ""; $v['shipping_name'] = $shipping ? $shipping->shipping_name : ""; //供应商审核结果 $orderAuditReason2 = $con->table('order_audit_reason')->where(['order_id' => $v['order_id'],'type'=>2])->orderBy("id","desc")->first(); $v['audit_reason'] = $orderAuditReason2 ? $orderAuditReason2->remark : ""; } return $data; } //导出 public function export() { $data = $this->getList(2); $column = array('ID','会员账号','交易订单编号','采购订单编号','是否调价','订单金额','调整后订单金额','订单状态','订单类型','支付方式','下单时间'); // 表头 $fileName = 'PCB采购列表导出'.date('YmdHis', time()).'.csv'; $temp = []; foreach ($data as $k=>$v){ array_push($temp,[ 'purchase_id'=>$v['purchase_id'], 'user_account' =>$v['user_account']."\n", 'order_sn' =>$v['order_sn']."\n", 'purchase_sn' =>@$v['purchase_sn']."\n", 'tiaojia' =>$v['tiaojia'], 'order_amount' =>$v['order_amount'], 'purchase_amount' =>$v['purchase_amount'], 'status_name' =>$v['status_name'], 'order_type' =>$v['order_type'], 'order_pay_type' =>$v['order_pay_type'], 'create_time' =>$v['create_time'], ]); } export_csv($temp, $column, $fileName); } }