model = new Coach(); $this->order_model = new Order(); $cap_dis[] = ['user_id','=',$this->getUserId()]; $cap_dis[] = ['status','in',[2,3]]; $this->cap_info = $this->model->dataInfo($cap_dis); if(empty($this->cap_info)){ $this->errorMsg('你还不是技师'); } } /** * @author chenniang * @DataTime: 2021-07-08 11:39 * @功能说明:技师首页 */ public function coachIndex(){ $data = $this->cap_info; return $this->success($data); } /** * @author chenniang * @DataTime: 2021-03-23 09:59 * @功能说明:修改技师信息 */ public function coachUpdate(){ $input = $this->_input; $dis = [ 'id' => $this->cap_info['id'] ]; if(!empty($input['id_card'])){ $input['id_card'] = implode(',',$input['id_card']); } if(!empty($input['license'])){ $input['license'] = implode(',',$input['license']); } if(!empty($input['self_img'])){ $input['self_img'] = implode(',',$input['self_img']); } $res = $this->model->dataUpdate($dis,$input); return $this->success($res); } /** * @author chenniang * @DataTime: 2021-03-19 15:48 * @功能说明:个人中心 */ public function index(){ $data = $this->getUserInfo(); return $this->success($data); } /** * @author chenniang * @DataTime: 2021-03-19 15:48 * @功能说明:个人中心 */ public function orderList(){ $input = $this->_param; $dis[] = ['a.uniacid','=',$this->_uniacid]; $dis[] = ['a.coach_id','=',$this->cap_info['id']]; $where = []; if(!empty($input['name'])){ $where[] = ['b.goods_name','like','%'.$input['name'].'%']; $where[] = ['a.order_code','like','%'.$input['name'].'%']; } if($input['pay_type']==5){ $dis[] = ['a.pay_type','in',[3,4,5]]; }else{ $dis[] = ['a.pay_type','=',$input['pay_type']]; } $order_model = new Order(); $data = $order_model->indexDataList($dis,$where); //待接单数量 $data['agent_order_count'] = $order_model->where(['coach_id'=>$this->cap_info['id'],'pay_type'=>2])->count(); return $this->success($data); } /** * @author chenniang * @DataTime: 2021-07-07 23:11 * @功能说明:订单详情 */ public function orderInfo(){ $input = $this->_param; $dis = [ 'id' => $input['order_id'] ]; $data = $this->order_model->dataInfo($dis); return $this->success($data); } /** * @author chenniang * @DataTime: 2021-03-24 13:33 * @功能说明:团长审核提现 */ public function applyWallet(){ $input = $this->_input; if(empty($input['apply_price'])||$input['apply_price']<0.01){ $this->errorMsg('提现费最低一分'); } //服务费 if($input['apply_price']>$this->cap_info['service_price']&&$input['type']==1){ $this->errorMsg('余额不足'); } //车费 if($input['apply_price']>$this->cap_info['car_price']&&$input['type']==2){ $this->errorMsg('余额不足'); } $coach_level = $this->model->getCoachLevel($this->cap_info['id'],$this->_uniacid); // dump($coach_level);exit; //车费没有服务费 $balance = !empty($coach_level)&&$input['type']==1?$coach_level['balance']:100; $key = 'cap_wallet'.$this->getUserId(); $value = getCache($key); if(!empty($value)){ $this->errorMsg('网络错误,请刷新重试'); } //加一个锁防止重复提交 incCache($key,1,$this->_uniacid); Db::startTrans(); if($input['type']==1){ //减佣金 $res = $this->model->dataUpdate(['id'=>$this->cap_info['id']],['service_price'=>$this->cap_info['service_price']-$input['apply_price']]); }else{ $res = $this->model->dataUpdate(['id'=>$this->cap_info['id']],['car_price'=>$this->cap_info['car_price']-$input['apply_price']]); } if($res!=1){ Db::rollback(); //减掉 delCache($key,$this->_uniacid); $this->errorMsg('申请失败'); } $insert = [ 'uniacid' => $this->_uniacid, 'user_id' => $this->getUserId(), 'coach_id' => $this->cap_info['id'], 'total_price' => $input['apply_price'], 'balance' => $balance, 'apply_price' => round($input['apply_price']*$balance/100,2), 'service_price' => round($input['apply_price']-$input['apply_price']*$balance/100,2), 'code' => orderCode(), 'text' => $input['text'], 'type' => $input['type'], ]; $wallet_model = new Wallet(); //提交审核 $res = $wallet_model->dataAdd($insert); if($res!=1){ Db::rollback(); //减掉 delCache($key,$this->_uniacid); $this->errorMsg('申请失败'); } Db::commit(); //减掉 delCache($key,$this->_uniacid); return $this->success($res); } /** * @author chenniang * @DataTime: 2021-03-25 17:14 * @功能说明:楼长核销订单 */ public function hxOrder(){ $input = $this->_input; $order_model= new Order(); $order = $order_model->dataInfo(['id'=>$input['id']]); if(empty($order)){ $this->errorMsg('订单未找到'); } if($order['pay_type']!=5){ $this->errorMsg('订单状态错误'); } if($order['coach_id']!=$this->cap_info['id']){ $this->errorMsg('你不是该订单的楼长'); } $refund_model = new RefundOrder(); //判断有无申请中的退款订单 $refund_order = $refund_model->dataInfo(['order_id'=>$order['id'],'status'=>1]); if(!empty($refund_order)){ $this->errorMsg('该订单正在申请退款,请先处理再核销'); } $res = $order_model->hxOrder($order,$this->cap_info['id']); return $this->success($res); } /** * @author chenniang * @DataTime: 2021-03-30 13:38 * @功能说明:团长端佣金信息 */ public function capCashInfo(){ $this->order_model->coachBalanceArr($this->_uniacid); $key = 'cap_wallet'.$this->getUserId(); //减掉 delCache($key,$this->_uniacid); $wallet_model = new Wallet(); //可提现佣金 $data['cap_cash'] = $this->cap_info['service_price']; //累计提现 $data['extract_total_price'] = $wallet_model->capCash($this->cap_info['id'],2,1); //提现中 $data['extract_ing_price'] = $wallet_model->capCash($this->cap_info['id'],1,1); $dis = [ 'pay_type' => 7, 'coach_id' => $this->cap_info['id'], 'have_tx' => 0 ]; //未到账 $data['no_received'] = $this->order_model->where($dis)->sum('service_price'); $data['coach_level'] = $this->model->getCoachLevel($this->cap_info['id'],$this->_uniacid); return $this->success($data); } /** * @author chenniang * @DataTime: 2021-03-30 13:38 * @功能说明:团长端佣金信息 */ public function capCashInfoCar(){ $key = 'cap_wallet'.$this->getUserId(); //减掉 delCache($key,$this->_uniacid); $wallet_model = new Wallet(); //可提现佣金 $data['cap_cash'] = $this->cap_info['car_price']; //累计提现 $data['extract_total_price'] = $wallet_model->capCash($this->cap_info['id'],2,2); //提现中 $data['extract_ing_price'] = $wallet_model->capCash($this->cap_info['id'],1,2); $dis = [ 'pay_type' => 7, 'coach_id' => $this->cap_info['id'], 'have_tx' => 0 ]; //未到账 $data['no_received'] = $this->order_model->where($dis)->sum('car_price'); $data['coach_level'] = $this->model->getCoachLevel($this->cap_info['id'],$this->_uniacid); return $this->success($data); } /** * @author chenniang * @DataTime: 2021-03-30 14:39 * @功能说明:团长提现记录 */ public function capCashList(){ $wallet_model = new Wallet(); $input = $this->_param; $dis = [ 'coach_id' => $this->cap_info['id'] ]; if(!empty($input['status'])){ $dis['status'] = $input['status']; } $dis['type'] = $input['type']; //提现记录 $data = $wallet_model->dataList($dis,10); if(!empty($data['data'])){ foreach ($data['data'] as &$v){ $v['create_time'] = date('Y-m-d H:i:s',$v['create_time']); } } //累计提现 $data['extract_total_price'] = $wallet_model->capCash($this->cap_info['id'],2,$input['type']); return $this->success($data); } /** * @author chenniang * @DataTime: 2021-07-08 17:09 * @功能说明:报警 */ public function police(){ $insert = [ 'uniacid' => $this->_uniacid, 'coach_id'=> $this->cap_info['id'], 'user_id' => $this->cap_info['user_id'], 'text' => '正在发出求救信号,请及时查看技师正在服务的订单地址和电话,确认报警信息' ]; $police_model = new Police(); $res = $police_model->dataAdd($insert); return $this->success($res); } /** * @author chenniang * @DataTime: 2021-07-11 22:34 * @功能说明:技师修改订单信息) */ public function updateOrder(){ $input = $this->_input; $order = $this->order_model->dataInfo(['id'=>$input['order_id']]); $update = $this->order_model->coachOrdertext($input); Db::startTrans(); //核销订单 if($input['type']==7){ if($order['pay_type']!=6){ $this->errorMsg('订单状态错误'); } $refund_model = new RefundOrder(); //判断有无申请中的退款订单 $refund_order = $refund_model->dataInfo(['order_id'=>$order['id'],'status'=>1]); if(!empty($refund_order)){ $this->errorMsg('该订单正在申请退款,请先处理再核销'); } $res = $this->order_model->hxOrder($order,$this->cap_info['id']); $res = $this->order_model->dataUpdate(['id'=>$input['order_id']],$update); }else{ // dump($update);exit; $res = $this->order_model->dataUpdate(['id'=>$input['order_id']],$update); //拒绝接单 if($input['type']==-1){ if($order['pay_type']!=2){ Db::rollback(); $this->errorMsg('已接单'); } if($order['pay_price']>0){ $refund_model = new RefundOrder(); $res = $refund_model->refundCash($this->payConfig(),$order,$order['pay_price']); if(!empty($res['code'])){ Db::rollback(); $this->errorMsg($res['msg']); } if($res!=true){ Db::rollback(); $this->errorMsg('退款失败,请重试2'); } } } } Db::commit(); return $this->success($res); } }