|
|
@@ -7,6 +7,7 @@ use App\OrderIssue;
|
|
|
use App\OrderIssueProcessLog;
|
|
|
use App\Services\OrderIssueProcessLogService;
|
|
|
use App\User;
|
|
|
+use App\WorkOrder;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
use Illuminate\Support\Facades\Gate;
|
|
|
@@ -14,6 +15,14 @@ use Illuminate\Support\Facades\Gate;
|
|
|
class OrderIssueProcessLogController extends Controller
|
|
|
{
|
|
|
|
|
|
+ /** @var OrderIssueProcessLogService $service */
|
|
|
+ private $service;
|
|
|
+
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ $this->service = app(OrderIssueProcessLogService::class);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 处理日志创建
|
|
|
* @param Request $request
|
|
|
@@ -34,7 +43,7 @@ class OrderIssueProcessLogController extends Controller
|
|
|
'type' => '处理',
|
|
|
]);
|
|
|
$log->loadMissing('user');
|
|
|
- return ['success' =>true,'data' =>$log ];
|
|
|
+ return ['success' => true, 'data' => $log];
|
|
|
} catch (Exception $e) {
|
|
|
return ['success' => false, 'fail_info' => $e->getMessage()];
|
|
|
}
|
|
|
@@ -51,16 +60,17 @@ class OrderIssueProcessLogController extends Controller
|
|
|
*/
|
|
|
public function destroyApi(Request $request): array
|
|
|
{
|
|
|
- if(!$request->filled('id')){
|
|
|
- return ['success'=>false,'fail_info'=>'没有传入对应参数'];
|
|
|
+ if (!$request->filled('id')) {
|
|
|
+ return ['success' => false, 'fail_info' => '没有传入对应参数'];
|
|
|
}
|
|
|
/** @var OrderIssueProcessLog $orderIssueProcessLog */
|
|
|
- $orderIssueProcessLog = OrderIssueProcessLog::query()->where('id',$request->input('id'))->first();
|
|
|
+ $orderIssueProcessLog = OrderIssueProcessLog::query()->where('id', $request->input('id'))->first();
|
|
|
+ if (!$orderIssueProcessLog) return ['success' => false, 'fail_info' => '日志不存在,请刷新重试'];
|
|
|
// 删除的如果是完结条目,将处理状态改为空
|
|
|
- if($orderIssueProcessLog['type'] === '结束') OrderIssue::query()->where('id',$orderIssueProcessLog['order_issue_id'])->update(['final_status'=>null]);
|
|
|
+ if ($orderIssueProcessLog['type'] === '结束') OrderIssue::query()->where('id', $orderIssueProcessLog['order_issue_id'])->update(['final_status' => null]);
|
|
|
$orderIssueProcessLog->delete();
|
|
|
app('LogService')->log(__METHOD__, __FUNCTION__, json_encode($request->getContent()));
|
|
|
- return ['success'=>true];
|
|
|
+ return ['success' => true];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -68,7 +78,8 @@ class OrderIssueProcessLogController extends Controller
|
|
|
* @param Request $request
|
|
|
* @return array
|
|
|
*/
|
|
|
- public function batchStoreApi(Request $request){
|
|
|
+ public function batchStoreApi(Request $request)
|
|
|
+ {
|
|
|
if (!Gate::allows('订单管理-问题件-编辑')) {
|
|
|
return ['success' => false, 'fail_info' => '没有对应的权限'];
|
|
|
}
|
|
|
@@ -79,17 +90,17 @@ class OrderIssueProcessLogController extends Controller
|
|
|
$data = $service->batchStoreAndReturnLogs($request->all());
|
|
|
$logs = OrderIssueProcessLog::query()
|
|
|
->with('user')
|
|
|
- ->whereIn('id',data_get($data,'*.id'))
|
|
|
+ ->whereIn('id', data_get($data, '*.id'))
|
|
|
->get();
|
|
|
$result_data = [];
|
|
|
foreach ($logs as $log) {
|
|
|
- $result_data[$log->order_issue_id] =$log;
|
|
|
+ $result_data[$log->order_issue_id] = $log;
|
|
|
}
|
|
|
- app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->getContent()));
|
|
|
- return ['success' => true,'logs' => $result_data];
|
|
|
+ app('LogService')->log(__METHOD__, __FUNCTION__, json_encode($request->getContent()));
|
|
|
+ return ['success' => true, 'logs' => $result_data];
|
|
|
} catch (\Exception $e) {
|
|
|
- app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->getContent()).'||'.$e->getMessage()."||".$e->getTraceAsString());
|
|
|
- return ['success' => false,$e->getMessage()];
|
|
|
+ app('LogService')->log(__METHOD__, __FUNCTION__, json_encode($request->getContent()) . '||' . $e->getMessage() . "||" . $e->getTraceAsString());
|
|
|
+ return ['success' => false, $e->getMessage()];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -99,9 +110,32 @@ class OrderIssueProcessLogController extends Controller
|
|
|
if (Gate::denies('订单管理-问题件-编辑'))
|
|
|
return ['success' => false, 'fail_info' => '没有对应的权限'];
|
|
|
|
|
|
- OrderIssueProcessLog::query()->where('id',$request['id'])->update(['tag'=>1]);
|
|
|
+ OrderIssueProcessLog::query()->where('id', $request['id'])->update(['tag' => 1]);
|
|
|
|
|
|
return ['success' => true];
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 工单为问题批量添加处理日志
|
|
|
+ * @param Request $request
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function workOrderCreateLogApi(Request $request): array
|
|
|
+ {
|
|
|
+ if (!Gate::allows('订单管理-问题件-编辑')) {
|
|
|
+ return ['success' => false, 'message' => '没有对应的权限'];
|
|
|
+ }
|
|
|
+ $workOrderQuery = WorkOrder::query()->select('order_id')->whereIn('id', $request->input('ids'));
|
|
|
+ $orderIssues = OrderIssue::query()->whereIn('order_id', $workOrderQuery)->get();
|
|
|
+ if (count($orderIssues) !== count($request->input('ids'))) {
|
|
|
+ return ['success' => false, 'message' => '部分工单没有对应的问题件,请检查后重试'];
|
|
|
+ }
|
|
|
+ $params = ['content' => $request->input('content'), 'orderIssueIds' => $orderIssues->map(function ($item) {
|
|
|
+ return $item->id;
|
|
|
+ })];
|
|
|
+ $data = $this->service->batchStoreAndReturnLogs($params);
|
|
|
+ $data = OrderIssueProcessLog::query()->with('user')->whereIn('id', data_get($data, "*.id"))->get();
|
|
|
+ return ['success' => true, 'data' => $data];
|
|
|
+ }
|
|
|
+
|
|
|
}
|