123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- namespace App\Services;
- use App\Models\CoachUser;
- use App\Enums\TechnicianStatus;
- use App\Models\CoachInfoRecord;
- use Illuminate\Support\Facades\DB;
- use App\Enums\TechnicianAuthStatus;
- use Illuminate\Support\Facades\Auth;
- use Slowlyo\OwlAdmin\Services\AdminService;
- class CoachInfoRecordService extends AdminService
- {
- protected string $modelName = CoachInfoRecord::class;
-
- public function audit(int $id, int $state, string $remark, int $adminId): bool
- {
- return DB::transaction(function () use ($id, $state, $remark, $adminId) {
-
- $record = $this->getModel()::with('coach')->findOrFail($id);
- $coach = $record->coach;
-
- abort_if(!$coach, 400, '技师信息不存在');
- abort_if(
- (int)$record->state !== TechnicianAuthStatus::AUDITING->value,
- 400,
- '该申请已审核'
- );
-
- $record->state = $state;
- $record->audit_remark = $remark;
- $record->auditor = $adminId;
- $record->audit_time = now();
- $record->save();
-
- if ($state === TechnicianAuthStatus::PASSED->value) {
- $updateData = ['info_record_id' => $record->id];
-
- if (!$coach->info_record_id) {
- $updateData['state'] = TechnicianStatus::ACTIVE->value;
- }
-
- $coach->update($updateData);
- }
- return true;
- });
- }
-
- public function updateInfo(array $data): array
- {
- return DB::transaction(function () use ($data) {
- $record = $this->getModel()::findOrFail($data['id']);
- $coach = $record->coach;
-
- $formalPhoto = $data['formal_photo'] ?? null;
- unset($data['formal_photo']);
-
- unset($data['id']);
-
- $updateData = array_filter($data, function ($value) {
- return !is_null($value);
- });
-
- if (isset($updateData['life_photos'])) {
-
- $updateData['life_photos'] = explode(',', $updateData['life_photos']);
- }
- if (isset($updateData['avatar'])) {
-
- $updateData['avatar'] = explode(',', $updateData['avatar']);
- }
-
- $record->update($updateData);
-
- if ($formalPhoto !== null && $coach) {
- $coach->update([
- 'formal_photo' => $formalPhoto,
- 'formal_photo_updated_at' => now(),
- 'formal_photo_admin_id' => Auth::id(),
- ]);
- }
- return [
- 'message' => '修改成功',
- 'data' => $record
- ];
- });
- }
- }
|