MerchantOfflineOrder.php 3.2 KB

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