MemberExportController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /****************************************************************
  3. * Author: king -- LiBaoJia
  4. * Date: 1/8/21 9:40 AM
  5. * Email: livsyitian@163.com
  6. * QQ: 995265288
  7. * IDE: PhpStorm
  8. * User: 芸众商城 www.yunzshop.com
  9. ****************************************************************/
  10. namespace app\backend\modules\balance\controllers;
  11. use app\common\components\BaseController;
  12. use app\common\models\Member;
  13. use app\common\services\ExportService;
  14. class MemberExportController extends BaseController
  15. {
  16. public function index()
  17. {
  18. $exportService = new ExportService($this->exportBuilder(), $this->exportPage());
  19. $exportData[0] = $this->exportTitle();
  20. foreach ($exportService->builder_model as $key => $item) {
  21. $exportData[$key + 1] = [
  22. date('Y-m-d H:i:s', $item->createtime),
  23. $item->uid,
  24. $item->nickname,
  25. $item->realname,
  26. $item->mobile,
  27. $item->credit2,
  28. ];
  29. }
  30. $exportService->export($this->fileName(), $exportData, \Request::query('route'));
  31. }
  32. /**
  33. * 导出数据标题
  34. *
  35. * @return array
  36. */
  37. private function exportTitle()
  38. {
  39. return [
  40. '时间',
  41. '会员ID',
  42. '昵称',
  43. '姓名',
  44. '手机号',
  45. '余额',
  46. ];
  47. }
  48. private function exportBuilder()
  49. {
  50. $recordsModels = Member::uniacid();
  51. if ($search = $this->searchParams()) {
  52. $recordsModels = $recordsModels->search($search);
  53. }
  54. return $recordsModels->orderBy('uid', 'desc')->withoutDeleted();
  55. }
  56. /**
  57. * @return array
  58. */
  59. public function searchParams()
  60. {
  61. return request()->search ?: [];
  62. }
  63. /**
  64. * 导出页面页面值
  65. *
  66. * @return int
  67. */
  68. private function exportPage()
  69. {
  70. return request()->export_page ?: 1;
  71. }
  72. /**
  73. * 导出文件名称
  74. *
  75. * @return string
  76. */
  77. private function fileName()
  78. {
  79. return date('Y-m-d-h-i-s', time()) . '会员余额导出';
  80. }
  81. }