|
|
@@ -15,6 +15,7 @@
|
|
|
namespace app\adminapi\logic\works;
|
|
|
|
|
|
|
|
|
+use app\common\model\dict\DictData;
|
|
|
use app\common\model\works\ServiceWork;
|
|
|
use app\common\logic\BaseLogic;
|
|
|
use app\common\model\works\ServiceWorkLog;
|
|
|
@@ -63,4 +64,45 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 预约成功,等待上门
|
|
|
+ * @return false|void
|
|
|
+ */
|
|
|
+ public static function appointWork($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('工单不存在');
|
|
|
+ }
|
|
|
+
|
|
|
+ if($work->work_status != 2){
|
|
|
+ throw new Exception('请勿重复点击');
|
|
|
+ }
|
|
|
+
|
|
|
+ //验证更改的预约时间必须是在领单时间内的半小内修改,否则不允许修改
|
|
|
+ if(strtotime($work->appointment_time) != strtotime($params['appointment_time']) && (time()-$work->receive_time)>1800){
|
|
|
+ throw new Exception('距离领单时间已超过半小时,无法修改预约时间,请联系客服');
|
|
|
+ }
|
|
|
+
|
|
|
+ $work->work_status = 3;//待上门
|
|
|
+ $work->appointment_time = strtotime($params['appointment_time']);
|
|
|
+ $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()).'联系了客户,确认了于'.$params['appointment_time'].$params['address'].'预约上门',
|
|
|
+ ];
|
|
|
+ ServiceWorkLogLogic::add($work_log);
|
|
|
+ Db::commit();
|
|
|
+ }
|
|
|
+ catch (\Exception $e) {
|
|
|
+ self::setError($e->getMessage());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|