From d3d4f6c2e95e0fcac9cb4537031ba3bc8f3c0f85 Mon Sep 17 00:00:00 2001 From: xman <1946321327@qq.com> Date: Fri, 18 Apr 2025 14:22:46 +0800 Subject: [PATCH] aftersale --- .../admin/controller/aftersales/Aftersale.php | 18 ++++++++++++------ .../admin/lang/zh-cn/aftersales/aftersale.php | 1 + application/admin/model/Aftersale.php | 2 +- .../assets/js/backend/aftersales/aftersale.js | 8 ++++---- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/application/admin/controller/aftersales/Aftersale.php b/application/admin/controller/aftersales/Aftersale.php index c2bb753..a549f80 100644 --- a/application/admin/controller/aftersales/Aftersale.php +++ b/application/admin/controller/aftersales/Aftersale.php @@ -124,7 +124,7 @@ class Aftersale extends Backend /* if($order->status != Order::STATUS_FINISHED){ $this->error('订单不是完成状态,不可创建售后'); }*/ - if(\app\admin\model\Aftersale::where('order_id',$params['order_id'])->where('status',[1,2,3])->find()){ + if(\app\admin\model\Aftersale::where('order_id',$params['order_id'])->find()){ $this->error('订单已存在售后信息,不可重复创建'); } $params['admin_id'] = $this->auth->id; @@ -133,6 +133,7 @@ class Aftersale extends Backend $params['worker_id'] = $order->dispatch->worker_id; $params['worker_name'] = $order->dispatch->worker_name; } + $params['status'] = 1; $params['refund_amount'] = bcadd($params['company_refund_amount'],$params['worker_refund_amount'],2); $result = $this->model->allowField(true)->save($params); $order->aftersale_id = $this->model->id; @@ -140,6 +141,7 @@ class Aftersale extends Backend Db::commit(); } catch (ValidateException|PDOException|Exception $e) { Db::rollback(); + throw $e; $this->error($e->getMessage()); } if ($result === false) { @@ -167,14 +169,10 @@ class Aftersale extends Backend $this->error(__('You have no permission')); } if (false === $this->request->isPost()) { - $order = Order::where($row->order_id)->find(); + $order = Order::get($row->order_id); if(empty($order)){ $this->error('订单不存在'); } - if($order->status != Order::STATUS_FINISHED){ - $this->error('订单不是完成状态,不可进行今后'); - } - $this->view->assign('order',$order); $this->view->assign('row', $row); return $this->view->fetch(); @@ -196,6 +194,14 @@ class Aftersale extends Backend $params['handle_admin_id'] = $this->auth->id; $params['handle_admin_user'] = $this->auth->nickname; $params['refund_amount'] = bcadd($params['company_refund_amount'],$params['worker_refund_amount'],2); + + if(empty($params['company_refund_time'])){ + unset($params['company_refund_time']); + } + if(empty($params['worker_refund_time'])){ + unset($params['worker_refund_time']); + } + $result = $row->allowField(true)->save($params); Db::commit(); } catch (ValidateException|PDOException|Exception $e) { diff --git a/application/admin/lang/zh-cn/aftersales/aftersale.php b/application/admin/lang/zh-cn/aftersales/aftersale.php index 1e1f357..338e09f 100644 --- a/application/admin/lang/zh-cn/aftersales/aftersale.php +++ b/application/admin/lang/zh-cn/aftersales/aftersale.php @@ -25,6 +25,7 @@ return [ 'Company_refund_amount' => '公司退款金额', 'Worker_refund_amount' => '师傅退款金额', 'Refund_type' => '退款方式', + 'Refund_type 0' => '无', 'Refund_type 1' => '微信支付', 'Refund_type 2' => '平台退款', 'Worker_refund_entry' => '师傅退款入账', diff --git a/application/admin/model/Aftersale.php b/application/admin/model/Aftersale.php index cdd7cff..d7cc0c4 100644 --- a/application/admin/model/Aftersale.php +++ b/application/admin/model/Aftersale.php @@ -51,7 +51,7 @@ class Aftersale extends Model public function getRefundTypeList() { - return ['1' => __('Refund_type 1'), '2' => __('Refund_type 2')]; + return ['0' => __('Refund_type 0'),'1' => __('Refund_type 1'), '2' => __('Refund_type 2')]; } public function getWorkerRefundEntryList() diff --git a/public/assets/js/backend/aftersales/aftersale.js b/public/assets/js/backend/aftersales/aftersale.js index 083736a..9e73584 100644 --- a/public/assets/js/backend/aftersales/aftersale.js +++ b/public/assets/js/backend/aftersales/aftersale.js @@ -38,7 +38,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin {field: 'refund_amount', title: __('Refund_amount'), operate:false}, {field: 'company_refund_amount', title: __('Company_refund_amount'), operate:false}, {field: 'worker_refund_amount', title: __('Worker_refund_amount'), operate:false}, - {field: 'refund_type', title: __('Refund_type'), searchList: {"1":__('Refund_type 1'),"2":__('Refund_type 2')}, formatter: Table.api.formatter.normal}, + {field: 'refund_type', title: __('Refund_type'), searchList: {"0":__('Refund_type 0'),"1":__('Refund_type 1'),"2":__('Refund_type 2')}, formatter: Table.api.formatter.normal}, {field: 'worker_refund_entry', title: __('Worker_refund_entry'), searchList: {"0":__('Worker_refund_entry 0'),"1":__('Worker_refund_entry 1')}, formatter: Table.api.formatter.normal}, {field: 'company_refund_time', title: __('Company_refund_time'), operate:false, addclass:'datetimerange', autocomplete:false}, {field: 'worker_refund_time', title: __('Worker_refund_time'), operate:false, addclass:'datetimerange', autocomplete:false}, @@ -68,12 +68,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin //title: __('Edit'), extend: 'data-toggle="tooltip" data-container="body"', classname: 'btn btn-xs btn-success btn-editone', - /*visible:function(row){ - if(row.status == 50){ + visible:function(row){ + if(row.status === 1){ return true; } return false; - }*/ + } } ], }