<?php

namespace App\Http\Controllers\Api;

use App\Command\Log;
use App\Models\Merchant;
use App\Models\User as UserModel;
use App\Models\OrderDivideRecord;
use Illuminate\Http\Request;
use App\Models\Adapay;
use App\Models\HfCompanyMember;

class HfCompanyMemberController extends BaseController
{
    //已废弃
    //创建企业用户
    public function create(Request $request)
    {
        // $mer_id = $request->user()->merchant_id;
        // $merObj = Merchant::where('id', $mer_id)->first();
        $member = new \NwVVVS\AdapaySdk\CorpMember();
        //$file_real_path = realpath('123.zip');
        $url = 'https://amy8888.oss-cn-shanghai.aliyuncs.com/carousel/20241227/612f0eac39fbace6f8333e8e0c212e30.jpg';

        $member_params = array(
            # app_id
            "app_id" => "app_c383f483-3c2a-41b6-8d21-7f597dde4c50",
            # 商户用户id
            "member_id" => "hf_test_member_id3",
            # 订单号
            "order_no" => date("YmdHis") . rand(100000, 999999),
            # 企业名称
            "name" => "测试企业",
            # 省份
            "prov_code" => "0031",
            # 地区
            "area_code" => "3100",
            # 统一社会信用码
            "social_credit_code" => "social_credit_code",
            "social_credit_code_expires" => "20301109",
            # 经营范围
            "business_scope" => "123123",
            # 法人姓名
            "legal_person" => "frname",
            # 法人身份证号码
            "legal_cert_id" => "1234567890",
            # 法人身份证有效期
            "legal_cert_id_expires" => "20301010",
            # 法人手机号
            "legal_mp" => "13333333333",
            # 企业地址
            "address" => "1234567890",
            # 邮编
            "zip_code" => "企业地址测试",
            # 企业电话
            "telphone" => "1234567890",
            # 企业邮箱
            "email" => "1234567890@126.com",
            # 上传附件
            "attach_file" => $url,
            # 银行代码
            "bank_code" => "1001",
            # 银行账户类型
            "bank_acct_type" => "1",
        );

        // $res = (new Adapay())->createCompany();
        # 创建企业用户
        // $member->create($member_params);
        // # 对创建企业用户结果进行处理
        // if ($member->isError()) {
        //     //失败处理
        //     var_dump($member->result);
        // } else {
        //     //成功处理
        //     var_dump($member->result);
        // }

        return  $this->JsonResponse([]);
    }

    //异步通知
    public function notify()
    {
        Log::add('--创建企业用户回调结果--', $_POST);
        $params = $_POST ?? [];

        $adapay_tools = new \NwVVVS\AdapaySdk\AdapayTools();
        $post_data = json_decode($params['data'], 1);
        $post_data_str = json_encode($post_data, JSON_UNESCAPED_UNICODE);
        $post_sign_str = isset($params['sign']) ? $params['sign'] : '';
        # 先校验签名和返回的数据的签名的数据是否一致
        $sign_flag = $adapay_tools->verifySign($post_data_str, $post_sign_str);

        if (!$sign_flag) {
            Log::add('创建企业用户回调签名验证失败', []);
            return false;
        }
        $member_id = $post_data['member_id'];
        $order_no = $post_data['order_no'];
        $hfcObj = HfCompanyMember::where(['member_id' => $member_id, 'order_no' => $order_no])->first();
        if ($post_data['audit_state'] == 'D') {
            $hfcObj->status = 'succeeded';
            $hfcObj->audit_state = 'D';
            $hfcObj->audit_desc = $post_data['audit_desc'] ?? '';
        } else {
            $hfcObj->status = 'failed';
            $hfcObj->audit_state = $post_data['audit_state'];
            $hfcObj->audit_desc = $post_data['audit_desc'] ?? '';
        }
        $hfcObj->save();
        return true;
    }
}