You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			479 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			479 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
namespace wstmart\admin\model;
 | 
						|
use think\Db;
 | 
						|
use think\Loader;
 | 
						|
/**
 | 
						|
 * ============================================================================
 | 
						|
 * 订单业务处理类
 | 
						|
 */
 | 
						|
class Orders extends Base{
 | 
						|
	/**
 | 
						|
	 * 获取用户订单列表
 | 
						|
	 */
 | 
						|
	public function pageQuery($orderStatus = 10000,$isAppraise = -1){
 | 
						|
		$where = ['o.dataFlag'=>1];
 | 
						|
		if($orderStatus!=10000){
 | 
						|
			$where['orderStatus'] = $orderStatus;
 | 
						|
		}
 | 
						|
		$startDate = input('startDate');
 | 
						|
		$endDate = input('endDate');
 | 
						|
		$orderNo = input('orderNo');
 | 
						|
		$shopName = input('shopName');
 | 
						|
		$userPhone = input('userPhone');
 | 
						|
		$userId = (int)input('userId');
 | 
						|
		$payType = (int)input('payType',-1);
 | 
						|
		$deliverType = (int)input('deliverType',-1);
 | 
						|
		$sort = input('sort');
 | 
						|
		$investmentStaff =htmlspecialchars(input('investmentStaff')); // mark
 | 
						|
		if($isAppraise!=-1)$where['isAppraise'] = $isAppraise;
 | 
						|
		if($orderNo!='')$where['orderNo'] = ['like','%'.$orderNo.'%'];
 | 
						|
		if($shopName!='')$where['shopName|shopSn'] = ['like','%'.$shopName.'%'];
 | 
						|
		if($userPhone!='')$where['o.userPhone'] = ['like','%'.$userPhone.'%'];
 | 
						|
		if($userId>0)$where['o.userId'] = $userId;
 | 
						|
 | 
						|
		if($startDate!='' && $endDate!=''){
 | 
						|
			$where['o.createTime'] = ['between',[$startDate.' 00:00:00',$endDate.' 23:59:59']];
 | 
						|
		}else if($startDate!=''){
 | 
						|
			$where['o.createTime'] = ['>=',$startDate.' 00:00:00'];
 | 
						|
		}else if($endDate!=''){
 | 
						|
			$where['o.createTime'] = ['<=',$endDate.' 23:59:59'];
 | 
						|
		}
 | 
						|
		$areaId1 = (int)input('areaId1');
 | 
						|
 | 
						|
		if($areaId1>0){
 | 
						|
			$where['s.areaIdPath'] = ['like',"$areaId1%"];
 | 
						|
			$areaId2 = (int)input("areaId1_".$areaId1);
 | 
						|
			if($areaId2>0)$where['s.areaIdPath'] = ['like',$areaId1."_"."$areaId2%"];
 | 
						|
			$areaId3 = (int)input("areaId1_".$areaId1."_".$areaId2);
 | 
						|
			if($areaId3>0)$where['s.areaId'] = $areaId3;
 | 
						|
		}
 | 
						|
 | 
						|
		if($deliverType!=-1)$where['o.deliverType'] = $deliverType;
 | 
						|
		if($payType!=-1)$where['o.payType'] = $payType;
 | 
						|
		$order = 'o.createTime desc';
 | 
						|
		if($sort){
 | 
						|
			$sort =  str_replace('.',' ',$sort);
 | 
						|
			$order = $sort;
 | 
						|
		}
 | 
						|
		//mark
 | 
						|
		if($investmentStaff !=""){
 | 
						|
			$where['se.investmentStaff'] = ['like',"%".$investmentStaff."%"];
 | 
						|
			$where['orderStatus'] = 2;
 | 
						|
		}
 | 
						|
		// $page = $this->alias('o')->join('__USERS__ u','o.userId=u.userId','left')->join('__SHOPS__ s','o.shopId=s.shopId','left')->where($where)
 | 
						|
		//      ->field('o.orderId,o.orderNo,u.loginName,s.shopName,s.shopId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney,
 | 
						|
		//               o.orderStatus,o.userName,o.deliverType,payType,payFrom,o.orderStatus,orderSrc,o.createTime,o.orderCode')
 | 
						|
		// 	 ->order($order)
 | 
						|
		// 	 ->paginate(input('limit/d'))->toArray();
 | 
						|
		//添加对接人员查询 mark 20180514
 | 
						|
		$page = $this->alias('o')->join('__USERS__ u','o.userId=u.userId','left')->join('__SHOPS__ s','o.shopId=s.shopId','left')->join('__SHOP_EXTRAS__ se','o.shopId=se.shopId','left')->where($where)
 | 
						|
		     ->field('o.orderId,o.orderNo,u.loginName,s.shopName,s.shopId,s.userId shopUserId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney,
 | 
						|
		              o.orderStatus,o.userName,o.payable,o.deliverType,o.productNum,o.couponsNum,o.wangNum,o.moneyNum,o.productHandlingFee,o.productTaxFee,o.couponsHandlingFee,o.couponsTaxFee,payType,payFrom,o.orderStatus,orderSrc,o.createTime,o.orderCode,se.investmentStaff')
 | 
						|
			 ->order($order)
 | 
						|
			 ->paginate(input('limit/d'))->toArray();
 | 
						|
	    if(count($page['Rows'])>0){
 | 
						|
	    	 foreach ($page['Rows'] as $key => $v){
 | 
						|
				$page['Rows'][$key]['loginName'] = "【".$v['loginName']."】";
 | 
						|
				$page['Rows'][$key]['userName'] = $v['userName'];
 | 
						|
				$shopUserInfo = getUserInfo(['userId'=>$v['shopUserId']],'loginName');
 | 
						|
				$page['Rows'][$key]['shopLoginName'] = "【".$shopUserInfo['loginName']."】";
 | 
						|
				$page['Rows'][$key]['payType'] = WSTLangPayType($v['payType']);
 | 
						|
				$page['Rows'][$key]['deliverType'] = WSTLangDeliverType($v['deliverType']==1);
 | 
						|
				$page['Rows'][$key]['status'] = WSTLangOrderStatus($v['orderStatus']);
 | 
						|
				$page['Rows'][$key]['orderCodeTitle'] = WSTOrderCodeTitle($v['orderCode']);
 | 
						|
	    	 }
 | 
						|
	    }
 | 
						|
	    return $page;
 | 
						|
	}
 | 
						|
	/**
 | 
						|
	 * 获取凭证
 | 
						|
	 * @return [type] [description]
 | 
						|
	 */
 | 
						|
	public function getCertificate(){
 | 
						|
		$certificateStatus = (int)input('post.certificateStatus');
 | 
						|
		$shopName = input('post.shopName');
 | 
						|
		$data = [];
 | 
						|
		$m = Db::name('orders');		
 | 
						|
		$tm = Model('common/Table');
 | 
						|
		$tm->setTable('shops');
 | 
						|
		// $certificateStatus = 2;
 | 
						|
		if($certificateStatus <=1){//未上传和不需上传的订单
 | 
						|
			$where = ['certificateStatus'=>$certificateStatus,'orderStatus'=>2,'dataFlag'=>1];
 | 
						|
			if($shopName){
 | 
						|
				$shopIds  = $tm->getColumn(['shopName'=>['LIKE','%'.$shopName.'%']],'shopId');
 | 
						|
				$where = array_merge($where,['shopId'=>['IN',$shopIds]]);
 | 
						|
			}
 | 
						|
			$data = $m->where($where)->group('shopId')->field('shopId,sum(payable) payNum')->paginate(input('limit/d'))->toArray();
 | 
						|
			foreach ($data['Rows'] as &$v) {
 | 
						|
				$v['status'] = $certificateStatus;
 | 
						|
				$v['list'] = $m->where($where)->where(['shopId'=>$v['shopId']])->field('orderId,orderNo,payable')->select();
 | 
						|
			}			
 | 
						|
		}else{
 | 
						|
			$where = ['status'=>$certificateStatus];
 | 
						|
			if($shopName){
 | 
						|
				$shopIds  = $tm->getColumn(['shopName'=>['LIKE','%'.$shopName.'%']],'shopId');
 | 
						|
				$where = array_merge($where,['shopId'=>['IN',$shopIds]]);
 | 
						|
			}
 | 
						|
			$data = Db::name('order_shop_certificate')->where($where)->field('*')->paginate(input('limit/d'))->toArray();
 | 
						|
			foreach ($data['Rows'] as &$v) {
 | 
						|
				$v['payNum'] = $m->where(['orderId'=>['IN',$v['orderIds']]])->sum('payable');
 | 
						|
				$v['list'] = $m->where(['orderId'=>['IN',$v['orderIds']]])->field('orderId,orderNo,payable')->select();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		foreach ($data['Rows'] as &$val) {
 | 
						|
			$val['shop'] = $tm->getInfo(['shopId'=>$val['shopId']],'shopName,phone');
 | 
						|
		}
 | 
						|
		return $data;
 | 
						|
	}
 | 
						|
	//凭证设置
 | 
						|
    public function certificateSet(){
 | 
						|
        $id = input('post.id');
 | 
						|
        $status = input('post.status') + 2;
 | 
						|
        $data['status'] = $status;
 | 
						|
        $data['reasonsForRefusal'] = (string)input('post.reasonsForRefusal');
 | 
						|
        $m = Model('common/Table');        
 | 
						|
		$m->setTable('order_shop_certificate');
 | 
						|
        $orderIds = $m->getField(['id'=>$id],'orderIds');
 | 
						|
        Db::startTrans();
 | 
						|
        try{
 | 
						|
	        $m->setTable('order_shop_certificate');
 | 
						|
	        if(false !== $m->updateInfo(['id'=>$id],$data)){
 | 
						|
	        	$m->setTable('orders');
 | 
						|
	        	$m->updateInfo(['orderId'=>['IN',$orderIds]],['certificateStatus'=>$status]);
 | 
						|
	        }
 | 
						|
			Db::commit();
 | 
						|
			return WSTReturn("操作成功",1); 
 | 
						|
        }catch (\Exception $e) {
 | 
						|
 | 
						|
            Db::rollback();errLog($e);
 | 
						|
        }
 | 
						|
        return WSTReturn("操作失败"); 
 | 
						|
    }
 | 
						|
    /**
 | 
						|
	 * 获取用户退款订单列表
 | 
						|
	 */
 | 
						|
	public function refundPageQuery(){
 | 
						|
		$where = ['o.dataFlag'=>1];
 | 
						|
		$where['orderStatus'] = ['in',[-1,-4]];
 | 
						|
		$where['o.payType'] = 1;
 | 
						|
		$orderNo = input('orderNo');
 | 
						|
		$shopName = input('shopName');
 | 
						|
		$deliverType = (int)input('deliverType',-1);
 | 
						|
		$areaId1 = (int)input('areaId1');
 | 
						|
		$areaId2 = (int)input('areaId2');
 | 
						|
		$areaId3 = (int)input('areaId3');
 | 
						|
		$isRefund = (int)input('isRefund',-1);
 | 
						|
		if($orderNo!='')$where['orderNo'] = ['like','%'.$orderNo.'%'];
 | 
						|
		if($shopName!='')$where['shopName|shopSn'] = ['like','%'.$shopName.'%'];
 | 
						|
		if($areaId1>0)$where['s.areaId1'] = $areaId1;
 | 
						|
		if($areaId2>0)$where['s.areaId2'] = $areaId2;
 | 
						|
		if($areaId3>0)$where['s.areaId3'] = $areaId3;
 | 
						|
		if($deliverType!=-1)$where['o.deliverType'] = $deliverType;
 | 
						|
		if($isRefund!=-1)$where['o.isRefund'] = $isRefund;
 | 
						|
		$page = $this->alias('o')->join('__SHOPS__ s','o.shopId=s.shopId','left')
 | 
						|
		     ->join('__ORDER_REFUNDS__ orf ','o.orderId=orf.orderId','left') 
 | 
						|
		     ->where($where)
 | 
						|
		     ->field('o.orderId,o.orderNo,s.shopName,s.shopId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney,
 | 
						|
		              o.orderStatus,o.userName,o.deliverType,payType,payFrom,o.orderStatus,orderSrc,orf.refundRemark,isRefund,o.createTime')
 | 
						|
			 ->order('o.createTime', 'desc')
 | 
						|
			 ->paginate(input('pagesize/d'))->toArray();
 | 
						|
	    if(count($page['Rows'])>0){
 | 
						|
	    	 foreach ($page['Rows'] as $key => $v){
 | 
						|
	    	 	 $page['Rows'][$key]['payType'] = WSTLangPayType($v['payType']);
 | 
						|
	    	 	 $page['Rows'][$key]['deliverType'] = WSTLangDeliverType($v['deliverType']==1);
 | 
						|
	    	 	 $page['Rows'][$key]['status'] = WSTLangOrderStatus($v['orderStatus']);
 | 
						|
	    	 }
 | 
						|
	    }
 | 
						|
	    return $page;
 | 
						|
	}
 | 
						|
	/**
 | 
						|
	 * 获取退款资料
 | 
						|
	 */
 | 
						|
	public function getInfoByRefund(){
 | 
						|
		return $this->where(['orderId'=>(int)input('get.id'),'isRefund'=>0,'orderStatus'=>['in',[-1,-4]]])
 | 
						|
		         ->field('orderNo,orderId,goodsMoney,totalMoney,realTotalMoney,deliverMoney,payType,payFrom,tradeNo')
 | 
						|
		         ->find();
 | 
						|
	}
 | 
						|
	/**
 | 
						|
	 * 退款
 | 
						|
	 */
 | 
						|
	public function orderRefund(){
 | 
						|
		$id = (int)input('post.id');
 | 
						|
		$content = input('post.content');
 | 
						|
		if($id==0)return WSTReturn("操作失败!");
 | 
						|
		$order = $this->where(['orderId'=>(int)input('post.id'),'payType'=>1,'isRefund'=>0,'orderStatus'=>['in',[-1,-4]]])
 | 
						|
		         ->field('userId,orderNo,orderId,goodsMoney,totalMoney,realTotalMoney,deliverMoney,payType,payFrom,tradeNo')
 | 
						|
		         ->find();
 | 
						|
		if(empty($order))return WSTReturn("该订单不存在或已退款!");
 | 
						|
		Db::startTrans();
 | 
						|
        try{
 | 
						|
			$order->isRefund = 1;
 | 
						|
			$order->save();
 | 
						|
			//修改用户账户金额
 | 
						|
			Db::name('users')->where('userId',$order->userId)->setInc('userMoney',$order->realTotalMoney);
 | 
						|
			//创建资金流水记录
 | 
						|
			$lm = [];
 | 
						|
			$lm['targetType'] = 0;
 | 
						|
			$lm['targetId'] = $order->userId;
 | 
						|
			$lm['dataId'] = $order->orderId;
 | 
						|
			$lm['dataSrc'] = 1;
 | 
						|
			$lm['remark'] = '订单【'.$order->orderNo.'】退款¥'.$order->realTotalMoney."。".(($content!='')?"【退款备注】:".$content:'');
 | 
						|
			$lm['moneyType'] = 1;
 | 
						|
			$lm['money'] = $order->realTotalMoney;
 | 
						|
			$lm['payType'] = 0;
 | 
						|
			$lm['createTime'] = date('Y-m-d H:i:s');
 | 
						|
			model('LogMoneys')->save($lm);
 | 
						|
			//创建退款记录
 | 
						|
			$data = [];
 | 
						|
			$data['orderId'] = $id;
 | 
						|
			$data['refundRemark'] = $content;
 | 
						|
			$data['refundTime'] = date('Y-m-d H:i:s');
 | 
						|
			$rs = Db::name('order_refunds')->insert($data);
 | 
						|
			if(false !== $rs){
 | 
						|
				//发送一条用户信息
 | 
						|
				WSTSendMsg($order['userId'],"您的退款订单【".$order['orderNo']."】已处理,请留意账户到账情况。".(($content!='')?"【退款备注:".$content."】":""),['from'=>1,'dataId'=>$id]);
 | 
						|
				Db::commit();
 | 
						|
				return WSTReturn("操作成功",1); 
 | 
						|
			}
 | 
						|
        }catch (\Exception $e) {
 | 
						|
 | 
						|
            Db::rollback();errLog($e);
 | 
						|
        }
 | 
						|
		return WSTReturn("操作失败,请刷新后再重试"); 
 | 
						|
	}
 | 
						|
	
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 获取订单详情
 | 
						|
	 */
 | 
						|
	public function getByView($orderId){
 | 
						|
		$orders = $this->alias('o')->join('__EXPRESS__ e','o.expressId=e.expressId','left')
 | 
						|
		               ->join('__ORDER_REFUNDS__ orf ','o.orderId=orf.orderId','left')
 | 
						|
		               ->join('__SHOPS__ s','o.shopId=s.shopId','left')
 | 
						|
		               ->join('__USERS__ u','o.userId=u.userId','left')
 | 
						|
		               ->where('o.dataFlag=1 and o.orderId='.$orderId)
 | 
						|
		               ->field('o.*,e.expressName,u.loginName,s.shopName,s.shopQQ,s.shopWangWang,orf.refundRemark,orf.refundTime,orf.backProductNum,orf.backCouponsNum,orf.backWangNum')->find();
 | 
						|
		if(empty($orders))return WSTReturn("无效的订单信息");
 | 
						|
		//获取订单信息
 | 
						|
		$orders['log'] = Db::name('log_orders')->where('orderId',$orderId)->order('logId asc')->select();
 | 
						|
		//获取订单商品
 | 
						|
		$orders['goods'] = Db::name('order_goods')->where('orderId',$orderId)->order('id asc')->select();
 | 
						|
		$orders['userCertificate'] = Db::name('order_certificate')->where(['orderId'=>$orderId,'isShop'=>0])->order('id desc')->select();
 | 
						|
		//$orders['shopCertificate'] = Db::name('order_certificate')->where(['orderId'=>$orderId,'isShop'=>1])->order('id desc')->select();
 | 
						|
		return $orders;
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 导出订单
 | 
						|
	 */
 | 
						|
	public function toExport(){
 | 
						|
		$name='订单表';
 | 
						|
		$where = ['o.dataFlag'=>1];
 | 
						|
		$orderStatus = (int)input('orderStatus',0);
 | 
						|
		if($orderStatus==0){
 | 
						|
			$name='待发货订单表';
 | 
						|
		}else if($orderStatus==-2){
 | 
						|
			$name='待付款订单表';
 | 
						|
		}else if($orderStatus==1){
 | 
						|
			$name='配送中订单表';
 | 
						|
		}else if($orderStatus==10000){
 | 
						|
			$name='订单列表';
 | 
						|
		}else if($orderStatus==-1){
 | 
						|
			$name='取消订单表';
 | 
						|
		}else if($orderStatus==-3){
 | 
						|
			$name='拒收订单表';
 | 
						|
		}else if($orderStatus==2){
 | 
						|
			$name='已收货订单表'; 
 | 
						|
		}
 | 
						|
		if($orderStatus!=10000){
 | 
						|
			$where['o.orderStatus'] = $orderStatus;
 | 
						|
		}
 | 
						|
		$startDate = input('startDate');
 | 
						|
		$endDate = input('endDate');
 | 
						|
		$orderNo = input('orderNo');
 | 
						|
		$shopName = input('shopName');
 | 
						|
		$userPhone = input('userPhone');
 | 
						|
		$userId = (int)input('userId');
 | 
						|
		$payType = (int)input('payType',-1);
 | 
						|
		$deliverType = (int)input('deliverType',-1);
 | 
						|
		if($startDate!='' && $endDate!=''){
 | 
						|
			$where['o.createTime'] = ['between',[$startDate.' 00:00:00',$endDate.' 23:59:59']];
 | 
						|
		}else if($startDate!=''){
 | 
						|
			$where['o.createTime'] = ['>=',$startDate.' 00:00:00'];
 | 
						|
		}else if($endDate!=''){
 | 
						|
			$where['o.createTime'] = ['<=',$endDate.' 23:59:59'];
 | 
						|
		}
 | 
						|
		if($orderNo!='')$where['orderNo'] = ['like','%'.$orderNo.'%'];
 | 
						|
		if($shopName!='')$where['shopName|shopSn'] = ['like','%'.$shopName.'%'];
 | 
						|
		if($userPhone!='')$where['o.userPhone'] = ['like','%'.$userPhone.'%'];
 | 
						|
		if($userId>0){
 | 
						|
			$where['o.userId'] = $userId;
 | 
						|
			$user = Db::name('users')->where('userId',$userId)->field('userName')->find();
 | 
						|
			$name = $user['userName'].'的订单表';
 | 
						|
		}
 | 
						|
		$areaId1 = (int)input('areaId1');
 | 
						|
		if($areaId1>0){
 | 
						|
			$where['s.areaIdPath'] = ['like',"$areaId1%"];
 | 
						|
			$areaId2 = (int)input("areaId1_".$areaId1);
 | 
						|
			if($areaId2>0)$where['s.areaIdPath'] = ['like',$areaId1."_"."$areaId2%"];
 | 
						|
			$areaId3 = (int)input("areaId1_".$areaId1."_".$areaId2);
 | 
						|
			if($areaId3>0)$where['s.areaId'] = $areaId3;
 | 
						|
		}
 | 
						|
		
 | 
						|
		if($deliverType!=-1)$where['o.deliverType'] = $deliverType;
 | 
						|
		if($payType!=-1)$where['o.payType'] = $payType;
 | 
						|
		$page = $this->alias('o')->where($where)
 | 
						|
		->join('__USERS__ u','o.userId=u.userId','left')
 | 
						|
		->join('__SHOPS__ s','o.shopId=s.shopId','left')
 | 
						|
		->join('__LOG_ORDERS__ lo','lo.orderId=o.orderId and lo.orderStatus in (-1,-3) ','left')
 | 
						|
		->field('o.orderId,o.orderNo,u.loginName,s.shopName,s.shopId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney,o.deliverMoney,lo.logContent,o.orderStatus,o.userName,o.userAddress,o.userPhone,o.orderRemarks,o.invoiceClient,o.receiveTime,
 | 
						|
			o.deliveryTime,o.deliverType,o.productNum,o.couponsNum,o.wangNum,o.moneyNum,o.productHandlingFee,o.productTaxFee,o.couponsHandlingFee,o.couponsTaxFee,payType,payFrom,o.orderStatus,orderSrc,o.commissionFee,o.createTime')
 | 
						|
				              ->order('o.createTime desc')
 | 
						|
				              ->select();			              
 | 
						|
		if(count($page)>0){
 | 
						|
			foreach ($page as $key => $v){
 | 
						|
				$page[$key]['userName'] = "【".$v['loginName']."】".$v['userName'];
 | 
						|
				$page[$key]['payTypeName'] = WSTLangPayType($v['payType']);
 | 
						|
				$page[$key]['deliverType'] = WSTLangDeliverType($v['deliverType']==1);
 | 
						|
				$page[$key]['status'] = WSTLangOrderStatus($v['orderStatus']);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		Loader::import('phpexcel.PHPExcel.IOFactory');
 | 
						|
		$objPHPExcel = new \PHPExcel();
 | 
						|
		// 设置excel文档的属性
 | 
						|
		$objPHPExcel->getProperties()->setCreator("heyuanhui")//创建人
 | 
						|
		->setLastModifiedBy("heyuanhui")//最后修改人
 | 
						|
		->setTitle($name)//标题
 | 
						|
		->setSubject($name)//题目
 | 
						|
		->setDescription($name)//描述
 | 
						|
		->setKeywords("订单")//关键字
 | 
						|
		->setCategory("Test result file");//种类
 | 
						|
	
 | 
						|
		// 开始操作excel表
 | 
						|
		$objPHPExcel->setActiveSheetIndex(0);
 | 
						|
		// 设置工作薄名称
 | 
						|
		$objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', 'Sheet'));
 | 
						|
		// 设置默认字体和大小
 | 
						|
		$objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', ''));
 | 
						|
		$objPHPExcel->getDefaultStyle()->getFont()->setSize(11);
 | 
						|
		$styleArray = array(
 | 
						|
				'font' => array(
 | 
						|
						'bold' => true,
 | 
						|
						'color'=>array(
 | 
						|
								'argb' => 'ffffffff',
 | 
						|
						)
 | 
						|
				),
 | 
						|
				'borders' => array (
 | 
						|
						'outline' => array (
 | 
						|
								'style' => \PHPExcel_Style_Border::BORDER_THIN,  //设置border样式
 | 
						|
								'color' => array ('argb' => 'FF000000'),     //设置border颜色
 | 
						|
						)
 | 
						|
				)
 | 
						|
		);
 | 
						|
		//设置宽
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(35);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(12);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(8);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(8);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(8);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(8);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(16);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth(8);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('R')->setWidth(16);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('S')->setWidth(26);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('T')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('U')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('V')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('W')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('X')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('Y')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getColumnDimension('Z')->setWidth(25);
 | 
						|
		$objPHPExcel->getActiveSheet()->getStyle('A1:W1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
 | 
						|
		$objPHPExcel->getActiveSheet()->getStyle('A1:W1')->getFill()->getStartColor()->setARGB('333399');
 | 
						|
		
 | 
						|
		$objPHPExcel->getActiveSheet()
 | 
						|
								->setCellValue('A1', '订单编号')
 | 
						|
								->setCellValue('B1', '订单状态')
 | 
						|
								->setCellValue('C1', '店铺名称')
 | 
						|
								->setCellValue('D1', '收货人')
 | 
						|
								->setCellValue('E1', '收货地址')
 | 
						|
								->setCellValue('F1', '联系方式')
 | 
						|
								->setCellValue('G1', '支付方式')
 | 
						|
								->setCellValue('H1', '配送方式')
 | 
						|
								->setCellValue('I1', '买家留言')
 | 
						|
								->setCellValue('J1', '发票信息')
 | 
						|
								->setCellValue('K1', '订单总金额')
 | 
						|
								->setCellValue('L1', '现金额')
 | 
						|
								->setCellValue('M1', '旺旺券')
 | 
						|
								->setCellValue('N1', '产品券')
 | 
						|
								->setCellValue('O1', '产品券税')
 | 
						|
								->setCellValue('P1', '产品券手续费')
 | 
						|
								->setCellValue('Q1', '优惠券')
 | 
						|
								->setCellValue('R1', '优惠券税')
 | 
						|
								->setCellValue('S1', '优惠券手续费')
 | 
						|
								->setCellValue('T1', '运费')
 | 
						|
								->setCellValue('U1', '实付金额')
 | 
						|
								->setCellValue('V1', '支付方式')
 | 
						|
								->setCellValue('W1', '下单时间')
 | 
						|
								->setCellValue('X1', '发货时间')
 | 
						|
								->setCellValue('Y1', '收货时间')
 | 
						|
								->setCellValue('Z1', '取消/拒收原因');
 | 
						|
		$objPHPExcel->getActiveSheet()->getStyle('A1:U1')->applyFromArray($styleArray);
 | 
						|
	
 | 
						|
		for ($row = 0; $row < count($page); $row++){
 | 
						|
			$i = $row+2;
 | 
						|
			$objPHPExcel->getActiveSheet()
 | 
						|
			 					->setCellValue('A'.$i, $page[$row]['orderNo'])
 | 
						|
			 					->setCellValue('B'.$i, $page[$row]['status'])
 | 
						|
			 					->setCellValue('C'.$i, $page[$row]['shopName'])
 | 
						|
			 					->setCellValue('D'.$i, $page[$row]['userName'])
 | 
						|
			 					->setCellValue('E'.$i, $page[$row]['userAddress'])
 | 
						|
								->setCellValue('F'.$i, $page[$row]['userPhone'])
 | 
						|
								->setCellValue('G'.$i, $page[$row]['payTypeName'])
 | 
						|
								->setCellValue('H'.$i, $page[$row]['deliverType'])
 | 
						|
								->setCellValue('I'.$i, $page[$row]['orderRemarks'])
 | 
						|
								->setCellValue('J'.$i, $page[$row]['invoiceClient'])
 | 
						|
								->setCellValue('K'.$i, $page[$row]['totalMoney'])
 | 
						|
								->setCellValue('L'.$i, $page[$row]['moneyNum'])
 | 
						|
								->setCellValue('M'.$i, $page[$row]['wangNum'])
 | 
						|
								->setCellValue('N'.$i, $page[$row]['productNum'])
 | 
						|
								->setCellValue('O'.$i, $page[$row]['productTaxFee'])
 | 
						|
								->setCellValue('P'.$i, $page[$row]['productHandlingFee'])
 | 
						|
								->setCellValue('Q'.$i, $page[$row]['couponsNum'])
 | 
						|
								->setCellValue('R'.$i, $page[$row]['couponsTaxFee'])
 | 
						|
								->setCellValue('S'.$i, $page[$row]['couponsHandlingFee'])
 | 
						|
								->setCellValue('T'.$i, $page[$row]['deliverMoney'])
 | 
						|
								->setCellValue('U'.$i, $page[$row]['realTotalMoney'])
 | 
						|
								->setCellValue('V'.$i, $page[$row]['payFrom'])
 | 
						|
								->setCellValue('W'.$i, $page[$row]['createTime'])
 | 
						|
								->setCellValue('X'.$i, $page[$row]['deliveryTime'])
 | 
						|
								->setCellValue('Y'.$i, $page[$row]['receiveTime'])
 | 
						|
								->setCellValue('Z'.$i, $page[$row]['logContent']);
 | 
						|
		}
 | 
						|
	
 | 
						|
		//输出EXCEL格式
 | 
						|
		$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
 | 
						|
		// 从浏览器直接输出$filename
 | 
						|
		header('Content-Type:application/csv;charset=UTF-8');
 | 
						|
		header("Pragma: public");
 | 
						|
		header("Expires: 0");
 | 
						|
		header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
 | 
						|
		header("Content-Type:application/force-download");
 | 
						|
		header("Content-Type:application/vnd.ms-excel;");
 | 
						|
		header("Content-Type:application/octet-stream");
 | 
						|
		header("Content-Type:application/download");
 | 
						|
		header('Content-Disposition: attachment;filename="'.$name.'.xls"');
 | 
						|
		header("Content-Transfer-Encoding:binary");
 | 
						|
		$objWriter->save('php://output');
 | 
						|
	}
 | 
						|
}
 |