hasOne(Report::class, 'id', 'report_id'); } /** * 生成链接 * @param $rid * @param $userid * @param $refresh * @return array */ public static function generateLink($rid, $userid, $refresh = false) { $report = Report::find($rid); if (empty($report)) { throw new ApiException('报告不存在或已被删除'); } if ($report->userid != $userid) { if (!ReportReceive::whereRid($rid)->whereUserid($userid)->exists()) { throw new ApiException('您没有权限查看该报告'); } } $reportLink = ReportLink::whereRid($rid)->whereUserid($userid)->first(); if (empty($reportLink)) { $reportLink = ReportLink::createInstance([ 'rid' => $rid, 'userid' => $userid, 'code' => base64_encode("{$rid},{$userid}," . Base::generatePassword()), ]); $reportLink->save(); } else { if ($refresh == 'yes') { $reportLink->code = base64_encode("{$rid},{$userid}," . Base::generatePassword()); $reportLink->save(); } } return [ 'id' => $rid, 'url' => Base::fillUrl('single/report/detail/' . $reportLink->code), 'code' => $reportLink->code, 'num' => $reportLink->num ]; } }