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;$ifrom('{{%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;$ifrom('{{%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;$osetCellValue('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'); } }