ExportController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. /****************************************************************
  3. * Author: king -- LiBaoJia
  4. * Date: 12/25/20 2:33 PM
  5. * Email: livsyitian@163.com
  6. * QQ: 995265288
  7. * IDE: PhpStorm
  8. * User: 芸众商城 www.yunzshop.com
  9. ****************************************************************/
  10. namespace app\backend\modules\point\controllers;
  11. use app\backend\modules\finance\models\PointLog;
  12. use app\common\components\BaseController;
  13. use app\common\services\ExportService;
  14. class ExportController 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. $item->created_at,
  23. $item->member_id,
  24. $item->member->nickname,
  25. $item->member->realname,
  26. $item->member->mobile,
  27. $item->source_name,
  28. $item->before_point,
  29. $item->point,
  30. $item->after_point,
  31. $item->remark,
  32. $this->getRemark($item),
  33. ];
  34. }
  35. $exportService->export($this->fileName(), $exportData, \Request::query('route'));
  36. }
  37. /**
  38. * 导出数据标题
  39. *
  40. * @return array
  41. */
  42. private function exportTitle()
  43. {
  44. return [
  45. '时间',
  46. '会员ID',
  47. '昵称',
  48. '姓名',
  49. '手机号',
  50. '业务类型',
  51. '原有积分',
  52. '变动积分',
  53. '剩余积分',
  54. '备注',
  55. '会员备注',
  56. ];
  57. }
  58. private function exportBuilder()
  59. {
  60. $recordsModels = PointLog::uniacid()->with(['member']);
  61. if ($search = $this->searchParams()) {
  62. $recordsModels = $recordsModels->search($search);
  63. }
  64. return $recordsModels->orderBy('id', 'desc');
  65. }
  66. /**
  67. * @return array
  68. */
  69. public function searchParams()
  70. {
  71. return request()->search ?: [];
  72. }
  73. /**
  74. * 导出页面页面值
  75. *
  76. * @return int
  77. */
  78. private function exportPage()
  79. {
  80. return request()->export_page ?: 1;
  81. }
  82. /**
  83. * 导出文件名称
  84. *
  85. * @return string
  86. */
  87. private function fileName()
  88. {
  89. return date('Y-m-d-h-i-s', time()) . '积分变动明细导出';
  90. }
  91. /**
  92. * 获取会员备注
  93. * @param $remark
  94. * @return false|string
  95. */
  96. private function getRemark($item)
  97. {
  98. $member_remark = '';
  99. if (in_array($item->point_mode,[13,14])) {
  100. $member_remark = strstr($item->remark,'会员备注:') ? substr(strstr($item->remark,'会员备注:'),13) : null;
  101. }
  102. return $member_remark;
  103. }
  104. }