From 8424126ffdfe1e44c1c92b2478faa7efa2b98a67 Mon Sep 17 00:00:00 2001 From: xman <1946321327@qq.com> Date: Sat, 12 Apr 2025 19:54:05 +0800 Subject: [PATCH] sth --- .../admin/controller/orders/Review.php | 118 ++++++++ .../admin/lang/zh-cn/orders/review.php | 11 + application/admin/model/OrderReview.php | 38 +++ application/admin/model/Revisitorder.php | 67 +++++ application/admin/model/order/Review.php | 12 + application/admin/validate/OrderReview.php | 27 ++ application/admin/view/orders/review/add.html | 39 +++ .../admin/view/orders/review/edit.html | 51 ++++ .../admin/view/orders/review/index.html | 29 ++ .../admin/view/orders/revisitorder/edit.html | 257 +++--------------- public/assets/js/backend/orders/review.js | 58 ++++ .../assets/js/backend/orders/revisitorder.js | 27 +- 12 files changed, 509 insertions(+), 225 deletions(-) create mode 100644 application/admin/controller/orders/Review.php create mode 100644 application/admin/lang/zh-cn/orders/review.php create mode 100644 application/admin/model/OrderReview.php create mode 100644 application/admin/model/Revisitorder.php create mode 100644 application/admin/model/order/Review.php create mode 100644 application/admin/validate/OrderReview.php create mode 100644 application/admin/view/orders/review/add.html create mode 100644 application/admin/view/orders/review/edit.html create mode 100644 application/admin/view/orders/review/index.html create mode 100644 public/assets/js/backend/orders/review.js diff --git a/application/admin/controller/orders/Review.php b/application/admin/controller/orders/Review.php new file mode 100644 index 0000000..163a778 --- /dev/null +++ b/application/admin/controller/orders/Review.php @@ -0,0 +1,118 @@ +model = new \app\admin\model\OrderReview; + + } + + + + /** + * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 + * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 + * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 + */ + + + + + /** + * 添加 + * + * @return string + * @throws \think\Exception + */ + public function add() + { + if (false === $this->request->isPost()) { + + $ids = $this->request->request('ids'); + + if(empty($ids)){ + $this->error('参数错误'); + } + $order = Order::get($ids,['dispatch']); + if( + empty($order) + ){ + $this->error('订单不存在'); + } + + if($order->status != Order::STATUS_FINISHED){ + $this->error('订单未完成,不能回访'); + } + if($order->revisit_id > 0){ + $this->error('订单已完成回访'); + } + + $this->assign('order',$order); + return $this->view->fetch(); + } + $params = $this->request->post('row/a'); + if (empty($params)) { + $this->error(__('Parameter %s can not be empty', '')); + } + $params = $this->preExcludeFields($params); + + if ($this->dataLimit && $this->dataLimitFieldAutoFill) { + $params[$this->dataLimitField] = $this->auth->id; + } + + $order = Order::get($params['order_id'],['dispatch']); + if( + empty($order) + ){ + $this->error('订单不存在'); + } + + $result = false; + Db::startTrans(); + try { + //是否采用模型验证 + if ($this->modelValidate) { + $name = str_replace("\\model\\", "\\validate\\", get_class($this->model)); + $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate; + $this->model->validateFailException()->validate($validate); + } + $params['admin_id'] = $this->auth->id; + $params['admin_user'] = $this->auth->nickname; + $params['worker_id'] = $order->dispatch->worker_id; + $result = $this->model->allowField(true)->save($params); + $order->revisit_id = $this->auth->id; + $order->save(); + Db::commit(); + } catch (ValidateException|PDOException|Exception $e) { + Db::rollback(); + $this->error($e->getMessage()); + } + if ($result === false) { + $this->error(__('No rows were inserted')); + } + $this->success(); + } + +} diff --git a/application/admin/lang/zh-cn/orders/review.php b/application/admin/lang/zh-cn/orders/review.php new file mode 100644 index 0000000..75523a7 --- /dev/null +++ b/application/admin/lang/zh-cn/orders/review.php @@ -0,0 +1,11 @@ + '订单ID', + 'Worker_id' => '师傅ID', + 'Pt_star' => '平台评分', + 'Worker_star' => '师傅评分', + 'Remark' => '备注', + 'Admin_id' => '回访人', + 'Admin_user' => '回访人' +]; diff --git a/application/admin/model/OrderReview.php b/application/admin/model/OrderReview.php new file mode 100644 index 0000000..10a3f3d --- /dev/null +++ b/application/admin/model/OrderReview.php @@ -0,0 +1,38 @@ + __('Status 0'), '10' => __('Status 10'), '20' => __('Status 20'), '30' => __('Status 30'), '40' => __('Status 40'), '50' => __('Status 50'), '60' => __('Status 60'), '-10' => __('Status -10')]; + } + + public function getOfflineAmountTypeList() + { + return ['1' => __('Offline_amount_type 1'), '2' => __('Offline_amount_type 2')]; + } + + + public function getStatusTextAttr($value, $data) + { + $value = $value ?: ($data['status'] ?? ''); + $list = $this->getStatusList(); + return $list[$value] ?? ''; + } + + + public function getOfflineAmountTypeTextAttr($value, $data) + { + $value = $value ?: ($data['offline_amount_type'] ?? ''); + $list = $this->getOfflineAmountTypeList(); + return $list[$value] ?? ''; + } + + + + + public function review() + { + return $this->belongsTo('app\admin\model\order\Review', 'revisit_id', 'order_id', [], 'LEFT')->setEagerlyType(0); + } +} diff --git a/application/admin/model/order/Review.php b/application/admin/model/order/Review.php new file mode 100644 index 0000000..5a678f1 --- /dev/null +++ b/application/admin/model/order/Review.php @@ -0,0 +1,12 @@ + [], + 'edit' => [], + ]; + +} diff --git a/application/admin/view/orders/review/add.html b/application/admin/view/orders/review/add.html new file mode 100644 index 0000000..0bdab0e --- /dev/null +++ b/application/admin/view/orders/review/add.html @@ -0,0 +1,39 @@ +
diff --git a/application/admin/view/orders/review/edit.html b/application/admin/view/orders/review/edit.html new file mode 100644 index 0000000..92547e0 --- /dev/null +++ b/application/admin/view/orders/review/edit.html @@ -0,0 +1,51 @@ + diff --git a/application/admin/view/orders/review/index.html b/application/admin/view/orders/review/index.html new file mode 100644 index 0000000..f63beab --- /dev/null +++ b/application/admin/view/orders/review/index.html @@ -0,0 +1,29 @@ +