diff --git a/app/AdminAgent/Controllers/WorkorderController.php b/app/AdminAgent/Controllers/WorkorderController.php index 94601d7..09e4da1 100755 --- a/app/AdminAgent/Controllers/WorkorderController.php +++ b/app/AdminAgent/Controllers/WorkorderController.php @@ -3,8 +3,10 @@ namespace App\AdminAgent\Controllers; use App\AdminAgent\Repositories\Workorder; +use App\Http\Controllers\Controller; use App\Models\AgentProductItem; use App\Models\Guide; +use App\Models\OrderProductItem; use App\Models\Supplier; use App\Models\WorkorderItem; use App\Traits\DemandTraits; @@ -22,6 +24,58 @@ use Illuminate\Support\Facades\Validator; class WorkorderController extends AdminController { use ResponseHelper; + + public function index(Content $content) + { + $workorderId = \request('workorder_id',0); + $data = $userList = $msgList = []; + $workorder = \App\Models\Workorder::query() + ->with('point') + ->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[0]]) + ->orderByDesc('updated_at') + ->get(); + + foreach ($workorder as $v) { + $item = WorkorderItem::query()->where('workorder_id',$v->id)->orderByDesc('updated_at')->first(); + $arr = [ + 'workorder_id' => $v->id, + 'unread' => true, + 'avatar' => $v->point->avatar, + 'name' => $v->point->name, + 'content' => $v->title, + 'last_message' => $item ? ($item->type == 1 ? $item->content : '【 图片 】') : '', + 'last_message_time' => $item->created_at ?? '', + ]; + $userList [] = $arr; + } + + $workorderItem = WorkorderItem::query() + ->with(['publisher']) + ->where('workorder_id',$workorderId) + ->get(); + + foreach ($workorderItem as $v) { + $arr = [ + 'type' => $v->publisher_type == DemandTraits::$col[0] ? 'my' : 'op', + 'it_type' => $v->type, + 'avatar' => $v->publisher->avatar, + 'name' => $v->publisher->name, + 'content' => $v->content, + ]; + $msgList [] = $arr; + } + + $data = [ + 'user_list' => $userList, + 'msg_list' => $msgList + ]; + + return $content + ->header('Dashboard') + ->description('Description...') + ->body(admin_view('admin.pages.index',$data)); + } + /** * Make a grid builder. * @@ -138,9 +192,18 @@ class WorkorderController extends AdminController }); } - //图片上传 - public function upload(Request $request) + public function sendImage(Request $request) { + $validator = Validator::make(request()->all(), [ + 'workorder_id' => 'required|int', + ], [ + '*' => '参数异常', + ]); + + if ($validator->fails()) { + return $this->jsonFailValidated('数据不全:'.$validator->errors()->first()); + } + $image = $request->file('image'); if (empty($image) || !$image->isValid()) { return $this->error('您未上传任何文件'); @@ -152,15 +215,22 @@ class WorkorderController extends AdminController } $path = $request->image->store('public/images/workorder'); - return $this->jsonSuccess(['path' => config('filesystems.disks.public.url') . '/' . $path]); + + $item = new WorkorderItem(); + $item->workorder_id = request('workorder_id',0); + $item->content = $path; + $item->type = 2; + $item->publisher_type = DemandTraits::$col[0]; + $item->publisher_id = Admin::user()->id; + $item->save(); + return $this->jsonSuccess($item); } - public function send(Request $request) + public function sendText(Request $request) { $validator = Validator::make(request()->all(), [ 'workorder_id' => 'required|int', 'content' => 'required', - 'type' => 'required|int', ], [ '*' => '参数异常', ]); @@ -172,10 +242,11 @@ class WorkorderController extends AdminController $item = new WorkorderItem(); $item->workorder_id = request('workorder_id',0); $item->content = request('content',''); - $item->type = request('type',1); + $item->type = 1; $item->publisher_type = DemandTraits::$col[0]; - $item->publisher_id = 1; - return $this->jsonSuccess($item->save()); + $item->publisher_id = Admin::user()->id; + $item->save(); + return $this->jsonSuccess($item); } public function render() diff --git a/app/AdminAgent/routes.php b/app/AdminAgent/routes.php index 0174158..08fd9c9 100644 --- a/app/AdminAgent/routes.php +++ b/app/AdminAgent/routes.php @@ -45,7 +45,9 @@ Route::group([ $router->resource('workorder', 'WorkorderController'); //api - $router->any('upload', 'WorkorderController@upload'); - $router->any('send_message', 'WorkorderController@send'); - $router->any('render', 'WorkorderController@render'); + $router->any('send_text', 'WorkorderController@sendText'); + $router->any('send_image', 'WorkorderController@sendImage'); + + $router->any('workorder_item', 'WorkorderController@index'); + }); diff --git a/resources/views/admin/pages/index.blade.php b/resources/views/admin/pages/index.blade.php new file mode 100644 index 0000000..7636e05 --- /dev/null +++ b/resources/views/admin/pages/index.blade.php @@ -0,0 +1,241 @@ + + +