MerchantOfflineOrder.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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. if($is_excel){
  39. $arr = [];
  40. foreach ($data as $item){
  41. switch ($item['status']) {
  42. case 0: $status = '待支付'; break;
  43. case 1: $status = '已支付'; break;
  44. case 2: $status = '申请退款'; break;
  45. case 3: $status = '退款完成'; break;
  46. case 5: $status = '已失效'; break;
  47. }
  48. $arr[] = [
  49. $item['id'],
  50. $item['mer_id'],
  51. $item['merchant']['mer_name'] ?? '',
  52. $item['uid'],
  53. $item['money'],
  54. $item['available'],
  55. $item['service_money'],
  56. $item['pension'],
  57. $item['swipe_fee'],
  58. $item['mer_money'],
  59. $item['mer_fanyong'],
  60. $item['actual'],
  61. $status,
  62. $item['create_time'],
  63. $item['out_trade_no']
  64. ];
  65. }
  66. $header = [
  67. 'ID', '商户ID', '商户名称', '用户ID',
  68. '充值金额', '可分佣总额', '服务商返利', '养老金', '刷卡手续费', '商户金额', '商户返佣', '实到金额',
  69. '状态', '时间', '订单号'
  70. ];
  71. return app('json')->success($this->getStatisticsExcel($header, $arr, '线下订单'));
  72. }
  73. return app('json')->success($data);
  74. }
  75. public function getStatisticsExcel($header,$arr,$title)
  76. {
  77. $filename = $title.'_'.date('YmdHis').'_'.rand(10000,99999);
  78. $name = $filename;
  79. $info = '生成时间:' . date('Y-m-d H:i:s',time());
  80. $suffix='xlsx';
  81. $path='offline_order';
  82. unset($_instance);
  83. $_instance = SpreadsheetExcelService::instance_xin();
  84. $_path =$_instance
  85. ->createOrActive()
  86. ->setExcelHeader($header)
  87. ->setExcelTile($title, $name, $info)
  88. ->setExcelContent($arr)
  89. ->excelSave($filename, $suffix, $path);
  90. $domain = request()->domain();
  91. $data= [
  92. 'name' => $filename.'.'.$suffix,
  93. 'status' => 1,
  94. 'path' => $domain.'/'.$_path
  95. ];
  96. return $data;
  97. }
  98. }