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');
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
} |