From 433f3bbce45edf062d1f05177f81e3b7a3254378 Mon Sep 17 00:00:00 2001 From: xman <1946321327@qq.com> Date: Mon, 2 Jun 2025 20:25:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/aftersales/Aftersale.php | 31 +++++- .../controller/aftersales/Aftersale2.php | 18 ++-- .../lang/zh-cn/aftersales/aftersale2.php | 99 +++++++++++++++++++ application/admin/model/Aftersale.php | 6 +- .../admin/view/aftersales/aftersale/edit.html | 61 +++++++----- .../view/aftersales/aftersale2/index.html | 10 -- .../assets/js/backend/aftersales/aftersale.js | 19 +++- .../js/backend/aftersales/aftersale2.js | 8 +- 8 files changed, 200 insertions(+), 52 deletions(-) create mode 100644 application/admin/lang/zh-cn/aftersales/aftersale2.php diff --git a/application/admin/controller/aftersales/Aftersale.php b/application/admin/controller/aftersales/Aftersale.php index 921a019..cf40b7c 100644 --- a/application/admin/controller/aftersales/Aftersale.php +++ b/application/admin/controller/aftersales/Aftersale.php @@ -255,15 +255,15 @@ class Aftersale extends Backend $result = $row->allowField(true)->save($params); - if($params['handle_type'] == 1 && $params['status'] == 2){ //处理完成,重新计算利润 + /*if($params['handle_type'] == 1 && $params['status'] == 2){ //处理完成,重新计算利润 - $row->refund_status = 1; + $row->refund_status = 3; $row->save(); $order = Order::get($row->order_id); //重新计算订单利润 $orderLogic = new OrderLogic(); $orderLogic->recacle($order,$row); - } + }*/ Db::commit(); } catch (ValidateException|PDOException|Exception $e) { Db::rollback(); @@ -276,4 +276,29 @@ class Aftersale extends Backend } + public function delete($ids){ + $row = $this->model->get($ids); + if(empty($row)){ + $this->error('售后不存在'); + } + $order = Order::get($row->order_id); + + if(empty($order)){ + $this->error('订单不存在'); + } + if($row->handle_type == 1){ //退款 + if($row->status == 4){ + $this->error('退款已完成,不可撤销'); + } + }else{ + if($row->status == 2){ + $this->error('售后已完成,不可撤销'); + } + } + $order->aftersale_id = 0; + $order->save(); + $row->status = -1; + $row->save(); + $this->success(); + } } diff --git a/application/admin/controller/aftersales/Aftersale2.php b/application/admin/controller/aftersales/Aftersale2.php index 85b4181..f920e26 100644 --- a/application/admin/controller/aftersales/Aftersale2.php +++ b/application/admin/controller/aftersales/Aftersale2.php @@ -70,7 +70,7 @@ class Aftersale2 extends Backend list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $builder = $this->model - ->where('refund_status','=',1) + ->whereIn('fa_aftersale.status',[3,4]) ->with(['order']) ->where($where); @@ -224,6 +224,10 @@ class Aftersale2 extends Backend $this->view->assign('row', $row); return $this->view->fetch(); } + + if($row->status != 3 || $row->handle_type!= 1){ + $this->error('售后状态不是待退款,不可编辑'); + } $params = $this->request->post('row/a'); if (empty($params)) { $this->error(__('Parameter %s can not be empty', '')); @@ -254,15 +258,15 @@ class Aftersale2 extends Backend $params['worker_refund_time'] = date('Y-m-d H:i:s'); } + $params['status'] = 4; + $params['refund_time'] = date('Y-m-d H:i:s'); $result = $row->allowField(true)->save($params); - if($params['handle_type'] == 1 && $params['status'] == 2){ //处理完成,重新计算利润 + $order = Order::get($row->order_id); + //重新计算订单利润 + $orderLogic = new OrderLogic(); + $orderLogic->recacle($order,$row); - $order = Order::get($row->order_id); - //重新计算订单利润 - $orderLogic = new OrderLogic(); - $orderLogic->recacle($order,$row); - } Db::commit(); } catch (ValidateException|PDOException|Exception $e) { Db::rollback(); diff --git a/application/admin/lang/zh-cn/aftersales/aftersale2.php b/application/admin/lang/zh-cn/aftersales/aftersale2.php new file mode 100644 index 0000000..d6647b0 --- /dev/null +++ b/application/admin/lang/zh-cn/aftersales/aftersale2.php @@ -0,0 +1,99 @@ + 'ID', + 'Order_id' => '订单ID', + 'Status' => '状态', + 'Status 1' => '待处理', + 'Set status to 1' => '设为待处理', + 'Status 2' => '已办结', + 'Set status to 2' => '设为已办结', + 'Status 3' => '已退款', + 'Set status to 3' => '设为已退款', + 'Status -1' => '已作废', + 'Set status to -1' => '设为已作废', + 'Handle_type' => '办结方式', + 'Handle_type 1' => '退款', + 'Handle_type 2' => '返修', + 'Handle_type 3' => '客户无理取闹', + 'Handle_type 4' => '其它', + 'From' => '责任方', + 'From 1' => '师傅', + 'From 2' => '顾客', + 'From 3' => '平台', + 'Refund_amount' => '退款金额', + 'Company_refund_amount' => '公司退款金额', + 'Worker_refund_amount' => '师傅退款金额', + 'Refund_type' => '退款方式', + 'Refund_type 0' => '无', + 'Refund_type 1' => '微信支付', + 'Refund_type 2' => '平台退款', + 'Worker_refund_entry' => '师傅退款入账', + 'Worker_refund_entry 0' => '否', + 'Worker_refund_entry 1' => '是', + 'Refund_time' => '退款时间', + 'Customer_appeal' => '客户诉求', + 'Customer_qrcode' => '客户二维码', + 'Images' => '退款凭证', + 'Remark' => '情况说明', + 'Create_time' => '创建时间', + 'Update_time' => '编辑时间', + 'Company_refund_time' => '公司退款时间', + 'Worker_refund_time' => '师傅退款时间', + 'Admin_id' => '创建人', + 'Admin_user' => '创建人', + 'Handle_admin_id' => '处理人', + 'Handle_admin_user' => '处理人', + 'Star' => '评分', + 'Order.id' => 'ID', + 'Order.order_no' => '订单编号', + 'Order.customer' => '客户姓名', + 'Order.tel' => '客户电话', + 'Order.status' => '订单状态', + 'Order.status 10' => '未派单', + 'Order.status 20' => '已派单', + 'Order.status 30' => '已接单', + 'Order.status 40' => '处理中', + 'Order.status 50' => '已完成', + 'Order.status -10' => '取消', + 'Order.status -20' => '作废', + 'Order.status -30' => '已拒接', + 'Order.area_id' => '地域', + 'Order.address' => '详细地址', + 'Order.work_tel_id' => '工作机', + 'Order.worker_id' => '师傅ID', + 'Order.worker_name' => '师傅姓名', + 'Order.worker_tel' => '师傅手机', + 'Order.source' => '订单来源', + 'Order.source_uid' => '来源UID', + 'Order.service_id' => '服务ID', + 'Order.service_title' => '服务名称', + 'Order.detail' => '订单详情', + 'Order.remark' => '订单备注', + 'Order.images' => '图片', + 'Order.collect' => '是否收藏', + 'Order.collect 0' => '否', + 'Order.collect 1' => '是', + 'Order.collect_remark' => '收藏备注', + 'Order.enter_admin_id' => '录单员ID', + 'Order.dispatch_admin_id' => '派单员ID', + 'Order.dispatch_type' => '派单方式', + 'Order.dispatch_type 10' => '线上手动', + 'Order.dispatch_type 11' => '线上自动', + 'Order.dispatch_type 20' => '线下', + 'Order.total' => '总收款', + 'Order.cost' => '成本', + 'Order.performance' => '绩效', + 'Order.sb_amount' => '垫付', + 'Order.real_amount' => '实付', + 'Order.cancel_reason_id' => '取消原因', + 'Order.cancel_detail' => '取消详情', + 'Order.abolish_reason_id' => '作废原因', + 'Order.abolish_detail' => '作废详情', + 'Order.create_time' => '录单时间', + 'Order.update_time' => '更新时间', + 'Order.payment_time' => '付款时间', + 'Order.finishe_time' => '完成时间', + 'Order.dispatch_time' => '派单时间', + 'Order.delete_time' => '删除时间' +]; diff --git a/application/admin/model/Aftersale.php b/application/admin/model/Aftersale.php index 92c9e43..7ad500a 100644 --- a/application/admin/model/Aftersale.php +++ b/application/admin/model/Aftersale.php @@ -39,7 +39,8 @@ class Aftersale extends Model { return ['1' => __('Status 1'), '2' => __('Status 2'), - //'3' => __('Status 3'), + '3' => __('待退款'), + '4' => __('已退款'), '-1' => __('Status -1')]; } @@ -116,9 +117,6 @@ class Aftersale extends Model return $list[$value] ?? ''; } - - - public function order() { return $this->belongsTo('Order', 'order_id', 'id', [], 'LEFT')->setEagerlyType(0); diff --git a/application/admin/view/aftersales/aftersale/edit.html b/application/admin/view/aftersales/aftersale/edit.html index a241227..0d508d2 100644 --- a/application/admin/view/aftersales/aftersale/edit.html +++ b/application/admin/view/aftersales/aftersale/edit.html @@ -47,18 +47,8 @@ -