DemandService.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace App\Services;
  3. use App\Traits\ServiceAppAop;
  4. use App\Demand;
  5. use Illuminate\Http\UploadedFile;
  6. use Illuminate\Support\Facades\Auth;
  7. use Ramsey\Uuid\Uuid;
  8. class DemandService
  9. {
  10. use ServiceAppAop;
  11. protected $modelClass = Demand::class;
  12. /**
  13. * saveUPLoadFile
  14. * @param Demand $demand
  15. * @param UploadedFile $file
  16. * @return array
  17. */
  18. public function saveUPLoadFile(Demand $demand, UploadedFile $file): array
  19. {
  20. $tmpFile = $file->getRealPath();
  21. if (!$demand->uploadFile()) return ['success' => false, 'message' => '该需求已有描述图片'];
  22. if (!$file) return ['success' => false, 'message' => '上传图片不得为空'];
  23. if (!$file->isValid()) return ['success' => false, 'message' => '找不到上传图片'];
  24. if (!is_uploaded_file($tmpFile)) return ['success' => false, 'message' => '文件错误'];
  25. $fileSuffix = $file->getClientOriginalExtension();
  26. $fileName = date('ymd') . '-' . Uuid::uuid1();
  27. $filePath = storage_path('app/public/files/issue/' . $fileName . '-issue' . $fileSuffix);
  28. $result = move_uploaded_file($tmpFile, $filePath);
  29. if (!$result) return ['success' => false, 'message' => '文件上传失败'];
  30. $upLoadFile = $demand->saveFile($fileName, $fileSuffix);
  31. if (!$upLoadFile) return ['success' => false, 'message' => '文件上传失败'];
  32. return ['success' => true, 'data' => $demand];
  33. }
  34. /**
  35. * 完结问题
  36. *
  37. * @param Demand $demand
  38. * @return array
  39. */
  40. public function finishDemand(Demand $demand): array
  41. {
  42. $currentId = Auth::user()['id'];
  43. if ($currentId != $demand['initiator']) {
  44. return ['success' => false, 'message' => '非当前问题处理人不能完结'];
  45. }
  46. if ($demand->update(['status', '1']))
  47. return ['success' => true, 'data' => $demand];
  48. else
  49. return ['success' => false, 'message' => '修改失败'];
  50. }
  51. /**
  52. * 认领问题
  53. *
  54. * @param Demand $demand
  55. * @param $handler
  56. * @return array
  57. */
  58. public function claimDemand(Demand $demand, $handler): array
  59. {
  60. if($demand['status'] !== 0)
  61. return ['success' => false, 'message' => '任务已被认领'];
  62. $bool = $demand->update(['handler' => $handler]);
  63. if ($bool) {
  64. $demand->loadMissing('authority', 'initiator', 'handler', 'uploadFile', 'processes');
  65. return ['success' => true, 'data' => $demand];
  66. }
  67. return ['success' => false, 'message' => '任务认领失败'];
  68. }
  69. }