0 ? date('Y-m-d H:i:s', $value) : 0; } /** * 获取器:打款方式 */ public function getPayTypeAttr($value) { return ['text' => $this->payType[$value], 'value' => $value]; } /** * 获取队长提现列表 */ public function getList($user_id = null, $apply_status = -1, $pay_type = -1, $search = '') { $model = $this; // 构建查询规则 $model = $model->alias('cash') ->with(['user']) ->field('cash.*, region.real_name, region.mobile, user.nickName, user.avatarUrl') ->join('user', 'user.user_id = cash.user_id') ->join('region_user region', 'region.user_id = cash.user_id') ->order(['cash.create_time' => 'desc']); // 查询条件 if ($user_id > 0) { $model = $model->where('cash.user_id', '=', $user_id); } if (!empty($search)) { $model = $model->where('region.real_name|region.mobile', 'like', '%' . $search . '%'); } if ($apply_status > 0) { $model = $model->where('cash.apply_status', '=', $apply_status); } if ($pay_type > 0) { $model = $model->where('cash.pay_type', '=', $pay_type); } // 获取列表数据 return $model->paginate(15); } /** * 队长提现审核 */ public function submit($param) { $data = ['apply_status' => $param['apply_status']]; if ($param['apply_status'] == 30) { $data['reject_reason'] = $param['reject_reason']; } // 更新申请记录 $data['audit_time'] = time(); self::update($data, ['id' => $param['id']]); // 提现驳回:解冻队长资金 if ($param['apply_status'] == 30) { Operations::backFreezeMoney($param['user_id'], $param['money']); } // 发送模板消息 (new MessageService)->cash($this); return true; } /** * 确认已打款 */ public function money() { $this->startTrans(); try { // 更新申请状态 $data = ['apply_status' => 40, 'audit_time' => time()]; self::update($data, ['id' => $this['id']]); // 更新队长累积提现佣金 Operations::totalMoney($this['user_id'], $this['money']); // 记录队长资金明细 Capital::add([ 'user_id' => $this['user_id'], 'flow_type' => 20, 'money' => -$this['money'], 'describe' => '申请提现', ]); // 发送模板消息 //(new Message)->withdraw($this); // 事务提交 $this->commit(); return true; } catch (\Exception $e) { $this->error = $e->getMessage(); $this->rollback(); return false; } } /** * 队长提现:微信支付企业付款 */ public function wechatPay() { // 微信用户信息 $user = UserModel::detail($this['user_id']); // 生成付款订单号 $orderNO = OrderService::createOrderNo(); // 付款描述 $desc = '队长提现付款'; // 微信支付api:企业付款到零钱 $open_id = ''; $app = []; if($user['reg_source'] == 'mp'){ $app = AppMp::getWxPayApp($user['app_id']); $open_id = $user['mpopen_id']; }else if($user['reg_source'] == 'wx'){ $app = AppWx::getWxPayApp($user['app_id']); $open_id = $user['open_id']; } if($open_id == ''){ $this->error = '未找到用户open_id'; return false; } $WxPay = new WxPay($app); //打款金额 $money=floatval($this['money'])-floatval($this['fee_money']); // 请求付款api if ($WxPay->transfers($orderNO, $open_id, $money, $desc)) { // 确认已打款 $this->money(); return true; } return false; } /* *统计提现总数量 */ public function getregionOrderTotal() { return $this->count('id'); } /* * 统计提现待审核总数量 */ public function getregionApplyTotal($apply_status) { return $this->where('apply_status', '=', $apply_status)->count(); } }