diff --git a/Application/Admin/Common/extend.php b/Application/Admin/Common/extend.php index 5dcb80a9f..e78bd275c 100644 --- a/Application/Admin/Common/extend.php +++ b/Application/Admin/Common/extend.php @@ -2159,6 +2159,7 @@ function getGamePromoteCompanyRadio($company_id,$relation_game_id,$endtime,$amou //判断是否有生效 $rwhere = "(end_time = 0 OR end_time >= '{$endtime}') and company_id='{$company_id}' and relation_game_id='{$relation_game_id}'"; $cgr_res = M("CompanyGameRatio","tab_")->where($rwhere)->find(); + // dump( M("CompanyGameRatio","tab_")->where($rwhere)->select(false)); if(empty($cgr_res)){ //模板搜索 //获取公司类型 diff --git a/Application/Admin/Controller/CompanyGameRatioController.class.php b/Application/Admin/Controller/CompanyGameRatioController.class.php index 4d325d7ce..968f39e3d 100644 --- a/Application/Admin/Controller/CompanyGameRatioController.class.php +++ b/Application/Admin/Controller/CompanyGameRatioController.class.php @@ -20,8 +20,100 @@ class CompanyGameRatioController extends AdminController $this->DBModel = M("company_game_ratio","tab_"); parent::_initialize(); } - public function index() + { + $params = I('get.'); + $page = $params['p'] ? intval($params['p']) : 1; + $row = $params['row'] ? intval($params['row']) : 10; + //权限分配 + if(!IS_ROOT){ + $this->OpAuthList= getModuleControllerAuth(); + } + + $gamewhere['_string'] = '1 = 1'; + $where['_string'] = '1 = 1'; + if(isset($params['relation_game_id'])){ + $gamewhere['relation_game_id'] = $params['relation_game_id']; + $where['m.relation_game_id'] = $params['relation_game_id']; + } + if(isset($params['company_id'])){ + $where['m.company_id'] = $params['company_id']; + } + $this->checkListOrCountAuthRestMap($where); + + $gameres = M("game","tab_")->field("tab_game.relation_game_id,tab_game.relation_game_name,IF(tab_game.original_package_name='','未配置',tab_game.original_package_name) original_package_name,tab_game_type.type_name game_type_name")->where($gamewhere)->join("tab_game_type on tab_game.game_type_id = tab_game_type.id")->group("tab_game.relation_game_id")->select(false); + $dbres = M("company_game_ratio","tab_") + ->alias('m') + ->field("m.*,g.*,p.company_name,p.company_belong,IFNULL(r.settlement_type,0) settlement_type") + ->join("left JOIN ({$gameres}) g ON m.relation_game_id = g.relation_game_id") + ->join("left JOIN tab_promote_company p ON m.company_id = p.id") + ->join("left JOIN tab_company_relation r ON (r.first_company_type =2 AND r.first_company_id = m.company_id) OR (r.second_company_type =2 AND r.second_company_id = m.company_id)") + ->where($where); + if(isset($params['export'])){ + $dbres = $dbres->select(); + }else{ + $dbres = $dbres->page($page, $row)->select(); + } + foreach($dbres as $k=>&$v){ + $v['begin_time'] = date("Y-m-d",$v['begin_time']); + $v['end_time'] = $v['end_time'] ? date('Y-m-d', $v['end_time']) : '永久'; + + $v["valid"] = "{$v['begin_time']} ~ {$v['end_time']}"; + + $v['company_belong'] ="下游".getCompanyBlong($v['company_belong']); + if (isset($params['export'])) { + $symbol = "\n"; + } else { + $symbol = "
"; + } + if($v['settlement_type'] == 0){ + $v['settlement_type'] = '--'; + }else{ + $v['settlement_type'] = $v['settlement_type']== 1 ? "周结" : '月结'; + } + //新 + $thisTurnoverRatios = $v['turnover_ratio'] ? json_decode($v['turnover_ratio'], true) : []; + $thisRatioDtl = "默认:{$v['ratio']}%"; + if ($thisTurnoverRatios) { + + foreach ($thisTurnoverRatios as $thisTurnoverRatio) { + $thisIntervalClosedStatusText = isset($thisTurnoverRatio['instanceof']) ? ($thisTurnoverRatio['instanceof'] == 1 ? '≥' : '>') : '≥'; + $thisRatioDtl .= "{$symbol}月流水{$thisIntervalClosedStatusText}{$thisTurnoverRatio['turnover']},比例:{$thisTurnoverRatio['ratio']}%"; + } + } + $v['turnover_ratio_str'] = $thisRatioDtl; + $v['oplist'] = $this->OpAuth($v); + } + if(isset($_REQUEST['export'])){ + $GetData = $_GET; + unset($GetData['export']); + addOperationLog(['op_type'=>3,'key'=>getNowDate(),"op_name"=>"导出",'url'=>U(CONTROLLER_NAME.'/'.ACTION_NAME,$GetData)]); + + data2csv($dbres,'推广游戏分成管理',array( + "company_name"=>"公司名称", + "company_belong"=>"内外团", + "settlement_type"=>"结算周期", + "game_type_name"=>"游戏类型", + "original_package_name"=>"原游戏名称", + "relation_game_name"=>"现游戏名称", + "valid"=>"生效时间", + "turnover_ratio_str"=>"分成比例" + )); + } + + $count = M("company_game_ratio","tab_")->alias('m')->field("count(id) count")->where($where)->find()['count']; + $this->assign('data', $dbres); + $page = set_pagination($count, $row); + if($page) { + $this->assign('_page', $page); + } + + $this->assign("companyList",D("PromoteCompany")->getList()); + $this->assign("gameList",D("Game")->getRelationGameLits()); + $this->display(); + } + + public function lists() { $params = I('get.'); $page = $params['p'] ? intval($params['p']) : 1; @@ -43,14 +135,15 @@ class CompanyGameRatioController extends AdminController if(isset($params['status'])){ $where['m.status'] = $params['status']; } - //TODO:未计算公司类型,未进行排序 + //TODO:未计算公司类型 $this->checkListOrCountAuthRestMap($where); $gameres = M("game","tab_")->field("tab_game.relation_game_id,tab_game.relation_game_name,IF(tab_game.original_package_name='','未配置',tab_game.original_package_name) original_package_name,tab_game_type.type_name game_type_name")->where($gamewhere)->join("tab_game_type on tab_game.game_type_id = tab_game_type.id")->group("tab_game.relation_game_id")->select(false); $dbres = M("company_game_ratio_log","tab_") ->alias('m') - ->field("m.*,g.*,p.company_name,p.company_belong") + ->field("m.*,g.*,p.company_name,p.company_belong,IFNULL(r.settlement_type,0) settlement_type") ->join("left JOIN ({$gameres}) g ON m.relation_game_id = g.relation_game_id") ->join("left JOIN tab_promote_company p ON m.company_id = p.id") + ->join("left JOIN tab_company_relation r ON (r.first_company_type =2 AND r.first_company_id = m.company_id) OR (r.second_company_type =2 AND r.second_company_id = m.company_id)") ->where($where) ->order("FIELD(m.status,0,1,-1,-2,2),id desc"); if(isset($params['export'])){ @@ -59,7 +152,11 @@ class CompanyGameRatioController extends AdminController $dbres = $dbres->page($page, $row)->select(); } foreach($dbres as $k=>&$v){ - $v['settlement_type'] ='--'; + if($v['settlement_type'] == 0){ + $v['settlement_type'] = '--'; + }else{ + $v['settlement_type'] = $v['settlement_type']== 1 ? "周结" : '月结'; + } $v['begin_time'] = date("Y-m-d",$v['begin_time']); $v['end_time'] = $v['end_time'] ? date('Y-m-d', $v['end_time']) : '永久'; @@ -156,6 +253,8 @@ class CompanyGameRatioController extends AdminController $this->assign("gameList",D("Game")->getRelationGameLits()); $this->display(); } + + public function marketAgree(){ if(!isset($_REQUEST['ids'])) $this->error("参数错误"); @@ -170,7 +269,7 @@ class CompanyGameRatioController extends AdminController $v['verify_log'] = json_encode($v['verify_log']); $v['status']=1; $company_game_ratio_log->save($v); - addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('index')]); + addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('lists')]); } $this->ajaxReturn(array( 'status' => 1, @@ -190,7 +289,7 @@ class CompanyGameRatioController extends AdminController $v['verify_log'] = json_encode($v['verify_log']); $v['status']=-1; $company_game_ratio_log->save($v); - addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('index')]); + addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('lists')]); } $this->ajaxReturn(array( 'status' => 1, @@ -210,7 +309,7 @@ class CompanyGameRatioController extends AdminController $v['verify_log'] = json_encode($v['verify_log']); $v['status']=-2; $company_game_ratio_log->save($v); - addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('index')]); + addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('lists')]); } $this->ajaxReturn(array( 'status' => 1, @@ -251,7 +350,7 @@ class CompanyGameRatioController extends AdminController $company_game_ratio->add($ratiov); } // - addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('index')]); + addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('lists')]); } $this->ajaxReturn(array( 'status' => 1, @@ -297,8 +396,8 @@ class CompanyGameRatioController extends AdminController } $id = M("company_game_ratio_log","tab_")->add($save); - addOperationLog(['op_type'=>0,'key'=>$id,'op_name'=>'新增','url'=>U('index')]); - $this->ajaxReturn(["msg"=>"添加成功","code"=>1,"url"=>U("index")]); + addOperationLog(['op_type'=>0,'key'=>$id,'op_name'=>'新增','url'=>U('lists')]); + $this->ajaxReturn(["msg"=>"添加成功","code"=>1,"url"=>U("lists")]); } else { $companyList = D("PromoteCompany")->getList(); @@ -331,6 +430,7 @@ class CompanyGameRatioController extends AdminController $save['id'] = $params['id']; $save['ratio'] = $params['ratio'] ?? 0; $save['turnover_ratio'] = $this->setTurnoverRatio($params); + $save['begin_time'] = strtotime($params['begin_time']); $save['end_time'] = $params['end_time'] ? strtotime($params['end_time'])+86399 : 0; $save['remark'] = $params['remark'] ?? ''; @@ -339,8 +439,8 @@ class CompanyGameRatioController extends AdminController $save['verify_log'] = json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]); } M("company_game_ratio_log","tab_")->save($save); - addOperationLog(['op_type'=>1,'key'=>$save['id'],'op_name'=>'修改','url'=>U('index')]); - $this->ajaxReturn(["msg"=>"修改成功","code"=>1,"url"=>U("index")]); + addOperationLog(['op_type'=>1,'key'=>$save['id'],'op_name'=>'修改','url'=>U('lists')]); + $this->ajaxReturn(["msg"=>"修改成功","code"=>1,"url"=>U("lists")]); } else { $params = I('get.'); $id = $params['id'] ?? 0; @@ -369,6 +469,20 @@ class CompanyGameRatioController extends AdminController } $id = $_REQUEST['id']; $res = M("company_game_ratio_log","tab_")->where("id='{$id}'")->delete(); + if($res !== false){ + addOperationLog(['op_type'=>2,'key'=>$id,'op_name'=>'删除','url'=>U('lists')]); + $this->ajaxReturn(["msg"=>"删除成功","code"=>1,"url"=>U("lists")]); + }else{ + $this->error('删除错误'); + } + } + public function delGameRatio() + { + if(!isset($_REQUEST['id'])){ + $this->error('参数错误'); + } + $id = $_REQUEST['id']; + $res = M("company_game_ratio","tab_")->where("id='{$id}'")->delete(); if($res !== false){ addOperationLog(['op_type'=>2,'key'=>$id,'op_name'=>'删除','url'=>U('index')]); $this->ajaxReturn(["msg"=>"删除成功","code"=>1,"url"=>U("index")]); @@ -376,6 +490,7 @@ class CompanyGameRatioController extends AdminController $this->error('删除错误'); } } + public function menuAuth() { $addurl = U("addRatio"); @@ -405,14 +520,19 @@ class CompanyGameRatioController extends AdminController $opBtn = [ "editRatio"=>"编辑", "delRatio"=>"删除", + "delGameRatio"=>"删除", ]; //操作对应菜单 - - if($info['status'] == 2){ - $optist = []; + if(!isset($info['status'])){ + $optist = ["delGameRatio"]; }else{ - $optist = ["editRatio","delRatio"]; + if($info['status'] == 2){ + $optist = []; + }else{ + $optist = ["editRatio","delRatio"]; + } } + // $resarr = []; foreach ($optist as $k => $v) { @@ -427,6 +547,8 @@ class CompanyGameRatioController extends AdminController return $resarr; } + + public function setTurnoverRatio($params) { $save['turnover_ratio'] = []; @@ -474,6 +596,9 @@ class CompanyGameRatioController extends AdminController $save['turnover_ratio'] = json_encode($save['turnover_ratio']); } } + if(empty($save['turnover_ratio'])){ + $save['turnover_ratio'] = ''; + } return $save['turnover_ratio']; } diff --git a/Application/Admin/Controller/CompanyRelationController.class.php b/Application/Admin/Controller/CompanyRelationController.class.php index 12461b49e..81c3a25ee 100644 --- a/Application/Admin/Controller/CompanyRelationController.class.php +++ b/Application/Admin/Controller/CompanyRelationController.class.php @@ -57,6 +57,11 @@ class CompanyRelationController extends AdminController if(isset($params['company_id'])){ $where['_string'] .= " AND (first_company_id='{$params['company_id']}' OR second_company_id='{$params['company_id']}')"; } + if(isset($params['company_type']) && isset($params['company_id'])){ + unset($where['_string']); + $where['_string'] .= " (first_company_id='{$params['company_id']}' AND first_company_type='{$params['company_type']}') OR (second_company_id='{$params['company_id']}' AND second_company_type='{$params['company_type']}')"; + } + if(isset($params['settlement_type'])){ $where['settlement_type'] = $params['settlement_type']; } @@ -129,7 +134,13 @@ class CompanyRelationController extends AdminController } if(isset($params['company_id'])){ $where['_string'] .= " AND (first_company_id='{$params['company_id']}' OR second_company_id='{$params['company_id']}')"; + + } + if(isset($params['company_type']) && isset($params['company_id'])){ + unset($where['_string']); + $where['_string'] .= " (first_company_id='{$params['company_id']}' AND first_company_type='{$params['company_type']}') OR (second_company_id='{$params['company_id']}' AND second_company_type='{$params['company_type']}')"; } + if(isset($params['settlement_type'])){ $where['settlement_type'] = $params['settlement_type']; } @@ -302,18 +313,18 @@ class CompanyRelationController extends AdminController unset($v['remark']); unset($v['status']); unset($v['verify_log']); + //判断公司id及类型 + if($v['first_company_type'] == 0){ + $t_company_id = $v['second_company_id']; + $t_company_type = $v['second_company_type']; + }else{ + $t_company_id = $v['first_company_id']; + $t_company_type = $v['first_company_type']; + } $where = " - ( - (first_company_type ='{$v['first_company_type']}' and first_company_id = '{$v['first_company_id']}') + (first_company_type ='{$t_company_type}' and first_company_id = '{$t_company_id}') OR - (first_company_type ='{$v['second_company_type']}' and first_company_id = '{$v['second_company_id']}') - ) - AND - ( - (second_company_type ='{$v['first_company_type']}' and second_company_id = '{$v['first_company_id']}') - OR - (second_company_type ='{$v['second_company_type']}' and second_company_id = '{$v['second_company_id']}') - ) + (second_company_type ='{$t_company_type}' and second_company_id = '{$t_company_id}') "; $hasdb = $this->DBModel->where($where)->find(); if(isset($hasdb['id'])){ diff --git a/Application/Admin/Controller/CompanyStatementController.class.php b/Application/Admin/Controller/CompanyStatementController.class.php index 806a852b6..8b78724a3 100644 --- a/Application/Admin/Controller/CompanyStatementController.class.php +++ b/Application/Admin/Controller/CompanyStatementController.class.php @@ -106,6 +106,9 @@ class CompanyStatementController extends ThinkController if(isset($_REQUEST['company_belong'])){ $map['company_belong'] = $_REQUEST['company_belong']; } + if(isset($_REQUEST['company_id'])){ + $map['company_id'] = $_REQUEST['company_id']; + } if(isset($_REQUEST['verify_status'])){ $map['verify_status'] = $_REQUEST['verify_status']; } @@ -114,7 +117,7 @@ class CompanyStatementController extends ThinkController $data = M("company_statement","tab_") ->field("id,withdraw_type,company_name,company_belong,statement_begin_time,statement_end_time,statement_money,platform_amount,verify_status,verify_log,op_time,remark") ->where($map) - ->order("op_time Desc")->page($page,$row)->select(); + ->order("FIELD(verify_status,0,1,-1,2,3,-2,4,5),id desc")->page($page,$row)->select(); foreach($data as $k => &$v) { $v['statement_begin_time'] = date('Y-m-d',$v['statement_begin_time']); @@ -250,10 +253,14 @@ class CompanyStatementController extends ThinkController $params['first_party_info'] = json_encode($params['first_party_info'],JSON_UNESCAPED_UNICODE); $params['second_party_info'] = json_encode($params['second_party_info'],JSON_UNESCAPED_UNICODE); $params['statement_info'] = json_encode($params['statement_info'],JSON_UNESCAPED_UNICODE); - $params['verify_status'] = 0; - $params['verify_log'] = json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]); - $params['op_time'] = time(); - M("CompanyStatement","tab_")->save($params); + + $y = M("CompanyStatement", "tab_")->where("id='{$params['id']}'")->find(); + if($y['first_party_info'] != $params['first_party_info'] || $y['second_party_info'] != $params['second_party_info'] || $y['statement_info'] != $params['statement_info']){ + $params['verify_status'] = 0; + $params['verify_log'] = json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]); + $params['op_time'] = time(); + M("CompanyStatement","tab_")->save($params); + } $this->ajaxReturn(["code"=>0,"msg"=>"ok"]); }else{ if (!isset($_REQUEST['id'])) { @@ -310,6 +317,7 @@ class CompanyStatementController extends ThinkController $v['verify_log'][$op_pre.'_time']=date("Y-m-d H:i:s"); $v['verify_log'] = json_encode($v['verify_log']); $v['verify_status']=$change_status; + $v['op_time'] = time(); $this->DBModel->save($v); $opname = $this->VerifyStatus[$change_status]; addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>$opname,'url'=>U('lists')]); @@ -382,18 +390,18 @@ class CompanyStatementController extends ThinkController } if ($data['company_belong'] == 9) {//上游 excelUpStreamTemplate($data, $all_sum_money, $all_pay_amount, $big_all_sum_money); - } else {//下游 - if($dbres["company_type"] == 1){ + } else { + //下游 + // if($dbres["company_type"] == 1){ excelDownStreamTemplate($data, $all_sum_money, $all_pay_amount, $big_all_sum_money); - }else{ - $data['statement_begin_time'] = date('Ymd',$data['statement_begin_time']); - $data['statement_end_time'] = date('Ymd',$data['statement_end_time']); - $data['statement_count'] = count($data['statement_info']); - // dd($data); - $this->assign("data",$data); - $this->display("exportPuStatement"); - } - + // }else{ + // $data['statement_begin_time'] = date('Ymd',$data['statement_begin_time']); + // $data['statement_end_time'] = date('Ymd',$data['statement_end_time']); + // $data['statement_count'] = count($data['statement_info']); + // // dd($data); + // $this->assign("data",$data); + // $this->display("exportPuStatement"); + // } } } //汇总 @@ -519,6 +527,7 @@ class CompanyStatementController extends ThinkController $v['verify_log'][$op_pre.'_num']=$num; $v['verify_log'] = json_encode($v['verify_log']); $v['verify_status']=$change_status; + $v['op_time']=time(); $this->DBModel->save($v); } } @@ -691,7 +700,95 @@ class CompanyStatementController extends ThinkController $savedata['statement_end_time'] = $v['statement_end_time']; } } - //设定并保存数据 + //新增结算 + //获取要结算的公司及日期 + public function getNewStatement() + { + $senddata = []; + //1.获取要计算的公司 + $statement = M("company_statement","tab_")->field("count(id) count,company_id")->group("company_id")->select(); + $has_company_id =implode(",",array_column($statement, 'company_id')); + if(empty($has_company_id)){ + $where = "1=1"; + }else{ + $where = "(first_company_type > 0 AND first_company_id NOT IN ({$has_company_id}) ) OR ( second_company_type > 0 AND second_company_id NOT IN ({$has_company_id}) )"; + } + + $relation = M("company_relation","tab_")->field("first_company_id,first_company_type,second_company_id,second_company_type")->where($where)->select(); + $up_company_id = []; + $dowm_company_id= []; + foreach($relation as $k=>$v){ + if($v['first_company_type'] == 0){ + if($v['second_company_type'] == 1){ + $up_company_id[] = $v['second_company_id']; + }else{ + $dowm_company_id[] = $v['second_company_id']; + } + }else{ + if($v['first_company_type'] == 1){ + $up_company_id[] = $v['first_company_id']; + }else{ + $dowm_company_id[]=$v['first_company_id']; + } + } + } + if(count($up_company_id) < 1 && count($dowm_company_id) < 1){ + $this->ajaxReturn(["error"=>'无新增关系,无需重算']); + } + + $senddata['up_company_id'] = implode(",",$up_company_id); + $senddata['dowm_company_id'] = implode(",",$dowm_company_id); + + //获取要结算的日期 + $start = strtotime('-1 month'); + $end = time(); + + $temp_datelist = get_date_list($start,$end,1); + $datelist = []; + foreach($temp_datelist as $k=>$v){ + $w = (int)date("w",strtotime($v)); + $d = (int)date("d",strtotime($v)); + if($w == 1 || $d == 1){ + $datelist[] = $v; + } + } + $senddata['datelist'] = $datelist; + $senddata['count'] = count($datelist); + + $this->ajaxReturn(["success"=>'ok',"data"=>$senddata]); + } + public function updateNewStatement() + { + $up_company_id = $_REQUEST['up_company_id']; + $dowm_company_id = $_REQUEST['dowm_company_id']; + $date = $_REQUEST['date']; + $CompanyStatementSet = A("CompanyStatementSet"); + // dd($CompanyStatementSet); + $stime = strtotime($date); + $w = (int)date("w",strtotime($date)); + $d = (int)date("d",strtotime($date)); + if($w == 1){ + if(!empty($up_company_id)){ + $CompanyStatementSet->cpStatement(0,$stime,$up_company_id,false); + } + if(!empty($dowm_company_id)){ + $CompanyStatementSet->promoteCompanyStatement(0,$stime,$dowm_company_id,false); + } + } + if($d == 1){ + if(!empty($up_company_id)){ + $CompanyStatementSet->cpStatement(1,$stime,$up_company_id,false); + $CompanyStatementSet->cpStatement(2,$stime,$up_company_id,false); + } + if(!empty($dowm_company_id)){ + $CompanyStatementSet->promoteCompanyStatement(1,$stime,$dowm_company_id,false); + $CompanyStatementSet->promoteCompanyStatement(2,$stime,$dowm_company_id,false); + } + } + + $this->ajaxReturn(array("success"=>"ok","data"=>[])); + } + public function OpAuth($info) @@ -753,7 +850,8 @@ class CompanyStatementController extends ThinkController "launch"=>"对外发起", "pool"=>"发起汇总", "updateStatement"=>"重算金额", - "export"=>"批量导出" + "export"=>"批量导出", + "updateNewStatement"=>"新增结算", ]; $resarr = []; foreach ($mentBtn as $k => $v) { diff --git a/Application/Admin/Controller/CompanyStatementSetController.class.php b/Application/Admin/Controller/CompanyStatementSetController.class.php index 8ddba5ba4..6c520083e 100644 --- a/Application/Admin/Controller/CompanyStatementSetController.class.php +++ b/Application/Admin/Controller/CompanyStatementSetController.class.php @@ -48,7 +48,7 @@ class CompanyStatementSetController extends Controller { public function setDailyCount($stime="now") { if(!IS_CLI){ - // die("只支持脚本访问"); + die("只支持脚本访问"); } if($stime=="now"){ $stime=time(); @@ -97,7 +97,7 @@ class CompanyStatementSetController extends Controller { * 上游结算 * @param [string] $type 0:周结 1:月结 2:周结补点 */ - public function cpStatement($type,$stime,$company_id=false) + public function cpStatement($type,$stime,$company_id=false,$recount=true) { $t = $this->setBeginAndEndTime($type,$stime);; $begintime = $t[0]; @@ -109,7 +109,7 @@ class CompanyStatementSetController extends Controller { ]; }else{ $where = [ - "_string"=>"(first_company_type = '1' AND first_company_id = '{$company_id}') OR (second_company_type = '1' AND second_company_id = '{$company_id}')" + "_string"=>"(first_company_type = '1' AND first_company_id in ({$company_id}) ) OR (second_company_type = '1' AND second_company_id in ({$company_id}) )" ]; } //获取哪些要结算 @@ -241,6 +241,7 @@ class CompanyStatementSetController extends Controller { $promote_ratio = $cp[$add_data['company_id']]['channel_rate'] ?? 0; $fax_ratio = $cp[$add_data['company_id']]['invoice_rate'] ?? 0; //游戏统计 + if(!isset($v['list'])){continue;} foreach($v['list'] as $ke=>$va){ $game =[]; $game['pay_amount'] =$va['pay_money']; @@ -263,6 +264,7 @@ class CompanyStatementSetController extends Controller { $tratio1 = getGameCpRadio($game_id['id'],$va['pay_money'],true); $tratio2 = getGameCpRadio($game_id['id'],$va['pay_money'],false); $tratio = $tratio1-$tratio2; + if($tratio <= 0){continue;} } } @@ -338,12 +340,11 @@ class CompanyStatementSetController extends Controller { return; } //添加 - if($company_id === false){ + if($recount && $company_id !== false){ //非重算 - $StatementDb->add($add_data); - }else{ return $add_data; } + $StatementDb->add($add_data); } } @@ -365,6 +366,7 @@ class CompanyStatementSetController extends Controller { //获取支付记录 $paywhere = [ "pay_status"=>1, + "pay_game_status"=>1, "payed_time"=>["BETWEEN",[$begintime,$endtime]], "game_id"=>["in",$gmstr] ]; @@ -400,9 +402,8 @@ class CompanyStatementSetController extends Controller { /** * 下游结算 */ - public function promoteCompanyStatement($type,$stime,$company_id=false) + public function promoteCompanyStatement($type,$stime,$company_id=false,$recount=true) { - $t = $this->setBeginAndEndTime($type,$stime); $begintime = $t[0]; $endtime = $t[1]; @@ -414,7 +415,7 @@ class CompanyStatementSetController extends Controller { ]; }else{ $where = [ - "_string"=>"(first_company_type = '2' AND first_company_id = '{$company_id}') OR (second_company_type = '2' AND second_company_id = '{$company_id}')" + "_string"=>"(first_company_type = '2' AND first_company_id in ({$company_id}) ) OR (second_company_type = '2' AND second_company_id in ({$company_id}) )" ]; } //获取哪些要结算 @@ -425,7 +426,6 @@ class CompanyStatementSetController extends Controller { $where['settlement_type']=1; $pcDbRes = M("CompanyRelation","tab_")->where($where)->select(); } - $pcList=[]; $js_id = [];//己方公司 foreach ($pcDbRes as $k => $v) { @@ -452,6 +452,7 @@ class CompanyStatementSetController extends Controller { foreach ($tmpp as $v) { $pc[$v['id']]=$v; } + unset($tmpp); //获取己方公司 $our = []; @@ -469,12 +470,14 @@ class CompanyStatementSetController extends Controller { $statement_begin_time = date("Y-m-d",$begintime); $statement_end_time = date("Y-m-d",$endtime); $RewardRecord = M("RewardRecord","tab_"); + foreach($pcList as $k=>$v){ + if(!isset($pc[$k])){continue;}//不存在的公司不结算 $add_data=[]; //1.获取甲乙方信息 - if($v['first_company_type'] == 1){ + if($v['first_company_type'] > 0){ //甲方合作 $pc[$v['first_company_id']]['invoice_type'] = $v['invoice_type']; $pc[$v['first_company_id']]['invoice_content'] = $v['invoice_content']; @@ -509,8 +512,7 @@ class CompanyStatementSetController extends Controller { $company_belong = $pc[$add_data['company_id']]['company_belong']; $add_data['company_belong']=$company_belong; $add_data['company_type']=$pc[$add_data['company_id']]['company_type']; - - + if(!isset($v['list'])){continue;} //游戏统计 foreach($v['list'] as $ke=>$va){ $game =[]; @@ -527,6 +529,7 @@ class CompanyStatementSetController extends Controller { $tratio1 = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong);; $tratio2 = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong); $tratio = $tratio1-$tratio2; + if($tratio <= 0){ continue;} } if($v['type'] == 2){ @@ -546,7 +549,6 @@ class CompanyStatementSetController extends Controller { $game['statement_type']=0; $add_data['statement_info'][] = $game; } - $add_data['platform_amount'] = $add_data['pay_amount']; if($type < 2){ //非补点计算奖罚 @@ -597,17 +599,17 @@ class CompanyStatementSetController extends Controller { if($add_data['platform_amount'] <= 0){ return; } + // dd($add_data); //添加 - if($company_id === false){ + if($recount && $company_id !== false){ //非重算 - $StatementDb->add($add_data); - }else{ return $add_data; } + $StatementDb->add($add_data); } } //设定开始结束时间 - protected function setBeginAndEndTime($type,$stime){ + public function setBeginAndEndTime($type,$stime){ if($type == 0){ $begintime = mktime(0,0,0,date('m',$stime),date('d',$stime)-7,date('Y',$stime)); $endtime = mktime(0,0,0,date('m',$stime),date('d',$stime),date('Y',$stime))-1; @@ -629,7 +631,7 @@ class CompanyStatementSetController extends Controller { return [$begintime,$endtime]; } //获取推广公司推广金额 - protected function getPromoteCompanySpend(&$pcList,$idarr,$begintime,$endtime){ + public function getPromoteCompanySpend(&$pcList,$idarr,$begintime,$endtime){ $res = []; //获取推广员 if(count($idarr) == 0){return $res;} @@ -756,6 +758,7 @@ class CompanyStatementSetController extends Controller { $v['fine'] = 0; $v['reward'] = 0; $v['platform_amount'] = 0; + if(!isset($v['list'])){continue;} foreach($v['list'] as $ke=>$va){ $game =[]; $game['pay_amount'] =$va['pay_amount']; @@ -765,17 +768,19 @@ class CompanyStatementSetController extends Controller { $game['game_type_name'] = $this->getGameTypeName($va['relation_game_id']); if($type == 1){ - $tratio = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong); + $tratio = getGamePromoteCompanyRadio($v['id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong); }elseif($type == 0){ - $tratio = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong); + $tratio = getGamePromoteCompanyRadio($v['id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong); }else{ //补点 - $tratio1 = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong);; - $tratio2 = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong); + $tratio1 = getGamePromoteCompanyRadio($v['id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong);; + $tratio2 = getGamePromoteCompanyRadio($v['id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong); $tratio = $tratio1-$tratio2; + if($tratio <= 0){ + continue; + } } - - if($v['type'] == 2){ + if($type == 2){ $game['increment_ratio']=$tratio; }else{ $game['ratio']=$tratio; @@ -862,57 +867,64 @@ class CompanyStatementSetController extends Controller { array_multisort($last_names,SORT_DESC,SORT_STRING,$v['statement_info']); } } - if($v['statement_money'] < 300){ - //存未满 - if($lackcompany['pay_amount'] > 0){ - $lask_id = $LackStatement->add($lackcompany); - $countdata['create_lack_ids'][] =$lask_id; - $countdata['lack_statement_money'] +=$lackcompany['statement_money']; - $countdata['lack_platform_amount'] +=$lackcompany['platform_amount']; - } + + if($type == 2 && $v['statement_money'] == 0){ + //补点不存 }else{ - if($v['pay_amount'] > 0){ - //存成功配置单号 - $company =[ - "pool_id"=>0, - "company_id"=>$k, - "company_type"=>2, - "company_name"=>$v['partner'], - "company_info"=>json_encode($company_info,JSON_UNESCAPED_UNICODE), - "statement_money"=>$v['statement_money'], - "pay_amount"=>$v['pay_amount'], - "platform_amount"=>$v['platform_amount'], - "fine"=>$v['fine'], - "reward"=>$v['reward'], - "statement_begin_time"=>$begintime, - "statement_end_time"=>$endtime, - "statement_info"=>json_encode($v['statement_info'],JSON_UNESCAPED_UNICODE), - "statement_num"=>"JS_".date('Ymd').date('His').$v['company_id'].sp_random_string(5) - ]; - if($v['is_payment'] == 1){ - $company['verify_status'] = 0; - }else{ - $company['verify_status'] = 2; + if($v['statement_money'] < 300){ + //存未满 + if($lackcompany['pay_amount'] > 0){ + $lask_id = $LackStatement->add($lackcompany); + $countdata['create_lack_ids'][] =$lask_id; + $countdata['lack_statement_money'] +=$lackcompany['statement_money']; + $countdata['lack_platform_amount'] +=$lackcompany['platform_amount']; + } + + }else{ + if($v['pay_amount'] > 0){ + //存成功配置单号 + $company =[ + "pool_id"=>0, + "company_id"=>$k, + "company_type"=>2, + "company_name"=>$v['partner'], + "company_info"=>json_encode($company_info,JSON_UNESCAPED_UNICODE), + "statement_money"=>$v['statement_money'], + "pay_amount"=>$v['pay_amount'], + "platform_amount"=>$v['platform_amount'], + "fine"=>$v['fine'], + "reward"=>$v['reward'], + "statement_begin_time"=>$begintime, + "statement_end_time"=>$endtime, + "statement_info"=>json_encode($v['statement_info'],JSON_UNESCAPED_UNICODE), + "statement_num"=>"JS_".date('Ymd').date('His').$v['company_id'].sp_random_string(5) + ]; + if($v['is_payment'] == 1){ + $company['verify_status'] = 0; + }else{ + $company['verify_status'] = 2; + } + $companyid = $StatementInfo->add($company); + $countdata['info_ids'][] =$companyid; + $countdata['del_lack_ids'] =array_merge($countdata['del_lack_ids'],$del_lack_ids); + $countdata['statement_money'] +=$v['statement_money']; + $countdata['pay_amount'] +=$v['pay_amount']; + $countdata['platform_amount'] +=$v['platform_amount']; + $countdata['fine'] +=$v['fine']; + $countdata['reward'] +=$v['reward']; } - $companyid = $StatementInfo->add($company); - $countdata['info_ids'][] =$companyid; - $countdata['del_lack_ids'] =array_merge($countdata['del_lack_ids'],$del_lack_ids); - $countdata['statement_money'] +=$v['statement_money']; - $countdata['pay_amount'] +=$v['pay_amount']; - $countdata['platform_amount'] +=$v['platform_amount']; - $countdata['fine'] +=$v['fine']; - $countdata['reward'] +=$v['reward']; } } } - $this->savePromotateUserPool($users); - $this->savePromotateUserPool($user); + $this->savePromotateUserPool($users,$type); + $this->savePromotateUserPool($user,$type); } /** * 保存信息汇总信息 */ - protected function savePromotateUserPool($data){ + public function savePromotateUserPool($data){ if(empty($data['create_lack_ids']) && empty($data['del_lack_ids']) && empty($data['info_ids'])){ return;} + if($data['statement_money'] == 0 && $type ==2){ return;} if($data['statement_money'] == 0){ $data['verify_status'] = 5; $data['verify_log'] = json_encode(["create_user"=>"system","create_time"=>date("Y-m-d H:i:s"),"verify_user"=>"system","verify_time"=>date("Y-m-d H:i:s"),"payment_user"=>"system","payment_time"=>date("Y-m-d H:i:s")]); @@ -935,7 +947,7 @@ class CompanyStatementSetController extends Controller { /** * 获取公司额为信息 */ - protected function getCompanyOtherInfo($company_info,$company_id) + public function getCompanyOtherInfo($company_info,$company_id) { $pl = M("promote_company","tab_") ->alias('pc') @@ -953,7 +965,7 @@ class CompanyStatementSetController extends Controller { /** * 获取游戏分类名称 */ - protected function getGameTypeName($relation_game_id){ + public function getGameTypeName($relation_game_id){ return M("Game","tab_")->field("game_type_name")->where("relation_game_id = '{$relation_game_id}'")->find()['game_type_name']; } diff --git a/Application/Admin/Controller/ToolController.class.php b/Application/Admin/Controller/ToolController.class.php index 401824cba..9f997e287 100644 --- a/Application/Admin/Controller/ToolController.class.php +++ b/Application/Admin/Controller/ToolController.class.php @@ -919,7 +919,6 @@ class ToolController extends ThinkController { $this->error('参数异常'); } } - $res = M('company_info', 'tab_')->delete($id); if ($res === false) { $this->error('删除失败'); diff --git a/Application/Admin/View/CompanyGameRatio/index.html b/Application/Admin/View/CompanyGameRatio/index.html index e65d04238..2633ac58a 100644 --- a/Application/Admin/View/CompanyGameRatio/index.html +++ b/Application/Admin/View/CompanyGameRatio/index.html @@ -52,8 +52,12 @@
- - - 公司名称 内外团 结算周期 @@ -123,12 +115,7 @@ 原游戏名称 现游戏名称 生效时间 - 原比例 - 申请比例 - 创建记录 - 市场部审批 - 管理员审批 - 备注 + 分成比例 操作 @@ -137,14 +124,11 @@ - aOh! 暂时还没有内容! + aOh! 暂时还没有内容! - - - {$data.company_name} {$data.company_belong} {$data.settlement_type} @@ -152,49 +136,12 @@ {$data.original_package_name} {$data.relation_game_name} {$data.valid} - -
- {$data.last_turnover_ratio_str} -
-
{$data.turnover_ratio_str}
- -
- {$data.create} -
- - - - -
- {$data.market} -
- -
- {$data.market} -
-
- - - - -
- {$data.admin} -
- -
- {$data.admin} -
-
- - - {$data.remark} - {$vo} @@ -263,14 +210,10 @@ $(function(){ $("#search").click(); } }); - $(".editRatio").on("click",function(){ - var id = $(this).data("id"); - var url = "{:U('editRatio')}"+"&id="+id; - window.location.href = url; - }) - $(".delRatio").on("click",function(){ + + $(".delGameRatio").on("click",function(){ var id = $(this).data("id"); - var url = "{:U('delRatio')}"+"&id="+id; + var url = "{:U('delGameRatio')}"+"&id="+id; layer.confirm('删除后将无法恢复,请慎重选择', { closeBtn:0, title:false, @@ -291,70 +234,6 @@ $(function(){ }); }) - $("#marketAgree,#marketRefuse,#adminAgree,#adminRefuse").on("click",function(){ - var id = $(this).attr("id"); - if(id == "marketAgree"){ - var opname = "市场部审批通过"; - var opurl = "{:U('marketAgree')}"; - var opst ="[未进行审批]"; - var status = 0; - }else if(id=="marketRefuse"){ - var opname = "市场部审批拒绝"; - var opurl = "{:U('marketRefuse')}"; - var opst ="[未进行审批]"; - var status = 0; - }else if(id=="adminAgree"){ - var opname = "管理员审批通过"; - var opurl = "{:U('adminAgree')}"; - var opst ="[市场部审批通过]"; - var status = 1; - }else if(id=="adminRefuse"){ - var opname = "管理员审批拒绝"; - var opurl = "{:U('adminRefuse')}"; - var opst ="[市场部审批通过]"; - var status = 1; - } - - var flag = false; - var text = $("input:checkbox[name='ids[]']:checked").map(function(index,elem) { - if($(elem).data("status") != status){ - flag = true; - }else{ - return $(elem).val(); - } - }).get().join(","); - if(text == ''){ - layer.msg("" + '无需要'+opname+'的申请,仅'+opst+'状态可以进行'+opname+""); - return; - } - if(flag){ - layer.confirm(opname+"仅会对"+opst+"的申请进行处理,选择中包含其他的状态的申请将被忽略,点击取消停止操作",{title:false}, function(index){ - _doAgreeApply(); - layer.close(index); - }); - }else{ - _doAgreeApply(); - } - function _doAgreeApply(){ - //执行 - $.ajax({ - type: "POST", - url: opurl, - dataType: 'json', - async: false, - data: {ids:text}, - success:function(data){ - if(data.status==1){ - layer.msg("" + data.info + ""); - setTimeout(function(){ - window.location.reload(); - },1500); - } - } - }); - } - }) - }) diff --git a/Application/Admin/View/CompanyGameRatio/lists.html b/Application/Admin/View/CompanyGameRatio/lists.html new file mode 100644 index 000000000..3aa06cbf2 --- /dev/null +++ b/Application/Admin/View/CompanyGameRatio/lists.html @@ -0,0 +1,367 @@ + + + + + + + + + + + + + +
+ + + +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ 搜索 +
+
+ +
+
+
+ + {$vo} + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + 公司名称内外团结算周期游戏类型原游戏名称现游戏名称生效时间原比例申请比例创建记录市场部审批管理员审批备注操作
aOh! 暂时还没有内容!
+ + {$data.company_name}{$data.company_belong}{$data.settlement_type}{$data.game_type_name}{$data.original_package_name}{$data.relation_game_name}{$data.valid} +
+ {$data.last_turnover_ratio_str} +
+
+
+ {$data.turnover_ratio_str} +
+
+
+ {$data.create} +
+
+ + +
+ {$data.market} +
+ +
+ {$data.market} +
+
+
+ +
+ {$data.admin} +
+ +
+ {$data.admin} +
+
+
+ {$data.remark} + + + {$vo} + +
+
+ +
+ +
+ + 导出 + + {$_page|default=''} +
+ +
+
+
    +
  1. +
    + 备注: + +
    +
    拒绝
    +
  2. +
+
+
+
+ + + + + + diff --git a/Application/Admin/View/CompanyRelation/index.html b/Application/Admin/View/CompanyRelation/index.html index 99db117c6..27f727a81 100644 --- a/Application/Admin/View/CompanyRelation/index.html +++ b/Application/Admin/View/CompanyRelation/index.html @@ -195,48 +195,36 @@ $(function(){ $("#search").click(); } }); + + var loop = 1; var company_id = "{$_GET['company_id']??0}"; - $("#company_type").on("change",function(){ var type = $(this).find("option:selected").val(); - var typename=setTypeName(type); - var url = "{:U('getCompanyList')}"+"&type="+type; - $.get(url,function(data){ - var company = data.info; - var companystr = ''; - for (var i in company) { - if(company[i].id == company_id){ - companystr += "" - }else{ - companystr += "" + if(type != ''){ + var url = "{:U('getCompanyList')}"+"&type="+type; + $.get(url,function(data){ + var company = data.info; + console.log(company) + var companystr = ''; + for (var i in company) { + if(company[i].id == company_id && loop==1){ + companystr += "" + }else{ + companystr += "" + } } - } + $("#company_id").html(companystr); + $("#company_id").select2(); + loop++; + }) + }else{ + var companystr = ''; $("#company_id").html(companystr); $("#company_id").select2(); - }) + } }) $("#company_type").change(); - - function setTypeName(type) { - var typename = ''; - switch (type) { - case '': - typename ="请先选择公司类型"; - break; - case '0': - typename = "请选择已方公司"; - break; - case "1": - typename = "请选择上游CP公司"; - break; - case "2": - typename ="请选择联运下游渠道公司";; - break; - default: - break; - } - return typename; - } + }) diff --git a/Application/Admin/View/CompanyRelation/lists.html b/Application/Admin/View/CompanyRelation/lists.html index d20028eb7..782f0779b 100644 --- a/Application/Admin/View/CompanyRelation/lists.html +++ b/Application/Admin/View/CompanyRelation/lists.html @@ -57,7 +57,7 @@
- 导出 + {$_page|default=''}
+ @@ -256,6 +287,66 @@ Think.setValue('{$key}',"{$vo}");
$(".select_gallery").select2(); + var DATA={}; + var MSG={ + showmsg:function(str){ + $("#creat_msg").show(); + $("#tip_msg").html(str); + }, + hidemsg:function(){ + $("#creat_msg").hide(); + $("#tip_msg").html(''); + } + } + var COMPARE={ + publiucAjax:function(url,senddata,callback){ + $.ajax({ + type: 'post', + url: url, + data:senddata, + success: function(data) { + if(data.success){ + callback(data.data); + }else{ + MSG.hidemsg(); + layer.alert(data.error); + return false; + } + + }, + error:function(){ + MSG.hidemsg(); + layer.alert("网络错误或超时"); + return false; + } + }); + }, + //获取基础参数 + getNewStatement:function(callback){ + MSG.showmsg("初始化获取校验中...."); + COMPARE.publiucAjax("{:U('getNewStatement')}",{},function(data){ + DATA = data; + DATA.now = 1; + MSG.showmsg("校验通过,开始统计 [0/"+DATA.count+"] ......"); + callback(); + }); + }, + //开始统计 + updateNewStatement:function(callback){ + var senddata = {date:DATA.datelist[(DATA.now-1)],up_company_id:DATA.up_company_id,dowm_company_id:DATA.dowm_company_id}; + console.log(senddata); + COMPARE.publiucAjax("{:U('updateNewStatement')}",senddata,function(){ + MSG.showmsg("开始统计 ["+DATA.now+"/"+DATA.count+"] ......"); + DATA.now ++; + if( DATA.now > DATA.count){ + callback(); + }else{ + COMPARE.updateNewStatement(callback) + } + }); + + } + } + + + + + + + + + +
+ +
+
+ +
+
+
+ + + + + + + diff --git a/Data/update.sql b/Data/update.sql index a22b244a0..13bdaac33 100644 --- a/Data/update.sql +++ b/Data/update.sql @@ -1947,7 +1947,7 @@ CREATE TABLE `tab_company_statement_info` ( `pay_status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '打款状态 -1:打款失败 0:未打款 1:打款成功', `pay_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '支付完成时间', `pay_type` tinyint(2) NOT NULL DEFAULT '0' COMMENT '打款类型 1提现 2线上打款 3线下打款', - `pay_info` text NOT NULL COMMENT '打款信息', + `pay_info` text COMMENT '打款信息', `remark` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '备注', PRIMARY KEY (`id`), diff --git a/ThinkPHP/Library/Vendor/Alipay2020/Fund.php b/ThinkPHP/Library/Vendor/Alipay2020/Fund.php index b05394542..53a2d5f14 100644 --- a/ThinkPHP/Library/Vendor/Alipay2020/Fund.php +++ b/ThinkPHP/Library/Vendor/Alipay2020/Fund.php @@ -6,13 +6,13 @@ require_once "aop/request/AlipayFundTransOrderQueryRequest.php"; require_once "aop/request/AlipayFundAccountQueryRequest.php"; class Fund { - private $appCertPath = __DIR__ . "/cert/appCertPublicKey_2021001159678209.crt"; + private $appCertPath = __DIR__ . "/cert/appCertPublicKey_2021001165628090.crt"; private $alipayCertPath = __DIR__ . "/cert/alipayCertPublicKey_RSA2.crt"; private $rootCertPath = __DIR__ . "/cert/alipayRootCert.crt"; private $gatewayUrl = "https://openapi.alipay.com/gateway.do"; - private $appId = "2021001159678209"; - private $alipayUserId = '2088631242187552'; - private $rsaPrivateKey = 'MIIEogIBAAKCAQEApuiUWwiE9apUAWLaX8SDYgt2oQnGCtT60dZvpMMHCuGR71HKCoLuCbgoZ3GUGhS9PByQZp/hNygEu6GzQwNTj5PiWMVrlfL7Xjkcpg+JbSiR3TUSJfYO2uLa+atJCQDNhsE6cfdcE4VHiSU5TK4ezBaIcYBPmzM6xKdQ6BblCM7fakTlVct+gvrE69M6XoyoM5VT6/lRwTIscWfwkyd/lps4jBwhuVMDboulk1BXQ2+daIQGqK4QQfQtC0bvREC+gwwmFaIfrw3dF/nOVEUEyhx4SFb7RzQv9mZx9HL4P4qCRvGl+jE5NE9hUWNz2pajR2cg7DxHDEMB0dSz8LRW9QIDAQABAoIBAADqDz38avYJi9JCH14c7ndQBsNVEV+n0QPrP8tQQi6eE7WS5h9uni0xdA81ARGvgWXd5jCZuZsavgPlG91HHGMR9VB1LGSy4wueFnkWZrNRYJMsoj/Q/D3Ytkhd1tWUyottbYuIRlnZBg5LROgVoBeQHAk7IbSA8FZ5cCkFTxXgQfOHd2yWJGkI1bz9MCTawT96fEBAowq2g28LsT44/EiJIGXY4hv7SOpZIIp9JZfmEDO9vOf5nkkZbsli0KPQPkTvly3p0YfMATqsxMLue1lwfHmueRMdk8p31aaz3c2aOVyvtyNae/UP3/O47HgAI9LXoAbzChlMi15o5YTyaxUCgYEA56ThYW4+9CB1Q+qFkz4KyarI4//AHyha/LELXpeRICidxDw6PQdfBi/75udbQDI0tISJjio+S8sKUlCWcHi/1/A8k0aZBN1rs9mTVQrN1zMbSgoYOHOIGE4147ig5vU6gjvpI/SPbeg3BLg3rd/3IOsDmh4HoVhSUINUwJ9dK2MCgYEAuHU5eeInSKeEPWMMqql+OxHnA7g/Z9RYJsuuXrNm8qsGDxJbJmVfBsa7Uo466hwr3OhMuk2ShensEzFYxDrURgADjAgVn7puzMUtHYMNcK06Se8g/Crq6UYM0OGaFfKVMgX8gq+eAdDZmX+WmdJBgakVLfjxlQ94ar5EGe+w/8cCgYB4TjyzsmNFvRnKJSIsn7tQk790Ep7AT+A5fuXNweAgmJeflDwW+B4VA5TLjnro82pGGtOqHyxths0chTgsv7m7N8zuHGtaiHjoVmbbcxoG20cgA/AiWXZkUTJRy9DdQp2Zh+4Eu35GcaUpcVeRmVErKoObZl9GH63YnOzGgb4MywKBgGebWHRQhfY2OX3tg7DcUQ3GyXZ6aAre58CqyT9iD2Igk9+lVNNlPxHkUFVXlFnpBu4nAOnoJnPXZ4WEQzK9RHwpB9UAuXylUBTub5/S+5qdgk8C5Qke5iGu+gXdohnPzuNxH1scX2jvsTmZw7KUubylh0LyQGeUb/Os+T2EN2wDAoGASbDD8hLDI64DpDp73XHbKbrdHaz7c9NkUsLD3FB6nmGQtAD8Gvuvd3PvhhBGz5O/ndUU0KSdZb4Yg3/3Qx4TWIJhobkXsNLkv+aPNxyjQBkFfJmXjsx2phsvjPNRICBeWlLKbB30SbZ6uCs6uypebSzIxdjT2riFmuuaJtsZJVM='; + private $appId = "2021001165628090"; + private $alipayUserId = '2088331082835421'; // pid + private $rsaPrivateKey = 'MIIEowIBAAKCAQEAmDggf4zno5KmKKEv0gbKctXyceEylTbWgZhannFGDXBkVkUqKC1btcKOFRWteVcQDFFCAgMobiTxH4rpIopyoC3x66mAynTVQnEWYFCyc628ZMAJ6aXQMvYNmzJgDczX8YI9taXbOf2YtV3uLdSs6t3Qm/rCBfrn/wj30QNsUm1f8yqCiHVwZ3jTM3ygKCr4SU3XjTKa1IqlYvGgIHrNHmTwATxvNRXa9pDTvSFz/zdvFxveWBn9PDhiNVebgEDFq0Xtv//z78UzRC3T8vV7HfCvcuR/gH0bVhvTzK55VlXlANM8o06tGsOj1jpJUGjUeMe2yiH9bDO810zNuri9LwIDAQABAoIBADoZQh4s88S1FoJvc0cgnGjUTCM3Jw1YzurL8dqDtY8vlLxwzbRkC5sGVSCrE3k6x79LzHvkJKxVoUq+xFkQqsuEfc/K9INRsIwZicbdRh9s8nkp6x6o0RyCWZMg2RSrWMivQ0pvsYsixgSDg4Mup4lFfHfsb93EdIQdMikuu0uCKFcXLO8UTma7mBRLdOis11vaZv7ROVftEUww9MZHCh/AJl7S73RvwZwZHQ9H5Y7fJ8EFqARJmTDEwDaOUQUGVTVho85KIlvpQ9gYbwy9R+xbftBSra+/THTiYjcMPR06wbf0dQwSunsz/NK4guVIpjKD23hQI1XcTcvxl6qRvjECgYEA12oro1NV9U4wVdwbbGzonW3hyNIE8pNbs3AE4q8pJF8aTVVnQuicunrgfK1W88urrngMMx+byg4ZnxUmahcyU+fId+z6FZbfypij+lMRpF85oQ0bhcXn04dcJimMlNrV4i62GeVcKtaAvoVXNYOXeS7SHtZ2nI0f7ArHbdgpbgMCgYEAtOXtfm3+CmNrlbhyPXPjUbNY3q3Uo09X6R01zYSvIobl3hoVVsw+7zJIAAaCTLcRxiVhvK5QVdRi/ohUphu2YugJx8fzNw6zl0iR/B9dWpDplMFDn3VOuS5UBeIHDn1C/A8RO7VKmYpCSAyHZxaxg0sAsAqjn9pk0ClvFpshcmUCgYEAwxXL32Yher8M1zU3QMKBB9HzoMNS57y8V40jX4fyYpYeY9rsYZP4HIobs83n6XKSULc3lTUTCbIrUf79gybu1T4cNz/OXK7+jaQfHR0N5Sa4MjqEqmnIwbDcq1MFlel5uhVDpcAp8EHC5sgrarN6Aq18baEcWjsUpdg9NCWHn7ECgYAVcyodErfLzYwlPbC2Hra2qliAVwZesvrOlnsZuoD1zB8Xneon16IixMiK0DrFE/QUlbwoHldCRiPS4KGA7MpMogz+1nO9dI3RA3bj+WgdZA9+Zwg4sTU7egXWiL2jdzDpKHQ3q0CEQkOnvWyUybkUw2D6fth2DPRlRnR4rr5hjQKBgHxl/E/sWi8iTN1thUbWzs2Q/8Qt+CHiXnWEU1rraV/0OlE4wbYVyFxURuZHCNdpTyuj0LS28WanbjJsmceL//+hy5qcjSBFJ8UO4Mw8pwDM8SEfWbo/MHNV48ElovOXxLrKTuvQUR6duWkv73qZYOpPYr+Rl0ylHGvNsqsLY7LZ'; public function transfer($aliAccount, $realName, $orderId, $amount, $title='') { diff --git a/ThinkPHP/Library/Vendor/Alipay2020/cert/alipayCertPublicKey_RSA2.crt b/ThinkPHP/Library/Vendor/Alipay2020/cert/alipayCertPublicKey_RSA2.crt index 50437508f..8fc7dd8be 100644 --- a/ThinkPHP/Library/Vendor/Alipay2020/cert/alipayCertPublicKey_RSA2.crt +++ b/ThinkPHP/Library/Vendor/Alipay2020/cert/alipayCertPublicKey_RSA2.crt @@ -1,19 +1,19 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff --git a/ThinkPHP/Library/Vendor/Alipay2020/cert/appCertPublicKey_2021001165628090.crt b/ThinkPHP/Library/Vendor/Alipay2020/cert/appCertPublicKey_2021001165628090.crt new file mode 100644 index 000000000..784d39da3 --- /dev/null +++ b/ThinkPHP/Library/Vendor/Alipay2020/cert/appCertPublicKey_2021001165628090.crt @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIIEtDCCA5ygAwIBAgIQICAGGaaBO7FBxTQH7IscmDANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE +BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs +YXNzIDEgUjEwHhcNMjAwNjE5MDc1OTUwWhcNMjIwNjE5MDc1OTUwWjB8MQswCQYDVQQGEwJDTjEw +MC4GA1UECgwn56aP5bu66YeR6I+g6I+c572R57uc56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQL +DAZBbGlwYXkxKjAoBgNVBAMMITIwODgzMzEwODI4MzU0MjEtMjAyMTAwMTE2NTYyODA5MDCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJg4IH+M56OSpiihL9IGynLV8nHhMpU21oGYWp5x +Rg1wZFZFKigtW7XCjhUVrXlXEAxRQgIDKG4k8R+K6SKKcqAt8eupgMp01UJxFmBQsnOtvGTACeml +0DL2DZsyYA3M1/GCPbWl2zn9mLVd7i3UrOrd0Jv6wgX65/8I99EDbFJtX/Mqgoh1cGd40zN8oCgq ++ElN140ymtSKpWLxoCB6zR5k8AE8bzUV2vaQ070hc/83bxcb3lgZ/Tw4YjVXm4BAxatF7b//8+/F +M0Qt0/L1ex3wr3Lkf4B9G1Yb08yueVZV5QDTPKNOrRrDo9Y6SVBo1HjHtsoh/WwzvNdMzbq4vS8C +AwEAAaOCASkwggElMB8GA1UdIwQYMBaAFHEH4gRhFuTl8mXrMQ/J4PQ8mtWRMB0GA1UdDgQWBBQc +ZHMKu7te5Gjs21/AcjE6mO+x/TBABgNVHSAEOTA3MDUGB2CBHAFuAQEwKjAoBggrBgEFBQcCARYc +aHR0cDovL2NhLmFsaXBheS5jb20vY3BzLnBkZjAOBgNVHQ8BAf8EBAMCBsAwLwYDVR0fBCgwJjAk +oCKgIIYeaHR0cDovL2NhLmFsaXBheS5jb20vY3JsNDIuY3JsMGAGCCsGAQUFBwEBBFQwUjAoBggr +BgEFBQcwAoYcaHR0cDovL2NhLmFsaXBheS5jb20vY2E2LmNlcjAmBggrBgEFBQcwAYYaaHR0cDov +L2NhLmFsaXBheS5jb206ODM0MC8wDQYJKoZIhvcNAQELBQADggEBAGQL5J9FSNgCQ5vL2kIZYGvu +1gsaqdcmlceVxP3yd9hBdVFDZ4sBCuiXkWhZZtiHeVgWklXEIj8rQuZ5KkDBzBa/qS6AadL3g108 +kQuEAlrIj7Gf9Nl9WD+mavASV1khI9297WKgWE70n59h9FDCkUL2jtLDSAcvOP3bk4aMNXjIFsWb +7rrHsn4S4aGdRhunI9Gumlkp0Si/YHrvC2LoHd2NZbFGFKR5bGh/JIUFdlal0+fUZ1UMxlrHe1HZ +NNMnQonmgovAsCfzkrhADofXT3X7bjruK0teffRk1imtzgjtjscxlVkZWSrnqIbZ03vpYSUn2Ioe +Zs9+maCIK7pv5I8= +-----END CERTIFICATE----- \ No newline at end of file