OrderIssuePerformanceController.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Services\OrderIssuePerformanceService;
  4. use App\Services\OrderIssueWorkLoadService;
  5. use Illuminate\Http\Request;
  6. use Exception;
  7. use Illuminate\Support\Facades\Gate;
  8. use Illuminate\Support\Facades\Http;
  9. use Oursdreams\Export\Export;
  10. class OrderIssuePerformanceController extends Controller
  11. {
  12. public function __construct()
  13. {
  14. app()->singleton('OrderIssueWorkLoadService', OrderIssueWorkLoadService::class);
  15. app()->singleton('service', OrderIssuePerformanceService::class);
  16. }
  17. public function index(Request $request)
  18. {
  19. if (!Gate::allows('订单管理-问题件-绩效统计')) {
  20. return redirect(url('/'));
  21. }
  22. /** @var OrderIssuePerformanceService $service */
  23. $service = app('OrderIssuePerformanceService');
  24. $performance = $service->paginate($request->all());
  25. $options = ['timeFrame' => $request->input('timeFrame'), 'create_start' => $request->input('create_start') ?? '', 'create_end' => $request->input('create_end') ?? ''];
  26. return view('order.issue.performance', compact('performance', 'options'));
  27. }
  28. public function export(Request $request)
  29. {
  30. /** @var OrderIssuePerformanceService $orderIssuePerformanceService */
  31. $orderIssuePerformanceService = app(OrderIssuePerformanceService::class);
  32. $sql = $orderIssuePerformanceService->getSql($request->all());
  33. $e = new Export();
  34. $e->setMysqlConnection(config('database.connections.mysql.host'),
  35. config('database.connections.mysql.port'),config('database.connections.mysql.database')
  36. ,config('database.connections.mysql.username'),config('database.connections.mysql.password'));
  37. $e->setFileName("客服绩效");
  38. return $e->sql($sql,[
  39. "userName"=>"客服","ownerName"=>"客户",
  40. "created"=>"创建数","process"=>"处理数",
  41. "end"=>"完结数","sumNumber"=>"总数",
  42. ])->direct();
  43. }
  44. public function workLoadPage(Request $request)
  45. {
  46. if (!Gate::allows('订单管理-问题件-工作量')) {
  47. return redirect(url('/'));
  48. }
  49. /** @var OrderIssueWorkLoadService $workLoadService */
  50. $workLoadService = app('OrderIssueWorkLoadService');
  51. $workLoads = $workLoadService->paginate($request->all());
  52. $users = $workLoadService->getUsers();
  53. $owners = $workLoadService->getOwners();
  54. $options =$workLoadService->getOptions($request->all());
  55. return view('order/issue/workload', compact('workLoads', 'owners', 'users','options'));
  56. }
  57. public function exportWorkLoad(Request $request)
  58. {
  59. $workLoadService = app('OrderIssueWorkLoadService');
  60. return $workLoadService->exportWorkLoad($request->all());
  61. }
  62. }