| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- namespace App\Services;
- use App\Traits\ServiceAppAop;
- use App\Demand;
- use Illuminate\Http\UploadedFile;
- use Illuminate\Support\Facades\Auth;
- use Ramsey\Uuid\Uuid;
- class DemandService
- {
- use ServiceAppAop;
- protected $modelClass = Demand::class;
- /**
- * saveUPLoadFile
- * @param Demand $demand
- * @param UploadedFile $file
- * @return array
- */
- public function saveUPLoadFile(Demand $demand, UploadedFile $file): array
- {
- $tmpFile = $file->getRealPath();
- if (!$demand->uploadFile()) return ['success' => false, 'message' => '该需求已有描述图片'];
- if (!$file) return ['success' => false, 'message' => '上传图片不得为空'];
- if (!$file->isValid()) return ['success' => false, 'message' => '找不到上传图片'];
- if (!is_uploaded_file($tmpFile)) return ['success' => false, 'message' => '文件错误'];
- $fileSuffix = $file->getClientOriginalExtension();
- $fileName = date('ymd') . '-' . Uuid::uuid1();
- $filePath = storage_path('app/public/files/issue/' . $fileName . '-issue' . $fileSuffix);
- $result = move_uploaded_file($tmpFile, $filePath);
- if (!$result) return ['success' => false, 'message' => '文件上传失败'];
- $upLoadFile = $demand->saveFile($fileName, $fileSuffix);
- if (!$upLoadFile) return ['success' => false, 'message' => '文件上传失败'];
- return ['success' => true, 'data' => $demand];
- }
- /**
- * 完结问题
- *
- * @param Demand $demand
- * @return array
- */
- public function finishDemand(Demand $demand): array
- {
- $currentId = Auth::user()['id'];
- if ($currentId != $demand['initiator']) {
- return ['success' => false, 'message' => '非当前问题处理人不能完结'];
- }
- if ($demand->update(['status', '1']))
- return ['success' => true, 'data' => $demand];
- else
- return ['success' => false, 'message' => '修改失败'];
- }
- /**
- * 认领问题
- *
- * @param Demand $demand
- * @param $handler
- * @return array
- */
- public function claimDemand(Demand $demand, $handler): array
- {
- if($demand['status'] !== 0)
- return ['success' => false, 'message' => '任务已被认领'];
- $bool = $demand->update(['handler' => $handler]);
- if ($bool) {
- $demand->loadMissing('authority', 'initiator', 'handler', 'uploadFile', 'processes');
- return ['success' => true, 'data' => $demand];
- }
- return ['success' => false, 'message' => '任务认领失败'];
- }
-
- }
|