model = new ChannelList(); $this->order_model = new Order(); $this->user_model = new User(); $cap_dis[] = ['user_id','=',$this->getUserId()]; $cap_dis[] = ['status','in',[2,3]]; $this->channel_info = $this->model->dataInfo($cap_dis); if(empty($this->channel_info)){ $this->errorMsg('你还不是渠道商'); } } /** * @author chenniang * @DataTime: 2021-07-08 11:39 * @功能说明:技师首页 */ public function index(){ $this->order_model->coachBalanceArr($this->_uniacid); $input = $this->_param; $data = $this->channel_info; $order_data = $this->order_model->channelData($this->channel_info['id'],$input); $data = array_merge($order_data,$data); //税点 $data['tax_point'] = getConfigSetting($this->_uniacid,'tax_point'); return $this->success($data); } /** * @author chenniang * @DataTime: 2022-08-30 14:18 * @功能说明:渠道码 */ public function channelQr(){ $input = $this->_param; $key = 'channel_qr'.$this->channel_info['id'].'-'.$this->is_app; $qr = getCache($key,$this->_uniacid); if(empty($qr)){ //小程序 if($this->is_app==0){ //$input['page'] = 'pages/service'; $input['page'] = 'user/pages'; $input['channel_id'] = $this->channel_info['id']; //获取二维码 $qr = $this->user_model->orderQr($input,$this->_uniacid); }else{ // $page = 'https://'.$_SERVER['HTTP_HOST'].'/h5/#/pages/service?channel_id='.$this->channel_info['id']; $page = 'https://'.$_SERVER['HTTP_HOST'].'/h5/#/user/pages/gzh?channel_id='.$this->channel_info['id']; $qr = base64ToPng(getCode($this->_uniacid,$page)); } setCache($key,$qr,86400,$this->_uniacid); } $qr = !empty($qr)?$qr:'https://'.$_SERVER['HTTP_HOST'].'/favicon.ico'; return $this->success($qr); } /** * @author chenniang * @DataTime: 2022-08-30 14:34 * @功能说明:订单列表 */ public function orderList(){ $input = $this->_param; $dis[] = ['a.uniacid','=',$this->_uniacid]; $dis[] = ['a.pay_type','>',1]; $dis[] = ['a.channel_id','=',$this->channel_info['id']]; if(!empty($input['start_time'])&&!empty($input['end_time'])){ $dis[] = ['a.create_time','between',"{$input['start_time']},{$input['end_time']}"]; } $where = []; if(!empty($input['name'])){ $where[] = ['b.goods_name','like','%'.$input['name'].'%']; $where[] = ['a.order_code','like','%'.$input['name'].'%']; } $data = $this->order_model->indexDataList($dis,$where); if(!empty($data['data'])){ $refund_model = new RefundOrder(); $com_model = new Commission(); foreach ($data['data'] as &$v){ $v['refund_price'] = $refund_model->where(['order_id'=>$v['id'],'status'=>2])->sum('service_price'); //渠道商佣金 $v['channel_cash'] = $com_model->where(['order_id'=>$v['id'],'type'=>10])->where('status','>',-1)->value('cash'); } } 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->channel_info['cash']) { $this->errorMsg('余额不足'); } //获取税点 $tax_point = getConfigSetting($this->_uniacid,'tax_point'); $balance = 100 - $tax_point; $key = 'channel_wallet' . $this->getUserId(); //加一个锁防止重复提交 incCache($key, 1, $this->_uniacid); $value = getCache($key,$this->_uniacid); if ($value!=1) { decCache($key,1, $this->_uniacid); $this->errorMsg('网络错误,请刷新重试'); } Db::startTrans(); //减佣金 $res = $this->model->dataUpdate(['id' => $this->channel_info['id']], ['cash' => $this->channel_info['cash'] - $input['apply_price']]); if ($res != 1) { Db::rollback(); //减掉 decCache($key, $this->_uniacid); $this->errorMsg('申请失败'); } $insert = [ 'uniacid' => $this->_uniacid, 'user_id' => $this->getUserId(), 'coach_id' => $this->channel_info['id'], 'admin_id' => 0, 'total_price' => $input['apply_price'], 'balance' => $balance, 'apply_price' => round($input['apply_price'] * $balance / 100, 2), 'service_price' => round( $input['apply_price'] * $tax_point / 100, 2), 'code' => orderCode(), 'tax_point' => $tax_point, 'text' => $input['text'], 'type' => 5, 'apply_transfer' => !empty($input['apply_transfer'])?$input['apply_transfer']:0 ]; $wallet_model = new Wallet(); //提交审核 $res = $wallet_model->dataAdd($insert); if ($res != 1) { Db::rollback(); //减掉 decCache($key, $this->_uniacid); $this->errorMsg('申请失败'); } Db::commit(); //减掉 decCache($key,1, $this->_uniacid); return $this->success($res); } /** * @author chenniang * @DataTime: 2021-03-30 14:39 * @功能说明:渠道商提现记录 */ public function walletList() { $wallet_model = new Wallet(); $input = $this->_param; $dis = [ 'coach_id' => $this->channel_info['id'] ]; if (!empty($input['status'])) { $dis['status'] = $input['status']; } $dis['type'] = 5; //提现记录 $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->channel_info['id'], 2, 5); return $this->success($data); } }