Merge branch 'feature/platfrom_aggregate_finance' of wmtx/platform into release

优化新增结算
master
廖金灵 5 years ago committed by Gogs
commit 5b236870c0

@ -704,40 +704,60 @@ class CompanyStatementController extends ThinkController
//获取要结算的公司及日期
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();
$senddata = [
"up_company_id"=>[],
"dowm_company_id"=>[],
];
$statement = M("company_statement","tab_")->field("count(id) count,company_id,company_belong")->group("company_id,company_belong")->select();
$up_company_id = [];
$dowm_company_id= [];
foreach($relation as $k=>$v){
foreach( $statement as $k=>$v){
if($v['company_belong'] == 9){
$up_company_id[] = $v['company_id'];
}else{
$dowm_company_id[]= $v['company_id'];
}
}
;
//获取上游
if(empty($up_company_id)){
$upwhere = "1=1";
}else{
$up_company_id =implode(",",$up_company_id);
$upwhere = "(first_company_type = 1 AND first_company_id NOT IN ({$up_company_id}) ) OR ( second_company_type = 1 AND second_company_id NOT IN ({$up_company_id}) )";
}
$uprelation = M("company_relation","tab_")->field("first_company_id,first_company_type,second_company_id,second_company_type")->where($upwhere)->select();
foreach($uprelation 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'];
}
$senddata["up_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'];
}
$senddata["up_company_id"][] = $v['first_company_id'];
}
}
if(count($up_company_id) < 1 && count($dowm_company_id) < 1){
$this->ajaxReturn(["error"=>'无新增关系,无需重算']);
//获取下游
if(empty($dowm_company_id)){
$downwhere = "1=1";
}else{
$dowm_company_id =implode(",",$dowm_company_id);
$downwhere = "(first_company_type = 1 AND first_company_id NOT IN ({$dowm_company_id}) ) OR ( second_company_type = 1 AND second_company_id NOT IN ({$dowm_company_id}) )";
}
$downrelation = M("company_relation","tab_")->field("first_company_id,first_company_type,second_company_id,second_company_type")->where($downwhere)->select();
$senddata['up_company_id'] = implode(",",$up_company_id);
$senddata['dowm_company_id'] = implode(",",$dowm_company_id);
foreach($downrelation as $k=>$v){
if($v['first_company_type'] == 0){
$senddata["dowm_company_id"][] = $v['second_company_id'];
}else{
$senddata["dowm_company_id"][] = $v['first_company_id'];
}
}
if(count($senddata["up_company_id"]) < 1 && count($senddata["dowm_company_id"]) < 1){
$this->ajaxReturn(["error"=>'无新增关系,无需重算']);
}
$senddata['up_company_id'] = implode(",",$senddata['up_company_id']);
$senddata['dowm_company_id'] = implode(",",$senddata['dowm_company_id']);
//获取要结算的日期
$start = strtotime('-1 month');
@ -754,7 +774,6 @@ class CompanyStatementController extends ThinkController
}
$senddata['datelist'] = $datelist;
$senddata['count'] = count($datelist);
$this->ajaxReturn(["success"=>'ok',"data"=>$senddata]);
}
public function updateNewStatement()
@ -767,14 +786,14 @@ class CompanyStatementController extends ThinkController
$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($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);
@ -782,7 +801,7 @@ class CompanyStatementController extends ThinkController
}
if(!empty($dowm_company_id)){
$CompanyStatementSet->promoteCompanyStatement(1,$stime,$dowm_company_id,false);
// $CompanyStatementSet->promoteCompanyStatement(2,$stime,$dowm_company_id,false);
$CompanyStatementSet->promoteCompanyStatement(2,$stime,$dowm_company_id,false);
}
}

@ -266,7 +266,8 @@ class PromoteController extends ThinkController
}
public function add($account=null, $password=null, $second_pwd=null, $real_name=null, $email=null,
$mobile_phone=null, $bank_name=null, $bank_card=null, $admin=null, $status=null, $ba_id = null, $company_id = null)
$mobile_phone=null, $bank_name=null, $bank_card=null, $admin=null, $status=null, $ba_id = null, $company_id = null,
$withdraw_show = null,$withdraw_done = null)
{
if (IS_POST) {
if (C('PROMOTE_AUTO_AUDIT') == 1) {
@ -305,6 +306,8 @@ class PromoteController extends ThinkController
'company_id' => $company_id,
'company_belong' => $company_belong,
'company_relation' => $company_relation,
'withdraw_show'=>$withdraw_show,
'withdraw_done'=>$withdraw_done,
);
if (preg_match('/^[a-zA-Z0-9]{6,15}$/', $account)==false) {
@ -388,6 +391,10 @@ class PromoteController extends ThinkController
$use = new UserApi();
$data['password']=think_ucenter_md5($pwd, UC_AUTH_KEY);
$data['second_pwd']=think_ucenter_md5($second_pwd, UC_AUTH_KEY);
$data['withdraw_show'] = $_POST['withdraw_show'];
$data['withdraw_done'] = $_POST['withdraw_done'];
if (empty($pwd)) {
unset($data['password']);
}

@ -128,6 +128,34 @@
</tr>
<tr>
<td class="l">公司结算查看权限:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label >
<input type="radio" value="1" name="withdraw_show" > 开启
</label >
<label >
<input type="radio" value="0" name="withdraw_show" checked="checked"> 锁定
</label>
</span>
</td>
</tr>
<tr>
<td class="l">公司结算提现权限:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label >
<input type="radio" value="1" name="withdraw_done"> 开启
</label >
<label >
<input type="radio" value="0" name="withdraw_done" checked="checked"> 锁定
</label>
</span>
</td>
</tr>
</tbody>
</table>
</div>

@ -289,6 +289,33 @@
<span class="notice-text">二级密码适用于推广后台会长代充与财务管理功能</span>
</td>
</tr>
<tr>
<td class="l">公司结算查看权限:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label >
<input type="radio" value="1" name="withdraw_show" <if condition="$data['withdraw_show'] eq 1">checked="checked"</if>> 开启
</label >
<label >
<input type="radio" value="0" name="withdraw_show" <if condition="$data['withdraw_show'] eq 0">checked="checked"</if>> 锁定
</label>
</span>
</td>
</tr>
<tr>
<td class="l">公司结算提现权限:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label >
<input type="radio" value="1" name="withdraw_done" <if condition="$data['withdraw_done'] eq 1">checked="checked"</if>> 开启
</label >
<label >
<input type="radio" value="0" name="withdraw_done" <if condition="$data['withdraw_done'] eq 0">checked="checked"</if>> 锁定
</label>
</span>
</td>
</tr>
<tr>
<td class="l">备注:</td>
<td class="r table_textarea" >

@ -962,6 +962,8 @@ class PromoteService {
'company_relation' => $params['company_relation'] ?? 0,
'settlement_type' => $params['settlement_type'] ?? 1,
'group_remark' => $params['group_remark'] ?? '',
'withdraw_show' => $params['withdraw_show'] ?? 0,
'withdraw_done' => $params['withdraw_done'] ?? 0,
];
if ($parent) {

@ -1322,3 +1322,67 @@ function getAvailableBalance($promote_id=0,$game_id=0,$server_id='') {
return $availableBalanceData['available_balance']?$availableBalanceData['available_balance']:0;
}
/**
* 获取同一个公司的会长
* $promoteType=>推广员等级,
*/
function getPromoteLists($promoteType = 1) {
$map['level'] = $promoteType;
$company = M('promote','tab_')->field("company_id")->where(['id'=>get_pid()])->find();
$map['company_id'] = $company['company_id'];
$data = M('promote','tab_')
->field('id,account,real_name')
->where($map)
->select();
return $data;
}
/**
* csv 导出函数
* @param [array] $data 一般为数据库查询结果集
* @param [string] $title 表格名称
* @param [array] $fields [字段=>首行名称,...]例如:['name'=>'名称']
* @return void
*/
function data2csv(&$data,$title,$fields){
set_time_limit(0);
ini_set('memory_limit', '-1'); //设置内存不受限制
$csvFileName = $title.'.csv';
//设置好告诉浏览器要下载excel文件的headers
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.ms-excel;charset=utf-8');
header('Content-Disposition: attachment; filename="'. $csvFileName .'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$fp = fopen('php://output', 'a');//打开output流
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));//转码,防止乱码
$field = array_keys($fields);
//生成首行
$header = array_values($fields);
fputcsv($fp, $header);
$index = 0;
foreach ($data as $row) {
$a = [];
foreach($field as $k=>$v){
// $a[$v] = $row[$v] . "\t";//防止格式错误
$a[$v] = $row[$v];
}
if ($index == 10000) { //每次写入1000条数据清除内存
$index = 0;
ob_flush();//清除内存
flush();
}
$index++;
fputcsv($fp, $a);
}
ob_flush();
fclose($fp); //每生成一个文件关闭
die();
}

@ -2220,14 +2220,19 @@ class DownloadController extends BaseController {
break;
case "IOS玩家详情下载统计":
$this->iosDetailExcelInfo($id,$map);
break;
break;
case "汇总单信息":
$this->WithdrawIndexExcelInfo($id,$map);
break;
case "结算单明细":
$this->WithdrawOrderExcelInfo($id,$map);
break;
default:
break;
}
}
public function iosDetailExcelInfo($id,$map) {
$xlsName ="IOS详情下载数统计";
$xlsCell = array(
@ -4676,6 +4681,258 @@ public function iosDetailExcelInfo($id,$map) {
}
return M('server', 'tab_')->where($map)->getField('server_name');
}
/**
* 汇总单信息
* @author sunke
*/
public function Withdraw_index_export() {
$map = [];
// $map['pay_time'] = strtotime($_REQUEST['start_time']);
$map["promote.id"] = get_pid();
$map['tab_company_statement_info.company_type'] = ['in',"1,2"];
// $map['pay_type'] = 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']);
}
$conditions = json_encode($map,TRUE);
$addtime = time();
$data = [
'logid' => 'withdraw_'.time(),
'promote_id' => PID,
'type' => '/Home/Withdraw/index',
'dataname' => '汇总单信息',
'status' => 0,
'addtime' => $addtime,
'begintime' => 0,
'content' => '',
'conditions' =>$conditions
];
$res = M('downloadlog','tab_')->add($data);
if (!$res) {
// $this->ajaxReturn(array("status" => -1, "msg" => "添加导出日志失败", 'ret' => $res));
$this->error('添加下载失败');
}
$this->success('添加下载成功',U('listsIndex'));
}
public function WithdrawIndexExcelInfo($id,$map) {
$xlsName ="汇总单信息";
$xlsCell = array(
'结算时间',
'结算金额',
'结算单号',
'平台流水',
'提现状态',
);
$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();
$csvFileName = $xlsName.'.csv';
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'. $csvFileName .'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$fp = fopen('php://output', 'a');//打开output流
mb_convert_variables('gb2312', 'UTF-8', $xlsCell);
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
$accessNum = $count ;
$perSize = 5000;//每次查询的条数
$pages = ceil($accessNum / $perSize);
for($i = 1; $i <= $pages; $i++) {
$data = M("company_statement_info","tab_")
->field("tab_company_statement_info.statement_begin_time time,
tab_company_statement_info.statement_money,
tab_company_statement_info.pool_id,
tab_company_statement_info.platform_amount,
tab_company_statement_info.pay_status")
->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")
->limit(($i-1)*$perSize ,$perSize)
->where($map)
->select();
foreach ($data as $key => $value) {
$value['time'] = date("Y-m-d H:i:s",$value["statement_begin_time"])."-".date("Y-m-d H:i:s",$value["statement_end_time"]);
if ($value['pay_status'] == '-1') {
$value['pay_status'] = '打款失败';
} elseif($value['pay_status'] == '0') {
$value['pay_status'] = '未打款';
} elseif($value['pay_status'] == '1') {
$value['pay_status'] = '打款成功';
}
mb_convert_variables('GBK', 'UTF-8', $value);
fputcsv($fp, $value);
}
unset($data);
ob_flush();
flush();
}
fclose($fp);
$this->backSuccessExport($id);
}
/**
* 结算单详情
* @author sunke
*/
public function Withdraw_order_export() {
$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_status'] = 1;
$map['pay_time'] = ['between',[strtotime($start),strtotime($end)+86399]];
$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']}%"];
}
$conditions = json_encode($map,TRUE);
$addtime = time();
$data = [
'logid' => 'withdraw_order_'.time(),
'promote_id' => PID,
'type' => '/Home/Withdraw/withdrawOrderDetail',
'dataname' => '结算单明细',
'status' => 0,
'addtime' => $addtime,
'begintime' => 0,
'content' => '',
'conditions' =>$conditions
];
$res = M('downloadlog','tab_')->add($data);
if (!$res) {
// $this->ajaxReturn(array("status" => -1, "msg" => "添加导出日志失败", 'ret' => $res));
$this->error('添加下载失败');
}
$this->success('添加下载成功',U('listsIndex'));
}
public function WithdrawOrderExcelInfo($id,$map) {
$xlsName ="结算单明细";
$xlsCell = array(
'游戏订单号',
'游戏',
'玩家账号',
'推广员账号',
'订单金额',
'充值时间',
);
$count = M("spend","tab_")
->where($map)
->count();
$csvFileName = $xlsName.'.csv';
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'. $csvFileName .'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$fp = fopen('php://output', 'a');//打开output流
mb_convert_variables('gb2312', 'UTF-8', $xlsCell);
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
$accessNum = $count ;
$perSize = 5000;//每次查询的条数
$pages = ceil($accessNum / $perSize);
for($i = 1; $i <= $pages; $i++) {
$data = M("spend","tab_")
->field("pay_order_number,game_name,user_account,promote_account,pay_amount,pay_time")
->where($map)
->limit(($i-1)*$perSize ,$perSize)
->select();
foreach ($data as $key => $value) {
$value['pay_time'] = date("Y-m-d H:i:s",$data[$key]['pay_time']);
if ($value['promote_account'] == "官方渠道") {
$value['promote_account'] = "江息网络";
}
mb_convert_variables('GBK', 'UTF-8', $value);
fputcsv($fp, $value);
}
unset($data);
ob_flush();
flush();
}
fclose($fp);
$this->backSuccessExport($id);
}
}

@ -0,0 +1,314 @@
<?php
namespace Home\Controller;
use OT\DataDictionary;
use Admin\Model\ApplyModel;
use Think\Model;
use Base\Facade\Request;
use Base\Service\ApplyService;
use Base\Service\PromoteService;
/**
* 前台首页控制器
* 主要获取首页聚合数据
*/
class WithdrawController extends BaseController
{
public function index($p=0)
{
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$row=10;
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
$map = [];
$map["promote.id"] = get_pid();
$map['tab_company_statement_info.company_type'] = ['in',"1,2"];
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 = $_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);
//TODO:未进行真实打款
if($dbres['pay_status'] != 1 && $dbres['verify_status'] == 1){
//执行打款
$title = "测试-".$dbres['company_name']."结算";
$amount = $dbres['statement_money'];
// $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]);
}
$this->poolCount($dbres['pool_id']);
M("company_statement_info","tab_")->save($savedata);
$this->ajaxReturn(["msg"=>"打款成功","data"=>$dbres,"status"=>1]);
}
/**
* 执行最后聚合表统计
* 整合数据,全部成功则支付成功,否则为支付中
*/
public function poolCount($poolid){
$pool_id = $poolid;
$CompanyInfo = M("company_statement_info","tab_");
if(count($pool_id) > 0){
foreach($pool_id as $k=>$v){
$f = $CompanyInfo->where("pool_id = {$v} AND pay_status <> 1")->find();
if(empty($f)){
//全部完成
$this->setOneVerifyStatus(4,"payment",$v);
}else{
//打款中
$this->setOneVerifyStatus(3,"payment",$v);
}
}
}
}
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']=$this->admininfo["mobile"];
$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 = $_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) {
$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");
}
}

@ -83,7 +83,10 @@
<a href="{:U('Finance/index')}" class="<if condition='CONTROLLER_NAME eq Finance and ACTION_NAME eq index '>active</if> ">结算中心</a>
<a href="{:U('Finance/settlementDtl')}" class="<if condition='CONTROLLER_NAME eq Finance and ACTION_NAME eq settlementDtl '>active</if> ">结算明细</a>
<a href="{:U('Finance/withdrawRecord')}" class="<if condition='CONTROLLER_NAME eq Finance and (ACTION_NAME eq withdrawRecord or ACTION_NAME eq withdrawDtl or ACTION_NAME eq settlementOrder) '>active</if> ">提现记录</a>
</div>
<?php if ($loginer['withdraw_show'] == 1) :?>
<a href="{:U('Withdraw/index')}" class="<if condition='CONTROLLER_NAME eq Withdraw and (ACTION_NAME eq index or ACTION_NAME eq withdrawDetail or ACTION_NAME eq withdrawOrderDetail) '>active</if> ">公司结算</a>
<?php endif;?>
</div>
<?php endif ;?>
<div class="subNav jssubNav"><i class="prev_icon icon_fenbao"></i><span>游戏管理</span><i class="arrow_icon"></i></div>
<div class="navContent jsnavContent">

@ -0,0 +1,447 @@
<extend name="Public/promote_base" />
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<style>
@media screen and (max-width: 1500px) {
.normal_form {
padding-top: 45px;
}
.trunk-search .normal_txt {
width: 100px
}
.select2-container--default .select2-selection--single {
width: 125px;
}
.trunk-search .select-time .txt {
width: 100px;
}
.form-group .submit {
width: 55px;
}
}
.open_edit {
color: #19ADED;
text-decoration: none;
line-height: 40px;
border-collapse: collapse;
border-spacing: 0;
}
.apply {
color: #19ADED;
text-decoration: none;
line-height: 40px;
border-collapse: collapse;
border-spacing: 0;
}
.my_text {
position: relative;
padding: 0 10px;
border: 1px solid #D5D5D5;
border-radius: 5px;
outline: none;
font-size: 14px;
font-family: inherit;
height: 38px;
line-height: 38px;
}
.my_save {
width: 95px;
height: 36px;
line-height: 38px;
display: block;
background: #26C7DB;
color: #fff;
border: none;
border-radius: 4px;
text-align: center;
float: left;
cursor: pointer;
text-decoration: none;
padding: 0;
margin: 14px;
font-family: "微软雅黑";
box-sizing: border-box;
}
.td_tit {
width: 112px;
text-align: right;
padding: 0 24px 0 6px;
border: none;
}
</style>
</block>
<block name="body">
<div class="div_editor" style="display:none;">
<form action="">
<table class="" style="border-collapse:separate; border-spacing:0px 10px;">
<tbody>
<tr>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>游戏名称</td>
<td><input class="my_text" type="text" size="50" value="" id='i_game_name' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>游戏区服</td>
<td><input class="my_text" type="text" size="50" value="" id='i_server_name' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>账号</td>
<td><input class="my_text" type="text" size="50" value="" id='i_account' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>密码</td>
<td><input class="my_text" type="text" size="50" value="" id='i_password' placeholder=""></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>角色名称</td>
<td><input class="my_text" type="text" size="50" value="" id='i_role_name' placeholder=""></td>
</tr>
<input class="" type="hidden" size="50" value="" id='i_support_id' placeholder="">
<tr>
<td class="">&nbsp;</td>
<td class="td_tit"><a class="i_save my_save" data-id="">保存</a><a class="i_cancel my_save">取消</a>
</td>
</tr>
</tbody>
</table>
</form>
</div>
<div class="page-search normal_list query-recharge-search jssearch">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>财务管理></span><span>公司结算</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_shenqing.png">
<span class="title_main">汇总单详情</span>
<span class="details">说明:汇总单详情</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div id="form1">
<div class="form-group normal_space fr">
<input type="submit" class="submit" id='submit' value="查询" url="{:U('index')}"
style="cursor:pointer;">
</div>
<div class="form-group normal_space fr">
<span id="">
<select id="pay_status" name="pay_status" class="reselect select_gallery" style="width:101px">
<option value="">提现状态</option>
<option value="-1" <if condition="$_GET['pay_status'] eq '-1'">selected</if>>打款失败</option>
<option value="0" <if condition="$_GET['pay_status'] eq '0'">selected</if>>未打款</option>
<option value="1" <if condition="$_GET['pay_status'] eq '1'">selected</if>>打款成功</option>
</select>
</span>
</div>
<div class="form-group normal_space fr">
<label class="form-title select-title" style="margin-right: 9px;"></label>
<div class="select-time">
<input type="text" id="edate" class="txt" name="end" placeholder="结束时间" value="{:I('end')}" autocomplete="off">
</div>
</div>
<div class="form-group normal_space fr">
<label class="form-title select-title">结算时间:</label>
<div class="select-time">
<input type="text" id="sdate" class="txt" name="start" placeholder="开始时间"
value="{:I('start')}" autocomplete="off">
</div>
</div>
</div>
</div>
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
<div class="trunk-content article">
<div class="tabcon trunk-list">
<table class="table normal_table">
<tr class="odd">
<th>结算时间</th>
<th>结算金额</th>
<th>结算单号</th>
<th>平台流水</th>
<th>提现状态</th>
<th>操作</th>
</tr>
<empty name="data">
<tr>
<td colspan="12" style="text-align: center;height: 45vh;"><img
src="__IMG__/20180207/icon_wushujv2.png" />
<p style="line-height: 40px;color: #A5A5A5;">暂无数据</p>
</td>
</tr>
<else />
<volist name="data" id="s">
<tr class="<eq name='mod' value='1'>odd</eq>">
<td>{$s.time}</td>
<td>{$s.statement_money}</td>
<td>{$s.pool_id}</td>
<td>{$s.platform_amount}</td>
<td><if condition="$s.pay_status eq -1">打款失败
<elseif condition="$s.pay_status eq 0"/>未打款
<elseif condition="$s.pay_status eq 1"/>打款成功</if>
</td>
<td>
<if condition="$promote_data.withdraw_done eq 1 and $s.verify_status eq 1 and ($s.pay_status eq -1 or $s.pay_status eq 0)">
<a href="javascript:;" class="open_edit" data-id="{$s.id}">提现</a>
</if>
<a href="javascript:;" class="apply" data-id="{$s.id}">结算单详情</a>
</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<?php if ($loginer['level'] !== 4) :?>
<a id="sch-btn" href="{:U('download/Withdraw_index_export',array_merge(['promote_type'=>'xxx'],I('get.')))}" class="ajax-get" >导出</a>
<?php endif ;?>
{$_page}
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" type="text/css" href="__CSS__/p_jquery.datetimepicker.css">
<script type="text/javascript" src="__JS__/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript">
$().ready(function () {
setValue('row', '{:I("get.row",10)}');
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
$('#sdate').datetimepicker({
lang: 'ch',
format: 'Y-m-d',
formatDate: 'Y-m-d',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
timepicker: false
});
$('#add').click(function () {
var url = $(this).attr('url');
window.location.href = url;
});
$('#batch_add').click(function () {
var ids = $('.ids:checked');
if (ids.length > 0) {
var str = new Array();
ids.each(function () {
str.push($(this).val());
});
param = str.join(',');
} else {
layer.msg('请选择要操作的数据');
return false;
}
var url = "{:U('apply','','')}" + '/id/' + param;
window.location.href = url;
});
$('.apply').click(function () {
var id = $(this).attr('data-id');
var pay_status = $("#pay_status").val();
var edate = $("#edate").val();
var sdate = $("#sdate").val();
var str = '';
if(pay_status) {
str += "/pay_status/" + pay_status;
}
if(sdate) {
str += "/start/" + sdate;
}
if(edate) {
str += "/end/" + edate;
}
var url = "{:U('withdrawDetail','','')}" + '/id/' + id + str;
window.location.href = url;
});
$('.open_edit').click(function () {
var id = $(this).attr('data-id');
layer.confirm('是否确认提现操作?', {
icon:0,
btn: ['确认','取消'],
title:false
}, function() {
$.ajax({
async: false,
url: "{:U('doPayment')}",
type: "POST",
dataType: "json",
data: { id:id },
success: function (result) {
if (result.status == 0) {
layer.msg(result.msg);
} else {
layer.msg('提现成功~');
setTimeout(function () {
location.reload();
}, 1000);
}
},
error: function () {
}
});
});
});
$('.i_cancel').click(function () {
location.reload();
});
$(".select_gallery").select2();
$('#edate').datetimepicker({
lang: 'ch',
format: 'Y-m-d',
formatDate: 'Y-m-d',
timepicker: false
});
});
</script>
<script type="text/javascript">
$("#submit").click(function () {
var sdate = $('#sdate').val();
var edate = $('#edate').val();
if (Date.parse(sdate) > Date.parse(edate)) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
var url = $(this).attr('url');
var query = $('#form1').find('input').serialize();
query += "&" + $('#form1').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
window.location.href = url;
});
$("#game_id").change(function () {
$.ajax({
url: "{:U('getServer')}",
type: "post",
data: { game_id: $("#game_id option:selected").attr('game-id') },
dataType: 'json',
success: function (data) {
str = "<option value=''>请选择区服</option>";
for (var i in data) {
str += "<option value='" + data[i].server_name + "'>" + data[i].server_name + "</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
})
$("#server_js").click(function (event) {
var game_id = $("#game_id").val();
if (game_id == 0) {
layer.msg('请先选择游戏');
}
});
</script>
</block>

@ -0,0 +1,625 @@
<extend name="Public/promote_base" />
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<style>
@media screen and (max-width: 1500px) {
.normal_form {
padding-top: 45px;
}
.trunk-search .normal_txt {
width: 100px
}
.select2-container--default .select2-selection--single {
width: 125px;
}
.trunk-search .select-time .txt {
width: 100px;
}
.form-group .submit {
width: 55px;
}
}
.open_edit {
color: #19ADED;
text-decoration: none;
line-height: 40px;
border-collapse: collapse;
border-spacing: 0;
}
.apply {
color: #19ADED;
text-decoration: none;
line-height: 40px;
border-collapse: collapse;
border-spacing: 0;
}
.my_text {
position: relative;
padding: 0 10px;
border: 1px solid #D5D5D5;
border-radius: 5px;
outline: none;
font-size: 14px;
font-family: inherit;
height: 38px;
line-height: 38px;
}
.my_save {
width: 95px;
height: 36px;
line-height: 38px;
display: block;
background: #26C7DB;
color: #fff;
border: none;
border-radius: 4px;
text-align: center;
float: left;
cursor: pointer;
text-decoration: none;
padding: 0;
margin: 14px;
font-family: "微软雅黑";
box-sizing: border-box;
}
.td_tit {
width: 112px;
text-align: right;
padding: 0 24px 0 6px;
border: none;
}
</style>
</block>
<block name="body">
<div class="div_editor" style="display:none;">
<form action="">
<table class="" style="border-collapse:separate; border-spacing:0px 10px;">
<tbody>
<tr>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>游戏名称</td>
<td><input class="my_text" type="text" size="50" value="" id='i_game_name' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>游戏区服</td>
<td><input class="my_text" type="text" size="50" value="" id='i_server_name' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>账号</td>
<td><input class="my_text" type="text" size="50" value="" id='i_account' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>密码</td>
<td><input class="my_text" type="text" size="50" value="" id='i_password' placeholder=""></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>角色名称</td>
<td><input class="my_text" type="text" size="50" value="" id='i_role_name' placeholder=""></td>
</tr>
<input class="" type="hidden" size="50" value="" id='i_support_id' placeholder="">
<tr>
<td class="">&nbsp;</td>
<td class="td_tit"><a class="i_save my_save" data-id="">保存</a><a class="i_cancel my_save">取消</a>
</td>
</tr>
</tbody>
</table>
</form>
</div>
<div class="page-search normal_list query-recharge-search jssearch">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>财务管理></span><span>公司结算</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_shenqing.png">
<span class="title_main">结算单详情</span>
<span class="details">说明:结算单详情</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div id="form1">
<div class="form-group normal_space fl">
<input type="submit" class="submit" id='submit' value="返回" url="{:U('index',array('start'=>$_GET['start'],'end'=>$_GET['end'],'pay_status'=>$_GET['pay_status']))}"
style="cursor:pointer;">
</div>
</div>
</div>
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
<div class="trunk-content article">
<div class="tabcon trunk-list">
<if condition="$data['company_type'] eq 1">
<div style="text-align: center;font-size: 25px">《{$data.company_name}》结算单</div>
<div style="text-align: center;font-size: 20px">({$data['statement_begin_time']|default="无"}-{$data['statement_end_time']|default="无"})</div>
<div>&nbsp</div>
<table class="table normal_table">
<tr class="odd">
<th>结算周期</th>
<th>合作产品名称</th>
<th>平台总额(元)</th>
<th>分成比例</th>
<th>补点比例</th>
<th>税费费率</th>
<th>结算金额(元)</th>
</tr>
<empty name="data">
<tr>
<td colspan="12" style="text-align: center;height: 45vh;"><img
src="__IMG__/20180207/icon_wushujv2.png" />
<p style="line-height: 40px;color: #A5A5A5;">暂无数据</p>
</td>
</tr>
<else/>
<!-- <tr class="<eq name='mod' value='1'>odd</eq>">-->
<!-- <td rowspan="{$rowspan}">{$data.company_name}</td>-->
<!-- <td>{$statemnt_info[0]['game_name']}</td>-->
<!-- <td>{$statemnt_info[0]['sum_money']}</td>-->
<!-- <td><if condition="$statemnt_info[0]['increment_ratio']">0<else/>{$statemnt_info[0]['ratio']}</if></td>-->
<!-- <td><if condition="$statemnt_info[0]['ratio']">0<else/>{$statemnt_info[0]['increment_ratio']}</if></td>-->
<!-- <td>{$statemnt_info[0]['fax_ratio']}</td>-->
<!-- <td>{$statemnt_info[0]['pay_amount']}</td>-->
<!-- <td rowspan="{$rowspan}">{$data['fine']}</td>-->
<!-- <td rowspan="{$rowspan}">{$data['reward']}</td>-->
<!-- <td rowspan="{$rowspan}">{$data['pay_amount']}</td>-->
<!-- <td rowspan="{$rowspan}">{$company_info[0]['payee_name']|default="无"}</td>-->
<!-- <td rowspan="{$rowspan}">{$data['pay_time']}</td>-->
<!-- <td rowspan="{$rowspan}">{$data['remark']}</td>-->
<!-- <td>-->
<!-- <a href="javascript:;" class="apply" data-id="{$statemnt_info[0]['relation_game_id']}" data-start="{$statemnt_info[0]['statement_begin_time']}" data-end="{$statemnt_info[0]['statement_end_time']}">查看详情</a>-->
<!-- </td>-->
<!-- </tr>-->
<volist name="statemnt_info" id="s" index="key">
<tr>
<td>{$s['statement_begin_time']|default="无"}-{$s['statement_end_time']|default="无"}</td>
<td>{$s['game_name']|default="无"}</td>
<td>
<a href="javascript:;" class="apply" data-company="{$data['company_id']}" data-id="{$s['relation_game_id']}" data-start="{$s['statement_begin_time']}" data-end="{$s['statement_end_time']}">
{$s['pay_amount']|default="0"}
</a>
</td>
<td>{$s['ratio']|default="0"}%</td>
<td>{$s['increment_ratio']|default="0"}%</td>
<td>{$s['fax_ratio']|default="0"}%</td>
<td>{$s['sum_money']|default="0"}</td>
</tr>
</volist>
<tr>
<td>{$data['statement_begin_time']|default="无"}-{$data['statement_end_time']|default="无"}</td>
<td>罚款</td>
<td>{$data['fine']|default="0"}</td>
<td></td>
<td></td>
<td></td>
<td>{$data['fine']|default="0"}</td>
</tr>
<tr>
<td>{$data['statement_begin_time']|default="无"}-{$data['statement_end_time']|default="无"}</td>
<td>奖励</td>
<td>{$data['reward']|default="0"}</td>
<td></td>
<td></td>
<td></td>
<td>{$data['reward']|default="0"}</td>
</tr>
<tr>
<td colspan="2">
合计
</td>
<td>
{$data['pay_amount']|default="0"}
</td>
<td colspan="3">
</td>
<td>
{$data['statement_money']}
</td>
</tr>
<tr>
<td>
支付金额(大写)
</td>
<td colspan="20">
{$data['hletter_amount']|default="0"}
</td>
</tr>
<tr>
<td>
备注:
</td>
<td colspan="20">
结算金额=平台总额*(分成比例+补点比例)*(1-税费费率)
</td>
</tr>
<tr>
<td></td>
<td>甲方:</td>
<td>{$first_company_info['partner']|default="无"}</td>
<td>乙方:</td>
<td>{$company_info['partner']|default="无"}</td>
<td></td>
</tr>
<tr>
<td></td>
<td>联系人:</td>
<td>{$first_company_info['link_man']|default="无"}</td>
<td>联系人:</td>
<td>{$company_info['link_man']|default="无"}</td>
<td></td>
</tr>
<tr>
<td></td>
<td>联系电话:</td>
<td>{$first_company_info['link_phone']|default="无"}</td>
<td>联系电话:</td>
<td>{$company_info['link_phone']|default="无"}</td>
<td></td>
</tr>
<tr>
<td></td>
<td>开票项目</td>
<td>{$relation['invoice_content']|default="无"}</td>
<td>邮寄地址</td>
<td>{$data['address']|default="无"}</td>
<td></td>
</tr>
<tr>
<td></td>
<td>发票类型</td>
<td>{$relation['invoice_type']|default="无"}</td>
<td>请汇入此账号</td>
<td>{$company_info['ali_account']|default="无"}</td>
<td></td>
</tr>
<tr>
<td colspan="3"></td>
<td>户名</td>
<td>{$company_info['link_phone']|default="无"}</td>
<td></td>
</tr>
<tr>
<td colspan="3"></td>
<td>账号</td>
<td>{$company_info['bank_account']|default="无"}</td>
<td></td>
</tr>
<tr>
<td colspan="3"></td>
<td>开户行</td>
<td>{$company_info['opening_bank']|default="无"}</td>
<td></td>
</tr>
</empty>
</table>
<elseif condition="$data['company_type'] eq 2"/>
<table class="table normal_table">
<tr class="odd">
<th>下游名称</th>
<th>会长账号</th>
<th>下游类型</th>
<th>市场员</th>
<th>下游性质</th>
<th>产品</th>
<th>产品类型</th>
<th>结算时间</th>
<th>推广流水</th>
<th>分成比例</th>
<th>补点</th>
<th>奖励</th>
<th>罚款</th>
<th>结算金额</th>
<th>操作</th>
</tr>
<empty name="data">
<tr>
<td colspan="12" style="text-align: center;height: 45vh;"><img
src="__IMG__/20180207/icon_wushujv2.png" />
<p style="line-height: 40px;color: #A5A5A5;">暂无数据</p>
</td>
</tr>
<else/>
<tr class="<eq name='mod' value='1'>odd</eq>">
<td rowspan="{$rowspan}">{$data.company_name}</td>
<td rowspan="{$rowspan}">{$company_info['account']}</td>
<td rowspan="{$rowspan}">{$company_info['company_relation_str']}</td>
<td rowspan="{$rowspan}">{$company_info['nickname']}</td>
<td rowspan="{$rowspan}">{$company_info['company_type_str']}</td>
<td>{$statemnt_info[0]['game_name']}</td>
<td>{$statemnt_info[0]['game_type']}</td>
<td>{$statemnt_info[0]['statement_begin_time']|default="无"}-{$statemnt_info[0]['statement_end_time']|default="无"}</td>
<td>{$statemnt_info[0]['pay_amount']|default="0"}</td>
<td>{$statemnt_info[0]['ratio']|default="0"}</td>
<td>{$statemnt_info[0]['increment_ratio']|default="0"}</td>
<td>{$statemnt_info[0]['reward']|default="0"}</td>
<td>{$statemnt_info[0]['fine']|default="0"}</td>
<td>{$statemnt_info[0]['sum_money']|default="0"}</td>
<td>
<a href="javascript:;" class="apply" data-id="{$s.id}">查看详情</a>
</td>
</tr>
<volist name="statemnt_info" id="s" index="key">
<if condition="$key egt 1">
<td>{$s['game_name']}</td>
<td>{$s['game_type']}</td>
<td>{$s['statement_begin_time']|default="无"}-{$statemnt_info[0]['statement_end_time']|default="无"}</td>
<td>{$s['pay_amount']|default="0"}</td>
<td>{$s['ratio']|default="0"}</td>
<td>{$s['increment_ratio']|default="0"}</td>
<td>{$s['reward']|default="0"}</td>
<td>{$s['fine']|default="0"}</td>
<td>{$s['sum_money']|default="0"}</td>
<td>
<a href="javascript:;" class="apply" data-id="{$s.id}">查看详情</a>
</td>
</if>
</volist>
<tr>
<td colspan="50">
开户名:{$company_info.payee_name|default="无"}&nbsp&nbsp开户行{$company_info.opening_bank|default="无"}&nbsp&nbsp银行账户{$company_info.bank_account|default="无"}&nbsp&nbsp账户类型
</td>
</tr>
</empty>
</table>
</if>
</div>
<div class="pagenation clearfix">
<!-- <?php if ($loginer['level'] !== 4) :?>-->
<!-- <a id="sch-btn" href="{:U('download/testresource_data_export',array_merge(['promote_type'=>'xxx'],I('get.')))}" class="ajax-get" >导出</a>-->
<!-- <?php endif ;?>-->
{$_page}
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" type="text/css" href="__CSS__/p_jquery.datetimepicker.css">
<script type="text/javascript" src="__JS__/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript">
$().ready(function () {
setValue('row', '{:I("get.row",10)}');
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
$('#sdate').datetimepicker({
lang: 'ch',
format: 'Y-m-d',
formatDate: 'Y-m-d',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
timepicker: false
});
$('#add').click(function () {
var url = $(this).attr('url');
window.location.href = url;
});
$('#batch_add').click(function () {
var ids = $('.ids:checked');
if (ids.length > 0) {
var str = new Array();
ids.each(function () {
str.push($(this).val());
});
param = str.join(',');
} else {
layer.msg('请选择要操作的数据');
return false;
}
var url = "{:U('apply','','')}" + '/id/' + param;
window.location.href = url;
});
$('.apply').click(function () {
var id = $(this).attr('data-id');
var start = $(this).attr('data-start');
var end = $(this).attr('data-end');
var company = $(this).attr('data-company');
var url = "{:U('withdrawOrderDetail','','')}" + '/relation_game_id/' + id + "/start/" + start + "/end/" + end + "/company_id/" + company;
window.location.href = url;
});
$('.open_edit').click(function () {
var id = $(this).attr('data-id');
layer.confirm('是否确认提现操作?', {
icon:0,
btn: ['确认','取消'],
title:false
}, function() {
$.ajax({
async: false,
url: "{:U('doPayment')}",
type: "POST",
dataType: "json",
data: { id:id },
success: function (result) {
if (result.status == 0) {
layer.msg(result.msg);
} else {
layer.msg('提现成功~');
setTimeout(function () {
location.reload();
}, 1000);
}
},
error: function () {
}
});
});
});
$('.i_cancel').click(function () {
location.reload();
});
$(".select_gallery").select2();
$('#edate').datetimepicker({
lang: 'ch',
format: 'Y-m-d',
formatDate: 'Y-m-d',
timepicker: false
});
});
</script>
<script type="text/javascript">
$("#submit").click(function () {
var sdate = $('#sdate').val();
var edate = $('#edate').val();
if (Date.parse(sdate) > Date.parse(edate)) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
var url = $(this).attr('url');
var query = $('#form1').find('input').serialize();
query += "&" + $('#form1').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
window.location.href = url;
});
$("#game_id").change(function () {
$.ajax({
url: "{:U('getServer')}",
type: "post",
data: { game_id: $("#game_id option:selected").attr('game-id') },
dataType: 'json',
success: function (data) {
str = "<option value=''>请选择区服</option>";
for (var i in data) {
str += "<option value='" + data[i].server_name + "'>" + data[i].server_name + "</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
})
$("#server_js").click(function (event) {
var game_id = $("#game_id").val();
if (game_id == 0) {
layer.msg('请先选择游戏');
}
});
</script>
</block>

@ -0,0 +1,449 @@
<extend name="Public/promote_base" />
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<style>
@media screen and (max-width: 1500px) {
.normal_form {
padding-top: 45px;
}
.trunk-search .normal_txt {
width: 100px
}
.select2-container--default .select2-selection--single {
width: 125px;
}
.trunk-search .select-time .txt {
width: 100px;
}
.form-group .submit {
width: 55px;
}
}
.open_edit {
color: #19ADED;
text-decoration: none;
line-height: 40px;
border-collapse: collapse;
border-spacing: 0;
}
.apply {
color: #19ADED;
text-decoration: none;
line-height: 40px;
border-collapse: collapse;
border-spacing: 0;
}
.my_text {
position: relative;
padding: 0 10px;
border: 1px solid #D5D5D5;
border-radius: 5px;
outline: none;
font-size: 14px;
font-family: inherit;
height: 38px;
line-height: 38px;
}
.my_save {
width: 95px;
height: 36px;
line-height: 38px;
display: block;
background: #26C7DB;
color: #fff;
border: none;
border-radius: 4px;
text-align: center;
float: left;
cursor: pointer;
text-decoration: none;
padding: 0;
margin: 14px;
font-family: "微软雅黑";
box-sizing: border-box;
}
.td_tit {
width: 112px;
text-align: right;
padding: 0 24px 0 6px;
border: none;
}
</style>
</block>
<block name="body">
<div class="div_editor" style="display:none;">
<form action="">
<table class="" style="border-collapse:separate; border-spacing:0px 10px;">
<tbody>
<tr>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>游戏名称</td>
<td><input class="my_text" type="text" size="50" value="" id='i_game_name' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>游戏区服</td>
<td><input class="my_text" type="text" size="50" value="" id='i_server_name' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>账号</td>
<td><input class="my_text" type="text" size="50" value="" id='i_account' placeholder=""
disabled="disabled"></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>密码</td>
<td><input class="my_text" type="text" size="50" value="" id='i_password' placeholder=""></td>
</tr>
<tr>
<td class="td_tit"><span style="color: red">*</span>角色名称</td>
<td><input class="my_text" type="text" size="50" value="" id='i_role_name' placeholder=""></td>
</tr>
<input class="" type="hidden" size="50" value="" id='i_support_id' placeholder="">
<tr>
<td class="">&nbsp;</td>
<td class="td_tit"><a class="i_save my_save" data-id="">保存</a><a class="i_cancel my_save">取消</a>
</td>
</tr>
</tbody>
</table>
</form>
</div>
<div class="page-search normal_list query-recharge-search jssearch">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>财务管理></span><span>公司结算</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_shenqing.png">
<span class="title_main">结算单明细</span>
<span class="details">说明:结算单明细</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div id="form1">
<div class="form-group normal_space fr">
<input type="submit" class="submit" id='submit' value="查询" url="{:U('withdrawOrderDetail')}"
style="cursor:pointer;">
</div>
<div class="form-group normal_space fr">
<select id="team_leader_id" name="team_leader_id" class="reselect select_gallery" style="min-width:130px;">
<option value="">会长账号</option>
<!-- <option value="0" <if condition="'0' eq $_GET['team_leader_id']"> selected="selected" </if>>江息网络</option>-->
<volist name=":getPromoteLists(1)" id="vo">
<option value="{$vo.id}" <if condition="$vo.id eq $_GET['team_leader_id']"> selected="selected" </if>>{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
<input type="hidden" class="txt" name="relation_game_id" value="{:I('relation_game_id')}" >
<input type="hidden" class="txt" name="company_id" value="{:I('company_id')}" >
<div class="form-group normal_space fr">
<label class="form-title select-title" style="margin-right: 9px;"></label>
<div class="select-time">
<input type="text" id="edate" class="txt" name="end" placeholder="结束时间" value="{:I('end')}" autocomplete="off">
</div>
</div>
<div class="form-group normal_space fr">
<label class="form-title select-title">充值时间:</label>
<div class="select-time">
<input type="text" id="sdate" class="txt" name="start" placeholder="开始时间"
value="{:I('start')}" autocomplete="off">
</div>
</div>
<div class="form-group normal_space fr">
<label class="form-title select-title">游戏订单号:</label>
<div class="select-time">
<input type="text" id="pay_order_number" class="txt" name="pay_order_number" placeholder="请输入游戏订单号"
value="{:I('pay_order_number')}">
</div>
</div>
</div>
</div>
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
<div class="trunk-content article">
<div class="tabcon trunk-list">
<table class="table normal_table">
<tr class="odd">
<th>游戏订单号</th>
<th>游戏</th>
<th>玩家帐号</th>
<th>推广员账号</th>
<th>订单金额</th>
<th>充值时间</th>
</tr>
<empty name="data">
<tr>
<td colspan="12" style="text-align: center;height: 45vh;"><img
src="__IMG__/20180207/icon_wushujv2.png" />
<p style="line-height: 40px;color: #A5A5A5;">暂无数据</p>
</td>
</tr>
<else />
<volist name="data" id="s">
<tr class="<eq name='mod' value='1'>odd</eq>">
<td>{$s.pay_order_number}</td>
<td>{$s.game_name}</td>
<td>{$s.user_account}</td>
<td>{$s.promote_account}</td>
<td>{$s.pay_amount}</td>
<td>{$s.pay_time}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<?php if ($loginer['level'] !== 4) :?>
<a id="sch-btn" href="{:U('download/Withdraw_order_export',array_merge(['promote_type'=>'xxx'],I('get.')))}" class="ajax-get" >导出</a>
<?php endif ;?>
{$_page}
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" type="text/css" href="__CSS__/p_jquery.datetimepicker.css">
<script type="text/javascript" src="__JS__/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript">
$().ready(function () {
setValue('row', '{:I("get.row",10)}');
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
$('#sdate').datetimepicker({
lang: 'ch',
format: 'Y-m-d',
formatDate: 'Y-m-d',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
timepicker: false
});
$('#add').click(function () {
var url = $(this).attr('url');
window.location.href = url;
});
$('#batch_add').click(function () {
var ids = $('.ids:checked');
if (ids.length > 0) {
var str = new Array();
ids.each(function () {
str.push($(this).val());
});
param = str.join(',');
} else {
layer.msg('请选择要操作的数据');
return false;
}
var url = "{:U('apply','','')}" + '/id/' + param;
window.location.href = url;
});
$('.apply').click(function () {
var id = $(this).attr('data-id');
var pay_status = $("#pay_status").val();
var edate = $("#edate").val();
var sdate = $("#sdate").val();
var str = '';
if(pay_status) {
str += "/pay_status/" + pay_status;
}
if(sdate) {
str += "/start/" + sdate;
}
if(edate) {
str += "/end/" + edate;
}
var url = "{:U('withdrawDetail','','')}" + '/id/' + id + str;
window.location.href = url;
});
$('.open_edit').click(function () {
var id = $(this).attr('data-id');
layer.confirm('是否确认提现操作?', {
icon:0,
btn: ['确认','取消'],
title:false
}, function() {
$.ajax({
async: false,
url: "{:U('doPayment')}",
type: "POST",
dataType: "json",
data: { id:id },
success: function (result) {
if (result.status == 0) {
layer.msg(result.msg);
} else {
layer.msg('提现成功~');
setTimeout(function () {
location.reload();
}, 1000);
}
},
error: function () {
}
});
});
});
$('.i_cancel').click(function () {
location.reload();
});
$(".select_gallery").select2();
$('#edate').datetimepicker({
lang: 'ch',
format: 'Y-m-d',
formatDate: 'Y-m-d',
timepicker: false
});
});
</script>
<script type="text/javascript">
$("#submit").click(function () {
var sdate = $('#sdate').val();
var edate = $('#edate').val();
if (Date.parse(sdate) > Date.parse(edate)) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
var url = $(this).attr('url');
var query = $('#form1').find('input').serialize();
query += "&" + $('#form1').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
window.location.href = url;
});
$("#game_id").change(function () {
$.ajax({
url: "{:U('getServer')}",
type: "post",
data: { game_id: $("#game_id option:selected").attr('game-id') },
dataType: 'json',
success: function (data) {
str = "<option value=''>请选择区服</option>";
for (var i in data) {
str += "<option value='" + data[i].server_name + "'>" + data[i].server_name + "</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
})
$("#server_js").click(function (event) {
var game_id = $("#game_id").val();
if (game_id == 0) {
layer.msg('请先选择游戏');
}
});
</script>
</block>

@ -1994,3 +1994,8 @@ ADD COLUMN `type` tinyint(2) NULL DEFAULT 0 COMMENT '类型 0美国ip白名
ALTER TABLE `tab_forbit_ip`
ADD UNIQUE INDEX `userid_type`(`user_id`, `type`) COMMENT '用户id与类型唯一索引';
ALTER TABLE `tab_promote`
ADD COLUMN `withdraw_show` tinyint(2) NOT NULL DEFAULT 0 COMMENT '推广员提现查看权限 1 有 0 无' AFTER `group_remark`,
ADD COLUMN `withdraw_done` tinyint(2) NOT NULL DEFAULT 0 COMMENT '推广员提现查看权限 1 有 0 无' AFTER `withdraw_show`;
Loading…
Cancel
Save