where(['id'=>$id])->field('second_pwd')->find(); if(empty($safePwd['second_pwd'])) { $this->display('Public/setSafePwd'); exit; } $map = []; $map["promote.id"] = get_pid(); $map['tab_company_statement_info.company_type'] = ['in',"1,2"]; $map['tab_company_statement_info.verify_status'] = 1; if ($_REQUEST['pay_status'] || $_REQUEST['pay_status'] == '0') { $map['pay_status'] = $_REQUEST['pay_status']; } if(!empty($_REQUEST['start'])&&empty($_REQUEST['end'])){ $map['statement_begin_time'] = array('GT',strtotime($_REQUEST['start'])); unset($_REQUEST['start']); } if(empty($_REQUEST['start'])&&!empty($_REQUEST['end'])){ $map['statement_end_time'] = array('LT',strtotime($_REQUEST['end'])+24*60*60-1); unset($_REQUEST['end']); } if(!empty($_REQUEST['start'])&&!empty($_REQUEST['end'])){ $map['statement_begin_time'] = array('GT',strtotime($_REQUEST['start'])); $map['statement_end_time'] = array('LT',strtotime($_REQUEST['end'])+24*60*60-1); unset($_REQUEST['start']);unset($_REQUEST['end']); } $promote_data = M("promote","tab_")->where(['id'=>get_pid()])->find(); $this->assign("promote_data",$promote_data); $data = M("company_statement_info","tab_") ->field("tab_company_statement_info.*") ->join("left join tab_promote_company company on tab_company_statement_info.company_id=company.id") ->join("left join tab_promote promote on company.id=promote.company_id") ->page($page,$row) ->where($map) ->select(); foreach ($data as $key => $value) { $data[$key]['time'] = date("Y-m-d H:i:s",$value["statement_begin_time"])."-".date("Y-m-d H:i:s",$value["statement_end_time"]); } $parameter =I('get.'); $parameter['p']=I('get.p',1); $parameter['row']=I('get.row'); $count = M("company_statement_info","tab_") ->field("tab_company_statement_info.*") ->join("left join tab_promote_company company on tab_company_statement_info.company_id=company.id") ->join("left join tab_promote promote on company.id=promote.company_id") ->where($map) ->count(); $page = set_pagination($count,$row,$parameter); if($page) {$this->assign('_page', $page);} $this->assign("data",$data); $this->display(); } //执行打款 public function doPayment() { $id = get_pid(); $safePwd = M('promote','tab_')->where(['id'=>$id])->field('second_pwd')->find(); if(empty($safePwd['second_pwd'])) { $this->display('Public/setSafePwd'); exit; } $id = $_REQUEST['id']; $remark = $_REQUEST['remark']; Vendor("Alipay2020/Fund"); $fund = new \Fund(); // $dbres = M("company_statement_info","tab_")->where("id='{$id}'")->find(); // $this->ajaxReturn(["msg"=>"打款成功","data"=>$dbres,"status"=>1]);die(); $company_info = json_decode($dbres['company_info'],true); if($dbres['pay_status'] != 1 && $dbres['verify_status'] == 1){ //执行打款 $title = "测试-".$dbres['company_name']."结算"; $amount = $dbres['statement_money']; //TODO:线上要关闭这个 $amount = 0.1;//测试金额为0 $payres = $fund->transfer($company_info['ali_account'],$company_info['ali_user'],$dbres['statement_num'],$amount, $title); $resultCode = $payres->code; $savedata = ["id"=>$dbres['id']]; if(!empty($resultCode)&&$resultCode == 10000){ $savedata["pay_status"]=1; } else { $savedata["pay_status"]=-1; } $payres = json_decode( json_encode($payres),true); $payres["remark"] = $remark; $savedata["pay_info"] = json_encode($payres,JSON_UNESCAPED_UNICODE); $savedata["pay_type"]=1; $savedata["pay_time"]=time(); } else { // $this->poolCount($dbres['pool_id']); $this->ajaxReturn(["msg"=>"已经打款过","data"=>$dbres,"status"=>0]); } M("company_statement_info","tab_")->save($savedata); // $this->poolCount($dbres['pool_id']); if ($savedata["pay_status"] == -1) { $this->ajaxReturn(["msg"=>"提现失败","data"=>$dbres,"status"=>0]); } $this->ajaxReturn(["msg"=>"提现成功","data"=>$dbres,"status"=>1]); } /** * 执行最后聚合表统计 * 整合数据,全部成功则支付成功,否则为支付中 */ public function poolCount($poolid){ $f = M("company_statement_info","tab_")->field("id")->where("pool_id = {$poolid} AND pay_status <> 1")->find(); if(isset($f['id'])){ //打款中 $this->setOneVerifyStatus(3,"payment",$poolid); }else{ //全部完成 $this->setOneVerifyStatus(4,"payment",$poolid); } $this->ajaxReturn(["msg"=>"聚合成功","status"=>1]); } protected function setOneVerifyStatus($change_status,$op_pre,$id) { $dbres = M("company_statement_pool","tab_")->field("id,verify_status,verify_log")->where("id = {$id}")->find(); $dbres['verify_log'] = json_decode($dbres['verify_log'],true); $dbres['verify_log'][$op_pre.'_user'] = session('promote_auth.account'); $dbres['verify_log'][$op_pre.'_time']=date("Y-m-d H:i:s"); $dbres['verify_log'] = json_encode($dbres['verify_log']); $dbres['verify_status']=$change_status; M("company_statement_pool","tab_")->save($dbres); } public function withdrawDetail() { $id = get_pid(); $safePwd = M('promote','tab_')->where(['id'=>$id])->field('second_pwd')->find(); if(empty($safePwd['second_pwd'])) { $this->display('Public/setSafePwd'); exit; } $id = $_REQUEST["id"]; $dbres = M("company_statement_info","tab_") ->field("*,tab_company_statement_info.id") ->join("left join tab_promote_company company on tab_company_statement_info.company_id=company.id") ->where("tab_company_statement_info.id='{$id}'")->find(); // dump($dbres);die(); $relation = M("company_relation","tab_")->where("second_company_id={$dbres['company_id']}")->find(); if (!$relation) { $this->error("乙方关联信息不存在!"); } if ($relation['invoice_type']==1) { $relation['invoice_type'] = "专票"; } else if ($relation['invoice_type'] == 2) { $relation['invoice_type'] = "普票"; } else { $relation['invoice_type'] = "无"; } $first_companmInfo = M("company_info","tab_")->where("id={$relation['first_company_id']}")->find(); if (!$first_companmInfo) { $this->error("甲方公司信息不存在!"); } $this->assign("relation",$relation); $this->assign("first_company_info",$first_companmInfo); $company_info = json_decode($dbres['company_info'],true); $statemnt_info = json_decode($dbres['statement_info'],true); $dbres['pay_time'] = date("Y-m-d H:i:s",$dbres['pay_time']); $dbres['statement_begin_time'] = date("Y-m-d",$dbres['statement_begin_time']); $dbres['statement_end_time'] = date("Y-m-d",$dbres['statement_end_time']); $dbres['hletter_amount'] = convertAmountToCn($dbres['statement_money']); // dump($company_info); // dump($statemnt_info);die(); $rowspan = count($statemnt_info); $this->assign("data",$dbres); $this->assign("rowspan",$rowspan); $this->assign("company_info",$company_info); $this->assign("statemnt_info",$statemnt_info); $this->display("withdrawdetail"); } public function withdrawOrderDetail($p=0) { $id = get_pid(); $safePwd = M('promote','tab_')->where(['id'=>$id])->field('second_pwd')->find(); if(empty($safePwd['second_pwd'])) { $this->display('Public/setSafePwd'); exit; } $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 $row=10; if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;} $start = $_REQUEST['start']; $end = $_REQUEST['end']; $game_map['relation_game_id'] = $_REQUEST['relation_game_id']; $game_id = M("game","tab_")->field("id")->where($game_map)->select(); $promote_data = []; $promote_id = M("promote","tab_")->field("id")->where(['company_id'=>$_REQUEST['company_id']])->select(); foreach ($promote_id as $key => $value) { $promote_data[] = $value['id']; $data = M("promote","tab_")->field("id")->where(['chain'=>['like',"/{$value['id']}/"]])->select(); foreach ($data as $k => $v) { $promote_data[] = $v['id']; } } if ($promote_data) { $map['promote_id'] = ['in',$promote_data]; } $game_id = array_column($game_id,'id'); $map['pay_time'] = ['between',[strtotime($start),strtotime($end)+86399]]; $map['pay_status'] = 1; $map['game_id'] = ['in',$game_id]; if ($_REQUEST['team_leader_id']) { $promote_id = M("promote","tab_")->field("id")->where("id = {$_REQUEST['team_leader_id']} or chain like '%/{$_REQUEST['team_leader_id']}/%'")->select(); $map['promote_id'] = ['in',array_column($promote_id,'id')]; } if(!empty($_REQUEST['start'])&&empty($_REQUEST['end'])){ $map['pay_time'] = array('GT',strtotime($_REQUEST['start'])); unset($_REQUEST['start']); } if(empty($_REQUEST['start'])&&!empty($_REQUEST['end'])){ $map['pay_time'] = array('LT',strtotime($_REQUEST['end'])+24*60*60-1); unset($_REQUEST['end']); } if(!empty($_REQUEST['start'])&&!empty($_REQUEST['end'])){ $map['pay_time'] = array('between',[strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1]); unset($_REQUEST['start']);unset($_REQUEST['end']); } if($_REQUEST['pay_order_number']) { $map['pay_order_number'] = ['like',"%{$_REQUEST['pay_order_number']}%"]; } if (!$game_id) { $this->error("游戏不存在"); } $data = M("spend","tab_") ->where($map) ->page($page,$row) ->select(); // var_dump($data);die(); foreach ($data as $key => $value) { $data[$key]['pay_time'] = date("Y-m-d H:i:s",$data[$key]['pay_time']); if ($value['promote_account'] == "官方渠道") { $data[$key]['promote_account'] = "江息网络"; } } $parameter =I('get.'); $parameter['p']=I('get.p',1); $parameter['row']=I('get.row'); $count = M("spend","tab_") ->where($map) ->count(); $page = set_pagination($count,$row,$parameter); if($page) {$this->assign('_page', $page);} $this->assign('data',$data); $this->display("withdraworderdetail"); } }