canyin-project/ybcy/models/common/Export.php

576 lines
29 KiB
PHP
Raw Normal View History

2024-11-01 16:07:54 +08:00
<?php
namespace app\models\common;
use yii\db\ActiveRecord;
use \PhpOffice\PhpSpreadsheet\Spreadsheet;
use app\models\common\Power;
class Export extends ActiveRecord{
//导出财务订单概况
public static function BillOrderExport($uniacid,$storeId,$time){
$store=(new \yii\db\Query())
->from('{{%ybwm_store}}')
->where('id=:id',[':id'=>$storeId])->one();
$startTime=strtotime($time." 00:00:00");
$endTime=strtotime($time." 23:59:59");
$table = (new \yii\db\Query())
->select(['ifnull(b.originMoney+b.boxMoney+b.deliveryMoney+b.deliveryPreferential,0) as originMoney','ifnull((b.originMoney+b.boxMoney+b.deliveryMoney+b.deliveryPreferential)-b.money,0) as discountMoney','a.subsidy','a.orderId','b.profitSharing','b.profitSharingState','b.preferentialMoney','b.newMoney','b.deliveryPreferential','IFNULL(b.platformCouponPreferential,0) platformCouponPreferential','IFNULL(b.couponPreferential,0) couponPreferential','(b.preferentialMoney+b.newMoney+b.deliveryPreferential+IFNULL(b.platformCouponPreferential,0)+IFNULL(b.couponPreferential,0)) allPreferential','a.payMode','b.deliveryMode','b.takeNo','b.state','a.outTradeNo', 'a.origin', 'a.storeActualMoney', 'a.storeDeliveryMoney', 'a.storeBoxMoney', 'a.storeGoodsMoney', 'a.money', 'TRUNCATE(a.money-a.storeActualMoney+a.subsidy,2) serviceMoney', 'from_unixtime(a.createdAt) createdAt'])
->from('{{%ybwm_bill}} as a')
->join('LEFT JOIN', '{{%ybwm_takeout_order}} as b', 'b.outTradeNo = a.outTradeNo')
->where('a.uniacid=:uniacid AND a.storeId=:storeId AND a.statisticsAt>=:startTime AND a.statisticsAt<=:endTime AND a.origin=1',
['startTime' => $startTime, 'endTime' => $endTime, ':uniacid' => $uniacid, 'storeId' => $storeId]);
$list=$table->orderBy('a.id desc')->all();
for($i=0;$i<count($list);$i++){
if ($list[$i]['state'] == 5 || $list[$i]['state'] == 6) {
$stateName = '已完成';
} elseif ($list[$i]['state'] == 2 || $list[$i]['state'] == 3 || $list[$i]['state'] ==4) {
$stateName = '待完成';
} elseif ($list[$i]['state'] == 9) {
$stateName = '退款待处理';
} elseif ($list[$i]['state'] == 10 || $list[$i]['state'] == 8) {
$stateName = '已退款';
}
if($list[$i]['deliveryMode']==10){
$deliveryModeName = '自提';
}else{
$deliveryModeName = '外卖';
}
if ($list[$i]['payMode'] == 1) {
$payModeName = '微信支付';
}elseif ($list[$i]['payMode'] ==2) {
$payModeName = '支付宝支付';
} elseif ($list[$i]['payMode'] == 5) {
$payModeName = '余额支付';
} elseif ($list[$i]['payMode'] == 10) {
$payModeName = '货到付款';
}
$newList[] = [
$list[$i]['takeNo'], $list[$i]['outTradeNo'], $deliveryModeName,$list[$i]['originMoney'],$list[$i]['discountMoney'],
$list[$i]['money'],$payModeName,$list[$i]['subsidy'],$list[$i]['serviceMoney'],$list[$i]['storeActualMoney'],
$list[$i]['storeBoxMoney'],$list[$i]['storeDeliveryMoney'],$stateName
];
}
$titleArr = ['订单序号', '订单编号','订单类型', '应收金额', '优惠金额', '实付金额','支付方式', '补贴',
'平台服务费', '预计收入', '包装费', '配送费', '订单状态'];
exportExcel($titleArr, $newList, $time."(".$store['name'].")订单概况");
}
//导出财务订单概况1
public static function BillOrderExport1($uniacid,$storeId,$result){
$store=(new \yii\db\Query())
->from('{{%ybwm_store}}')
->where('id=:id',[':id'=>$storeId])->one();
$timeType = $result['timeType'];
switch ($timeType){
case 2://近七天
$startTime=strtotime(date("Y-m-d",strtotime("-7 day")));
$endTime=time();
break;
case 3://近十五天
$startTime=strtotime(date("Y-m-d",strtotime("-15 day")));
$endTime=time();
break;
case 4://具体日期
$startTime=strtotime($result['startTime']);
$endTime=strtotime($result['endTime'])+86399;
break;
case 1://今天
default:
$startTime=strtotime(date("Y-m-d",time()));
$endTime=strtotime(date("Y-m-d",time()))+86399;
break;
}
$table = (new \yii\db\Query())
->select(['ifnull(b.originMoney+b.boxMoney+b.deliveryMoney+b.deliveryPreferential,0) as originMoney','ifnull((b.originMoney+b.boxMoney+b.deliveryMoney+b.deliveryPreferential)-b.money,0) as discountMoney','a.subsidy','a.orderId','b.profitSharing','b.profitSharingState','b.preferentialMoney','b.newMoney','b.deliveryPreferential','IFNULL(b.platformCouponPreferential,0) platformCouponPreferential','IFNULL(b.couponPreferential,0) couponPreferential','(b.preferentialMoney+b.newMoney+b.deliveryPreferential+IFNULL(b.platformCouponPreferential,0)+IFNULL(b.couponPreferential,0)) allPreferential','a.payMode','b.deliveryMode','b.takeNo','b.state','a.outTradeNo', 'a.origin', 'a.storeActualMoney', 'a.storeDeliveryMoney', 'a.storeBoxMoney', 'a.storeGoodsMoney', 'a.money', 'TRUNCATE(a.money-a.storeActualMoney+a.subsidy,2) serviceMoney', 'from_unixtime(a.createdAt) createdAt'])
->from('{{%ybwm_bill}} as a')
->join('LEFT JOIN', '{{%ybwm_takeout_order}} as b', 'b.outTradeNo = a.outTradeNo')
->where('a.uniacid=:uniacid AND a.storeId=:storeId AND a.statisticsAt>=:startTime AND a.statisticsAt<=:endTime AND a.origin=1',
['startTime' => $startTime, 'endTime' => $endTime, ':uniacid' => $uniacid, 'storeId' => $storeId]);
$list=$table->orderBy('a.id desc')->all();
for($i=0;$i<count($list);$i++){
if ($list[$i]['state'] == 5 || $list[$i]['state'] == 6) {
$stateName = '已完成';
} elseif ($list[$i]['state'] == 2 || $list[$i]['state'] == 3 || $list[$i]['state'] ==4) {
$stateName = '待完成';
} elseif ($list[$i]['state'] == 9) {
$stateName = '退款待处理';
} elseif ($list[$i]['state'] == 10 || $list[$i]['state'] == 8) {
$stateName = '已退款';
}
if($list[$i]['deliveryMode']==10){
$deliveryModeName = '自提';
}else{
$deliveryModeName = '外卖';
}
if ($list[$i]['payMode'] == 1) {
$payModeName = '微信支付';
}elseif ($list[$i]['payMode'] ==2) {
$payModeName = '支付宝支付';
} elseif ($list[$i]['payMode'] == 5) {
$payModeName = '余额支付';
} elseif ($list[$i]['payMode'] == 10) {
$payModeName = '货到付款';
}
$newList[] = [
$list[$i]['takeNo'], $list[$i]['outTradeNo'], $deliveryModeName,$list[$i]['originMoney'],$list[$i]['discountMoney'],
$list[$i]['money'],$payModeName,$list[$i]['subsidy'],$list[$i]['serviceMoney'],$list[$i]['storeActualMoney'],
$list[$i]['storeBoxMoney'],$list[$i]['storeDeliveryMoney'],$stateName
];
}
$titleArr = ['订单序号', '订单编号','订单类型', '应收金额', '优惠金额', '实付金额','支付方式', '补贴',
'平台服务费', '预计收入', '包装费', '配送费', '订单状态'];
exportExcel($titleArr, $newList, $result['startTime'].'~'.$result['endTime']."(".$store['name'].")订单概况");
}
//导出财务其他订单概况
public static function BillOtherOrderExport($uniacid,$storeId,$time){
$store=(new \yii\db\Query())
->from('{{%ybwm_store}}')
->where('id=:id',[':id'=>$storeId])->one();
$newExcel = new Spreadsheet(); //创建一个新的excel文档
$objSheet = $newExcel->getActiveSheet(); //获取当前操作sheet的对象
$startTime=strtotime($time." 00:00:00");
$endTime=strtotime($time." 23:59:59");
$table = (new \yii\db\Query())
->select('a.outTradeNo,a.origin,a.money,a.payMode,b.userName,a.userId,from_unixtime(a.createdAt) createdAt,a.storeActualMoney')
->from('{{%ybwm_bill}} as a')
->join('LEFT JOIN', '{{%ybwm_member}} as b', 'b.id = a.userId')
->where('a.uniacid=:uniacid AND a.storeId=:storeId AND a.statisticsAt>=:startTime AND a.statisticsAt<=:endTime AND a.origin!=1',
['startTime' => $startTime, 'endTime' => $endTime, ':uniacid' => $uniacid, 'storeId' => $storeId]);
$res=$table->orderBy('a.id desc')->all();
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$objSheet->setTitle($time.$store['name']."其他订单概况"); //设置当前sheet的标题
for($i=0;$i<11;$i++){
$newExcel->getActiveSheet()->getColumnDimension($cellName[$i])->setWidth(15);
}
//设置第一栏的标题
$objSheet->setCellValue('A1', '订单编号')
->setCellValue('B1', '订单类型')
->setCellValue('C1', '用户实付')
->setCellValue('D1', '支付方式')
->setCellValue('E1', '用户信息')
->setCellValue('F1', '购买时间')
->setCellValue('G1', '结束金额')
->setCellValue('H1', '订单状态');
//->setCellValueExplicit('C' . $k, $val['admin_password']PHPExcel_Cell_DataType::TYPE_STRING),可以用来导出数字不变格式
foreach ($res as $k => $val) {
$k = $k + 2;
if ($val['payMode'] == 1) {
$payModeName = '微信支付';
} elseif ($val['payMode'] == 5) {
$payModeName = '余额支付';
}
if ($val['origin'] == 4) {
$originName = '券包';
}
$userName=$val['userName']."ID".$val['userId']."";
$objSheet->setCellValue('A' . $k, $val['outTradeNo'])
->setCellValue('B' . $k, $originName)
->setCellValue('C' . $k, $val['money'])
->setCellValue('D' . $k, $payModeName)
->setCellValue('E' . $k, $userName)
->setCellValue('F' . $k, $val['createdAt'])
->setCellValue('G' . $k, $val['storeActualMoney'])
->setCellValue('H' . $k, '已完成');
}
downloadExcel($newExcel, $time.$store['name']."其他订单概况", 'Xls');
}
//导出财务其他订单概况1
public static function BillOtherOrderExport1($uniacid,$storeId,$result){
$store=(new \yii\db\Query())
->from('{{%ybwm_store}}')
->where('id=:id',[':id'=>$storeId])->one();
$timeType = $result['timeType'];
switch ($timeType){
case 2://近七天
$startTime=strtotime(date("Y-m-d",strtotime("-7 day")));
$endTime=time();
break;
case 3://近十五天
$startTime=strtotime(date("Y-m-d",strtotime("-15 day")));
$endTime=time();
break;
case 4://具体日期
$startTime=strtotime($result['startTime']);
$endTime=strtotime($result['endTime'])+86399;
break;
case 1://今天
default:
$startTime=strtotime(date("Y-m-d",time()));
$endTime=strtotime(date("Y-m-d",time()))+86399;
break;
}
$newExcel = new Spreadsheet(); //创建一个新的excel文档
$objSheet = $newExcel->getActiveSheet(); //获取当前操作sheet的对象
// $startTime=strtotime($time." 00:00:00");
// $endTime=strtotime($time." 23:59:59");
$table = (new \yii\db\Query())
->select('a.outTradeNo,a.origin,a.money,a.payMode,b.userName,a.userId,from_unixtime(a.createdAt) createdAt,a.storeActualMoney')
->from('{{%ybwm_bill}} as a')
->join('LEFT JOIN', '{{%ybwm_member}} as b', 'b.id = a.userId')
->where('a.uniacid=:uniacid AND a.storeId=:storeId AND a.statisticsAt>=:startTime AND a.statisticsAt<=:endTime AND a.origin!=1',
['startTime' => $startTime, 'endTime' => $endTime, ':uniacid' => $uniacid, 'storeId' => $storeId]);
$res=$table->orderBy('a.id desc')->all();
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$objSheet->setTitle($result['startTime'].$store['name']."其他订单概况"); //设置当前sheet的标题
for($i=0;$i<11;$i++){
$newExcel->getActiveSheet()->getColumnDimension($cellName[$i])->setWidth(15);
}
//设置第一栏的标题
$objSheet->setCellValue('A1', '订单编号')
->setCellValue('B1', '订单类型')
->setCellValue('C1', '用户实付')
->setCellValue('D1', '支付方式')
->setCellValue('E1', '用户信息')
->setCellValue('F1', '购买时间')
->setCellValue('G1', '结束金额')
->setCellValue('H1', '订单状态');
//->setCellValueExplicit('C' . $k, $val['admin_password']PHPExcel_Cell_DataType::TYPE_STRING),可以用来导出数字不变格式
foreach ($res as $k => $val) {
$k = $k + 2;
if ($val['payMode'] == 1) {
$payModeName = '微信支付';
} elseif ($val['payMode'] == 5) {
$payModeName = '余额支付';
}
if ($val['origin'] == 4) {
$originName = '券包';
}
$userName=$val['userName']."ID".$val['userId']."";
$objSheet->setCellValue('A' . $k, $val['outTradeNo'])
->setCellValue('B' . $k, $originName)
->setCellValue('C' . $k, $val['money'])
->setCellValue('D' . $k, $payModeName)
->setCellValue('E' . $k, $userName)
->setCellValue('F' . $k, $val['createdAt'])
->setCellValue('G' . $k, $val['storeActualMoney'])
->setCellValue('H' . $k, '已完成');
}
downloadExcel($newExcel, $time.$store['name']."其他订单概况", 'Xls');
}
//导出兑换码
public static function ExchangeCodeExport($id){
$newExcel = new Spreadsheet(); //创建一个新的excel文档
$objSheet = $newExcel->getActiveSheet(); //获取当前操作sheet的对象
$exchangeCode=(new \yii\db\Query())
->select('name')
->from('{{%ybwm_exchange_code}}')
->where('id=:id',[':id'=>$id])->one();
$exchangeCodeInfo=(new \yii\db\Query())
->select('code,state,changeAt')
->from('{{%ybwm_exchange_code_info}}')
->where('codeId=:codeId',[':codeId'=>$id]);
$res=$exchangeCodeInfo->orderBy('id desc')->all();
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$objSheet->setTitle($exchangeCode['name']."兑换码列表"); //设置当前sheet的标题
for($i=0;$i<3;$i++){
$newExcel->getActiveSheet()->getColumnDimension($cellName[$i])->setWidth(15);
}
//设置第一栏的标题
$objSheet->setCellValue('A1', '兑换码')
->setCellValue('B1', '状态')
->setCellValue('C1', '兑换时间');
foreach ($res as $k => $val) {
$k = $k + 2;
if ($val['state'] == 1) {
$stateName = '已兑换';
} else{
$stateName = '未兑换';
}
$val['changeAt']=$val['changeAt']?date("Y-m-d H:i:s",$val['changeAt']):'--';
$objSheet->setCellValue('A' . $k, $val['code'])
->setCellValue('B' . $k, $stateName)
->setCellValue('C' . $k, $val['changeAt']);
}
downloadExcel($newExcel, $exchangeCode['name']."兑换码列表", 'Xls');
}
//订单导出
public static function OrderExport($res,$uniacid){
$newExcel = new Spreadsheet(); //创建一个新的excel文档
$objSheet = $newExcel->getActiveSheet(); //获取当前操作sheet的对象
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$objSheet->setTitle("订单列表"); //设置当前sheet的标题
for($i=0;$i<13;$i++){
$newExcel->getActiveSheet()->getColumnDimension($cellName[$i])->setWidth(15);
}
//设置第一栏的标题
$objSheet->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', '创建时间');
$set=Power::getPower($uniacid,'makeName');
$yunbeiName=Power::getPower($uniacid,'yunbeiName');
foreach ($res as $k => $val) {
$goods='';
$k = $k + 2;
$goodsInfo=(new \yii\db\Query())
->select('name,data,material,attribute,num')
->from('{{%ybwm_order_goods}}')
->where('orderId=:orderId AND item=1',[':orderId'=>$val['id']])->all();
for($o=0;$o<count($goodsInfo);$o++){
$spec = '';
$attribute = '';
if ($goodsInfo[$o]['data']) {
$goodsInfo[$o]['data'] = str_replace(",", "", $goodsInfo[$o]['data']);
$spec = '规格:' . $goodsInfo[$o]['data'] . " ";
}
if ($goodsInfo[$o]['material']) {
$material = "加料:" . $goodsInfo[$o]['material'] . " ";
}
if ($goodsInfo[$o]['attribute']) {
$goodsInfo[$o]['attribute'] = str_replace(",", "", $goodsInfo[$o]['attribute']);
$attribute = '属性:' . $goodsInfo[$o]['attribute'] . " ";
}
if ($spec || $material || $attribute) {
$goods .= $goodsInfo[$o]['name'] . "(" . $spec . $material . $attribute . ")×" . $goodsInfo[$o]['num'] . "";
} else {
$goods .= $goodsInfo[$o]['name'] . "×" . $goodsInfo[$o]['num'] . "";
}
}
if($val['state'] == 2){
$stateName = '已付款';
}elseif($val['state'] == 3){
$stateName = '已接单';
}elseif($val['state'] == 4){
$stateName = '配送中';
}elseif($val['state'] == 5){
$stateName = '已收货';
}elseif($val['state'] == 6){
$stateName = '已评价';
}elseif($val['state'] == 7){
$stateName = '已取消';
}elseif($val['state'] == 8){
$stateName = '拒单';
}elseif($val['state'] == 9){
$stateName = '申请退款';
}elseif($val['state'] == 10){
$stateName = '已退款';
}else{
$stateName = '未付款';
}
if($val['deliveryMode']==2){
$deliveryName='达达配送';
}elseif($val['deliveryMode']==3){
$deliveryName='点我达配送';
}elseif($val['deliveryMode']==4){
$deliveryName=$set['makeName']?:'码科配送';
}elseif($val['deliveryMode']==5){
$deliveryName='顺丰配送';
}elseif($val['deliveryMode']==6){
$deliveryName='蜂鸟跑腿';
}elseif($val['deliveryMode']==7){
$deliveryName='闪送';
}elseif($val['deliveryMode']==8){
$deliveryName='UU跑腿';
}elseif($val['deliveryMode']==9){
$deliveryName=$yunbeiName['yunbeiName']?:'云贝配送';
}elseif($val['deliveryMode']==10){
$deliveryName='到店自提';
}else{
$deliveryName='商家配送';
}
if($val['payMode']==5){
$payMode='余额支付';
}else{
$payMode='微信支付';
}
$val['payAt']=$val['payAt']?date("Y-m-d H:i:s",$val['payAt']):'--';
$objSheet->setCellValue('A' . $k, $val['outTradeNo'])
->setCellValue('B' . $k, $goods)
->setCellValue('C' . $k, $stateName)
->setCellValue('D' . $k, $val['userNote']?:'--')
->setCellValue('E' . $k, $val['receivedName']?:'--')
->setCellValue('F' . $k, $val['receivedTel']?:'--')
->setCellValue('G' . $k, $val['receivedAddress']?:'--')
->setCellValue('H' . $k, $deliveryName)
->setCellValue('I' . $k, $val['money'])
->setCellValue('J' . $k, $val['refundMoney']?:'--')
->setCellValue('K' . $k, $payMode)
->setCellValue('L' . $k, $val['payAt'])
->setCellValue('M' . $k, $val['createdAt']);
}
downloadExcel($newExcel, "订单列表", 'Xls');
}
//储值订单
public static function RechargeExport($res){
$newExcel = new Spreadsheet(); //创建一个新的excel文档
$objSheet = $newExcel->getActiveSheet(); //获取当前操作sheet的对象
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$objSheet->setTitle("储值列表"); //设置当前sheet的标题
for($i=0;$i<5;$i++){
$newExcel->getActiveSheet()->getColumnDimension($cellName[$i])->setWidth(15);
}
//设置第一栏的标题
$objSheet->setCellValue('A1', '用户信息')
->setCellValue('B1', '储值金额')
->setCellValue('C1', '赠送信息')
->setCellValue('D1', '订单编号')
->setCellValue('E1', '储值时间');
foreach ($res as $k => $val) {
$k = $k + 2;
$giveName='';
if($val['giveMoney']){
$giveName.="赠送余额".$val['giveMoney'];
}
if($val['giveScore']){
$giveName.="赠送积分".$val['giveScore'];
}
if($val['giveGrow']){
$giveName.="赠送成长值".$val['giveGrow'];
}
$objSheet->setCellValue('A' . $k, $val['userName']."用户ID".$val['userId']."")
->setCellValue('B' . $k, $val['money'])
->setCellValue('C' . $k, $giveName)
->setCellValue('D' . $k, $val['outTradeNo'])
->setCellValue('E' . $k, $val['createdAt']?:'--');
}
downloadExcel($newExcel, "储值列表", 'Xls');
}
//兑换记录
public static function ExchangeExport($res){
$newExcel = new Spreadsheet(); //创建一个新的excel文档
$objSheet = $newExcel->getActiveSheet(); //获取当前操作sheet的对象
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$objSheet->setTitle("兑换记录"); //设置当前sheet的标题
for($i=0;$i<11;$i++){
$newExcel->getActiveSheet()->getColumnDimension($cellName[$i])->setWidth(15);
}
//设置第一栏的标题
$objSheet->setCellValue('A1', '用户信息')
->setCellValue('B1', '订单编号')
->setCellValue('C1', '商品名称')
->setCellValue('D1', '商品类型')
->setCellValue('E1', '兑换数量')
->setCellValue('F1', '兑换价格')
->setCellValue('G1', '兑换时间')
->setCellValue('H1', '收货人')
->setCellValue('I1', '收货电话')
->setCellValue('J1', '收货地址')
->setCellValue('K1', '状态');
foreach ($res as $k => $val) {
$k = $k + 2;
if($val['goodsType']==1){
$goodsType='实物';
}else{
$goodsType='虚拟';
}
$money=$val['score']."积分";
if($val['money']){
$money.="+".$val['score']."";
}
if($val['state'] == 2){
$stateName = '已付款';
}elseif($val['state'] == 3){
$stateName = '已发货';
}elseif($val['state'] == 4){
$stateName = '已完成';
}else{
$stateName = '未付款';
}
$objSheet->setCellValue('A' . $k, $val['userName']."用户ID".$val['userId']."")
->setCellValue('B' . $k, $val['outTradeNo'])
->setCellValue('C' . $k, $val['goodsName'])
->setCellValue('D' . $k, $goodsType)
->setCellValue('E' . $k, $val['convertNum'])
->setCellValue('F' . $k, $money)
->setCellValue('G' . $k, $val['createdAt'])
->setCellValue('H' . $k, $val['receiveName']?:'--')
->setCellValue('I' . $k, $val['receiveTel']?:'--')
->setCellValue('J' . $k, $val['receiveAddress']?:'--')
->setCellValue('K' . $k, $stateName);
}
downloadExcel($newExcel, "兑换记录", 'Xls');
}
//用户导出
public static function UserExport($res){
$newExcel = new Spreadsheet(); //创建一个新的excel文档
$objSheet = $newExcel->getActiveSheet(); //获取当前操作sheet的对象
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$objSheet->setTitle("用户导出"); //设置当前sheet的标题
for($i=0;$i<10;$i++){
$newExcel->getActiveSheet()->getColumnDimension($cellName[$i])->setWidth(15);
}
//设置第一栏的标题
$objSheet->setCellValue('A1', '用户信息')
->setCellValue('B1', '用户来源')
->setCellValue('C1', '用户手机号')
->setCellValue('D1', '会员等级')
->setCellValue('E1', '订单数')
->setCellValue('F1', '订单金额')
->setCellValue('G1', '积分')
->setCellValue('H1', '余额')
->setCellValue('I1', '注册时间')
->setCellValue('J1', '拉黑状态');
foreach ($res as $k => $val) {
$k = $k + 2;
$bindType='--';
if($val['bindType']==1){
$bindType='微信小程序';
}elseif($val['bindType']==3){
$bindType='支付宝小程序';
}elseif($val['bindType']==4){
$bindType='百度小程序';
}elseif($val['bindType']==7){
$bindType='头条小程序';
}
if($val['userName'] && strpos($val['userName'],'=') === 0 ){
$val['userName'] = "'".$val['userName'];
}
$objSheet->setCellValue('A' . $k, $val['userName']."用户ID".$val['id']."")
->setCellValue('B' . $k, $bindType)
->setCellValue('C' . $k, $val['userTel']?:'--')
->setCellValue('D' . $k, $val['level']?"等级".$val['level']:"--")
->setCellValue('E' . $k, $val['payNum'])
->setCellValue('F' . $k, $val['payMoney'])
->setCellValue('G' . $k, $val['integral'])
->setCellValue('H' . $k, $val['balance'])
->setCellValue('I' . $k, $val['createdAt']?:'--')
->setCellValue('J' . $k, $val['isBlack']==1?'拉黑':'正常');
}
downloadExcel($newExcel, "用户列表", 'Xls');
}
}