|
|
@@ -16,6 +16,7 @@ namespace app\adminapi\logic\works;
|
|
|
|
|
|
|
|
|
use app\common\model\dict\DictData;
|
|
|
+use app\common\model\recharge\RechargeOrder;
|
|
|
use app\common\model\works\ServiceWork;
|
|
|
use app\common\logic\BaseLogic;
|
|
|
use app\common\model\works\ServiceWorkLog;
|
|
|
@@ -105,4 +106,110 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 师傅确认上门
|
|
|
+ * @param $params
|
|
|
+ * @return false|void
|
|
|
+ */
|
|
|
+ public static function confirmDoor($params)
|
|
|
+ {
|
|
|
+ Db::startTrans();
|
|
|
+ try {
|
|
|
+ $work = ServiceWork::where(['master_worker_id'=>$params['user_id'],'work_sn'=>$params['work_sn']])->findOrEmpty();
|
|
|
+ if($work->isEmpty()){
|
|
|
+ throw new Exception('工单不存在');
|
|
|
+ }
|
|
|
+
|
|
|
+ $order = RechargeOrder::where(['sn'=>$params['order_sn'],'work_id'=>$work['id']])->findOrEmpty();
|
|
|
+ if($order->isEmpty()){
|
|
|
+ throw new Exception('订单不存在');
|
|
|
+ }
|
|
|
+
|
|
|
+ if($work->work_status != 3){
|
|
|
+ throw new Exception('请勿重复点击');
|
|
|
+ }
|
|
|
+
|
|
|
+ $work->work_status = 4;//已上门
|
|
|
+ $work->save();
|
|
|
+
|
|
|
+ //添加变更日志
|
|
|
+ $work_log = [
|
|
|
+ 'work_id'=>$work->id,
|
|
|
+ 'master_worker_id'=>$work->master_worker_id,
|
|
|
+ 'opera_log'=>'编号['.$params['user_info']['worker_number'].']'.$params['user_info']['real_name'].'于'.date('y-m-d H:i:s',time()).'于'.date('Y-m-d H:i:s',time()).'已上门',
|
|
|
+ ];
|
|
|
+ ServiceWorkLogLogic::add($work_log);
|
|
|
+ Db::commit();
|
|
|
+ }
|
|
|
+ catch (\Exception $e) {
|
|
|
+ self::setError($e->getMessage());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 师傅确认报价单
|
|
|
+ * @param $params
|
|
|
+ * @return false|void
|
|
|
+ */
|
|
|
+ public static function confirmPrice($params)
|
|
|
+ {
|
|
|
+ Db::startTrans();
|
|
|
+ try {
|
|
|
+ $work = ServiceWork::where(['master_worker_id'=>$params['user_id'],'work_sn'=>$params['work_sn']])->findOrEmpty();
|
|
|
+ if($work->isEmpty()){
|
|
|
+ throw new Exception('工单不存在');
|
|
|
+ }
|
|
|
+ //搜索待支付订单
|
|
|
+ $paid_order = RechargeOrder::where(['work_id'=>$work['id'],'pay_status'=>1])->findOrEmpty()->toArray();
|
|
|
+ if(empty($paid_order)){
|
|
|
+ throw new Exception('订单错误');
|
|
|
+ }
|
|
|
+
|
|
|
+ if($work->work_status != 3 || $work->user_confirm_status !=1 ){
|
|
|
+ throw new Exception('请勿重复操作');
|
|
|
+ }
|
|
|
+
|
|
|
+ //定金存在尾款结算功能,全款直接提交
|
|
|
+ if($paid_order['payment_type']==1){
|
|
|
+ $un_order = RechargeOrder::where(['work_id'=>$work['id'],'pay_status'=>0])->findOrEmpty();
|
|
|
+ if($un_order->isEmpty()){
|
|
|
+ //新增待支付尾款
|
|
|
+ $order_data = [
|
|
|
+ 'order_type'=>$paid_order['order_type'],
|
|
|
+ 'sn'=>generate_sn(\app\common\model\orders\RechargeOrder::class, 'sn'),
|
|
|
+ 'work_id'=>$paid_order['work_id'],
|
|
|
+ 'user_id'=>$paid_order['user_id'],
|
|
|
+ 'payment_type'=>2,
|
|
|
+ 'order_total'=>$params['amount'],
|
|
|
+ 'order_amount'=>$params['amount'],
|
|
|
+ 'order_terminal'=>$paid_order['order_terminal']
|
|
|
+ ];
|
|
|
+ RechargeOrder::create($order_data);
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改尾款信息
|
|
|
+ $un_order->order_total = $params['amount'];
|
|
|
+ $un_order->order_amount = $params['amount'];
|
|
|
+ $un_order->save();
|
|
|
+ }
|
|
|
+
|
|
|
+ $work->user_confirm_status = 1;//待确认报价
|
|
|
+ $work->save();
|
|
|
+
|
|
|
+ //添加变更日志
|
|
|
+ $work_log = [
|
|
|
+ 'work_id'=>$work->id,
|
|
|
+ 'master_worker_id'=>$work->master_worker_id,
|
|
|
+ 'opera_log'=>'编号['.$params['user_info']['worker_number'].']'.$params['user_info']['real_name'].'于'.date('y-m-d H:i:s',time()).'于'.date('Y-m-d H:i:s',time()).'提交了报价单',
|
|
|
+ ];
|
|
|
+ ServiceWorkLogLogic::add($work_log);
|
|
|
+ Db::commit();
|
|
|
+ }
|
|
|
+ catch (\Exception $e) {
|
|
|
+ self::setError($e->getMessage());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|