You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
158
hyhproject/admin/model/Carts.php
Executable file
158
hyhproject/admin/model/Carts.php
Executable file
@ -0,0 +1,158 @@
|
||||
<?php
|
||||
namespace wstmart\admin\model;
|
||||
use think\Db;
|
||||
use think\Loader;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 商品类
|
||||
*/
|
||||
class Carts extends Base{
|
||||
/**
|
||||
* 购物车列表
|
||||
*/
|
||||
public function cartsByPage(){
|
||||
$shopName=input('shopName');
|
||||
$loginName=input('loginName');
|
||||
$goodsName=input('goodsName');
|
||||
$where = [];
|
||||
$where['g.goodsStatus'] = 1;
|
||||
$where['g.dataFlag'] = 1;
|
||||
$where['g.isSale'] = 1;
|
||||
if($shopName!="")$where['shopName']=['like',"%$shopName%"];
|
||||
if($loginName!="")$where['loginName']=['like',"%$loginName%"];
|
||||
if($goodsName!="")$where['goodsName']=['like',"%$goodsName%"];
|
||||
$result=$this->alias('c')
|
||||
->join('__USERS__ u','u.userId=c.userId','left')
|
||||
->join('__GOODS__ g','g.goodsId=c.goodsId','left')
|
||||
->join('__SHOPS__ s','s.shopId=g.shopId','left')
|
||||
->where($where)
|
||||
->field('u.loginName,shopPrice,sum(cartNum)cartNum,goodsName,shopName,goodsImg,goodsCatIdPath,g.goodsId')
|
||||
->order('cartNum desc')
|
||||
->group('u.userId,g.goodsId')
|
||||
->paginate(input('limit/d'))->toArray();
|
||||
$keyCats = model('GoodsCats')->listKeyAll();
|
||||
foreach ($result['Rows'] as $key => $v){
|
||||
$result['Rows'][$key]['totalPrice']=$v['cartNum']*$v['shopPrice'];
|
||||
$result['Rows'][$key]['goodsCatName'] = self::getGoodsCatNames($v['goodsCatIdPath'],$keyCats);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
public function getGoodsCatNames($goodsCatPath, $keyCats){
|
||||
$catIds = explode("_",$goodsCatPath);
|
||||
$catNames = array();
|
||||
for($i=0,$k=count($catIds);$i<$k;$i++){
|
||||
if($catIds[$i]=='')continue;
|
||||
if(isset($keyCats[$catIds[$i]]))$catNames[] = $keyCats[$catIds[$i]];
|
||||
}
|
||||
return implode("→",$catNames);
|
||||
}
|
||||
//导出数据
|
||||
public function toExport(){
|
||||
$name='购物车数据';
|
||||
$shopName=input('shopName');
|
||||
$loginName=input('loginName');
|
||||
$goodsName=input('goodsName');
|
||||
$where = [];
|
||||
$where['g.goodsStatus'] = 1;
|
||||
$where['g.dataFlag'] = 1;
|
||||
$where['g.isSale'] = 1;
|
||||
if($shopName!="")$where['shopName']=['like',"%$shopName%"];
|
||||
if($loginName!="")$where['loginName']=['like',"%$loginName%"];
|
||||
if($goodsName!="")$where['goodsName']=['like',"%$goodsName%"];
|
||||
$page=$this->alias('c')
|
||||
->join('__USERS__ u','u.userId=c.userId','left')
|
||||
->join('__GOODS__ g','g.goodsId=c.goodsId','left')
|
||||
->join('__SHOPS__ s','s.shopId=g.shopId','left')
|
||||
->where($where)
|
||||
->field('u.loginName,shopPrice,sum(cartNum)cartNum,goodsName,shopName,goodsImg,goodsCatIdPath,g.goodsId')
|
||||
->order('cartNum desc')
|
||||
->group('u.userId,g.goodsId')
|
||||
->select();
|
||||
// dump($page);
|
||||
$keyCats = model('GoodsCats')->listKeyAll();
|
||||
foreach ($page as $key => $v){
|
||||
$page[$key]['totalPrice']=$v['cartNum']*$v['shopPrice'];
|
||||
$page[$key]['goodsCatName'] = self::getGoodsCatNames($v['goodsCatIdPath'],$keyCats);
|
||||
}
|
||||
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(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(55);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(40);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFill()->getStartColor()->setARGB('333399');
|
||||
|
||||
$objPHPExcel->getActiveSheet()
|
||||
->setCellValue('A1', '用户名称')
|
||||
->setCellValue('B1', '商品名称')
|
||||
->setCellValue('C1', '购物车数量')
|
||||
->setCellValue('D1', '单品价格')
|
||||
->setCellValue('E1', '总价')
|
||||
->setCellValue('F1', '所属店铺')
|
||||
->setCellValue('G1', '所属分类');
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:G1')->applyFromArray($styleArray);
|
||||
|
||||
for ($row = 0; $row < count($page); $row++){
|
||||
$i = $row+2;
|
||||
$objPHPExcel->getActiveSheet()
|
||||
->setCellValue('A'.$i, $page[$row]['loginName'])
|
||||
->setCellValue('B'.$i, $page[$row]['goodsName'])
|
||||
->setCellValue('C'.$i, $page[$row]['cartNum'])
|
||||
->setCellValue('D'.$i, $page[$row]['shopPrice'])
|
||||
->setCellValue('E'.$i, $page[$row]['totalPrice'])
|
||||
->setCellValue('F'.$i, $page[$row]['shopName'])
|
||||
->setCellValue('G'.$i, $page[$row]['goodsCatName']);
|
||||
|
||||
}
|
||||
//输出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');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user