1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace General\Services\LandingPage\ChargeFeedBack;
- use App\Consts\BaseConst;
- use General\Models\Report\ReportUserBindRecord;
- use General\Models\Report\ReportUserChargeRecord;
- use General\Models\User\User;
- use General\Services\LandingPage\Report;
- use General\Services\Report\BaseReport;
- /**
- * 付费重传
- */
- class Rereport
- {
- public function reportInstance(string $link_source): BaseReport
- {
- $name = ucfirst($link_source) . 'Report';
- $namespace = "\\General\\Services\\Report\\{$name}";
- $instance = new $namespace;
- return $instance;
- }
- public function addReportCount(ReportUserBindRecord $report_user): array
- {
- $service = new Report;
- $user = User::find($report_user->uid);
- return $service->report('api/report/add', [
- 'source' => BaseConst::Platform,
- 'adid' => $report_user->adid,
- 'channel_id' => $user->distribution_channel_id,
- ]);
- }
- public function reReport(int $bind_id, float $amount, string $order_no)
- {
- $report_user = ReportUserBindRecord::find($bind_id);
- if ($report_user) {
- $instance = $this->reportInstance($report_user->platform);
- $result = $instance->reportCharge($report_user, $amount);
- $charge = ReportUserChargeRecord::updateOrCreate(
- [
- 'order_no' => $order_no,
- ],
- [
- 'uid' => $report_user->uid,
- 'status' => $result['result'],
- 'content' => $result['result'] ? '手动回传' : $result['content'],
- ]
- );
- $report_info = $this->addReportCount($report_user);
- if ($report_info && isset($report_info['data']['percent'])) {
- $charge->report_percent = $report_info['data']['percent'];
- $charge->save();
- }
- }
- }
- }
|