MerchantOfflineOrder.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace app\controller\admin\order;
  3. use app\common\repositories\merchant\order\OrderMerchantRepository;
  4. use crmeb\basic\BaseController;
  5. use crmeb\services\SpreadsheetExcelService;
  6. use think\App;
  7. class MerchantOfflineOrder extends BaseController
  8. {
  9. /**
  10. * @var OrderMerchantRepository
  11. */
  12. protected $repository;
  13. /**
  14. * @var int
  15. */
  16. protected $merId;
  17. /**
  18. * MerchantIntention constructor.
  19. * @param App $app
  20. * @param OrderMerchantRepository $repository
  21. */
  22. public function __construct(App $app, OrderMerchantRepository $repository)
  23. {
  24. parent::__construct($app);
  25. $this->repository = $repository;
  26. $this->merId = 0;
  27. }
  28. /**
  29. * @return mixed
  30. * 展示线下订单
  31. */
  32. public function lst()
  33. {
  34. [$page, $limit] = $this->getPage();
  35. $where = $this->request->params(['keyword', 'date', 'status', 'mer_id']);
  36. $is_excel = $this->request->param('is_excel', 0);
  37. $data = $this->repository->getMerchantListAdmin($this->merId, $where, $page, $limit);
  38. $list = $data['list'];
  39. if($is_excel){
  40. $arr = [];
  41. foreach ($list as $item) {
  42. switch ($item['status']) {
  43. case 0:
  44. $status = '待支付';
  45. break;
  46. case 1:
  47. $status = '已支付';
  48. break;
  49. case 2:
  50. $status = '申请退款';
  51. break;
  52. case 3:
  53. $status = '退款完成';
  54. break;
  55. case 5:
  56. $status = '已失效';
  57. break;
  58. default:
  59. $status = '未知';
  60. break;
  61. }
  62. $arr[] = [
  63. $item['id'],
  64. $item['mer_id'],
  65. $item['merchant']['mer_name'] ?? '',
  66. $item['uid'],
  67. $item['money'],
  68. $item['available'],
  69. $item['service_money'],
  70. $item['pension'],
  71. $item['swipe_fee'],
  72. $item['mer_money'],
  73. $item['mer_fanyong'],
  74. $item['actual'],
  75. $status,
  76. $item['create_time'],
  77. $item['out_trade_no']
  78. ];
  79. }
  80. $header = [
  81. 'ID', '商户ID', '商户名称', '用户ID',
  82. '充值金额', '可分佣总额', '服务商返利', '养老金', '刷卡手续费', '商户金额', '商户返佣', '实到金额',
  83. '状态', '时间', '订单号'
  84. ];
  85. return app('json')->success($this->getStatisticsExcel($header, $arr, '线下订单'));
  86. }
  87. return app('json')->success($data);
  88. }
  89. public function getStatisticsExcel($header,$arr,$title)
  90. {
  91. $filename = $title.'_'.date('YmdHis').'_'.rand(10000,99999);
  92. $name = $filename;
  93. $info = '生成时间:' . date('Y-m-d H:i:s',time());
  94. $suffix='xlsx';
  95. $path='offline_order';
  96. unset($_instance);
  97. $_instance = SpreadsheetExcelService::instance_xin();
  98. $_path =$_instance
  99. ->createOrActive()
  100. ->setExcelHeader($header)
  101. ->setExcelTile($title, $name, $info)
  102. ->setExcelContent($arr)
  103. ->excelSave($filename, $suffix, $path);
  104. $domain = request()->domain();
  105. $data= [
  106. 'name' => $filename.'.'.$suffix,
  107. 'status' => 1,
  108. 'path' => $domain.'/'.$_path
  109. ];
  110. return $data;
  111. }
  112. }