TaskLogic.php
3.3 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
namespace App\Http\Logic\Aside\Task;
use App\Helper\Arr;
use App\Http\Logic\Aside\BaseLogic;
use App\Http\Logic\Aside\LoginLogic;
use App\Http\Logic\Aside\Manage\ManageLogic;
use App\Models\File\File;
use App\Models\Task\Task;
use App\Models\Task\TaskOwner;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
/**
* Class TaskLogic
* @package App\Http\Logic\Aside\Task
* @author zbj
* @date 2023/4/27
*/
class TaskLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->param = $this->requestAll;
$this->model = new Task();
}
/**
* @remark :获取数据详情
* @name :getTaskInfo
* @author :lyh
* @method :post
* @time :2023/8/23 16:42
*/
public function getTaskInfo()
{
$info = $this->model->where(['id'=>$this->param['id']])->with('owner')->with('follow')->first();
if($info === false){
$this->fail('error');
}
if(!empty($info['attachment'])){
$info['attachment'] = getFileUrl($info['attachment']);
$info['attachment_name'] = basename($info['attachment']);
}
if(!empty($info['follow'])){
foreach ($info['follow'] as $k => $v){
if(!empty($v['attachment'])){
$v['attachment'] = getFileUrl($v['attachment']);
$v['attachment_name'] = basename($v['attachment']);
}
$info['follow'][$k] = $v;
}
}
return $this->success($info);
}
/**
* @remark :保存
* @name :save
* @author :lyh
* @method :post
* @time :2023/8/23 17:19
*/
public function save($param){
DB::beginTransaction();
try {
$res = parent::save($param);
$data['task_id'] = $res['id'];
//支持分配多人
$owner = Arr::splitFilterToArray($param['owner']);
foreach ($owner as $manage_id){
$data['manage_ids'][] = $manage_id;
(new TaskOwnerLogic)->save($data);
}
DB::commit();
}catch (\Exception $e){
DB::rollBack();
errorLog('工单保存失败', $param, $e);
$this->fail('保存失败');
}
return $this->success();
}
/**
* 修改状态
* @param $param
* @return array
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author zbj
* @date 2023/4/27
*/
public function status(){
$taskOwnerModel = new TaskOwner();
$ownerInfo = $taskOwnerModel->read(['task_id'=>$this->param['id'],'manage_id'=>$this->manager['id']]);
if($ownerInfo === false){
$this->fail('当前工单不属于您');
}
try {
$this->model->edit(['status'=>$this->param['status']],['id'=>$this->param['id']]);
$taskOwnerModel->edit(['status'=>$this->param['status']],['task_id'=>$this->param['id']]);
}catch (\Exception $e){
$this->fail('error');
}
return $this->success();
}
public function clearCache($id)
{
parent::clearCache($id);
parent::setWith(['owner', 'follow']);
parent::clearCache($id);
}
}