From 7e41ad1e18c24e12256e01c8b933f635a97a7e56 Mon Sep 17 00:00:00 2001 From: zhengyongxing Date: Mon, 7 Dec 2020 08:59:15 +0800 Subject: [PATCH] =?UTF-8?q?12=E6=9C=88=E5=8A=9F=E8=83=BD=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CompanyStatementPoolController.class.php | 169 ++++++++++++++---- .../ExcelPaymentController.class.php | 36 +++- .../Controller/PaymentController.class.php | 68 +++---- Application/Payment/View/Payment/lists.html | 2 +- Data/update.sql | 22 ++- 5 files changed, 225 insertions(+), 72 deletions(-) diff --git a/Application/Admin/Controller/CompanyStatementPoolController.class.php b/Application/Admin/Controller/CompanyStatementPoolController.class.php index 79d24669a..1da1ca382 100644 --- a/Application/Admin/Controller/CompanyStatementPoolController.class.php +++ b/Application/Admin/Controller/CompanyStatementPoolController.class.php @@ -1075,6 +1075,11 @@ class CompanyStatementPoolController extends ThinkController addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>$opname,'url'=>U('lists')]); } if($ajaxreturn){ + + if ($change_status == 2) { + $this->splitForPayStatementInfo(); + } + $this->ajaxReturn(array( 'status' => 1, "info"=>$opname."成功" @@ -1763,58 +1768,160 @@ class CompanyStatementPoolController extends ThinkController public function splitForPayStatementInfo() { $ids = $_REQUEST['ids']; + + $limit_amount = 20000; + $dbres = $this->DBModel->field("id")->where("id in ({$ids})")->select(); foreach($dbres as $key=>$value){ $statement_data_info = M("company_statement_info","tab_") ->where(['pool_id'=>$value['id']]) ->select(); + if ($value['company_type'] == 2){ + //循环info汇总详单 + foreach ($statement_data_info as $skey => $svalue) { - //循环info汇总详单 - foreach ($statement_data_info as $skey => $svalue) { + $statement_info = json_decode($svalue['statement_info'],true); + $handle_data = []; - $statement_info = json_decode($svalue['statement_info'],true); - $handle_data = []; + foreach ($statement_info as $k => $v) { - foreach ($statement_info as $k => $v) { - $game_list = $v['game_list']; - foreach ($game_list as $gk => $gv ) { - //同一结算时间的汇总成一个数组 - $handle_data[$gv['statement_begin_time'].'-'.$gv['statement_end_time']][] = ['account'=>$v['account'],'game_list'=>$gv]; + $game_list = $v['game_list']; + foreach ($game_list as $gk => $gv ) { + //同一结算时间的汇总成一个数组 + if (!$handle_data[$gv['statement_begin_time'].'-'.$gv['statement_end_time']][$v['account']]) { + $handle_data[$gv['statement_begin_time'].'-'.$gv['statement_end_time']][$v['account']] = ['account'=>$v['account'],'game_list'=>[$gv]]; + } else { + $handle_data[$gv['statement_begin_time'].'-'.$gv['statement_end_time']][$v['account']]['game_list'][] = $gv; + } + } } -// dump($handle_data); - - } - $save = []; - $handle_statement = []; - //将同一时间的汇总详单记录起来 - foreach ($handle_data as $hk => $hv) { - $statement_time = explode('-',$hk); - $save['statement_begin_time'] = $statement_time[0]; - $save['statement_end_time'] = $statement_time[1]; + $save = []; + $handle_statement = []; + //将同一时间的汇总详单记录起来 + foreach ($handle_data as $hk => $hv) { + $statement_time = explode('-',$hk); + $save['statement_begin_time'] = strtotime(str_replace('.','-',$statement_time[0])); + $save['statement_end_time'] = strtotime(str_replace('.','-',$statement_time[1])); + $handle_statement = json_encode(array_values($hv)); + $statement_money = 0; + + foreach ($hv as $shk => $shv) { + + $game_list = $shv['game_list']; + foreach($game_list as $gk => $gv ) { + $statement_money += $gv['sum_money']; + } + } - $handle_statement = $hv; + if ($statement_money > $limit_amount) { + for($amount=$statement_money;$amount>0;$amount -= $limit_amount) { + $save['statement_info'] = $handle_statement; + $save['company_id'] = $svalue['company_id']; + $save['company_name'] = $svalue['company_name']; + $save['company_type'] = $svalue['company_type']; + $save['pay_type'] = $svalue['pay_type']; + $save['verify_status'] = $svalue['verify_status']; + $save['remark'] = $svalue['remark']; + $save['company_info'] = $svalue['company_info']; + $save['statement_num'] = "JS_".date("YmdHis",time()).sp_random_string(5); + + if ($amount > $limit_amount) { + $save['statement_money'] = $limit_amount; + } else { + $save['statement_money'] = $amount; + } + + $save['statement_info_id'] = $svalue['id']; + $save['fine'] = $svalue['fine']; + $save['reward'] = $svalue['reward']; + $save['is_limit'] = 1; + + M("pay_statement_info","tab_")->add($save); + } -// $save['statement_info'] = json_encode($handle_statement); - $save['company_id'] = $svalue['company_id']; - $save['company_name'] = $svalue['company_name']; - $save['company_type'] = $svalue['company_type']; - $save['company_info'] = $svalue['company_info']; + } else { + $save['statement_info'] = $handle_statement; + $save['company_id'] = $svalue['company_id']; + $save['company_name'] = $svalue['company_name']; + $save['company_type'] = $svalue['company_type']; + $save['pay_type'] = $svalue['pay_type']; + $save['verify_status'] = $svalue['verify_status']; + $save['remark'] = $svalue['remark']; + $save['company_info'] = $svalue['company_info']; + $save['statement_num'] = "JS_".date("YmdHis",time()).sp_random_string(5); + $save['statement_money'] = $statement_money; + $save['statement_info_id'] = $svalue['id']; + $save['fine'] = $svalue['fine']; + $save['reward'] = $svalue['reward']; + + M("pay_statement_info","tab_")->add($save); + } - $save['statement_money'] = $svalue['statement_money']; - $save['statement_info_id'] = $svalue['id']; - dump($handle_statement); + } } - - } + else { + + foreach ($statement_data_info as $skey => $svalue) { + + $statement_money = $svalue['statement_money']; + if ($statement_money > $limit_amount) { + for ($amount = $statement_money; $amount > 0; $amount -= $limit_amount) { + $save['statement_begin_time'] = $svalue['statement_begin_time']; + $save['statement_end_time'] = $svalue['statement_end_time']; + $save['statement_info'] = $svalue['statement_info']; + $save['company_id'] = $svalue['company_id']; + $save['company_name'] = $svalue['company_name']; + $save['company_type'] = $svalue['company_type']; + $save['pay_type'] = $svalue['pay_type']; + $save['verify_status'] = $svalue['verify_status']; + $save['remark'] = $svalue['remark']; + $save['company_info'] = $svalue['company_info']; + $save['statement_num'] = "JS_" . date("YmdHis", time()) . sp_random_string(5); + $save['statement_money'] = $svalue['statement_money']; + + if ($amount > $limit_amount) { + $save['statement_money'] = $limit_amount; + } else { + $save['statement_money'] = $amount; + } - } + $save['statement_info_id'] = $svalue['id']; + $save['fine'] = $svalue['fine']; + $save['reward'] = $svalue['reward']; + M("pay_statement_info", "tab_")->add($save); + } + } else { + for ($amount = $statement_money; $statement_money > 0; $amount -= $limit_amount) { + $save['statement_begin_time'] = $svalue['statement_begin_time']; + $save['statement_end_time'] = $svalue['statement_end_time']; + $save['statement_info'] = $svalue['statement_info']; + $save['company_id'] = $svalue['company_id']; + $save['company_name'] = $svalue['company_name']; + $save['company_type'] = $svalue['company_type']; + $save['pay_type'] = $svalue['pay_type']; + $save['verify_status'] = $svalue['verify_status']; + $save['remark'] = $svalue['remark']; + $save['company_info'] = $svalue['company_info']; + $save['statement_num'] = "JS_" . date("YmdHis", time()) . sp_random_string(5); + $save['statement_money'] = $svalue['statement_money']; + + $save['statement_info_id'] = $svalue['id']; + $save['fine'] = $svalue['fine']; + $save['reward'] = $svalue['reward']; + + M("pay_statement_info", "tab_")->add($save); + } + } + } + } + } } } diff --git a/Application/Payment/Controller/ExcelPaymentController.class.php b/Application/Payment/Controller/ExcelPaymentController.class.php index ed5e1f085..32cc1fb6c 100644 --- a/Application/Payment/Controller/ExcelPaymentController.class.php +++ b/Application/Payment/Controller/ExcelPaymentController.class.php @@ -157,6 +157,9 @@ class ExcelPaymentController extends BaseController if(count($checkarr) < 1){ $this->ajaxReturn(["status"=>1,"msg"=>"ok"]); } + $limit_amount = 20000; +// dump($batch);die(); + $ExcelStatementInfo = M('ExcelStatementInfo',"tab_"); foreach ($checkarr as $k => &$v) { $company_info = $v['company_info']; @@ -188,11 +191,34 @@ class ExcelPaymentController extends BaseController $this->ajaxReturn(["status"=>0,"msg"=>"支付宝真实姓名及登陆账号不允许为空"]); } - $res = $ExcelStatementInfo->add($v); - if($res === false){ - M('ExcelStatementInfo',"tab_")->where("batch_num = '{$v['batch_num']}'")->delete(); - $this->ajaxReturn(["status"=>0,"msg"=>"添加失败"]); + $statement_money = $v['statement_money']; + + if ($statement_money > $limit_amount) { + for($amount=$statement_money;$amount>0;$amount -= $limit_amount) { + + if ($amount > $limit_amount) { + $v['statement_money'] = $limit_amount; + } else { + $v['statement_money'] = $amount; + } + + $res = $ExcelStatementInfo->add($v); + if($res === false){ + M('ExcelStatementInfo',"tab_")->where("batch_num = '{$v['batch_num']}'")->delete(); + $this->ajaxReturn(["status"=>0,"msg"=>"添加失败"]); + } + } + } else { + + $res = $ExcelStatementInfo->add($v); + if($res === false){ + M('ExcelStatementInfo',"tab_")->where("batch_num = '{$v['batch_num']}'")->delete(); + $this->ajaxReturn(["status"=>0,"msg"=>"添加失败"]); + } + } + + } $this->ajaxReturn(["status"=>1,"msg"=>"ok"]); } @@ -504,7 +530,7 @@ class ExcelPaymentController extends BaseController ]) ->select(); - $check_company_statement_info = M("company_statement_info","tab_") + $check_company_statement_info = M("pay_statement_info","tab_") ->where([ 'pay_status'=>1, 'company_name'=>$value['company_name'], diff --git a/Application/Payment/Controller/PaymentController.class.php b/Application/Payment/Controller/PaymentController.class.php index 5865caf8d..0ce6de013 100644 --- a/Application/Payment/Controller/PaymentController.class.php +++ b/Application/Payment/Controller/PaymentController.class.php @@ -42,65 +42,66 @@ class PaymentController extends BaseController $row = $params['row'] ? intval($params['row']) : 10; $map=[ - "i.verify_status"=>["in","-1,1"], + "s.verify_status"=>["in","-1,1"], ]; if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { $time_start = strtotime($_REQUEST['time_start']); $time_end = strtotime($_REQUEST['time_end'])+ 86399; - $map["_string"] = "(i.statement_begin_time BETWEEN {$time_start} AND {$time_end}) OR (i.statement_end_time BETWEEN {$time_start} AND {$time_end})"; + $map["_string"] = "(s.statement_begin_time BETWEEN {$time_start} AND {$time_end}) OR (s.statement_end_time BETWEEN {$time_start} AND {$time_end})"; } elseif (isset($_REQUEST['time_start'])) { $time_start = strtotime($_REQUEST['time_start']); - $map["_string"] = "(i.statement_begin_time >= {$time_start} ) OR (i.statement_end_time >= {$time_start})"; + $map["_string"] = "(s.statement_begin_time >= {$time_start} ) OR (s.statement_end_time >= {$time_start})"; } elseif (isset($_REQUEST['time_end'])) { $time_end = strtotime($_REQUEST['time_end'])+ 86399; - $map["_string"] = "(i.statement_begin_time <= {$time_end} ) OR (i.statement_end_time <= {$time_end})"; + $map["_string"] = "(s.statement_begin_time <= {$time_end} ) OR (s.statement_end_time <= {$time_end})"; } if (isset($_REQUEST['pay_time_start']) && isset($_REQUEST['pay_time_end'])) { - $map['i.pay_time'] = ['between', [strtotime($_REQUEST['pay_time_start']), strtotime($_REQUEST['pay_time_end']) + 86399]]; + $map['s.pay_time'] = ['between', [strtotime($_REQUEST['pay_time_start']), strtotime($_REQUEST['pay_time_end']) + 86399]]; } elseif (isset($_REQUEST['pay_time_start'])) { - $map['i.pay_time'] = ['EGT', strtotime($_REQUEST['pay_time_start'])]; + $map['s.pay_time'] = ['EGT', strtotime($_REQUEST['pay_time_start'])]; } elseif (isset($_REQUEST['pay_time_end'])) { - $map['i.pay_time'] = ['ELT', strtotime($_REQUEST['pay_time_end']) + 86399]; + $map['s.pay_time'] = ['ELT', strtotime($_REQUEST['pay_time_end']) + 86399]; } if (isset($_REQUEST['verifytime_start']) && isset($_REQUEST['verifytime_end'])) { - $map['i.verify_time'] = ['between', [strtotime($_REQUEST['verifytime_start']), strtotime($_REQUEST['verifytime_end']) + 86399]]; + $map['s.verify_time'] = ['between', [strtotime($_REQUEST['verifytime_start']), strtotime($_REQUEST['verifytime_end']) + 86399]]; } elseif (isset($_REQUEST['verifytime_start'])) { - $map['i.verify_time'] = ['EGT', strtotime($_REQUEST['verifytime_start'])]; + $map['s.verify_time'] = ['EGT', strtotime($_REQUEST['verifytime_start'])]; } elseif (isset($_REQUEST['verifytime_end'])) { - $map['i.verify_time'] = ['ELT', strtotime($_REQUEST['verifytime_end']) + 86399]; + $map['s.verify_time'] = ['ELT', strtotime($_REQUEST['verifytime_end']) + 86399]; } if(isset($_REQUEST['company_type'])){ - $map['i.company_type'] = $_REQUEST['company_type']; + $map['s.company_type'] = $_REQUEST['company_type']; } if(isset($_REQUEST['company_id'])){ - $map['i.company_id'] = $_REQUEST['company_id']; + $map['s.company_id'] = $_REQUEST['company_id']; } if(isset($_REQUEST['pay_status'])){ if($_REQUEST['pay_status'] == -2){ - $map['i.verify_status'] = -1; + $map['s.verify_status'] = -1; }else{ - $map['i.pay_status'] = $_REQUEST['pay_status']; + $map['s.pay_status'] = $_REQUEST['pay_status']; } } if(isset($_REQUEST['pay_type'])){ - $map['i.pay_type'] = $_REQUEST['pay_type']; + $map['s.pay_type'] = $_REQUEST['pay_type']; } - -// dump($map); - $CompanyInfo = M("company_statement_info","tab_") - ->alias('i') - ->field("i.*,p.statement_num statement_pool_num") - ->join("tab_company_statement_pool p ON p.id = i.pool_id") +// dump($map);die(); + + $CompanyInfo = M("pay_statement_info","tab_") + ->alias('s') + ->field("s.*,p.statement_num statement_pool_num") + ->join("left join tab_company_statement_info i ON s.statement_info_id = i.id") + ->join("left join tab_company_statement_pool p ON p.id = i.pool_id") ->where($map) ->page($page,$row) - ->order("FIELD(pay_status,0,-1,1),verify_status desc") + ->order("FIELD(s.pay_status,0,-1,1),s.verify_status desc") ->select(); foreach($CompanyInfo as $k=>&$v){ $v['can_pay'] = 1; @@ -139,10 +140,10 @@ class PaymentController extends BaseController //统计待打款金额 $countmap = $map; $countmap['pay_status']=["neq",1]; - $money = M("company_statement_info","tab_")->alias('i')->field("sum(statement_money) statement_money")->where($countmap)->find(); + $money = M("pay_statement_info","tab_")->alias('s')->field("sum(statement_money) statement_money")->where($countmap)->find(); - $count = M("company_statement_info","tab_")->alias('i')->field("count(id) count")->where($map)->find(); + $count = M("pay_statement_info","tab_")->alias('s')->field("count(id) count")->where($map)->find(); $page = set_pagination($count['count'], $row); if ($page) { $this->assign('_page', $page); @@ -166,7 +167,7 @@ class PaymentController extends BaseController $is_export = true; } //获取基本信息 - $dbres = M("company_statement_info","tab_")->where("id='{$id}'")->select(); + $dbres = M("pay_statement_info","tab_")->where("id='{$id}'")->select(); $title = $dbres[0]['company_name']; $this->assign("title",$title); @@ -597,10 +598,11 @@ class PaymentController extends BaseController if(!isset($_REQUEST['ids'])) $this->error("参数错误"); $ids = $_REQUEST['ids']; - $CompanyInfo = M("company_statement_info","tab_") + $CompanyInfo = M("pay_statement_info","tab_") ->alias('i') - ->field("i.id,i.pool_id,i.company_name,i.company_info,i.statement_money,p.statement_num,i.remark,i.pay_status") - ->join("left join tab_company_statement_pool p ON p.id = i.pool_id") + ->field("i.id,c.pool_id,i.company_name,i.company_info,i.statement_money,p.statement_num,i.remark,i.pay_status") + ->join("left join tab_company_statement_info c ON c.id = i.statement_info_id") + ->join("left join tab_company_statement_pool p ON p.id = c.pool_id") ->where("i.id in ({$ids})") ->select(); foreach($CompanyInfo as $k=>&$v){ @@ -609,7 +611,7 @@ class PaymentController extends BaseController $v['company_info']['ali_account'] ?? ''; } - $count = M("company_statement_info","tab_")->field("sum(statement_money) statement_money")->where("id in ({$ids})")->find(); + $count = M("pay_statement_info","tab_")->field("sum(statement_money) statement_money")->where("id in ({$ids})")->find(); $this->getAccountMoney(); // dd($CompanyInfo); @@ -652,8 +654,6 @@ class PaymentController extends BaseController { $id = $_REQUEST['id']; - $limit_amount = 20000; - $remark = $_REQUEST['remark']; if(empty(C("ALI_PAYMENT"))){ $this->ajaxReturn(["success"=>"配置错误,无法打款","data"=>["status"=>0]]); @@ -758,7 +758,7 @@ class PaymentController extends BaseController ($status == 1)?($status_str = '已审核通过'):($status_str = '已审核拒绝'); - $verify = M("company_statement_info","tab_") + $verify = M("pay_statement_info","tab_") ->where([ 'id'=>['in',$id] ]) @@ -788,7 +788,7 @@ class PaymentController extends BaseController $ids = $_REQUEST['ids']; - $data = M("company_statement_info","tab_") + $data = M("pay_statement_info","tab_") ->field("id,statement_money,company_name,statement_begin_time,statement_end_time,pay_time") ->where(['id'=>['in',$ids]]) ->select(); @@ -809,7 +809,7 @@ class PaymentController extends BaseController ]) ->select(); - $check_company_statement_info = M("company_statement_info","tab_") + $check_company_statement_info = M("pay_statement_info","tab_") ->where([ 'pay_status'=>1, 'company_name'=>$value['company_name'], diff --git a/Application/Payment/View/Payment/lists.html b/Application/Payment/View/Payment/lists.html index d91c667f3..181a5015b 100644 --- a/Application/Payment/View/Payment/lists.html +++ b/Application/Payment/View/Payment/lists.html @@ -542,7 +542,7 @@ return true; } else { - return; + doPayment(); return false; } diff --git a/Data/update.sql b/Data/update.sql index d87c74054..92c1e9313 100644 --- a/Data/update.sql +++ b/Data/update.sql @@ -2723,6 +2723,26 @@ ADD COLUMN `pay_verify_status` tinyint(255) NULL DEFAULT 0 COMMENT '审核状态 ADD COLUMN `verify_time` varchar(11) NULL DEFAULT 0 COMMENT '审核时间' AFTER `pay_verify_status`, ADD COLUMN `verify_member_id` int(11) NULL DEFAULT 0 COMMENT '审核人员id' AFTER `verify_time`; +ALTER TABLE `tab_excel_statement_info` +ADD COLUMN `verify_status` tinyint(255) NULL DEFAULT 0 COMMENT '审核状态 0 未审核 1 审核通过 2 审核拒绝', +ADD COLUMN `verify_time` varchar(11) NULL DEFAULT 0 COMMENT '审核时间', +ADD COLUMN `verify_member_id` int(11) NULL DEFAULT 0 COMMENT '审核人员id'; + ALTER TABLE `sj_game_channel`.`sj_cptogether_company` MODIFY COLUMN `phone` varchar(20) NULL DEFAULT NULL COMMENT '联系电话' AFTER `connection_person`, -MODIFY COLUMN `register_phone` varchar(20) NULL DEFAULT NULL COMMENT '注册电话' AFTER `register_address`; \ No newline at end of file +MODIFY COLUMN `register_phone` varchar(20) NULL DEFAULT NULL COMMENT '注册电话' AFTER `register_address`; + +CREATE TABLE `sys_payment_member` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '姓名', + `mobile` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '手机号码', + `is_payment` tinyint(2) NULL DEFAULT 0 COMMENT '是否可打款 否0,是1', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_payment_member +-- ---------------------------- +INSERT INTO `sys_payment_member` VALUES (1, '李', '1990676517', 1); +INSERT INTO `sys_payment_member` VALUES (3, '关飞', '18859216458', 0); +INSERT INTO `sys_payment_member` VALUES (4, '测试正在', '16754678756', 0); \ No newline at end of file