diff --git a/Application/Admin/Controller/CompanyStatementController.class.php b/Application/Admin/Controller/CompanyStatementController.class.php index 8b2eb8090..5035b52a4 100644 --- a/Application/Admin/Controller/CompanyStatementController.class.php +++ b/Application/Admin/Controller/CompanyStatementController.class.php @@ -162,10 +162,12 @@ class CompanyStatementController extends ThinkController if(isset($v['verify_log']['pool_user'])){ if($v['status'] == -2){ $ts = "撤销汇总"; + $v["pool"]= "{$ts}({$v['verify_log']['pool_user']}){$symbol} {$v['verify_log']['pool_time']}"; }else{ $ts = "已汇总"; + $v["pool"]= "{$ts}({$v['verify_log']['pool_user']}){$symbol}汇总单:{$v['verify_log']['pool_num']}{$symbol} {$v['verify_log']['pool_time']}"; } - $v["pool"]= "{$ts}({$v['verify_log']['pool_user']}) {$symbol} {$v['verify_log']['pool_time']}"; + }else{ $v["pool"] = '--'; } @@ -381,31 +383,104 @@ class CompanyStatementController extends ThinkController "statement_end_time"=>0, "fine"=>0, "reward"=>0, + "verify_status"=>0, + "verify_log"=>json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]), + "op_time"=>time(), "company_list"=>[] ]; - // - $ups=$basedata; - $downs=$basedata; - $users=$basedata; + $datas = ["ups","up","downs","down","users","user"]; + //初始化数据 + foreach($datas as $k=>$v){ + if($v =="ups"){ + $basedata['company_type']=3; + $basedata['is_payment']=1; + } + if($v =="up"){ + $basedata['company_type']=3; + $basedata['is_payment']=2; + } + + if($v =="downs"){ + $basedata['company_type']=1; + $basedata['is_payment']=1; + } + if($v =="down"){ + $basedata['company_type']=1; + $basedata['is_payment']=2; + } + + if($v =="users"){ + $basedata['company_type']=2; + $basedata['is_payment']=1; + } + if($v =="user"){ + $basedata['company_type']=2; + $basedata['is_payment']=2; + } + $datas[$v]=$basedata; + unset($datas[$k]); + } + foreach ($dbres as $k=>$v) { if($v['verify_status'] != 3) continue; if($v['company_belong'] == 9){ //上游 - $this->setDf($ups,$v); + if($v['is_payment'] == 1){ + $this->setDf($datas['ups'],$v); + }else{ + $this->setDf($datas['up'],$v); + } }else{ //下游 if($v['company_type'] == 2){ //个人 - $this->setDf($users,$v); + if($v['is_payment'] == 1){ + $this->setDf($datas['users'],$v); + }else{ + $this->setDf($datas['user'],$v); + } }else{ - $this->setDf($downs,$v); + if($v['is_payment'] == 1){ + $this->setDf($datas['downs'],$v); + }else{ + $this->setDf($datas['down'],$v); + } } } } - dd($ups); + $Pool = M("company_statement_pool","tab_"); + $Statemen = M("company_statement","tab_"); + foreach ($datas as $k => $v) { + if($v['platform_amount'] <= 0){continue;} + //执行 + $v['statement_ids'] = implode(",",$v['statement_ids']); + $v['statement_num'] = "JS_".date('Ymd').date('His').sp_random_num(5); + $v['company_list'] = json_encode(array_values($v['company_list']),JSON_UNESCAPED_UNICODE); + $Pool->add($v); + //修改结算单规则 + $this->updatePoolVerifyStatus($v['statement_ids'],3,4,"pool",$v['statement_num']); + } + $this->ajaxReturn(array( + 'status' => 1, + "info"=>"汇总成功" + )); + // } + protected function updatePoolVerifyStatus($ids,$old_status,$change_status,$op_pre,$num){ + $dbres = $this->DBModel->field("id,verify_status,verify_log")->where("id in ({$ids})")->select(); + foreach($dbres as $k=>&$v){ + if($v['verify_status'] != $old_status) continue; + $v['verify_log'] = json_decode($v['verify_log'],true); + $v['verify_log'][$op_pre.'_user']=$this->admininfo["username"]; + $v['verify_log'][$op_pre.'_time']=date("Y-m-d H:i:s"); + $v['verify_log'][$op_pre.'_num']=$num; + $v['verify_log'] = json_encode($v['verify_log']); + $v['verify_status']=$change_status; + $this->DBModel->save($v); + } + } //设定组合的子操作 protected function setDf(&$savedata,$v) { @@ -439,7 +514,7 @@ class CompanyStatementController extends ThinkController $v['company_info'] = $v['first_party_info']; } $tdata = [ - "company_info"=>$v['company_info'], + "company_info"=>json_decode($v['company_info']), "company_name"=>$v['company_name'], "platform_amount"=>$v['platform_amount'], "pay_amount"=>$v['pay_amount'], diff --git a/Data/update.sql b/Data/update.sql index 956a95127..c02764b8b 100644 --- a/Data/update.sql +++ b/Data/update.sql @@ -1855,6 +1855,8 @@ CREATE TABLE `tab_company_statement` ( `company_name` varchar(60) NOT NULL DEFAULT '' COMMENT '对账公司名称', `company_belong` tinyint(1) NOT NULL DEFAULT '0' COMMENT '工会归属:0-下游内团;1-下游外团 2-下游分发联盟 3 下游无,9:上游', `company_type` tinyint(3) NOT NULL DEFAULT '1' COMMENT '公司性质:1-公司 2-个人', + `is_payment` tinyint(3) NOT NULL DEFAULT '1' COMMENT '是否需要打款:1-是 2-否(线下)', + `statement_begin_time` int(11) NOT NULL DEFAULT '0' COMMENT '对账开始时间', `statement_end_time` int(11) NOT NULL DEFAULT '0' COMMENT '对账截止时间', @@ -1881,34 +1883,29 @@ CREATE TABLE `tab_company_statement` ( CREATE TABLE `tab_company_statement_pool` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', - `company_id` int(11) DEFAULT '0' COMMENT '对账公司id', - `company_name` varchar(60) NOT NULL DEFAULT '' COMMENT '对账公司名称', - `company_belong` tinyint(1) NOT NULL DEFAULT '0' COMMENT '工会归属:0-下游内团;1-下游外团 2-下游分发联盟 3 下游无,9:上游', - `company_type` tinyint(3) NOT NULL DEFAULT '1' COMMENT '公司性质:1-公司 2-个人', - - `statement_id` varchar(500) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '涉及的结算单id', - `statement_num` varchar(500) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '结算单订单号', - + `statement_num` varchar(500) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '结算批量单号', + `statement_ids` varchar(500) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '涉及的结算单id', `statement_begin_time` int(11) NOT NULL DEFAULT '0' COMMENT '对账开始时间', `statement_end_time` int(11) NOT NULL DEFAULT '0' COMMENT '对账截止时间', `statement_money` decimal(10,2) DEFAULT '0.00' COMMENT '对账金额', `pay_amount` decimal(10,2) DEFAULT '0.00' COMMENT '总计', `platform_amount` decimal(10,2) DEFAULT '0.00' COMMENT '平台流水金额', + `fine` decimal(10,2) DEFAULT '0.00' COMMENT '罚款', + `reward` decimal(10,2) DEFAULT '0.00' COMMENT '奖励', + `pay_success_money` decimal(10,2) DEFAULT '0.00' COMMENT '成功支付金额', + `verify_status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '审核状态 -2:打款失败 -1审批拒绝 0:未审批 1:审核通过 2:待打款 3:打款中 4:打款成功', `verify_log` text NOT NULL DEFAULT '' COMMENT '审批相关信息json', - `pay_type` tinyint(2) DEFAULT '0' COMMENT '1甲方收款;2乙方收款', `ext_file` text COMMENT '凭证地址', - `first_party_info` text NOT NULL DEFAULT '' COMMENT '甲方相关信息json', - `second_party_info` text NOT NULL DEFAULT '' COMMENT '乙方相关信息json', - `statement_info` text NOT NULL DEFAULT '' COMMENT '订单相关信息json', - `collection_name` varchar(60) NOT NULL DEFAULT '' COMMENT '收款人姓名', - `collection_account` varchar(60) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '收款支付宝账号', - `payment_account` varchar(60) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '付款账号', - `payment_info` text NOT NULL DEFAULT '' COMMENT '支付相关json', + `company_list` text NOT NULL DEFAULT '' COMMENT '公司订单相关信息json', + + `company_type` tinyint(3) NOT NULL DEFAULT '1' COMMENT '公司性质: 1-下游公司 2-下游个人 3上游公司', + `is_payment` tinyint(3) NOT NULL DEFAULT '1' COMMENT '是否需要打款:1-是 2-否(线下)', + `op_time` int(11) NOT NULL DEFAULT '0' COMMENT '操作时间', `remark` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '备注', PRIMARY KEY (`id`), - KEY `company_id` (`company_id`) USING BTREE, + KEY `statement_num` (`statement_num`) USING BTREE, KEY `statement_begin_time` (`statement_begin_time`) USING BTREE, KEY `statement_end_time` (`statement_end_time`) USING BTREE, KEY `verify_status` (`verify_status`) USING BTREE,