MusicianWithdrawService.php 2.62 KB
<?php

namespace App\Services;

use App\Helper\Response;
use App\Models\Legal\StakeholderIncomeByPayer;

/**
 * Class MusicianAgreementService
 * @package App\Services
 */
class MusicianWithdrawService extends Service
{
    /**
     * 发票信息
     * @return \Illuminate\Http\JsonResponse
     */
    public function receiptInfo()
    {
        $receipt = [];

        StakeholderIncomeByPayer::query()->with('company:company_id,receipt_type,receipt_name,receipt_no,receipt_tel,receipt_address,receipt_bank,receipt_bank_no')
            ->where(['identifier'=>$this->identifier->identifier, 'sync_status'=>1])->whereIn('serial_no', $this->request->input('serial_no'))->select(['id', 'company_id'])->get()->map(function ($item) use (&$receipt)  {

                        if (!empty($item->company)) {
                            $receipt[$item->company_id] = [
                                'receipt_type'=>$item->company->receipt_type,
                                'receipt_name'=>$item->company->receipt_name,
                                'receipt_no'  =>$item->company->receipt_no,
                                'receipt_tel' =>$item->company->receipt_tel,
                                'receipt_address'=>$item->company->receipt_address,
                                'receipt_bank'=>$item->company->receipt_bank,
                                'receipt_bank_no'=>$item->company->receipt_bank_no,
                            ];
                        }

                        return $receipt;
                    });

        return Response::success(array_values($receipt));
    }

    /**
     * 修改提现状态
     * @return \Illuminate\Http\JsonResponse|mixed
     */
    public function changeStatus()
    {
        $withdraw_status = '';

        $query = StakeholderIncomeByPayer::query()->where(['sync_status'=>1, 'identifier'=>$this->identifier->identifier])
                        ->whereIn('serial_no', $this->request->input('serial_no'));

        switch ($this->request->input('type')) {
            case 'fail':
                $withdraw_status = 0;
                $query = $query->where(['withdraw_status'=>1]);
                break;
            case 'advance':
                $withdraw_status = 1;
                $query = $query->where(['withdraw_status'=>0]);
                break;
            case 'success':
                $withdraw_status = 2;
                $query = $query->where(['withdraw_status'=>1]);
                break;
        }

        if ($query->update(['withdraw_status'=>$withdraw_status])) {
            return Response::success();
        } else {
            return Response::error();
        }
    }

}