RepairRepository.php
2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
/**
* Created by PhpStorm.
* User: machengjun
* Date: 2018/3/22
* Time: 下午5:59
*/
namespace App\Repositories\Business;
use App\Exceptions\Api\ApiException;
use App\Modules\Enums\ErrorCode;
use App\Modules\Enums\RepairStatus;
use App\Modules\Models\RepairImages\RepairImages;
use App\Modules\Models\Repairs\Repairs;
use App\Modules\Repositories\BaseRepository;
use Illuminate\Support\Facades\DB;
/**
* Class EloquentHistoryRepository.
*/
class RepairRepository extends BaseRepository
{
/**
* @param $input
* @return mixed
*/
public function create($input)
{
$repair = $this->createRepairStub($input);
if ($repair != null) {
DB::transaction(function () use ($repair, $input) {
$repair->save();
$pics = isset($input['pics']) ? $input['pics'] : array();
if (count($pics) > 0) {
$pics_array = array();
foreach ($pics as $pic) {
if (!empty($pic)) {
array_push($pics_array, $this->createRepairImage($pic));
}
}
if (count($pics_array) > 0) {
$repair->images()->saveMany($pics_array);
}
}
});
}
return $repair;
}
/**
* @param $pic
* @return FeedbackImage
*/
private function createRepairImage($pic)
{
$repairImage = new RepairImages();
$repairImage->url = $pic;
return $repairImage;
}
/**
* @param $input
* @return Feedback
*/
private function createRepairStub($input)
{
$repairs = new Repairs();
$repairs->system_users_id = $input['system_users_id'];
$repairs->remark = $input['remark'];
$repairs->tel = isset($input['tel']) ? $input['tel'] : "";
$repairs->status = RepairStatus::UNPROCESSED;
$repairs->spot_id = $input['spot_id'];
$repairs->machine_id = $input['machine_id'];
return $repairs;
}
}