<?php
/**
 * Created by PhpStorm.
 * User: ASUS
 * Date: 2018/7/18
 * Time: 11:00
 */

namespace Jobs\Model\Test;

use Jobs\Dao\DCloudUsers;
use Jobs\Dao\DUsersCategory;
use Jobs\Dao\DUsersTestify;
class K3Handle
{
    public function store($data,$erp_no)
    {
        $param = [];
        $DGusersCategory = new DUsersCategory();
        $param['user_id'] = $data['user_id'];
        $param['company_name'] = $data['company_name']?:'';
        $param['referrer_phone'] = $data['referrer_phone']?:'';
        $param['legal_person'] = $data['legal_person']?:'';
        $param['contact_phone'] = $data['contact_phone']?:'';
        $param['detail_address'] = $data['company_address']?:''.$data['detail_address']?:'';
        $param['category_id'] = $data['category_id']?:0;

        if ($param['category_id']){
            $res_data =$DGusersCategory ->get($param['category_id']);
        }
        $param['erp_no'] = $erp_no;

        //$param['referrer_name'] = $data['referrer_name'];
        $param['referrer_no'] = $data['referrer_no'];
        $param['referrer_group_no'] = $data['referrer_group_no'];
        $DGusers = new DCloudUsers();
        if (isset($res_data)&&!empty($res_data)) {
            $param['category_no'] = $res_data['category_no'];

            //$UserCat = new UsersCategoryModel[);
            //取出分类
            if ($param['category_no']) {
                $cateInfo = $DGusersCategory->get(['category_no' => $param['category_no']]);
                $id = $cateInfo['pid'];
                $cateInfo2 = $DGusersCategory->get($id);
                if ($cateInfo2) {
                    $id = $cateInfo2['pid'];
                    $cateInfo1 = $DGusersCategory  -> get($id);
                    if ($cateInfo1) {
                        $category_no2 = $cateInfo2['category_no'];
                        $category_no1 = $cateInfo1['category_no'];
                        $category_no3 = $param['category_no'];
                    } else {
                        $category_no1 = $cateInfo2['category_no'];
                        $category_no2 = $param['category_no'];
                        $category_no3 = '';
                    }
                } else {
                    $category_no1 = $param['category_no'];
                    $category_no2 = '';
                    $category_no3 = '';
                }
            }
        }else{

            $res_uesr =$DGusers ->get($param['user_id']);
            if (!empty($res_uesr)){
                return $response = [
                    'code' =>500,
                ];
                file_put_contents('K3_sync_empty_erp_no.log','法人;客户手机号;联系电话,详细地址'.PHP_EOL.$param['legal_person'] .';'.$res_uesr['phone'].';'.$param['contact_phone'].';'.$param['detail_address'].PHP_EOL,FILE_APPEND);
            }else{
                return $response = [
                    'code' =>500,
                ];
            }

        }

        if ($param['referrer_group_no']){
            $k3Result = $this ->syncCustomer(isset($category_no1)?$category_no1:'', $param, isset($category_no2)?$category_no2:'', isset($category_no3)?$category_no3:'',$data['id']);
            if ($k3Result['code']!=200){
                return ['code' =>500,'msg'=>$k3Result['msg']];
            }
        }else{
            $res_uesr =$DGusers ->get($param['user_id']);
            file_put_contents('K3_sync_empty_referrer_no.log','法人;客户手机号;联系电话,详细地址'.PHP_EOL.$param['legal_person'] .';'.$res_uesr['phone'].';'.$param['contact_phone'].';'.$param['detail_address'].PHP_EOL,FILE_APPEND);

            return ['code' =>500];
        }

    }

    public function syncCustomer($category_no1,$param,$category_no2,$category_no3, $id=0)
    {
        $objectDusersTestify = new DUsersTestify();
        $cookie_jar = './k3.ini';
        $data = array(
            //业务对象表单Id(必录)
            'Model'=>[
                'FNumber' => $param['erp_no'],
                'FCreateOrgId'=>['FNumber' => '101'], //
                'FUseOrgId'=>['FNumber' => '101'],
                'FName'=>$param['legal_person'],
                'FADDRESS'=>$param['detail_address'],
                'FTEL'=>$param['contact_phone'],
                'FSALDEPTID'=>['FNumber' =>$param['referrer_no']],
                'FSALGROUPID'=>['FNumber' =>$param['referrer_group_no']],
                'FSELLER'=>['FNumber' =>$param['referrer_no']],
                'FCustTypeId'=>['FNumber' =>'KHLB001_SYS'],
                'FTRADINGCURRID'=>['FNumber' =>'PRE001'],
                'F_PAEZ_Assistant5'=>['FNumber' =>$category_no1],
                'F_PAEZ_Assistant6'=>['FNumber' =>$category_no2],
                'F_PAEZ_Assistant3'=>['FNumber' =>$category_no3],
            ],
            'Creator' => '亿成商城'
        );

        //V($data);
        //定义记录Cloud服务端返回的Session
        $K3login = new K3Login();
        $K3Curl = new K3Curl();
        $post_content = $K3login->create_postdata(['BD_Customer',$data]);

//        $url = 'http://192.168.0.135/k3cloud/'.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc';
        $url = 'http://123.206.51.139/k3cloud/'.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc';
        $res = $K3login->loginIfNeed();
        //V($post_content);
        //V($res);
        $resultJsonSave =$K3Curl->MyCurlPost($url, $post_content, $cookie_jar, false);
        //V($resultJsonSave);
        file_put_contents('K3_sync_users_testify.log',date('Y-m-d H:i:s').'发送数据'.$post_content.PHP_EOL.'返回的数据:'.var_export($resultJsonSave ,true).PHP_EOL,FILE_APPEND);
        $resultArray = json_decode($resultJsonSave, true);
        //V($resultArray);
        //判断是否已经有该客户
        if ($resultArray['Result']['ResponseStatus']['IsSuccess']) {
            $K3_id = $resultArray['Result']['Id'];
            if ($K3_id){
                $res = $objectDusersTestify->update(['k3_id' =>$K3_id],['id'=>$id]);
            }
            $response = array(
                'code' => 200,
                'msg' => 'K3保存成功',
                'info' => 'K3保存成功',
            );
            return $response;
        }else{
            return  array(
                'code' => 500,
                'msg' => $resultArray['Result']['ResponseStatus']['Errors'][0]['Message'],
                'info' => 'K3保存成功',
            );
        }
//        if (!strpos($resultArray['Result']['ResponseStatus']['Errors'][0]['Message'], '客户,组织内编码唯一')) {
//            $response = array(
//                'code' => 500,
//                'msg' => $resultArray['Result']['ResponseStatus']['Errors'][0]['Message'],
//                'info' => 'K3:' . $resultArray['Result']['ResponseStatus']['Errors'][0]['Message'],
//            );
//            return $response;
//        }


        }
    }