Award.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. namespace app\admin\controller;
  3. use think\admin\Controller;
  4. use think\admin\extend\DataExtend;
  5. use think\admin\helper\QueryHelper;
  6. use think\admin\service\AdminService;
  7. use think\admin\service\MenuService;
  8. use think\admin\service\NodeService;
  9. /**
  10. * 奖品订单管理
  11. * Class Menu
  12. * @package app\admin\controller
  13. */
  14. class Award extends Controller
  15. {
  16. /**
  17. * 当前操作数据库
  18. * @var string
  19. */
  20. private $table = 'Order';
  21. /**
  22. * 奖品订单管理
  23. * @auth true
  24. * @menu true
  25. * @throws \think\db\exception\DataNotFoundException
  26. * @throws \think\db\exception\DbException
  27. * @throws \think\db\exception\ModelNotFoundException
  28. */
  29. public function index()
  30. {
  31. $this->_query($this->table)->layTable(function (){
  32. $this->title = '奖品订单';
  33. $this->type = input('type', 'award');
  34. },function (QueryHelper $query){
  35. $query->alias('o')->leftJoin('awards_user_info u', 'o.uid = u.uid')
  36. ->leftJoin('awards_gift g', 'o.gift_id = g.id')
  37. ->field(['o.id', 'u.uid', 'u.nickname', 'o.name', 'o.mobile', 'o.address', 'g.name as giftName'])
  38. ->order('o.id desc');
  39. $query->equal('o.uid')->like('u.nickname');
  40. });
  41. }
  42. public function award()
  43. {
  44. $data = $this->app->db->name('Order')->alias('o')
  45. ->leftJoin('awards_user_info u', 'o.uid = u.uid')
  46. ->leftJoin('awards_gift g', 'o.gift_id = g.id')
  47. ->field(['o.id', 'u.uid', 'u.nickname', 'o.name', 'o.mobile', 'o.address', 'g.name as giftName'])
  48. ->order('o.id desc')->select();
  49. //实例化
  50. $objExcel = new \PHPExcel();
  51. //设置文档属性
  52. $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
  53. //设置内容
  54. $objActSheet = $objExcel->getActiveSheet();
  55. $letter = explode(',', "A,B,C,D,E,F");
  56. $arrHeader = ['微博UID', '微博昵称', '收件人姓名', '联系人电话', '收件地址', '奖品'];
  57. //填充表头信息
  58. $lenth = count($arrHeader);
  59. for ($i = 0; $i < $lenth; $i++) {
  60. $objActSheet->setCellValue("$letter[$i]1", "$arrHeader[$i]");
  61. };
  62. //填充表格信息
  63. foreach ($data as $k => $v) {
  64. $k += 2;
  65. //表格内容
  66. $objActSheet->setCellValue('A' . $k, $v['uid']." ");
  67. $objActSheet->setCellValue('B' . $k, $v['nickname']);
  68. $objActSheet->setCellValue('C' . $k, $v['name']);
  69. $objActSheet->setCellValue('D' . $k, $v['mobile']." ");
  70. $objActSheet->setCellValue('E' . $k, $v['address']);
  71. $objActSheet->setCellValue('F' . $k, $v['giftName']);
  72. }
  73. $outfile = "中奖信息" . date('Ymd') . ".xlsx";
  74. ob_end_clean();
  75. header("Content-Type: application/force-download");
  76. header("Content-Type: application/octet-stream");
  77. header("Content-Type: application/download");
  78. header('Content-Disposition:inline;filename="' . $outfile . '"');
  79. header("Content-Transfer-Encoding: binary");
  80. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  81. header("Pragma: no-cache");
  82. $objWriter->save('php://output');
  83. }
  84. }