You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			795 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			795 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php 
 | |
| 
 | |
| namespace wstmart\admin\model;
 | |
| 
 | |
| use think\Db;
 | |
| 
 | |
| use think\Loader;
 | |
| 
 | |
| /**
 | |
| 
 | |
|  * ============================================================================
 | |
| 
 | |
|  * 结算业务处理
 | |
| 
 | |
|  */
 | |
| 
 | |
| class Settlements extends Base{
 | |
| 
 | |
|     /**
 | |
| 
 | |
| 	 * 获取结算列表
 | |
| 
 | |
| 	 */
 | |
| 
 | |
| 	public function pageQuery(){
 | |
| 
 | |
| 		$settlementNo = input('settlementNo');
 | |
| 
 | |
| 		$shopName = input('shopName');
 | |
| 
 | |
| 		$settlementStatus = (int)input('settlementStatus',-1);
 | |
| 
 | |
| 		$sort = input('sort');
 | |
| 
 | |
| 		$where = [];
 | |
| 
 | |
| 		if($settlementNo!='')$where['settlementNo'] = ['like','%'.$settlementNo.'%'];
 | |
| 
 | |
|         if($shopName!='')$where['shopName|shopSn'] = ['like','%'.$shopName.'%']; 
 | |
| 
 | |
|         if($settlementStatus>=0)$where['settlementStatus'] = $settlementStatus;
 | |
| 
 | |
|         $order = 'st.settlementId desc';
 | |
| 
 | |
|         if($sort){
 | |
| 
 | |
|         	$sortArr = explode('.',$sort);
 | |
| 
 | |
|         	$order = $sortArr[0].' '.$sortArr[1];
 | |
| 
 | |
|         	if($sortArr[0]=='settlementNo'){
 | |
| 
 | |
|         		$order = $sortArr[0].'+0 '.$sortArr[1];
 | |
| 
 | |
|         	}
 | |
| 
 | |
|         }
 | |
| 
 | |
|         $result=Db::name('settlements')->alias('st')
 | |
| 
 | |
|             ->join('__SHOPS__ s','s.shopId=st.shopId','left')
 | |
| 
 | |
|             ->join('__ORDERS__ o','o.settlementId=st.settlementId','left')
 | |
| 
 | |
|             ->join('__SHOPS_DEPOSIT_DETAIL__ sd','sd.orderId=o.orderId','left')
 | |
| 
 | |
|             ->join('__PAYMENTS__ p','p.payCode=o.payFrom','left')
 | |
| 
 | |
|             ->where($where)->field('s.shopName,settlementNo,sd.cashDeposit,st.settlementId,st.settlementMoney,st.commissionFee,st.backMoney,st.settlementStatus,st.settlementTime,st.createTime,payFrom,payName')->order($order)
 | |
| 
 | |
| 			->paginate(input('limit/d'))->toArray();
 | |
| 
 | |
|         return $result;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	/**
 | |
| 
 | |
| 	 * 获取结算订单详情
 | |
| 
 | |
| 	 */
 | |
| 
 | |
| 	public function getById(){
 | |
| 
 | |
|         $settlementId = (int)input('id');
 | |
| 
 | |
|         $object =  Db::name('settlements')->alias('st')->where('settlementId',$settlementId)->join('__SHOPS__ s','s.shopId=st.shopId','left')->field('s.shopName,st.*')->find();
 | |
| 
 | |
|         // dump($object);die;
 | |
| 
 | |
|         
 | |
| 
 | |
|         if(!empty($object)){
 | |
| 
 | |
|         	$object['list'] = Db::name('orders')->alias('o')->join('__SHOPS_DEPOSIT_DETAIL__ sd','o.orderId=sd.orderId','left')->where(['o.settlementId'=>$settlementId])
 | |
| 
 | |
|         	          ->field('sd.cashDeposit,o.orderId,orderNo,o.payType,goodsMoney,deliverMoney,realTotalMoney,totalMoney,commissionFee,scoreMoney,createTime')
 | |
| 
 | |
|         	          ->order('payType desc,orderId desc')->select();
 | |
| 
 | |
|         }
 | |
| 
 | |
|         // dump($object);die;
 | |
| 
 | |
|         return $object;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 
 | |
| 	 * 处理订单
 | |
| 
 | |
| 	 */
 | |
| 
 | |
| 	public function handle(){
 | |
| 
 | |
| 		$id = (int)input('settlementId');
 | |
| 
 | |
| 		$remarks = input('remarks');
 | |
| 
 | |
| 		Db::startTrans();
 | |
| 
 | |
|         try{
 | |
| 
 | |
| 			$object = $this->get($id);
 | |
| 
 | |
| 			$object->settlementStatus = 1;
 | |
| 
 | |
| 			$object->settlementTime = date('Y-m-d H:i:s');
 | |
| 
 | |
| 			if($remarks!='')$object->remarks = $remarks;
 | |
| 
 | |
| 			$rs = $object->save();
 | |
| 
 | |
| 			if(false !== $rs){
 | |
| 
 | |
| 				$shop = model('Shops')->get($object->shopId);
 | |
| 
 | |
| 				WSTSendMsg($shop['userId'],"您的结算申请【".$object->settlementNo."】已处理,请留意到账户息哦~",['from'=>4,'dataId'=>$id]);
 | |
| 
 | |
| 				$shop->shopMoney = $shop->shopMoney+$object->backMoney;
 | |
| 
 | |
| 				$shop->paymentMoney = $shop->paymentMoney + $object->commissionFee;
 | |
| 
 | |
| 				$shop->save();
 | |
| 
 | |
|                 $lmarr = [];
 | |
| 
 | |
| 				//增加资金变动信息
 | |
| 
 | |
|                 if($object->settlementMoney>0){
 | |
| 
 | |
|                     $lm = [];
 | |
| 
 | |
|                     $lm['targetType'] = 1;
 | |
| 
 | |
|                     $lm['targetId'] = $object->shopId;
 | |
| 
 | |
|                     $lm['dataId'] = $id;
 | |
| 
 | |
|                     $lm['dataSrc'] = 2;
 | |
| 
 | |
|                     $lm['remark'] = '结算订单申请【'.$object->settlementNo.'】收入订单金额¥'.$object->settlementMoney;
 | |
| 
 | |
|                     $lm['moneyType'] = 1;
 | |
| 
 | |
|                     $lm['money'] = $object->settlementMoney;
 | |
| 
 | |
|                     $lm['payType'] = 0;
 | |
| 
 | |
|                     $lm['createTime'] = date('Y-m-d H:i:s');
 | |
| 
 | |
|                     $lmarr[] = $lm;
 | |
| 
 | |
|                 }
 | |
| 
 | |
|                 if($object->commissionFee>0){
 | |
| 
 | |
|                     //要对有积分支付的佣金记录进行处理
 | |
| 
 | |
|                     $commissionFee = $object->commissionFee;
 | |
| 
 | |
|                     //如果backMoney小于0则说明平台收到的钱不足以支付佣金,这个backMoney已经减去了积分支付,所以直接显示backMoney为应付的佣金就好
 | |
| 
 | |
|                     if($object->backMoney<0){
 | |
| 
 | |
|                         $commissionFee = $object->backMoney;
 | |
| 
 | |
|                     }
 | |
| 
 | |
|                     $lm = [];
 | |
| 
 | |
|                     $lm['targetType'] = 1;
 | |
| 
 | |
|                     $lm['targetId'] = $object->shopId;
 | |
| 
 | |
|                     $lm['dataId'] = $id;
 | |
| 
 | |
|                     $lm['dataSrc'] = 2;
 | |
| 
 | |
|                     $lm['remark'] = '结算订单申请【'.$object->settlementNo.'】支出订单佣金¥'.$commissionFee."。".(($object->remarks!='')?"【操作备注】:".$object->remarks:'');
 | |
| 
 | |
|                     $lm['moneyType'] = 0;
 | |
| 
 | |
|                     $lm['money'] = $commissionFee;
 | |
| 
 | |
|                     $lm['payType'] = 0;
 | |
| 
 | |
|                     $lm['createTime'] = date('Y-m-d H:i:s');
 | |
| 
 | |
|                     $lmarr[] = $lm;
 | |
| 
 | |
|                 }
 | |
| 
 | |
| 				if(count($lmarr)>0)model('LogMoneys')->saveAll($lmarr);
 | |
| 
 | |
| 				Db::commit();
 | |
| 
 | |
| 				return WSTReturn('操作成功!',1);
 | |
| 
 | |
| 			}
 | |
| 
 | |
| 		}catch (\Exception $e) {
 | |
| 
 | |
|             Db::rollback();errLog($e);
 | |
| 
 | |
|         }
 | |
| 
 | |
| 		return WSTReturn('操作失败!',-1);
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	/**
 | |
| 
 | |
| 	 * 获取订单商品
 | |
| 
 | |
| 	 */
 | |
| 
 | |
| 	public function pageGoodsQuery(){
 | |
| 
 | |
|         $id = (int)input('id');
 | |
| 
 | |
|         return Db::name('orders')->alias('o')->join('__ORDER_GOODS__ og','o.orderId=og.orderId')->where('o.settlementId',$id)
 | |
| 
 | |
|         ->field('orderNo,og.goodsPrice,og.goodsName,og.goodsSpecNames,og.goodsNum,og.commissionRate')->order('o.payType desc,o.orderId desc')->paginate(input('limit/d'))->toArray();
 | |
| 
 | |
|     }
 | |
| 
 | |
| 
 | |
| 
 | |
|     /**
 | |
| 
 | |
|      * 获取待结算商家
 | |
| 
 | |
|      */
 | |
| 
 | |
|     public function pageShopQuery(){
 | |
| 
 | |
|     	$areaIdPath = input('areaIdPath');
 | |
| 
 | |
|     	$shopName = input('shopName');
 | |
| 
 | |
|     	$where = [];
 | |
| 
 | |
|     	if($shopName!='')$where['s.shopName|s.shopSn'] = ['like','%'.$shopName.'%'];
 | |
| 
 | |
|     	if($areaIdPath !='')$where['s.areaIdPath'] = ['like',$areaIdPath."%"];
 | |
| 
 | |
|     	$where['s.dataFlag'] = 1;
 | |
| 
 | |
|     	$where['s.noSettledOrderNum'] = ['>',0];
 | |
| 
 | |
| 		return Db::table('__SHOPS__')->alias('s')->join('__AREAS__ a2','s.areaId=a2.areaId')
 | |
| 
 | |
| 		       ->where($where)
 | |
| 
 | |
| 		       ->field('shopId,shopSn,shopName,a2.areaName,shopkeeper,telephone,abs(noSettledOrderFee) noSettledOrderFee,noSettledOrderNum')
 | |
| 
 | |
| 		       ->order('noSettledOrderFee desc')->paginate(input('limit/d'));
 | |
| 
 | |
| 
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
|    /**
 | |
| 
 | |
|     * 获取商家未结算的订单
 | |
| 
 | |
|     */
 | |
| 
 | |
|    public function pageShopOrderQuery(){
 | |
| 
 | |
|    	     $orderNo = input('orderNo');
 | |
| 
 | |
|    	     $payType = (int)input('payType',-1);
 | |
| 
 | |
|          $where = [];
 | |
| 
 | |
|          $where['settlementId'] = 0;
 | |
| 
 | |
|          $where['orderStatus'] = 2;
 | |
| 
 | |
|          $where['shopId'] = (int)input('id');
 | |
| 
 | |
|          $where['dataFlag'] = 1;
 | |
| 
 | |
|          if($orderNo!='')$where['orderNo'] = ['like','%'.$orderNo.'%'];
 | |
| 
 | |
|          if(in_array($payType,[0,1]))$where['payType'] = $payType;
 | |
| 
 | |
|    	     $page = Db::name('orders')->where($where)
 | |
| 
 | |
|         	          ->field('orderId,orderNo,payType,goodsMoney,deliverMoney,realTotalMoney,totalMoney,commissionFee,createTime')
 | |
| 
 | |
|         	          ->order('payType desc,orderId desc')->paginate(input('limit/d'))->toArray();
 | |
| 
 | |
|         if(count($page['Rows'])>0){
 | |
| 
 | |
|         	foreach ($page['Rows'] as $key => $v) {
 | |
| 
 | |
|         		$page['Rows'][$key]['payTypeName'] = WSTLangPayType($v['payType']);
 | |
| 
 | |
|         	}
 | |
| 
 | |
|         }
 | |
| 
 | |
|         return $page;
 | |
| 
 | |
|    }
 | |
| 
 | |
| 
 | |
| 
 | |
|    /**
 | |
| 
 | |
|     * 生成结算单
 | |
| 
 | |
|     */
 | |
| 
 | |
| 	public function generateSettleByShop(){
 | |
| 
 | |
| 		$shopId = (int)input('id');
 | |
| 
 | |
| 		$where = [];
 | |
| 
 | |
| 		$where['shopId'] = $shopId;
 | |
| 
 | |
| 		$where['dataFlag'] = 1;
 | |
| 
 | |
| 		$where['orderStatus'] = 2;
 | |
| 
 | |
| 		$where['settlementId'] = 0;
 | |
| 
 | |
| 		$orders = Db::name('orders')->where($where)->field('orderId,payType,realTotalMoney,scoreMoney,commissionFee')->select();
 | |
| 
 | |
|     	if(empty($orders))return WSTReturn('没有需要结算的订单,请刷新后再核对!');
 | |
| 
 | |
|     	$settlementMoney = 0;
 | |
| 
 | |
|         $commissionFee = 0;    //平台要收的佣金
 | |
| 
 | |
|         $ids = [];
 | |
| 
 | |
|     	foreach ($orders as $key => $v) {
 | |
| 
 | |
|             $ids[] = $v['orderId'];
 | |
| 
 | |
|     		if($v['payType']==1){
 | |
| 
 | |
|                 $settlementMoney += $v['realTotalMoney']+$v['scoreMoney'];
 | |
| 
 | |
|             }else{
 | |
| 
 | |
|                 $settlementMoney += $v['scoreMoney'];
 | |
| 
 | |
|             }
 | |
| 
 | |
|             $commissionFee += abs($v['commissionFee']);
 | |
| 
 | |
|     	}
 | |
| 
 | |
|     	$backMoney = $settlementMoney-$commissionFee;
 | |
| 
 | |
|     	$shops = model('shops')->get($shopId);
 | |
| 
 | |
|     	if(empty($shops))WSTReturn('无效的店铺结算账号!');
 | |
| 
 | |
|     	Db::startTrans();
 | |
| 
 | |
| 		try{
 | |
| 
 | |
|             $data = [];
 | |
| 
 | |
|             $data['settlementType'] = 0;
 | |
| 
 | |
|             $data['shopId'] = $shopId;
 | |
| 
 | |
|             $data['settlementMoney'] = $settlementMoney;
 | |
| 
 | |
|             $data['commissionFee'] = $commissionFee;
 | |
| 
 | |
|             $data['backMoney'] = $settlementMoney-$commissionFee;
 | |
| 
 | |
|             $data['settlementStatus'] = 1;
 | |
| 
 | |
|             $data['settlementTime'] = date('Y-m-d H:i:s');
 | |
| 
 | |
|             $data['createTime'] = date('Y-m-d H:i:s');
 | |
| 
 | |
|             $data['settlementNo'] = '';
 | |
| 
 | |
|             $result = $this->save($data);
 | |
| 
 | |
|             if(false !==  $result){
 | |
| 
 | |
|             	$this->settlementNo = $this->settlementId.(fmod($this->settlementId,7));
 | |
| 
 | |
|             	$this->save();
 | |
| 
 | |
|             	//修改商家订单情况
 | |
| 
 | |
|                 Db::name('orders')->where(['orderId'=>['in',$ids]])->update(['settlementId'=>$this->settlementId]);
 | |
| 
 | |
|                 $shops->shopMoney = $shops->shopMoney + $backMoney;
 | |
| 
 | |
|                 $shops->noSettledOrderNum = 0;
 | |
| 
 | |
|                 $shops->noSettledOrderFee = 0;
 | |
| 
 | |
|                 $shops->paymentMoney = 0;
 | |
| 
 | |
|                 //修改商家充值金额
 | |
| 
 | |
|                 $lockCashMoney = (($shops->rechargeMoney - $commissionFee)>=0)?($shops->rechargeMoney - $commissionFee):0;
 | |
| 
 | |
|                 $shops->rechargeMoney = $lockCashMoney;
 | |
| 
 | |
|                 $shops->save();
 | |
| 
 | |
|                 
 | |
| 
 | |
|                 //发消息
 | |
| 
 | |
|                 $tpl = WSTMsgTemplates('SHOP_SETTLEMENT');
 | |
| 
 | |
|                 if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | |
| 
 | |
|                     $find = ['${SETTLEMENT_NO}'];
 | |
| 
 | |
|                     $replace = [$this->settlementNo];
 | |
| 
 | |
|                     
 | |
| 
 | |
|                     $msg = array();
 | |
| 
 | |
|                     $msg["shopId"] = $shopId;
 | |
| 
 | |
|                     $msg["tplCode"] = $tpl["tplCode"];
 | |
| 
 | |
|                     $msg["msgType"] = 1;
 | |
| 
 | |
|                     $msg["content"] = str_replace($find,$replace,$tpl['tplContent']) ;
 | |
| 
 | |
|                     $msg["msgJson"] = ['from'=>4,'dataId'=>$this->settlementId];
 | |
| 
 | |
|                     model("common/MessageQueues")->add($msg);
 | |
| 
 | |
|                 }
 | |
| 
 | |
|                 //增加资金变动信息
 | |
| 
 | |
|                 $lmarr = [];
 | |
| 
 | |
|                 if($settlementMoney>0){
 | |
| 
 | |
|                     $lm = [];
 | |
| 
 | |
|                     $lm['targetType'] = 1;
 | |
| 
 | |
|                     $lm['targetId'] = $shopId;
 | |
| 
 | |
|                     $lm['dataId'] = $this->settlementId;
 | |
| 
 | |
|                     $lm['dataSrc'] = 2;
 | |
| 
 | |
|                     $lm['remark'] = '结算订单申请【'.$this->settlementNo.'】收入订单金额¥'.$settlementMoney."。";
 | |
| 
 | |
|                     $lm['moneyType'] = 1;
 | |
| 
 | |
|                     $lm['money'] = $settlementMoney;
 | |
| 
 | |
|                     $lm['payType'] = 0;
 | |
| 
 | |
|                     $lm['createTime'] = date('Y-m-d H:i:s');
 | |
| 
 | |
|                     $lmarr[] = $lm;
 | |
| 
 | |
|                 }
 | |
| 
 | |
|                 if($commissionFee>0){
 | |
| 
 | |
|     				$lm = [];
 | |
| 
 | |
|     				$lm['targetType'] = 1;
 | |
| 
 | |
|     				$lm['targetId'] = $shopId;
 | |
| 
 | |
|     				$lm['dataId'] = $this->settlementId;
 | |
| 
 | |
|     				$lm['dataSrc'] = 2;
 | |
| 
 | |
|     				$lm['remark'] = '结算订单申请【'.$this->settlementNo.'】收取订单佣金¥'.$commissionFee."。";
 | |
| 
 | |
|     				$lm['moneyType'] = 0;
 | |
| 
 | |
|     				$lm['money'] = $commissionFee;
 | |
| 
 | |
|     				$lm['payType'] = 0;
 | |
| 
 | |
|     				$lm['createTime'] = date('Y-m-d H:i:s');
 | |
| 
 | |
|                     $lmarr[] = $lm;
 | |
| 
 | |
|                 }
 | |
| 
 | |
| 				if(count($lmarr)>0)model('LogMoneys')->saveAll($lmarr);
 | |
| 
 | |
| 				Db::commit();
 | |
| 
 | |
|             	return WSTReturn('生成结算单成功',1);
 | |
| 
 | |
|             }
 | |
| 
 | |
| 		}catch (\Exception $e) {
 | |
| 
 | |
|             Db::rollback();errLog($e);
 | |
| 
 | |
|         }
 | |
| 
 | |
|         return WSTReturn('生成结算单失败',-1);
 | |
| 
 | |
|     }
 | |
| 
 | |
| 	/**
 | |
| 
 | |
|      * 导出
 | |
| 
 | |
|      */
 | |
| 
 | |
|     public function toExport(){
 | |
| 
 | |
|         $name='结算申请表';
 | |
| 
 | |
|         $settlementNo = input('settlementNo');
 | |
| 
 | |
|         $shopName = input('shopName');
 | |
| 
 | |
|         $settlementStatus = (int)input('settlementStatus',-1);
 | |
| 
 | |
|         $sort = input('sort');
 | |
| 
 | |
|         $where = [];
 | |
| 
 | |
|         if($settlementNo!='')$where['settlementNo'] = ['like','%'.$settlementNo.'%'];
 | |
| 
 | |
|         if($shopName!='')$where['shopName|shopSn'] = ['like','%'.$shopName.'%']; 
 | |
| 
 | |
|         if($settlementStatus>=0)$where['settlementStatus'] = $settlementStatus;
 | |
| 
 | |
|         $order = 'st.settlementId desc';
 | |
| 
 | |
|         if($sort){
 | |
| 
 | |
|             $sortArr = explode('.',$sort);
 | |
| 
 | |
|             $order = $sortArr[0].' '.$sortArr[1];
 | |
| 
 | |
|             if($sortArr[0]=='settlementNo'){
 | |
| 
 | |
|                 $order = $sortArr[0].'+0 '.$sortArr[1];
 | |
| 
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
|         $page=Db::name('settlements')->alias('st')
 | |
| 
 | |
|             ->join('__SHOPS__ s','s.shopId=st.shopId','left')
 | |
| 
 | |
|             ->join('__ORDERS__ o','o.settlementId=st.settlementId','left')
 | |
| 
 | |
|             ->join('__SHOPS_DEPOSIT_DETAIL__ sd','sd.orderId=o.orderId','left')
 | |
| 
 | |
|             ->join('__PAYMENTS__ p','p.payCode=o.payFrom','left')
 | |
| 
 | |
|             ->where($where)->field('s.shopName,settlementNo,sd.cashDeposit,st.settlementId,st.settlementMoney,st.commissionFee,st.backMoney,st.settlementStatus,st.settlementTime,st.createTime,payFrom,payName')->order($order)
 | |
| 
 | |
|             ->select();
 | |
| 
 | |
|         foreach($page as &$v){
 | |
| 
 | |
|             $order_list=db('orders')->where('settlementId',$v['settlementId'])->field('orderNo,realTotalMoney,scoreMoney')->select();
 | |
| 
 | |
|             $v['order_number']='';
 | |
| 
 | |
|             if(count($order_list)>0){
 | |
| 
 | |
|                 foreach($order_list as $val){
 | |
| 
 | |
|                     $v['order_number']=$v['order_number'].$val['orderNo'].',';//
 | |
| 
 | |
|                 }
 | |
| 
 | |
|                 //.$order_list['realTotalMoney'].$order_list['scoreMoney'];
 | |
| 
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
|         Loader::import('phpexcel.PHPExcel.IOFactory');
 | |
| 
 | |
|         $objPHPExcel = new \PHPExcel();
 | |
| 
 | |
|         // 设置excel文档的属性
 | |
| 
 | |
|         $objPHPExcel->getProperties()->setCreator("WSTMart")//创建人
 | |
| 
 | |
|         ->setLastModifiedBy("WSTMart")//最后修改人
 | |
| 
 | |
|         ->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(12);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(12);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(12);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(12);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getStyle('A1:K1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getStyle('A1:K1')->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', '支付方式');
 | |
| 
 | |
|         $objPHPExcel->getActiveSheet()->getStyle('A1:I1')->applyFromArray($styleArray);
 | |
| 
 | |
|     
 | |
| 
 | |
|         for ($row = 0; $row < count($page); $row++){
 | |
| 
 | |
|             $i = $row+2;
 | |
| 
 | |
|             $objPHPExcel->getActiveSheet()
 | |
| 
 | |
|             ->setCellValue('A'.$i, $page[$row]['settlementNo'])
 | |
| 
 | |
|             ->setCellValue('B'.$i, $page[$row]['shopName'])
 | |
| 
 | |
|             ->setCellValue('C'.$i, '¥'.$page[$row]['settlementMoney'])
 | |
| 
 | |
|             ->setCellValue('D'.$i, '¥'.$page[$row]['commissionFee'])
 | |
| 
 | |
|             ->setCellValue('E'.$i, '¥'.(float)$page[$row]['cashDeposit'])
 | |
| 
 | |
|             ->setCellValue('F'.$i, '¥'.$page[$row]['backMoney'])
 | |
| 
 | |
|             ->setCellValue('G'.$i, $page[$row]['createTime'])
 | |
| 
 | |
|             ->setCellValue('H'.$i, $page[$row]['settlementStatus']==1?'已结算':'未结算')
 | |
| 
 | |
|             ->setCellValue('I'.$i, $page[$row]['order_number'])
 | |
| 
 | |
|             ->setCellValue('J'.$i, $page[$row]['payName']);
 | |
| 
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
|     
 | |
| 
 | |
|         //输出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');
 | |
| 
 | |
|     }
 | |
| 
 | |
| } |