Files
addons
app_download_files
extend
hyhproject
admin
behavior
common
conf
controller
model
Accreds.php
AdPositions.php
Addons.php
Adgoods.php
Ads.php
Alipays.php
Areas.php
ArticleCats.php
Articles.php
Attributes.php
Banks.php
Base.php
Brands.php
Carts.php
CashDraws.php
ChargeItems.php
CronJobs.php
DataCats.php
Datas.php
EctDay.php
EctDeal.php
EctTarget.php
Express.php
Friendlinks.php
Goods.php
GoodsAppraises.php
GoodsCats.php
GoodsClassify.php
GoodsConsult.php
HomeMenus.php
Hooks.php
Images.php
Index.php
Informs.php
LogMoneys.php
LogOperates.php
LogSms.php
LogStaffLogins.php
LogSysData.php
Member.php
Menus.php
Messages.php
MobileBtns.php
Navs.php
OrderComplains.php
OrderRefunds.php
Orders.php
Payments.php
Privileges.php
Recommends.php
Reports.php
Roles.php
Settlements.php
Shops.php
SpecCats.php
Staffs.php
Styles.php
SysConfigs.php
TemplateMsgs.php
TradeRule.php
UserRanks.php
UserScores.php
Users.php
Weixinpays.php
WeixinpaysApp.php
WxPassiveReplys.php
WxTemplateParams.php
Wxmenus.php
Wxusers.php
validate
view
app
common
home
home2
mobile2
wechat2
.htaccess
command.php
mobile
oss
static
thinkphp
upload
vendor
wxtmp
.gitignore
.htaccess
.user.ini
404.html
H5436787D.wgt
admin.php
app-release.apk
app_download.html
cash.lock
demo.php
get_startup.php
get_version.php
get_version_new.php
index.html
index.php
reg.lock
robots.txt
qlg.tsgz.moe/hyhproject/admin/model/Orders.php
2020-06-10 13:32:33 +08:00

548 lines
29 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.goodsType,o.helpUserId,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();
$m = Model('common/Table');
if (count($page['Rows']) > 0) {
foreach ($page['Rows'] as $key => $v) {
$m->setTable('order_goods');
$orderGoodsList = $m->getList(['orderId' => $v['orderId']], 'goodsPrice,goodsNum,freight,discountRate');
$discountMoney = 0;//优惠款
foreach ($orderGoodsList as &$val) {
$discountMoney += ($val['goodsPrice'] * $val['goodsNum'] + $val['freight']) * ($val['discountRate'] * 0.01);//优惠款
}
$page['Rows'][$key]['coupons'] = number_format($discountMoney,2,'.','');
if((float)$v['payable'] < 0){
$page['Rows'][$key]['payable'] = number_format(abs($v['payable']),2,'.','');
}else{
$page['Rows'][$key]['payable'] = '0.00';
}
$page['Rows'][$key]['loginName'] = $v['loginName'];
$page['Rows'][$key]['accidentGet'] = number_format($page['Rows'][$key]['productNum'] + $page['Rows'][$key]['couponsNum'],2,'.','');
$page['Rows'][$key]['accidentTaxGet'] = number_format($page['Rows'][$key]['productTaxFee'] + $page['Rows'][$key]['couponsTaxFee'],2,'.','');
$page['Rows'][$key]['accidentHandlingGet'] = number_format($page['Rows'][$key]['productHandlingFee'] + $page['Rows'][$key]['couponsHandlingFee'],2,'.','');
$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);
if ($v["helpUserId"] != 0) {
$page['Rows'][$key]['helpUser'] = Db::name('users')->where('userId', '=', $v["helpUserId"])
->field("userName")->find();
} else {
$page['Rows'][$key]['helpUser'] = ["userName" => ''];
}
$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();
//获取订单商品
if ($orders["helpUserId"] != 0) {
$orders["helpUser"] = Db::name('users')->where('userId', '=', $orders["helpUserId"])
->field("userName")->find();
}
$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.payable,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) {
$m = Model('common/Table');
$m->setTable('order_goods');
$discountMoney = 0;//优惠款
$orderGoodsList = $m->getList(['orderId' => $v['orderId']], 'goodsPrice,goodsNum,freight,discountRate');
foreach ($orderGoodsList as &$val) {
$discountMoney += ($val['goodsPrice'] * $val['goodsNum'] + $val['freight']) * ($val['discountRate'] * 0.01);//优惠款
}
$page[$key]['coupons'] = number_format($discountMoney,2,'.','');
if((float)$v['payable'] < 0){
$page[$key]['payable'] = number_format(abs($v['payable']),2,'.','');
}else{
$page[$key]['payable'] = '0.00';
}
$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(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(16);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(16);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(26);
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(16);
$objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth(12);
$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()->getColumnDimension('AA')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('AB')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('AC')->setWidth(25);
$objPHPExcel->getActiveSheet()->getStyle('A1:AC1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1:AC1')->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', '支付方式')
->setCellValue('AA1', '发货时间')
->setCellValue('AB1', '收货时间')
->setCellValue('AC1', '取消/拒收原因');
$objPHPExcel->getActiveSheet()->getStyle('A1:AC1')->applyFromArray($styleArray);
for ($row = 0; $row < count($page); $row++) {
$i = $row + 2;
$objPHPExcel->getActiveSheet()
->setCellValue('A' . $i, $row)
->setCellValue('B' . $i, $page[$row]['orderNo'])
->setCellValue('C' . $i, $page[$row]['realTotalMoney'])
->setCellValue('D' . $i, $page[$row]['userName'])
->setCellValue('E' . $i, $page[$row]['moneyNum'])
->setCellValue('F' . $i, $page[$row]['wangNum'])
->setCellValue('G' . $i, $page[$row]['productNum'])
->setCellValue('H' . $i, $page[$row]['productTaxFee'])
->setCellValue('I' . $i, $page[$row]['productHandlingFee'])
->setCellValue('J' . $i, $page[$row]['couponsNum'])
->setCellValue('K' . $i, $page[$row]['couponsTaxFee'])
->setCellValue('L' . $i, $page[$row]['couponsHandlingFee'])
->setCellValue('M' . $i, $page[$row]['shopName'])
->setCellValue('N' . $i, $page[$row]['coupons'])
->setCellValue('O' . $i, $page[$row]['payable'])
->setCellValue('P' . $i, $page[$row]['createTime'])
->setCellValue('Q' . $i, $page[$row]['status'])
->setCellValue('R' . $i, $page[$row]['userAddress'])
->setCellValue('S' . $i, $page[$row]['userPhone'])
->setCellValue('T' . $i, $page[$row]['payTypeName'])
->setCellValue('U' . $i, $page[$row]['deliverType'])
->setCellValue('V' . $i, $page[$row]['orderRemarks'])
->setCellValue('W' . $i, $page[$row]['invoiceClient'])
->setCellValue('X' . $i, $page[$row]['totalMoney'])
->setCellValue('Y' . $i, $page[$row]['deliverMoney'])
->setCellValue('Z' . $i, $page[$row]['payFrom'])
->setCellValue('AA' . $i, $page[$row]['deliveryTime'])
->setCellValue('AB' . $i, $page[$row]['receiveTime'])
->setCellValue('AC' . $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');
}
}