解决冲突

master
ELF
commit edb090feca

@ -2842,6 +2842,21 @@ function throwPromoteIdToCompanyId($p_ids)
/**
* 选择收款商户
* @param $type
* @return mixed
*/
function getMerchant(){
$data = M('payment_merchant','tab_')
->field("id,name,identifier,account,main_name")
->where(['status'=>1,'type'=>1])
->select();
return $data;
}
/**
* 聚合公司筛选项
* @param $type 1 渠道 2 包名获取

@ -608,7 +608,7 @@ function arrayPromoteWithdrawStatus($status, $param, $array = array()) {
function getAllGame()
{
$list = M("game", 'tab_')->field('relation_game_name as game_name')->group('relation_game_name')->select();
$list = M("game", 'tab_')->field('relation_game_name as game_name, relation_game_id as game_id')->group('relation_game_name')->select();
return $list;
}
/**

@ -205,6 +205,15 @@ class AggregateFinanceStatementController extends ThinkController
}else{
$cpCompany = M("aggregate_statement","tab_")->field("id,second_party_info")->where("id={$CompanyId}")->find();
$info = json_decode($cpCompany['second_party_info'],true);
// $info['link_man'] = $info['connection_person'];
// $info['link_phone'] = $info['phone'];
// $info['address'] = $info['send_address'];
// $info['company_tax_no'] = $info['tax_identification_number'];
//
// $info['payee_name'] = $info['bank_user'];
// $info['bank_account'] = $info['bank_card'];
// $info['company_tax_no'] = $info['tax_identification_number'];
}
$info['invoice_item'] = "信息技术服务费";
$info['invoice_type'] = "增值税专用发票";

@ -395,7 +395,7 @@ class CompanyStatementController extends ThinkController
$ids = $_REQUEST['ids'];
$dbres = $this->DBModel->field("id,verify_status,verify_log")->where("id in ({$ids})")->select();
foreach($dbres as $k=>&$v){
if(in_array($v['verify_status'],[3,4])) continue; //合作方确认后不进行重算
// if(in_array($v['verify_status'],[3,4])) continue; //合作方确认后不进行重算
//重算
$res = A("CompanyStatementSet")->updateCompanyStatementData($v['id'],$this->admininfo["username"]);
if($res === false){

@ -25,7 +25,15 @@ class CompanyStatementSetController extends Controller {
}
$this->cpapihost = $cpapihost['value'];
}
public function setFreeDateCount($begin,$end='')
/**
* Undocumented function
*
* @param [type] $begin 开始时间 2020-04-01
* @param string $end 结束时间,默认今天
* @param string $company all/pc/cp/pu 全部 下游公司 上游 下游个人
* @return void
*/
public function setFreeDateCount($begin,$end='',$company='all')
{
if($end == '') $end = $begin;
//判断日期格式
@ -48,10 +56,10 @@ class CompanyStatementSetController extends Controller {
$datelist = get_date_list($starttime,$endtime,1);
$countdate = count($datelist);
for($i=0;$i<$countdate;$i++){
$this->setDailyCount($datelist[$i]);
$this->setDailyCount($datelist[$i],$company);
}
}
public function setDailyCount($stime="now")
public function setDailyCount($stime="now",$company='all')
{
if(!IS_CLI){
die("只支持脚本访问");
@ -67,33 +75,65 @@ class CompanyStatementSetController extends Controller {
if($w == 1 || $d == 1){
if($w == 1){
echo $nowdate.":".PHP_EOL;
echo "--周结begin".PHP_EOL;
$this->cpStatement(0,$stime);
echo "∟----CP周结统计ok".PHP_EOL;
$this->promoteCompanyStatement(0,$stime);
echo "∟----推广公司周结统计ok".PHP_EOL;
$this->promoteUserPool(0,$stime);
echo "∟----推广个人周结ok".PHP_EOL;
if($company == "all"){
echo $nowdate.":".PHP_EOL;
echo "--周结begin".PHP_EOL;
$this->cpStatement(0,$stime);
echo "∟----CP周结统计ok".PHP_EOL;
$this->promoteCompanyStatement(0,$stime);
echo "∟----推广公司周结统计ok".PHP_EOL;
$this->promoteUserPool(0,$stime);
echo "∟----推广个人周结ok".PHP_EOL;
}
if($company == "cp"){
$this->cpStatement(0,$stime);
echo "∟----CP周结统计ok".PHP_EOL;
}
if($company == "pc"){
$this->promoteCompanyStatement(0,$stime);
echo "∟----推广公司周结统计ok".PHP_EOL;
}
if($company == "pu"){
$this->promoteUserPool(0,$stime);
echo "∟----推广个人周结ok".PHP_EOL;
}
}
if($d == 1){
echo $nowdate.":".PHP_EOL;
echo "--月结&补点begin".PHP_EOL;
if($company == "all"){
echo $nowdate.":".PHP_EOL;
echo "--月结&补点begin".PHP_EOL;
$this->cpStatement(1,$stime);
$this->cpStatement(2,$stime);
echo "∟----CP月结&补点统计ok".PHP_EOL;
$this->cpStatement(1,$stime);
$this->cpStatement(2,$stime);
echo "∟----CP月结&补点统计ok".PHP_EOL;
$this->promoteCompanyStatement(1,$stime);
$this->promoteCompanyStatement(2,$stime);
echo "∟----推广公司月结&补点统计ok".PHP_EOL;
$this->promoteCompanyStatement(1,$stime);
$this->promoteCompanyStatement(2,$stime);
echo "∟----推广公司月结&补点统计ok".PHP_EOL;
$this->promoteUserPool(1,$stime);
$this->promoteUserPool(2,$stime);
echo "∟----推广个人月结&补点统计ok".PHP_EOL;
$this->promoteUserPool(1,$stime);
$this->promoteUserPool(2,$stime);
echo "∟----推广个人月结&补点统计ok".PHP_EOL;
}
if($company == "cp"){
$this->cpStatement(1,$stime);
$this->cpStatement(2,$stime);
echo "∟----CP月结&补点统计ok".PHP_EOL;
}
if($company == "pc"){
$this->promoteCompanyStatement(1,$stime);
$this->promoteCompanyStatement(2,$stime);
echo "∟----推广公司月结&补点统计ok".PHP_EOL;
}
if($company == "pu"){
$this->promoteUserPool(1,$stime);
$this->promoteUserPool(2,$stime);
echo "∟----推广个人月结&补点统计ok".PHP_EOL;
}
}
}else{
echo $nowdate."非周一和月初,无需任何处理".PHP_EOL;
@ -171,6 +211,8 @@ class CompanyStatementSetController extends Controller {
];
$dataurl .= $this->cpapihost."&".http_build_query($arr);
$html = file_get_contents($dataurl);
//防止并发压力
sleep(5);
$rsp = json_decode($html,true);
if($rsp['code'] != 1){
echo $rsp['error'].PHP_EOL;die;
@ -1175,6 +1217,8 @@ class CompanyStatementSetController extends Controller {
//重写用户
$savedata['verify_log'] = json_encode(["create_user"=>$admin_user,"create_time"=>date("Y-m-d H:i:s")]);
$savedata['verify_status'] = 0;
$savedata['confirm_status'] = 0;
$savedata['confirm_log'] = '';
$savedata['id'] = $dbres['id'];
return $StatementDb->save($savedata);
}

@ -127,7 +127,7 @@ class ConsoleController extends Think {
public function testAggregate()
{
$client = new AggregateClient();
$result = $client->api('game-data', ['unique_codes' => ['abc']]);
$result = $client->api('game-data', ['unique_codes' => ['w123'], 'started_at' => '2019-06-27', 'ended_at' => '2020-07-27']);
var_dump($result);
}

@ -56,11 +56,36 @@ class CpJuheCompanyController extends ThinkController {
$list_data[$key]['agreement_time'] = json_decode($list_data[$key]['agreement_time'],true);
$list_data[$key]['balance_time'] = json_decode($list_data[$key]['balance_time'],true);
$list_data[$key]['agreement_time']['start_time'] = date("Y-m-d",$list_data[$key]['agreement_time']['start_time']);
($list_data[$key]['agreement_time']['end_time']!=1)?($list_data[$key]['agreement_time']['end_time'] = date("Y-m-d",$list_data[$key]['agreement_time']['end_time'])):($list_data[$key]['agreement_time']['end_time'] = "");
// $list_data[$key]['agreement_time']['start_time'] = date("Y-m-d",$list_data[$key]['agreement_time']['start_time']);
// ($list_data[$key]['agreement_time']['end_time']!=1)?($list_data[$key]['agreement_time']['end_time'] = date("Y-m-d",$list_data[$key]['agreement_time']['end_time'])):($list_data[$key]['agreement_time']['end_time'] = "");
//
// $list_data[$key]['balance_time']['start_time'] = date("Y-m-d",$list_data[$key]['balance_time']['start_time']);
// ($list_data[$key]['balance_time']['end_time']!=1)?($list_data[$key]['balance_time']['end_time'] = date("Y-m-d",$list_data[$key]['balance_time']['end_time'])):($list_data[$key]['balance_time']['end_time'] = "");
if ($list_data[$key]['agreement_time']['start_time']) {
$list_data[$key]['agreement_time']['start_time'] = date("Y-m-d", $list_data[$key]['agreement_time']['start_time']);
} else {
$list_data[$key]['agreement_time']['start_time'] = "未设置";
}
if($list_data[$key]['agreement_time']['end_time']) {
($list_data[$key]['agreement_time']['end_time'] != 1) ? ($list_data[$key]['agreement_time']['end_time'] = date("Y-m-d", $list_data[$key]['agreement_time']['end_time'])) : ($list_data[$key]['agreement_time']['end_time'] = "");
} else {
$list_data[$key]['agreement_time']['end_time'] = "未设置";
}
if ($list_data[$key]['balance_time']['start_time']) {
$list_data[$key]['balance_time']['start_time'] = date("Y-m-d", $list_data[$key]['balance_time']['start_time']);
} else {
$list_data[$key]['balance_time']['start_time'] = "未设置";
}
if($list_data[$key]['balance_time']['end_time']) {
($list_data[$key]['balance_time']['end_time'] != 1) ? ($list_data[$key]['balance_time']['end_time'] = date("Y-m-d", $list_data[$key]['balance_time']['end_time'])) : ($list_data[$key]['balance_time']['end_time'] = "");
} else {
$list_data[$key]['balance_time']['end_time'] = "未设置";
}
$list_data[$key]['balance_time']['start_time'] = date("Y-m-d",$list_data[$key]['balance_time']['start_time']);
($list_data[$key]['balance_time']['end_time']!=1)?($list_data[$key]['balance_time']['end_time'] = date("Y-m-d",$list_data[$key]['balance_time']['end_time'])):($list_data[$key]['balance_time']['end_time'] = "");
}
$this->assign("listdata",$list_data);

@ -4,6 +4,7 @@ namespace Admin\Controller;
use Think\Controller;
use GuzzleHttp\Client;
use Admin\Model\PromoteModel;
use Base\Tool\AggregateClient;
class ExportController extends Controller
{
@ -1174,6 +1175,16 @@ class ExportController extends Controller
$order = ' pay_time desc ';
}
if (I('platform_type', 0) != 0) {
$sy = I('platform_type', 0) == 1 ? '=' : '<>';
$platformWhere = 'exists (select 1 from tab_game where id = tab_spend.game_id and unique_code ' . $sy . ' "")';
if (isset($map['_string']) && $map['_string']) {
$map['_string'] = $map['_string'] . ' and ' . $platformWhere;
} else {
$map['_string'] = $platformWhere;
}
}
// if (intval(($endTime + 1) - $startTime) / (24 * 3600) <= 31) {
// $map1 = $map;
// $map1['pay_status'] = 1;
@ -3153,7 +3164,7 @@ class ExportController extends Controller
private function game_statistics_export($p = 1){
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:"游戏注册统计";
$xlsCell = array(
array('fgame_name', "游戏名称"),
array('relation_game_name', "游戏名称"),
array('count', "累计注册"),
array('rand', "排行榜"),
array('today', "今日注册"),
@ -3181,9 +3192,9 @@ class ExportController extends Controller
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
unset($_REQUEST['start']);unset($_REQUEST['end']);
}
if(isset($_REQUEST['game_name'])&&$_REQUEST['game_name']!=''){
$map['fgame_name'] =$_REQUEST['game_name'];
unset($_REQUEST['fgame_name']);
if(isset($_REQUEST['game_id'])&&$_REQUEST['game_id']!=''){
$map['tab_game.relation_game_id'] =$_REQUEST['game_id'];
unset($_REQUEST['game_id']);
}
$today = total(1);
$week = total(2);
@ -3191,9 +3202,10 @@ class ExportController extends Controller
//为数据权限添加
setPowerPromoteIds($map);
$data = $user
->field('fgame_name,fgame_id,date_format(FROM_UNIXTIME( register_time),"%Y-%m-%d") AS time, count(id) as count')
->field('tab_game.relation_game_id,tab_game.relation_game_name,date_format(FROM_UNIXTIME( register_time),"%Y-%m-%d") AS time, count(tab_user.id) as count')
->join('tab_game on tab_game.id = fgame_id', 'left')
->where($map)
->group('fgame_id')
->group('tab_game.relation_game_id')
->order('count desc,register_time')
->select();
// dd($data);
@ -3205,8 +3217,9 @@ class ExportController extends Controller
$data2 = $user->field('fgame_id,count(IF(register_time ' . $today . ',1,null)) as today,
count(IF(register_time ' . $week . ',1,null)) as week,
count(IF(register_time ' . $mounth . ',1,null)) as mounth')
->join('tab_game on tab_game.id = fgame_id', 'left')
->where($map2)
->group('fgame_id')
->group('tab_game.relation_game_id')
->select();
$data2 = array_column($data2, null, 'fgame_id');
// dd($data2);
@ -3216,8 +3229,8 @@ class ExportController extends Controller
$i++;
$data[$key]['rand'] = $i;
if ($data[$key]['fgame_id'] == 0) {
$data[$key]['fgame_name'] = '其他注册';
if ($data[$key]['relation_game_id'] == 0) {
$data[$key]['relation_game_name'] = '其他注册';
}
$data[$key]['today'] = $data2[$value['fgame_id']]['today'];
$data[$key]['week'] = $data2[$value['fgame_id']]['week'];
@ -3237,7 +3250,7 @@ class ExportController extends Controller
// $data = array_slice($data, ($arraypage-1)*$size, $size);
$length = count($data);
$data[$length] = array(
'fgame_name'=>'汇总',
'relation_game_name'=>'汇总',
'count'=>$total['sum_count'],
'rand'=>'---',
'today'=>$total['sum_today'],
@ -3249,7 +3262,6 @@ class ExportController extends Controller
unset($GetData['xlsname']);
addOperationLog(['op_type'=>3,'key'=>getNowDate(),'op_name'=>'导出游戏注册统计','url'=>U('Platform/game_statistics',$GetData),'menu'=>'统计-统计-平台统计-游戏注册统计']);
$xlsData = $data;
$this->exportExcel($xlsName, $xlsCell, $xlsData);
}
@ -3283,28 +3295,30 @@ class ExportController extends Controller
$map['game_id'] =$_REQUEST['game_name'];
unset($_REQUEST['game_name']);
}
$map['pay_status'] = 1;
$map['tab_spend.pay_status'] = 1;
$today = total(1);
$week = total(2);
$mounth = total(3);
$data = $spend
->field('game_name,game_id,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count') ->where($map)
->field('tab_game.relation_game_name as game_name, tab_game.relation_game_id as game_id,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count') ->where($map)
->join('tab_game on tab_game.id = tab_spend.game_id', 'left')
->where($map)
->group('game_id')
->group('tab_game.relation_game_id')
->order('count desc,pay_time')
->select();
//今日、本周、本月不随搜索条件而变动
$map2['pay_status'] = 1;
$map2['tab_spend.pay_status'] = 1;
$map2['game_id'] = array('gt', 0);
setPowerPromoteIds($map2);
$data2 = $spend
->field('game_id,sum(IF(pay_time ' . $today . ',pay_amount,0)) as today,
->field('tab_game.relation_game_id as game_id,sum(IF(pay_time ' . $today . ',pay_amount,0)) as today,
sum(IF(pay_time ' . $week . ',pay_amount,0)) as week,
sum(IF(pay_time ' . $mounth . ',pay_amount,0)) as mounth')
->join('tab_game on tab_game.id = tab_spend.game_id', 'left')
->where($map2)
->group('game_id')
->group('tab_game.relation_game_id')
->select();
$data2 = array_column($data2, null, 'game_id');
$count = count($data);
@ -3582,6 +3596,9 @@ class ExportController extends Controller
}
private function promote_statistics_export($p=0){
$user = M('User', 'tab_');
// $map['promote_id'] = array('egt', 0);
// $map['puid'] = 0;
if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['register_time'] = ['between', array(strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399)];
unset($_REQUEST['timestart']);
@ -3596,7 +3613,7 @@ class ExportController extends Controller
//TODO:应需求取消玩家表只要user表的fgame有就算注册无需在play表存在
$play_map = false;
if (isset($_REQUEST['game_name'])) {
$map['fgame_name'] = $_REQUEST['game_name'];
$map['fgame_name'] = ['like', "{$_REQUEST['game_name']}%"];
// $play_map = " and up.game_name = '{$_REQUEST['game_name']}' ";
}
$play_info_map = false;
@ -3605,6 +3622,14 @@ class ExportController extends Controller
$play_info_map = " and upi.server_id = '{$_REQUEST['server_id']}' and upi.game_name = '{$_REQUEST['game_name']}'";
}
if (!empty($_REQUEST['admin_id'])) {
$map['promote.admin_id'] = $_REQUEST['admin_id'];
}
if (!empty($_REQUEST['game_type'])) {
$map['tab_game.sdk_version'] = $_REQUEST['game_type'];
}
$today = total(1);
$week = total(2);
$mounth = total(3);
@ -3616,27 +3641,30 @@ class ExportController extends Controller
}
}
if (!empty($_REQUEST['admin_id'])) {
$map['promote.admin_id'] = $_REQUEST['admin_id'];
}
//为数据权限添加
setPowerPromoteIds($map, 'u.promote_id');
// 如果是市场专员那么只能看自己的
// 如果是市场专员那么只能看自己的会长信息
$isMarketAdmin = isMarketAdmin();
if ($isMarketAdmin) {
$map['promote.admin_id'] = is_login();
}
//为数据权限添加
setPowerPromoteIds($map, 'u.promote_id');
$data = M("User u","tab_")
->field("count(u.id) as count,IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',u.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) id")
->field("
count(u.id) as count,
tab_game.relation_game_id,
tab_game.relation_game_name,
IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',
u.promote_id,
substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) id")
->join("tab_promote promote ON u.promote_id = promote.id","left")
->join($play_map ? "tab_user_play as up on up.user_id = u.id " . $play_map : false)
->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
// ->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
->join('tab_game on u.fgame_id = tab_game.id')
->where($map)
->group('id')
->group('tab_game.relation_game_id, id')
->order('count desc, register_time')
->select();
//今日/本周/本月不变
@ -3659,44 +3687,56 @@ class ExportController extends Controller
->field("count(IF(register_time {$today},1,null)) as today,
count(IF(register_time {$week},1,null)) as week,
count(IF(register_time {$mounth},1,null)) as mounth,
tab_game.relation_game_id,
IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',u.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) id")
->join("tab_promote promote ON u.promote_id = promote.id","left")
->join($play_map ? "tab_user_play as up on up.user_id = u.id " . $play_map : false)
->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
->join('tab_game on u.fgame_id = tab_game.id')
->where($tmap)
->group('id')
->group('tab_game.relation_game_id, id')
->order('register_time')
->select();
$tmdata = [];
foreach($data as $k=>$v){
$v['today'] = 0;
$v['week'] = 0;
$v['mounth'] = 0;
$tmdata[$v['id']] = $v;
$tag = "{$v['id']}-{$v['relation_game_id']}";
$tmdata[$tag] = $v;
}
// 填入日/周/月统计
if(!empty($tdata)){
foreach ($tdata as $k => $v) {
$tmdata[$v['id']]['today'] = $v['today'];
$tmdata[$v['id']]['week'] = $v['week'];
$tmdata[$v['id']]['mounth'] = $v['mounth'];
$tmdata[$v['id']]['id'] = $v['id'];
}
}
if(count($tmdata) >0){
//获取推广员
$idstr = implode(",",array_keys($tmdata));
$promoteRes = M("Promote","tab_")->field("id,account promote_account")->where("id in ({$idstr})")->select();
foreach($promoteRes as $k=>$v){
$tmdata[$v['id']]['promote_account'] = $v['promote_account'];
}
}
$data = [];
foreach($tmdata as $k => $v){
if($v['id'] == 0){
$v['promote_account'] = C('OFFICIEL_CHANNEL');
$tag = "{$v['id']}-{$v['relation_game_id']}";
$tmdata[$tag]['today'] = $v['today'];
$tmdata[$tag]['week'] = $v['week'];
$tmdata[$tag]['mounth'] = $v['mounth'];
$tmdata[$tag]['id'] = $v['id'];
if (empty($tmdata[$tag]['relation_game_name']) && !empty($v['relation_game_name'])) {
$tmdata[$tag]['relation_game_name'] = $v['relation_game_name'];
}
}
$data[] = $v;
}
// if(count($tmdata) >0){
// //获取推广员
// $idstr = implode(",",array_keys($tmdata));
// $promoteRes = M("Promote","tab_")->field("id,account promote_account")->where("id in ({$idstr})")->select();
// foreach($promoteRes as $k=>$v){
// $tmdata[$v['id']]['promote_account'] = $v['promote_account'];
// }
// }
// $data = [];
// foreach($tmdata as $k => $v){
// if($v['id'] == 0){
// $v['promote_account'] = C('OFFICIEL_CHANNEL');
// }
// $data[] = $v;
// }
$data = array_values($tmdata);
unset($map['tp1.id']);
unset($map['tp1.chain']);
unset($tmap['tp1.id']);
@ -3708,7 +3748,6 @@ class ExportController extends Controller
$last_names = array_column($data,'count');
array_multisort($last_names,SORT_DESC,$data);
$count = count($data);
foreach ($data as $key => $value) {
static $i = 0;
$i++;
@ -3719,23 +3758,27 @@ class ExportController extends Controller
if ($_REQUEST['data_order'] != '') {
$data_order = reset(explode(',', $_REQUEST['data_order']));
$data_order_type = end(explode(',', $_REQUEST['data_order']));
$this->assign('userarpu_order', $data_order);
$this->assign('userarpu_order_type', $data_order_type);
}
//$this->checkListOrCountAuthRestMap($map,[]);
$data = my_sort($data, $data_order_type, (int)$data_order);
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
$companys = !empty($data) ? M('promote', 'tab_')
->field('tab_promote.id, company_name, sys_member.nickname as admin_username')
->field('tab_promote.id, tab_promote.account as promote_account, company_name, sys_member.nickname as admin_username')
->join("tab_promote_company on tab_promote.company_id = tab_promote_company.id", 'left')
->join('sys_member on tab_promote.admin_id = sys_member.uid', 'left')
->where("tab_promote.id in (".implode(',', array_column($data, 'id')).")")->select() : [];
$companys = $companys ? array_column($companys, null, 'id') : [];
foreach ($data as &$item) {
$item['company_name'] = $companys[$item['id']]['company_name'] ?? '无';
$item['admin_username'] = $companys[$item['id']]['admin_username'] ?? '无';
if($item['id'] == 0){
$item['promote_account'] = C('OFFICIEL_CHANNEL');
} else {
$item['promote_account'] = $companys[$item['id']]['promote_account'];
}
}
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:'推广员注册统计';
@ -3743,7 +3786,7 @@ class ExportController extends Controller
array('company_name' , "公司"),
array('promote_account', "会长账号"),
array('admin_username' , "市场专员"),
//array('relation_game_name' , "游戏"),
array('relation_game_name' , "游戏"),
array('count' , "累计注册"),
array('rand' , "排行榜"),
array('today' , "今日注册"),
@ -8149,6 +8192,7 @@ class ExportController extends Controller
array('balance_coin_count','平台币直充支出'),
array('inside_cash_count','内充支出'),
array('all_cash_count','游戏内充值合计'),
array('agg_amount','聚合平台数据'),
array('notice_fail_count','通知失败合计'),
);
@ -8181,7 +8225,38 @@ class ExportController extends Controller
}
$xlsData = D("spend")->gameStatistics($map);
$uniqueCodes = array_column($xlsData, 'unique_code');
$uniqueCodes = array_filter($uniqueCodes, function($value) {
if ($value) {
return true;
}
return false;
});
$client = new AggregateClient();
$result = $client->api('game-data', ['unique_codes' => $uniqueCodes, 'started_at' => I('timestart', ''), 'ended_at' => I('timeend', '')]);
$aggData = [];
$aggTotal = '0.00';
if ($result['code'] == '0000') {
$aggData = $result['data']['records'];
$aggTotal = $result['data']['total'];
}
$exceptIds = [];
foreach ($xlsData as $key => $value) {
$aggAmount = '0.00';
$deviceType = $value['sdk_version'] == 1 ? 'android' : 'ios';
if ($value['unique_code'] && isset($aggData[$value['unique_code']]) && isset($aggData[$value['unique_code']][$deviceType])) {
$aggAmount = number_format($aggData[$value['unique_code']][$deviceType], 2, '.', '');
}
$xlsData[$key]['agg_amount'] = $aggAmount;
if ($aggAmount != '0.00') {
$value['cash_count'] = 0;
$value['balance_coin_count'] = 0;
$value['inside_cash_count'] = 0;
$exceptIds[] = $value['game_id'];
}
// $xlsData[$key]['game_name'] = substr($value["game_name"],0,strrpos($value["game_name"],'('));
$xlsData[$key]['all_cash_count'] = $value['cash_count'] + $value['balance_coin_count'] + $value['inside_cash_count'];
if ($value['sdk_version'] == 1) {
@ -8190,6 +8265,14 @@ class ExportController extends Controller
$xlsData[$key]['sdk_version'] = '苹果';
}
}
if (count($exceptIds) > 0) {
if (isset($map['_string'])) {
$map['_string'] .= " and s.game_id not in (" . implode(',', $exceptIds) . ")";
} else {
$map['_string'] = " s.game_id not in (" . implode(',', $exceptIds) . ")";
}
}
$totalData = D("spend")->totalGameStatistics($map);
$sumCash = $totalData['cash_count'];
@ -8203,6 +8286,7 @@ class ExportController extends Controller
'balance_coin_count'=>$sumBalance,
'inside_cash_count'=>$sumInside,
'all_cash_count'=>$sumAll,
'agg_amount' => $aggTotal,
'notice_fail_count'=>$sumNoticeFail]];
$xlsData = array_merge($xlsData,$sumData);
$this->exportAddOperationLog("Finance/gameStatistics","充值-财务管理-游戏统计-导出");

@ -744,7 +744,7 @@ class FinanceController extends ThinkController
});
$client = new AggregateClient();
$result = $client->api('game-data', ['unique_codes' => $uniqueCodes]);
$result = $client->api('game-data', ['unique_codes' => $uniqueCodes, 'started_at' => I('timestart', ''), 'ended_at' => I('timeend', '')]);
$aggData = [];
$aggTotal = '0.00';
if ($result['code'] == '0000') {
@ -761,9 +761,9 @@ class FinanceController extends ThinkController
$aggAmount = number_format($aggData[$value['unique_code']][$deviceType], 2, '.', '');
}
if ($aggAmount != '0.00') {
$value['cash_count'] = 0;
$value['balance_coin_count'] = 0;
$value['inside_cash_count'] = 0;
$data[$key]['cash_count'] = $value['cash_count'] = 0;
$data[$key]['balance_coin_count'] = $value['balance_coin_count'] = 0;
$data[$key]['inside_cash_count'] = $value['inside_cash_count'] = 0;
$exceptIds[] = $value['game_id'];
}
$data[$key]['all_cash_count'] = number_format($value['cash_count'] + $value['balance_coin_count'] + $value['inside_cash_count'],2,'.','');
@ -835,7 +835,7 @@ class FinanceController extends ThinkController
if (!empty(I('timestart'))) {
$timestart = strtotime(I('timestart'));
$map['_string'] = "pay_time >= {$timestart}";
$map['_string'] = "payed_time >= {$timestart}";
}
if (!empty(I('timeend'))) {
@ -843,7 +843,7 @@ class FinanceController extends ThinkController
if (!empty($map['_string'])) {
$map['_string'] .= " and ";
}
$map['_string'] .= " pay_time < {$timeend}";
$map['_string'] .= " payed_time < {$timeend}";
}
if (!empty(I("promote_id"))) {
@ -883,9 +883,9 @@ class FinanceController extends ThinkController
$map['game_player_name'] = array('like',I("user_nickname").'%');
}
// var_dump($map);die();
$field = "pay_order_number,FROM_UNIXTIME(pay_time) as pay_time,user_account,user_nickname,game_name,promote_account,spend_ip,server_name,game_player_name,pay_amount,cost,pay_way,sdk_version";
$field = "pay_order_number,FROM_UNIXTIME(payed_time) as pay_time,user_account,user_nickname,game_name,promote_account,spend_ip,server_name,game_player_name,pay_amount,cost,pay_way,sdk_version";
$group = "";
$order = "pay_time DESC";
$order = "payed_time DESC";
if(isset($_REQUEST['export'])){
$data = D('spend')->getSpendData($map,$field,$group,$order,0,0);
@ -978,12 +978,12 @@ class FinanceController extends ThinkController
if (!empty(I('timestart'))) {
$timestart = strtotime(I('timestart'));
$map['_string'] = "pay_time > {$timestart}";
$map['_string'] = "payed_time > {$timestart}";
}
if (!empty(I('timeend'))) {
$timeend = strtotime(I('timeend') . ' 23:59:59');;
$map['_string'] .= " and pay_time < {$timeend}";
$map['_string'] .= " and payed_time < {$timeend}";
}
if (!empty(I("promote_id"))) {
@ -1023,11 +1023,11 @@ class FinanceController extends ThinkController
$map['tab_spend.game_player_name'] = array('like',I("user_nickname").'%');
}
// var_dump($map);die();
$field = "pay_order_number,FROM_UNIXTIME(pay_time) as pay_time,tab_spend.user_account,
$field = "pay_order_number,FROM_UNIXTIME(payed_time) as pay_time,tab_spend.user_account,
tab_spend.user_nickname,tab_spend.game_name,tab_spend.promote_account,spend_ip,tab_spend.server_name,tab_spend.sdk_version,
game_player_name,pay_amount,cost,pay_way";
$group = "";
$order = "pay_time DESC";
$order = "payed_time DESC";
$join = false;
if ($map['pay_way'] ==-1) {//绑定币
$field2 = $field . ',bind_balance';
@ -1136,7 +1136,7 @@ class FinanceController extends ThinkController
//获取现金充值
$cashStatistics = M('spend', 'tab_')
->field('pay_way,"" as pay_type,SUM(pay_amount) AS pay_amount')
->where(['pay_status' => 1,'pay_way'=>['egt',1],'pay_time'=>$time])
->where(['pay_status' => 1,'pay_way'=>['egt',1],'payed_time'=>$time])
->group('pay_way')
->select();
foreach ($cashStatistics as $key => $value) {
@ -1150,7 +1150,7 @@ class FinanceController extends ThinkController
'pay_source' => 2,
'tab_deposit.pay_status' => 1,
'tab_deposit.pay_way' => ['gt', 0],
'tab_deposit.create_time'=>$time,
'tab_deposit.payed_time'=>$time,
])->field('tab_deposit.pay_way,"" as pay_type, SUM(tab_deposit.pay_amount) AS balance')
->group('tab_deposit.pay_way')
->select();
@ -1243,7 +1243,7 @@ class FinanceController extends ThinkController
'pay_status'=>1,
'pay_way'=>['egt',1],
'pay_source'=>0,
'create_time'=>$time
'payed_time'=>$time
])
->group('pay_way')
->select();

@ -585,11 +585,11 @@ class FinancePromoteController extends AdminController
}
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
$map['s.pay_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]];
$map['s.payed_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]];
} elseif (isset($_REQUEST['time_start'])) {
$map['s.pay_time'] = ['GT', strtotime($_REQUEST['time_start'])];
$map['s.payed_time'] = ['GT', strtotime($_REQUEST['time_start'])];
} elseif (isset($_REQUEST['time_end'])) {
$map['s.pay_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399];
$map['s.payed_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399];
}
if (!empty(I('develop_type'))) {
// $map['develop_type'] = I('develop_type');
@ -750,11 +750,11 @@ class FinancePromoteController extends AdminController
}
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
$map['pay_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]];
$map['payed_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]];
} elseif (isset($_REQUEST['time_start'])) {
$map['pay_time'] = ['GT', strtotime($_REQUEST['time_start'])];
$map['payed_time'] = ['GT', strtotime($_REQUEST['time_start'])];
} elseif (isset($_REQUEST['time_end'])) {
$map['pay_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399];
$map['payed_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399];
}
//获取推广员
$title = '';
@ -784,7 +784,7 @@ class FinancePromoteController extends AdminController
if (!empty(I('user_nickname'))) {
$map['game_player_name'] = array('like',I("user_nickname").'%');
}
$field = "pay_order_number,FROM_UNIXTIME(pay_time) as pay_time,user_account,user_nickname,game_name,sdk_version,promote_account,spend_ip,server_name,game_player_name,pay_amount,cost,pay_way,market_admin_id";
$field = "pay_order_number,FROM_UNIXTIME(payed_time) as pay_time,user_account,user_nickname,game_name,sdk_version,promote_account,spend_ip,server_name,game_player_name,pay_amount,cost,pay_way,market_admin_id";
$group = "";
$order = "pay_time DESC";
if(isset($_REQUEST['export'])){
@ -953,11 +953,11 @@ class FinancePromoteController extends AdminController
$map["tab_spend.game_id"] = array("in",implode(',', array_column(getGameidByPartnerNameType($_REQUEST['partner_id'],$_REQUEST['game_name'], $_REQUEST['game_type']), 'id')) );
}
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
$map['pay_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]];
$map['payed_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]];
} elseif (isset($_REQUEST['time_start'])) {
$map['pay_time'] = ['GT', strtotime($_REQUEST['time_start'])];
$map['payed_time'] = ['GT', strtotime($_REQUEST['time_start'])];
} elseif (isset($_REQUEST['time_end'])) {
$map['pay_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399];
$map['payed_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399];
}
if ($_REQUEST['promote_id'] != '') {
if ($_REQUEST['promote_id'] == 0 || $_REQUEST['promote_type'] == 2) {
@ -986,11 +986,11 @@ class FinancePromoteController extends AdminController
if (!empty(I('user_nickname'))) {
$map['tab_spend.game_player_name'] = array('like',I("user_nickname").'%');
}
$field = "pay_order_number,FROM_UNIXTIME(pay_time) as pay_time,tab_spend.user_account,
$field = "pay_order_number,FROM_UNIXTIME(payed_time) as pay_time,tab_spend.user_account,
tab_spend.user_nickname,tab_spend.game_name,tab_spend.promote_account,spend_ip,tab_spend.server_name,tab_spend.sdk_version,
game_player_name,pay_amount,cost,pay_way";
$group = "";
$order = "pay_time DESC";
$order = "payed_time DESC";
$join = false;
if ($map['pay_way'] ==-1) {//绑定币
$field2 = $field . ',bind_balance';

@ -57,6 +57,19 @@ class FinancialSummaryController extends AdminController
"count"=>['0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00']
]
);
$merchant_data = M("payment_merchant","tab_")
->field("identifier,main_name")
->where(['status'=>1,'type'=>1])
->select();
//将商户插入到默认数组中
foreach ($merchant_data as $key => $value) {
$identifier = (string)$value['identifier'];
$this->keyname[$identifier] = $value['main_name'];
}
$data = [];
//初始化数据
foreach ($this->keyname as $k => $v) {
@ -64,9 +77,10 @@ class FinancialSummaryController extends AdminController
}
$map = array(
"count_year"=>$_REQUEST['year'],
"type"=>array("IN","1,{$_REQUEST['type']},4,5")
"type"=>array("IN","1,{$_REQUEST['type']},4,5,6")
);
$dbres = M("FinancialSummary","tab_")->field("*")->where($map)->select();
foreach ($dbres as $k => $v) {
if($v['type'] == 1){
if(!in_array($v['key_name'],$senddata['income']['list'])){
@ -83,6 +97,11 @@ class FinancialSummaryController extends AdminController
$senddata['payway']['list'][] = $v['key_name'];
}
}
if($v['type'] == 6){
if(!in_array($v['key_name'],$senddata['merchant']['list'])){
$senddata['merchant']['list'][] = $v['key_name'];
}
}
if($v['type'] == $_REQUEST['type']){
if(!in_array($v['key_name'],$senddata['promote']['list'])){
$senddata['promote']['list'][] = $v['key_name'];
@ -91,6 +110,7 @@ class FinancialSummaryController extends AdminController
$data[$v['key_name']]["money"][((int)$v['count_month']-1)] = $v['sum_money'];
# code...
}
foreach ($senddata as $k => $v) {
foreach ($v as $ke => $va) {
if($ke !='count'){
@ -105,7 +125,9 @@ class FinancialSummaryController extends AdminController
}
}
ksort($senddata[$k]['count']);
}
$this->assign('data', $senddata);
}
//获取历史年份

@ -92,6 +92,8 @@ class FinancialSummarySetController extends \Think\Controller
$this->setPromoteMoney();
//支付渠道/支付类型
$this->setPayWayMoney();
//按支付商户
$this->setMerchantMoney();
//存入数据
$this->addDb();
@ -491,5 +493,110 @@ class FinancialSummarySetController extends \Think\Controller
}
}
public function setMerchantMoney() {
$map = [];
$map['payed_time'] = ['BETWEEN',[$this->beginThismonth, $this->endThismonth]];
//游戏充值金额
$data = M("spend use index(pay_channel)","tab_")
->field("SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is null THEN pay_amount ELSE 0 END) as cash_amount,
SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is not null THEN pay_amount ELSE 0 END) as test_amount,
0 coin_amount,0 offcial_amount,0 spread_amount,0 supersign_amount,0 test_order_amount,merchant_id,name,channel,identifier,
payed_time,game_id,main_name,merchant_way,merchant.account")
->join("left join tab_test_white_list on tab_spend.user_id=tab_test_white_list.user_id")
->join("left join tab_payment_merchant merchant on merchant.id=tab_spend.merchant_id")
->where(['pay_status'=>1,'tab_spend.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id")
->select(false);
//平台币充值金额计算
$coinData = M('pay_info','tab_')
->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number")
->join("left join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id")
->join("left join tab_payment_merchant merchant on merchant.id=tab_deposit.merchant_id")
->field("0 cash_amount,SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is not null THEN pay_amount ELSE 0 END) as test_amount,
SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is null and pay_source=0 THEN pay_amount ELSE 0 END) as coin_amount,
0 offcial_amount,0 spread_amount,0 supersign_amount,0 test_order_amount,merchant_id,name,channel,identifier,payed_time,game_id,main_name,merchant_way,merchant.account")
->where(['pay_status'=>1,'tab_deposit.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id")
->select(false);
//官网金额
$officalData = M('deposit','tab_')
->join("left join tab_test_white_list on tab_test_white_list.user_id=tab_deposit.user_id")
->join("left join tab_payment_merchant merchant on merchant.id=tab_deposit.merchant_id")
->field("0 cash_amount,SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is not null THEN pay_amount ELSE 0 END) as test_amount,
0 as coin_amount,SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is null and pay_source=2 THEN pay_amount ELSE 0 END) as offcial_amount,
0 spread_amount,0 supersign_amount,0 test_order_amount,merchant_id,name,channel,identifier,payed_time,0 as game_id,main_name,merchant_way,merchant.account")
->where(['pay_status'=>1,'tab_deposit.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id")
->select(false);
$map['pay_time'] = $map['payed_time'];
unset($map['payed_time']);
//推广后台
$spreadData = M("coin_pay_order","tab_")
->field("0 cash_amount,0 test_amount,0 coin_amount,0 offcial_amount,
SUM(CASE WHEN merchant.id is not null THEN pay_amount ELSE 0 END) as spread_amount,0 supersign_amount,
0 test_order_amount,merchant_id,name,channel,identifier,pay_time payed_time,0 game_id,main_name,merchant_way,merchant.account")
->join("left join tab_payment_merchant merchant on merchant.id=tab_coin_pay_order.merchant_id")
->where(['order_status'=>1,'tab_coin_pay_order.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id")
->select(false);
//超级签数据
$superSignData = M('game_supersign','tab_')
->field("0 cash_amount,
SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is not null THEN pay_price ELSE 0 END) as test_amount,
0 coin_amount,0 offcial_amount,0 spread_amount,
SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is null THEN pay_price ELSE 0 END) as supersign_amount,
0 test_order_amount,merchant_id,name,channel,identifier,pay_time payed_time,game_id,main_name,merchant_way,merchant.account")
->join("left join tab_payment_merchant merchant on merchant.id=tab_game_supersign.merchant_id")
->join("left join tab_test_white_list on tab_test_white_list.user_id=tab_game_supersign.user_id")
->where(['pay_status'=>1,'tab_game_supersign.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id")
->select(false);
//测试环境内网平台订单
$testOrder = M('test_order', 'tab_')
->where(['tab_test_order.pay_way'=>['egt',1]])
->field('0 cash_amount,0 test_amount,0 coin_amount,0 offcial_amount,0 spread_amount,0 supersign_amount,
SUM(CASE WHEN merchant.id is not null THEN pay_amount ELSE 0 END) as test_order_amount,merchant_id,name,
channel,identifier,pay_time payed_time,game_id,main_name,merchant_way,merchant.account')
->join("left join tab_payment_merchant merchant on merchant.id=tab_test_order.merchant_id")
->where(['merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id")
->select(false);
$sql = "{$data} UNION ALL {$coinData} UNION ALL {$officalData} UNION ALL {$spreadData} UNION ALL {$superSignData} UNION ALL {$testOrder}";
$data = M()->table("({$sql})a")
->field("sum(cash_amount) cash_amount,sum(test_amount) test_amount,
sum(coin_amount) coin_amount,sum(offcial_amount) offcial_amount,
sum(spread_amount) spread_amount,sum(supersign_amount) supersign_amount,
sum(test_order_amount) test_order_amount,merchant_id,account,merchant_way,main_name,
name,channel,identifier")
->where("name is not null")
->group("merchant_id")
->select();
foreach ($data as $key => $value) {
$sum = $value['cash_amount']+$value['test_amount']+$value['coin_amount']+
$value['offcial_amount']+$value['spread_amount']+$value['supersign_amount']+$value['test_order_amount'];
$this->adddata[] = array(
"key_name"=>$value['identifier'],
"type"=>6,"sort"=>8,
"sum_money"=>number_format($sum, 2, '.', '')
);
}
}
}

@ -72,6 +72,10 @@ class MemberController extends ThinkController
$map['tab_user.register_type'] = ['in', [0, 3, 4, 5, 6]];
}
}
if (!empty($_GET['register_ip'])) {
$map['tab_user.register_ip'] = $_GET['register_ip'];
}
//判断重复
$is_repeat = false;
if (isset($_REQUEST['is_repeat'])) {

@ -557,20 +557,20 @@ class PayChannelController extends ThinkController
$model = 'spend';
if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$coinMap['tab_deposit.create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$map['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$coinMap['tab_deposit.payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$offcialmap['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
} elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$coinMap['tab_deposit.create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$map['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$coinMap['tab_deposit.payed_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
} elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$coinMap['tab_deposit.create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$map['payed_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$coinMap['tab_deposit.payed_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$spreadMap['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$offcialmap['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
}
if (!empty($_REQUEST['pay_order_number'])) {
@ -653,10 +653,14 @@ class PayChannelController extends ThinkController
// unset($map['promote_id']);
//超级签数据
$superSignMap = $map;
$superSignMap['pay_time'] = $superSignMap['payed_time'];
unset($superSignMap['payed_time']);
$superSignData = M('game_supersign','tab_')
->field("order_id as pay_order_number,pay_time,tab_user.account as user_account,tab_user.promote_account,pay_price as cost,pay_price as pay_amount,pay_way")
->join('inner join tab_user on tab_user.id=tab_game_supersign.user_id')
->where($map)
->where($superSignMap)
->select(false);
if ($model == 'spend') {
@ -753,20 +757,20 @@ class PayChannelController extends ThinkController
$model = 'spend';
if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$coinMap['tab_pay_info.create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$map['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$coinMap['tab_deposit.payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$offcialmap['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
} elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$coinMap['tab_pay_info.create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$map['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$coinMap['tab_deposit.payed_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$offcialmap['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
} elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$coinMap['tab_pay_info.create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$map['payed_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$coinMap['tab_deposit.payed_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$spreadMap['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$offcialmap['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
}
if (!empty($_REQUEST['pay_order_number'])) {
@ -846,6 +850,11 @@ class PayChannelController extends ThinkController
// unset($map['promote_id']);
//超级签数据
$superSignMap = $map;
$superSignMap['pay_time'] = $superSignMap['payed_time'];
unset($superSignMap['payed_time']);
$superSignData = M('game_supersign','tab_')
->field("order_id as pay_order_number,pay_time,tab_user.account as user_account,tab_user.promote_account,pay_price as cost,pay_price as pay_amount,pay_way")
->join('inner join tab_user on tab_user.id=tab_game_supersign.user_id')
@ -979,11 +988,11 @@ class PayChannelController extends ThinkController
$map = [];
if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
$map['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
} elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
$map['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
} elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
$map['payed_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
}
if (!empty($_REQUEST['pay_order_number'])) {
@ -1045,10 +1054,10 @@ class PayChannelController extends ThinkController
unset($coinMap['pay_status']);
unset($coinMap['pay_way']);
if ($map['pay_time']) {
$coinMap['tab_deposit.create_time'] = $map['pay_time'];
unset($coinMap['pay_time']);
}
// if ($map['pay_time']) {
// $coinMap['tab_deposit.create_time'] = $map['pay_time'];
// unset($coinMap['pay_time']);
// }
// unset($coinMap['promote_id']);
// setPowerPromoteIds($coinMap,'tab_deposit.promote_id');
@ -1145,6 +1154,12 @@ class PayChannelController extends ThinkController
$map['game_id'] = $_REQUEST['game_id'];
}
if ($map['payed_time']) {
$map['pay_time'] = $map['payed_time'];
unset($map['payed_time']);
}
$map['tab_game_supersign.pay_status'] = $map['pay_status'];
unset($map['pay_status']);
@ -1192,10 +1207,10 @@ class PayChannelController extends ThinkController
$field = "sum(pay_price) as cost,sum(pay_price) as pay_amount,pay_way";
} elseif($model == 'deposit') {
$map['pay_source'] = 0;
if ($map['pay_time']) {
$map['create_time'] = $map['pay_time'];
unset($map['pay_time']);
}
// if ($map['payed_time']) {
// $map['create_time'] = $map['pay_time'];
// unset($map['pay_time']);
// }
// setPowerPromoteIds($map,'tab_deposit.promote_id');
$data = M('deposit','tab_')
->field("pay_order_number,order_number,user_account,create_time as pay_time,pay_amount as cost,pay_amount,pay_way as pay_type,pay_way")

@ -0,0 +1,288 @@
<?php
namespace Admin\Controller;
use Org\Util\Date;
use Sdk\Controller\AgeController;
use User\Api\MemberApi as MemberApi;
use Org\WeixinSDK\Weixin;
class PayMerchantController extends ThinkController
{
const WAY_ALIPAY = 1;
const WAY_WEIXIN = 2;
const WAY_EXPRESS = 4;
public function index($p = 0) {
// if(!array_key_exists("timestart",$_REQUEST)){
// $this->redirect(ACTION_NAME, array('timestart' => date('Y-m-d',strtotime('-30 day')),"timeend"=>date('Y-m-d')));
// }
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$arraypage = $page;
if (isset($_REQUEST['row'])) {
$row = $_REQUEST['row'];
} else {
$row = 10;
}
$map = [];
if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
} elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
$map['payed_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
} elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['payed_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
}
if ($_REQUEST['game_id']) {
$map['game_id'] = $_REQUEST['game_id'];
}
if ($_REQUEST['name']) {
$map['name'] = $_REQUEST['name'];
}
if ($_REQUEST['main_name']) {
$map['main_name'] = $_REQUEST['main_name'];
}
//游戏充值金额
$data = M("spend use index(pay_channel)","tab_")
->field("SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is null THEN pay_amount ELSE 0 END) as cash_amount,
SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is not null THEN pay_amount ELSE 0 END) as test_amount,
0 coin_amount,0 offcial_amount,0 spread_amount,0 supersign_amount,0 test_order_amount,merchant_id,name,channel,identifier,
payed_time,game_id,main_name,merchant_way,merchant.account")
->join("left join tab_test_white_list on tab_spend.user_id=tab_test_white_list.user_id")
->join("left join tab_payment_merchant merchant on merchant.id=tab_spend.merchant_id")
->where(['pay_status'=>1,'tab_spend.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id,merchant_way")
->select(false);
//平台币充值金额计算
$coinData = M('pay_info','tab_')
->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number")
->join("left join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id")
->join("left join tab_payment_merchant merchant on merchant.id=tab_deposit.merchant_id")
->field("0 cash_amount,SUM(CASE WHEN merchant.id is not null and pay_source=2 and tab_test_white_list.user_id is not null THEN pay_amount ELSE 0 END) as test_amount,
SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is null and pay_source=2 THEN pay_amount ELSE 0 END) as coin_amount,
0 offcial_amount,0 spread_amount,0 supersign_amount,0 test_order_amount,merchant_id,name,channel,identifier,payed_time,game_id,main_name,merchant_way,merchant.account")
->where(['pay_status'=>1,'tab_deposit.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id,merchant_way")
->select(false);
// var_dump($coinData);die();
//官网金额
$officalData = M('deposit','tab_')
->join("left join tab_test_white_list on tab_test_white_list.user_id=tab_deposit.user_id")
->join("left join tab_payment_merchant merchant on merchant.id=tab_deposit.merchant_id")
->field("0 cash_amount,SUM(CASE WHEN merchant.id is not null and pay_source=0 and tab_test_white_list.user_id is not null THEN pay_amount ELSE 0 END) as test_amount,
0 as coin_amount,SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is null and pay_source=0 THEN pay_amount ELSE 0 END) as offcial_amount,
0 spread_amount,0 supersign_amount,0 test_order_amount,merchant_id,name,channel,identifier,payed_time,0 as game_id,main_name,merchant_way,merchant.account")
->where(['pay_status'=>1,'tab_deposit.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id,merchant_way")
->select(false);
if ($map['payed_time'])
{
$map['pay_time'] = $map['payed_time'];
unset($map['payed_time']);
}
//推广后台
$spreadData = M("coin_pay_order","tab_")
->field("0 cash_amount,0 test_amount,0 coin_amount,0 offcial_amount,
SUM(CASE WHEN merchant.id is not null THEN pay_amount ELSE 0 END) as spread_amount,0 supersign_amount,
0 test_order_amount,merchant_id,name,channel,identifier,pay_time payed_time,0 game_id,main_name,merchant_way,merchant.account")
->join("left join tab_payment_merchant merchant on merchant.id=tab_coin_pay_order.merchant_id")
->where(['order_status'=>1,'tab_coin_pay_order.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id,merchant_way")
->select(false);
// var_dump($spreadData);die();
//超级签数据
$superSignData = M('game_supersign','tab_')
->field("0 cash_amount,
SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is not null THEN pay_price ELSE 0 END) as test_amount,
0 coin_amount,0 offcial_amount,0 spread_amount,
SUM(CASE WHEN merchant.id is not null and tab_test_white_list.user_id is null THEN pay_price ELSE 0 END) as supersign_amount,
0 test_order_amount,merchant_id,name,channel,identifier,pay_time payed_time,game_id,main_name,merchant_way,merchant.account")
->join("left join tab_payment_merchant merchant on merchant.id=tab_game_supersign.merchant_id")
->join("left join tab_test_white_list on tab_test_white_list.user_id=tab_game_supersign.user_id")
->where(['pay_status'=>1,'tab_game_supersign.pay_way'=>['egt',1],'merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id,merchant_way")
->select(false);
//测试环境内网平台订单
$testOrder = M('test_order', 'tab_')
->where(['tab_test_order.pay_way'=>['egt',1]])
->field('0 cash_amount,0 test_amount,0 coin_amount,0 offcial_amount,0 spread_amount,0 supersign_amount,
SUM(CASE WHEN merchant.id is not null THEN pay_amount ELSE 0 END) as test_order_amount,merchant_id,name,
channel,identifier,pay_time payed_time,game_id,main_name,merchant_way,merchant.account')
->join("left join tab_payment_merchant merchant on merchant.id=tab_test_order.merchant_id")
->where(['merchant.status'=>1,'merchant.type'=>1])
->where($map)
->group("merchant_id,merchant_way")
->select(false);
$sql = "{$data} UNION ALL {$coinData} UNION ALL {$officalData} UNION ALL {$spreadData} UNION ALL {$superSignData} UNION ALL {$testOrder}";
if (!$_REQUEST['export']) {
$data = M()->table("({$sql})a")
->field("sum(cash_amount) cash_amount,sum(test_amount) test_amount,
sum(coin_amount) coin_amount,sum(offcial_amount) offcial_amount,
sum(spread_amount) spread_amount,sum(supersign_amount) supersign_amount,
sum(test_order_amount) test_order_amount,merchant_id,account,merchant_way,main_name,
name,channel,identifier")
->page($p, $row)
->where("name is not null and merchant_way !=0")
// ->where($map)
->group("merchant_id,merchant_way")
->select();
} else {
$data = M()->table("({$sql})a")
->field("sum(cash_amount) cash_amount,sum(test_amount) test_amount,
sum(coin_amount) coin_amount,sum(offcial_amount) offcial_amount,
sum(spread_amount) spread_amount,sum(supersign_amount) supersign_amount,
sum(test_order_amount) test_order_amount,merchant_id,account,merchant_way,main_name,
name,channel,identifier")
->where("name is not null and merchant_way !=0")
->group("merchant_id,merchant_way")
->select();
}
// var_dump($data);die();
$count = M()->table("({$sql})a")
->field("merchant_id")
->page($p, $row)
->where("name is not null and merchant_way !=0")
// ->where($map)
->group("merchant_id,merchant_way")
->count();
$page = set_pagination($count, $row);
if ($page) {
$this->assign('_page', $page);
}
$sum = M()->table("({$sql})a")
->field("sum(cash_amount) cash_amount,sum(test_amount) test_amount,
sum(coin_amount) coin_amount,sum(offcial_amount) offcial_amount,
sum(spread_amount) spread_amount,sum(supersign_amount) supersign_amount,
sum(test_order_amount) test_order_amount,merchant_id")
->where("name is not null and merchant_way !=0")
// ->where($map)
->find();
$sum['sum'] = $sum['cash_amount']+$sum['test_amount']+$sum['coin_amount']+$sum['offcial_amount']
+$sum['spread_amount']+$sum['supersign_amount']+$sum['test_order_amount'];
$sum_merchant = M()->table("({$sql})a")
->field("sum(cash_amount+test_amount+coin_amount+offcial_amount+spread_amount+supersign_amount+test_order_amount) sum_amount,
merchant_id,name,merchant_way")
->where("name is not null and merchant_way !=0")
// ->where($map)
->group("merchant_id,merchant_way")
->select();
$this->checkListOrCountAuthRestMap($map,[]);
foreach ($data as $key => $value) {
$data[$key]['sum'] = $value['cash_amount']+$value['test_amount']+$value['coin_amount']+
$value['offcial_amount']+$value['spread_amount']+$value['supersign_amount']+$value['test_order_amount'];
$data[$key]['ratio'] = round (($data[$key]['sum']/array_sum(array_column($sum_merchant,'sum_amount')))*100,2);
if ($value['merchant_way'] == self::WAY_ALIPAY) {
$data[$key]['merchant_way'] = "支付宝";
} else if ($value['merchant_way'] == self::WAY_WEIXIN) {
$data[$key]['merchant_way'] = "微信";
} else if ($value['merchant_way'] == self::WAY_EXPRESS) {
$data[$key]['merchant_way'] = "快捷";
} else {
$data[$key]['merchant_way'] = "无";
}
}
$sum_radio = [];
foreach ($sum_merchant as $key => $value) {
if ($value['merchant_way'] == self::WAY_ALIPAY) {
$sum_merchant[$key]['merchant_way'] = "支付宝";
$sum_radio[$key]['merchant_way'] = "支付宝";
} else if ($value['merchant_way'] == self::WAY_WEIXIN) {
$sum_merchant[$key]['merchant_way'] = "微信";
$sum_radio[$key]['merchant_way'] = "微信";
} else if ($value['merchant_way'] == self::WAY_EXPRESS) {
$sum_merchant[$key]['merchant_way'] = "快捷";
$sum_radio[$key]['merchant_way'] = "快捷";
} else {
$sum_merchant[$key]['merchant_way'] = "无";
$sum_radio[$key]['merchant_way'] = "无";
}
$sum_merchant[$key]['sum_amount'] = round($value['sum_amount'],2);
$sum_radio[$key]['name'] = $value['name'];
$sum_radio[$key]['ratio'] = round(($value['sum_amount']/array_sum(array_column($sum_merchant,'sum_amount')))*100,2);
}
if ($_REQUEST['export']) {
$title = ['main_name' => '商户主体',
'name' => '支付商户',
'account' => '商户账号',
'ratio' => '占比(总充值量%)',
'cash_amount' => '游戏现金金额',
'coin_amount' => '平台币直充金额',
'test_amount'=>'测试白名单金额',
'test_order_amount' => '测试环境内外网平台金额',
'supersign_amount' => '超级签',
'offcial_amount' => '官网',
'spread_amount' => '推广后台',
'sum' => '支付渠道内合计'];
$sum['main_name'] = "合计(根据时间检索变化)";
$sum['ratio'] = 100;
$sum_merchant_export['main_name'] = '汇总(根据时间检索变化)';
$sum_radio_export['main_name'] = '收款商户占比';
foreach ($sum_merchant as $key => $value) {
if ($value['merchant_way'] == self::WAY_ALIPAY) {
$merchant_way = "支付宝";
} else if ($value['merchant_way'] == self::WAY_WEIXIN) {
$merchant_way = "微信";
} else if ($value['merchant_way'] == self::WAY_EXPRESS) {
$merchant_way = "快捷";
} else {
$merchant_way = "无";
}
$radio = round(($value['sum_amount']/array_sum(array_column($sum_merchant,'sum_amount')))*100,2);
$sum_merchant_export['account'] .= $value['name']."-".$merchant_way.":".$value['sum_amount'];
$sum_radio_export['account'] .= $value['name']."-".$merchant_way.":".$radio."%";
}
$data = array_merge($data,[$sum],[$sum_merchant_export],[$sum_radio_export]);
data2csv($data,'个人总提成列表',$title);
}
// dump($sum_merchant);die();
$this->assign("sum_radio",$sum_radio);
$this->assign("sum_merchant",$sum_merchant);
$this->assign("sum",$sum);
$this->assign("listdata",$data);
$this->display();
}
}

@ -40,9 +40,9 @@ class PlatformController extends ThinkController
}
// var_dump($_REQUEST);exit;
if (isset($_REQUEST['game_name']) && $_REQUEST['game_name'] != '') {
$map['fgame_name'] = $_REQUEST['game_name'];
unset($_REQUEST['fgame_name']);
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map['tab_game.relation_game_id'] = $_REQUEST['game_id'];
unset($_REQUEST['game_id']);
}
$today = total(1);
@ -51,9 +51,10 @@ class PlatformController extends ThinkController
//为数据权限添加
setPowerPromoteIds($map);
$data = $user
->field('fgame_name,fgame_id,date_format(FROM_UNIXTIME( register_time),"%Y-%m-%d") AS time, count(id) as count')
->field('tab_game.relation_game_id,tab_game.relation_game_name,date_format(FROM_UNIXTIME( register_time),"%Y-%m-%d") AS time, count(tab_user.id) as count')
->where($map)
->group('fgame_id')
->join('tab_game on tab_game.id = fgame_id', 'left')
->group('tab_game.relation_game_id')
->order('count desc,register_time')
->select();
$map2 = array();
@ -61,25 +62,26 @@ class PlatformController extends ThinkController
$map2['puid'] = 0;
setPowerPromoteIds($map2);
$data2 = $user->field('fgame_id,count(IF(register_time ' . $today . ',1,null)) as today,
$data2 = $user->field('tab_game.relation_game_id,count(IF(register_time ' . $today . ',1,null)) as today,
count(IF(register_time ' . $week . ',1,null)) as week,
count(IF(register_time ' . $mounth . ',1,null)) as mounth')
->where($map2)
->group('fgame_id')
->join('tab_game on tab_game.id = fgame_id', 'left')
->group('tab_game.relation_game_id')
->select();
$data2 = array_column($data2, null, 'fgame_id');
$data2 = array_column($data2, null, 'relation_game_id');
$count = count($data);
foreach ($data as $key => $value) {
static $i = 0;
$i++;
$data[$key]['rand'] = $i;
if ($data[$key]['fgame_id'] == 0) {
$data[$key]['fgame_name'] = '其他注册';
if ($data[$key]['relation_game_id'] == 0) {
$data[$key]['relation_game_name'] = '其他注册';
}
$data[$key]['today'] = $data2[$value['fgame_id']]['today'];
$data[$key]['week'] = $data2[$value['fgame_id']]['week'];
$data[$key]['mounth'] = $data2[$value['fgame_id']]['mounth'];
$data[$key]['today'] = $data2[$value['relation_game_id']]['today'];
$data[$key]['week'] = $data2[$value['relation_game_id']]['week'];
$data[$key]['mounth'] = $data2[$value['relation_game_id']]['mounth'];
}
$total = $this->data_total($data);
@ -103,9 +105,10 @@ class PlatformController extends ThinkController
$data = array_slice($data, ($arraypage - 1) * $size, $size);
$this->checkListOrCountAuthRestMap($map,[]);
//dd($data);
$this->meta_title = '游戏注册统计列表';
$this->assign('list_data', $data);
$this->assign('games', M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select());
$this->assign("is_admin",is_administrator());
$this->display();
}
@ -142,32 +145,34 @@ class PlatformController extends ThinkController
$map['game_id'] = array('gt', 0);
// var_dump($_REQUEST);exit;
if (isset($_REQUEST['game_name']) && $_REQUEST['game_name'] != '') {
$map['game_id'] = $_REQUEST['game_name'];
unset($_REQUEST['game_name']);
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map['tab_game.relation_game_id'] = $_REQUEST['game_id'];
unset($_REQUEST['game_id']);
}
$map['pay_status'] = 1;
$map['tab_spend.pay_status'] = 1;
$today = total(1);
$week = total(2);
$mounth = total(3);
$data = $spend
->field('game_name,game_id,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count') ->where($map)
->field('tab_game.relation_game_name as game_name, tab_game.relation_game_id as game_id,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count') ->where($map)
->where($map)
->group('game_id')
->join('tab_game on tab_game.id = tab_spend.game_id', 'left')
->group('tab_game.relation_game_id')
->order('count desc,pay_time')
->select();
//今日、本周、本月不随搜索条件而变动
$map2['pay_status'] = 1;
$map2['tab_spend.pay_status'] = 1;
$map2['game_id'] = array('gt', 0);
setPowerPromoteIds($map2);
$data2 = $spend
->field('game_id,sum(IF(pay_time ' . $today . ',pay_amount,0)) as today,
->field('tab_game.relation_game_id as game_id, sum(IF(pay_time ' . $today . ',pay_amount,0)) as today,
sum(IF(pay_time ' . $week . ',pay_amount,0)) as week,
sum(IF(pay_time ' . $mounth . ',pay_amount,0)) as mounth')
sum(IF(pay_time ' . $mounth . ',pay_amount,0)) as mounth')
->join('tab_game on tab_game.id = tab_spend.game_id', 'left')
->where($map2)
->group('game_id')
->group('tab_game.relation_game_id')
->select();
$data2 = array_column($data2, null, 'game_id');
$count = count($data);
@ -205,6 +210,7 @@ class PlatformController extends ThinkController
$this->meta_title = '游戏充值统计列表';
$this->assign('list_data', $data);
$this->assign("is_admin",is_administrator());
$this->assign('games', M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select());
$this->display();
}
@ -437,7 +443,7 @@ class PlatformController extends ThinkController
//TODO:应需求取消玩家表只要user表的fgame有就算注册无需在play表存在
$play_map = false;
if (isset($_REQUEST['game_name'])) {
$map['fgame_name'] = $_REQUEST['game_name'];
$map['fgame_name'] = ['like', "{$_REQUEST['game_name']}%"];
// $play_map = " and up.game_name = '{$_REQUEST['game_name']}' ";
}
$play_info_map = false;
@ -450,6 +456,10 @@ class PlatformController extends ThinkController
$map['promote.admin_id'] = $_REQUEST['admin_id'];
}
if (!empty($_REQUEST['game_type'])) {
$map['tab_game.sdk_version'] = $_REQUEST['game_type'];
}
$today = total(1);
$week = total(2);
$mounth = total(3);
@ -472,13 +482,19 @@ class PlatformController extends ThinkController
setPowerPromoteIds($map, 'u.promote_id');
$data = M("User u","tab_")
->field("count(u.id) as count,IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',u.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) id")
->field("
count(u.id) as count,
tab_game.relation_game_id,
tab_game.relation_game_name,
IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',
u.promote_id,
substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) id")
->join("tab_promote promote ON u.promote_id = promote.id","left")
->join($play_map ? "tab_user_play as up on up.user_id = u.id " . $play_map : false)
->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
// ->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
->join('tab_game on u.fgame_id = tab_game.id')
->where($map)
->group('id')
->group('tab_game.relation_game_id, id')
->order('count desc, register_time')
->select();
//今日/本周/本月不变
@ -501,45 +517,56 @@ class PlatformController extends ThinkController
->field("count(IF(register_time {$today},1,null)) as today,
count(IF(register_time {$week},1,null)) as week,
count(IF(register_time {$mounth},1,null)) as mounth,
tab_game.relation_game_id,tab_game.relation_game_name,
IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',u.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) id")
->join("tab_promote promote ON u.promote_id = promote.id","left")
->join($play_map ? "tab_user_play as up on up.user_id = u.id " . $play_map : false)
->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
->join('tab_game on u.fgame_id = tab_game.id')
->where($tmap)
->group('id')
->group('tab_game.relation_game_id, id')
->order('register_time')
->select();
$tmdata = [];
foreach($data as $k=>$v){
$v['today'] = 0;
$v['week'] = 0;
$v['mounth'] = 0;
$tmdata[$v['id']] = $v;
$tag = "{$v['id']}-{$v['relation_game_id']}";
$tmdata[$tag] = $v;
}
// 填入日/周/月统计
if(!empty($tdata)){
foreach ($tdata as $k => $v) {
$tmdata[$v['id']]['today'] = $v['today'];
$tmdata[$v['id']]['week'] = $v['week'];
$tmdata[$v['id']]['mounth'] = $v['mounth'];
$tmdata[$v['id']]['id'] = $v['id'];
}
}
if(count($tmdata) >0){
//获取推广员
$idstr = implode(",",array_keys($tmdata));
$promoteRes = M("Promote","tab_")->field("id,account promote_account")->where("id in ({$idstr})")->select();
foreach($promoteRes as $k=>$v){
$tmdata[$v['id']]['promote_account'] = $v['promote_account'];
}
}
$data = [];
foreach($tmdata as $k => $v){
if($v['id'] == 0){
$v['promote_account'] = C('OFFICIEL_CHANNEL');
$tag = "{$v['id']}-{$v['relation_game_id']}";
$tmdata[$tag]['today'] = $v['today'];
$tmdata[$tag]['week'] = $v['week'];
$tmdata[$tag]['mounth'] = $v['mounth'];
if (empty($tmdata[$tag]['relation_game_name']) && !empty($v['relation_game_name'])) {
$tmdata[$tag]['relation_game_name'] = $v['relation_game_name'];
}
$tmdata[$tag]['id'] = $v['id'];
}
$data[] = $v;
}
// if(count($tmdata) >0){
// //获取推广员
// $idstr = implode(",",array_keys($tmdata));
// $promoteRes = M("Promote","tab_")->field("id,account promote_account")->where("id in ({$idstr})")->select();
// foreach($promoteRes as $k=>$v){
// $tmdata[$v['id']]['promote_account'] = $v['promote_account'];
// }
// }
// $data = [];
// foreach($tmdata as $k => $v){
// if($v['id'] == 0){
// $v['promote_account'] = C('OFFICIEL_CHANNEL');
// }
// $data[] = $v;
// }
$data = array_values($tmdata);
unset($map['tp1.id']);
unset($map['tp1.chain']);
unset($tmap['tp1.id']);
@ -578,16 +605,21 @@ class PlatformController extends ThinkController
$pnum = ceil(count($data) / $size); //总页数ceil()函数用于求大于数字的最小整数
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
$data = array_slice($data, ($arraypage - 1) * $size, $size);
$companys = !empty($data) ? M('promote', 'tab_')
->field('tab_promote.id, company_name, sys_member.nickname as admin_username')
->field('tab_promote.id, tab_promote.account as promote_account, company_name, sys_member.nickname as admin_username')
->join("tab_promote_company on tab_promote.company_id = tab_promote_company.id", 'left')
->join('sys_member on tab_promote.admin_id = sys_member.uid', 'left')
->where("tab_promote.id in (".implode(',', array_column($data, 'id')).")")->select() : [];
$companys = $companys ? array_column($companys, null, 'id') : [];
foreach ($data as &$item) {
$item['company_name'] = $companys[$item['id']]['company_name'] ?? '无';
$item['admin_username'] = $companys[$item['id']]['admin_username'] ?? '无';
if($item['id'] == 0){
$item['promote_account'] = C('OFFICIEL_CHANNEL');
} else {
$item['promote_account'] = $companys[$item['id']]['promote_account'];
}
}
$this->meta_title = '渠道注册统计列表';
$this->assign("is_admin",is_administrator());
@ -656,13 +688,17 @@ class PlatformController extends ThinkController
}
if (isset($_REQUEST['game_name'])) {
$map['s.game_name'] = $_REQUEST['game_name'];
$map['s.game_name'] = ['like', "{$_REQUEST['game_name']}%"];
if (isset($_REQUEST['server_id'])) {
$map['s.server_id'] = $_REQUEST['server_id'];
unset($_REQUEST['server_id']);
}
}
if (!empty($_REQUEST['game_type'])) {
$map['s.sdk_version'] = $_REQUEST['game_type'];
}
if (isMarketAdmin()) {
$map['s.market_admin_id'] = is_login();
} else if (!empty($_REQUEST['admin_id'])) {
@ -673,13 +709,13 @@ class PlatformController extends ThinkController
}
$data = M('promote', 'tab_')->alias('tp1')
->field('tp1.account as promote_account,tp1.id,
->field('tp1.account as promote_account,tp1.id,g.relation_game_id,g.relation_game_name,
floor(sum(pay_amount)*100) as count')
->join("tab_promote AS tp2 ON tp2.`chain` LIKE CONCAT('%/', tp1.id, '/%') OR tp2.id = tp1.id", 'left')
->join("tab_spend as s use INDEX(search) on tp2.id = s.promote_id", 'left')
->join("tab_game as g on g.id = s.game_id", 'left')
->where($map)
->group('tp1.id')
->group('tp1.id, g.relation_game_id')
->order('count desc')
->select();
@ -713,7 +749,7 @@ class PlatformController extends ThinkController
$tmap['pay_time'] = ['between', array($tmin,$tmonth[1][1])];
}
$tdata = M('promote', 'tab_')->alias('tp1')
->field('tp1.account as promote_account,tp1.id,
->field('tp1.account as promote_account,tp1.id,g.relation_game_id,g.relation_game_name,
floor(sum(IF(s.pay_time ' . $today . ',pay_amount,0))*100) as today,
floor(sum(IF(s.pay_time ' . $week . ',pay_amount,0))*100) as week,
floor(sum(IF(s.pay_time ' . $mounth . ',pay_amount,0))*100) as mounth')
@ -721,28 +757,37 @@ class PlatformController extends ThinkController
->join("tab_spend as s on tp2.id = s.promote_id", 'left')
->join("tab_game as g on g.id = s.game_id", 'left')
->where($tmap)
->group('tp1.id')
->group('tp1.id, g.relation_game_id')
->select();
$tmdata = [];
foreach($data as $k=>$v){
$v['today'] = 0;
$v['week'] = 0;
$v['mounth'] = 0;
$tmdata[$v['id']] = $v;
$tag = "{$v['id']}-{$v['relation_game_id']}";
$tmdata[$tag] = $v;
}
//dd($data);
foreach ($tdata as $k => $v) {
$tmdata[$v['id']]['today'] = $v['today'];
$tmdata[$v['id']]['week'] = $v['week'];
$tmdata[$v['id']]['mounth'] = $v['mounth'];
if (!$tmdata[$v['id']]['promote_account']) {
$tmdata[$v['id']]['promote_account'] = $v['promote_account'];
$tmdata[$v['id']]['count'] = 0;
$tag = "{$v['id']}-{$v['relation_game_id']}";
$tmdata[$tag]['today'] = $v['today'];
$tmdata[$tag]['week'] = $v['week'];
$tmdata[$tag]['mounth'] = $v['mounth'];
if (!$tmdata[$tag]['promote_account']) {
$tmdata[$tag]['promote_account'] = $v['promote_account'];
$tmdata[$tag]['count'] = 0;
}
if (empty( $tmdata[$tag]['relation_game_name']) && !empty($v['relation_game_name'])) {
$tmdata[$tag]['relation_game_name'] = $v['relation_game_name'];
}
$tmdata[$v['id']]['id'] = $v['id'];
$tmdata[$tag]['id'] = $v['id'];
}
$data = [];
foreach($tmdata as $k => $v){
$data[] = $v;

@ -31,13 +31,109 @@ class PresidentDepositController extends ThinkController
$promoteIds = [];
if ($status !== '') {
$tempPromoteIds = M('president_deposit', 'tab_')->where(['status' => $status])->getField('promote_id', true);
if ($status == '-1') { // 市场待审核
$tempPromoteIds = M('president_deposit', 'tab_')->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id not in (' . implode(',', $tempPromoteIds) . ')';
}
} else {
$tempPromoteIds = M('president_deposit', 'tab_')->where(['status' => $status])->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
}
}
if (!empty(I('pay_confirm_time_start')) && empty(I('pay_confirm_time_end'))) {
$startTime = strtotime(I('pay_confirm_time_start'));
$endTime = strtotime(I('pay_confirm_time_end')) + 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("pay_confirm_time >= {$startTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
} else if (empty(I('pay_confirm_time_start')) && !empty(I('pay_confirm_time_end'))) {
$startTime = strtotime(I('pay_confirm_time_start'));
$endTime = strtotime(I('pay_confirm_time_end')) + 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("pay_confirm_time <= {$endTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
} else if (!empty(I('pay_confirm_time_start')) && !empty(I('pay_confirm_time_end'))) {
$startTime = strtotime(I('pay_confirm_time_start'));
$endTime = strtotime(I('pay_confirm_time_end')) + 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("pay_confirm_time >= {$startTime} and pay_confirm_time <= {$endTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
}
if (!empty(I('refund_time_start')) && empty(I('refund_time_end'))) {
$startTime = strtotime(I('refund_time_start'));
$endTime = strtotime(I('refund_time_end')) + 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("refund_time >= {$startTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
} else if (empty(I('refund_time_start')) && !empty(I('refund_time_end'))) {
$startTime = strtotime(I('refund_time_start'));
$endTime = strtotime(I('refund_time_end'))+ 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("refund_time <= {$endTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
} else if (!empty(I('refund_time_start')) && !empty(I('refund_time_end'))) {
$startTime = strtotime(I('refund_time_start'));
$endTime = strtotime(I('refund_time_end'))+ 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("refund_time >= {$startTime} and refund_time <= {$endTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
}
if (!empty(I('pay_accept_time_start')) && empty(I('pay_accept_time_end'))) {
$startTime = strtotime(I('pay_accept_time_start'));
$endTime = strtotime(I('pay_accept_time_end'))+ 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("pay_accept_time >= {$startTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
} else if (empty(I('pay_accept_time_start')) && !empty(I('pay_accept_time_end'))) {
$startTime = strtotime(I('pay_accept_time_start'));
$endTime = strtotime(I('pay_accept_time_end'))+ 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("pay_accept_time <= {$endTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
} else if (!empty(I('pay_accept_time_start')) && !empty(I('pay_accept_time_end'))) {
$startTime = strtotime(I('pay_accept_time_start'));
$endTime = strtotime(I('pay_accept_time_end'))+ 86400;
$tempPromoteIds = M('president_deposit', 'tab_')->where("pay_accept_time >= {$startTime} and pay_accept_time <= {$endTime}")->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
$idStrWhere[] = 'id in (' . implode(',', $tempPromoteIds) . ')';
} else {
$idStrWhere[] = '1<>1';
}
}
if ($payType !== '') {
$tempPromoteIds = M('president_deposit', 'tab_')->where(['pay_type' => $payType])->getField('promote_id', true);
if (count($tempPromoteIds) > 0) {
@ -46,20 +142,40 @@ class PresidentDepositController extends ThinkController
$idStrWhere[] = '1<>1';
}
}
if (!empty(I('admin_id', 0))) {
$query->where(['admin_id' => I('admin_id', 0)]);
}
if (count($idStrWhere) > 0) {
$query->where(['_string' => implode(' and ', $idStrWhere)]);
$query->where(['_string' => implode(' and ', array_unique($idStrWhere))]);
}
$promotes = [];
$count = 0;
if (I('export', 0) == 1) {
$totalQuery = clone $query;
if (I('export', 0) == 1 || $row == 'all') {
$promotes = $query->select();
$count = count($promotes);
} else {
$countQuery = clone $query;
$promotes = $query->page($page, $row)->select();
$count = $countQuery->count();
}
// 汇总金额
if (count($promotes) > 0 || (isset($count) && $count > 0)) {
$total = M('president_deposit', 'tab_')->where(['promote_id'=>['in', $totalQuery->getField('id', true)]])->field('sum(amount) as totalAmount, sum(if(status = 1, amount, 0)) as confirmedAmount, sum(if(status = 2, amount, 0)) as refundedAmount')->find();
$total = [
'totalamount' => $total['totalamount'] ?? 0, 'confirmedamount' => $total['confirmedamount'] ?? 0, 'refundedamount' => $total['refundedamount'] ?? 0
];
} else {
$total = [
'totalamount' => 0, 'confirmedamount' => 0, 'refundedamount' => 0
];
}
$relationQuery = M('promote_company', 'tab_')->field(['id', 'company_name']);
$promotes = $this->mergeOneReletions('company', $promotes, $relationQuery, 'company_id', 'id');
$relationQuery = M('president_deposit', 'tab_');
@ -90,10 +206,10 @@ class PresidentDepositController extends ThinkController
if ($promote['presidentDeposit']) {
$presidentDeposit = $promote['presidentDeposit'];
$promoteBelong = $promote['promoteBelong'];
if ($presidentDeposit['pay_type'] == 3) {
if ($presidentDeposit['pay_type'] == PresidentDepositService::PAY_TYPE_NONE) {
$record['payer'] = '--';
$record['pay_account'] = '--';
$record['amount'] = '--';
$record['amount'] = '';
} else {
$record['payer'] = $presidentDeposit['payer'];
$record['pay_account'] = $presidentDeposit['pay_account'];
@ -104,6 +220,8 @@ class PresidentDepositController extends ThinkController
$record['create_time'] = $presidentDeposit['create_time'] == 0 ? '--' : date('Y-m-d H:i:s', $presidentDeposit['create_time']);
$record['verify_time'] = $promoteBelong && $promoteBelong['verify_time'] != 0 ? date('Y-m-d H:i:s', $promoteBelong['verify_time']) : '--';
$record['pay_confirm_time'] = $presidentDeposit['pay_confirm_time'] == 0 ? '--' : date('Y-m-d H:i:s', $presidentDeposit['pay_confirm_time']);
$record['refund_time'] = $presidentDeposit['refund_time'] == 0 ? '--' : date('Y-m-d H:i:s', $presidentDeposit['refund_time']);
$record['pay_accept_time'] = $presidentDeposit['pay_accept_time'] == 0 ? '--' : date('Y-m-d H:i:s', $presidentDeposit['pay_accept_time']);
$record['status_text'] = $statusList[$presidentDeposit['status']];
$record['has_record'] = true;
$record['status'] = $presidentDeposit['status'];
@ -117,7 +235,9 @@ class PresidentDepositController extends ThinkController
$record['create_time'] = '--';
$record['verify_time'] = '--';
$record['pay_confirm_time'] = '--';
$record['status_text'] = '--';
$record['refund_time'] = '--';
$record['pay_accept_time'] = '--';
$record['status_text'] = '市场待确认';
$record['has_record'] = false;
$record['status'] = 0;
$record['pay_type'] = 0;
@ -129,15 +249,17 @@ class PresidentDepositController extends ThinkController
'company_name' => '所属推广公司',
'account' => '会长账号',
'company_belong_text' => '工会类型',
'payer' => '付款人',
'payer' => '退押金账户名',
'pay_way_text' => '付款方式',
'pay_account' => '账号',
'pay_account' => '退押金账号',
'pay_type_text' => '押金类型',
'create_time' => '审批时间',
'amount' => '押金金额',
'verify_time' => '会长申请时间',
'status_text' => '押金状态',
'pay_confirm_time' => '押金确认时间',
'refund_time' => '押金退款时间',
'pay_accept_time' => '押金收到时间',
];
addOperationLog(['op_type'=>3,'key'=>getNowDate(),'op_name'=>'导出会长押金记录','url'=>U('PresidentDeposit/records'),'menu'=>'推广员-结算管理-奖罚记录管理-导出会长押金记录']);
@ -146,13 +268,14 @@ class PresidentDepositController extends ThinkController
exit;
}
}
$this->checkListOrCountAuthRestMap($map,[]);
$page = set_pagination($count, $row);
$total['unconfirmedamount'] = $total['totalamount'] - $total['confirmedamount'] - $total['refundedamount'];
$page = set_pagination($count, $row == 'all' ? 99999999 : $row);
//dd($row == 'all' ? 99999999 : $row);
if($page) {
$this->assign('_page', $page);
}
$this->assign('total', $total);
$this->assign('payWays', $payWays);
$this->assign('payTypes', $payTypes);
$this->assign('companyTypes', $companyTypes);
@ -215,11 +338,20 @@ class PresidentDepositController extends ThinkController
$payAccount = I('pay_account', '');
$amount = I('amount', '');
$payer = I('payer', '');
$payAcceptTime = I('pay_accept_time', 0) ? strtotime(I('pay_accept_time')): 0;
$refundTime = I('refund_time', 0) ? strtotime(I('refund_time')): 0;
$record = M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->find();
$promoteData = M('promote', 'tab_')->field('account')->where(['id' => $promoteId])->find();
// 市场部门无法操作押金退款和收到时间
if ((($record['pay_accept_time'] != $payAcceptTime) || ($record['refund_time'] != $refundTime)) && isMarketAdmin()) {
return $this->error('无法操作记录');
}
if ($payType == 0) {
return $this->error('请选择押金付款方式');
}
@ -245,6 +377,13 @@ class PresidentDepositController extends ThinkController
}
$data = [];
// 填写押金到账时间后自动变为押金已确认到账状态,并且状态在待确认时候
if ($record['pay_accept_time'] != $payAcceptTime && $record['status'] == 0) {
$data = ['status' => 1,
'pay_confirm_time' => time()];
}
$data['pay_way'] = $payType == 2 ? 4 : $payWay;
$data['pay_type'] = $payType;
$data['promote_id'] = $promoteId;
@ -253,6 +392,9 @@ class PresidentDepositController extends ThinkController
$data['payer'] = $payer;
$data['create_time'] = time();
$data['update_time'] = time();
$data['pay_accept_time'] = $payAcceptTime;
$data['refund_time'] = $refundTime;
M('president_deposit', 'tab_')->add($data);
addOperationLog(['op_type'=>0,'key'=>$promoteData['account'].'/'.$amount,'op_name'=>'新增会长押金','url'=>U('PresidentDeposit/edit',['id'=>$promoteId]),'menu'=>'推广员-结算单管理-奖罚记录管理-新增会长押金']);
@ -283,12 +425,24 @@ class PresidentDepositController extends ThinkController
} */
$data = [];
// 切换类型
if ($payType != $record['pay_type']) {
$payStatus = 0;
$data['refund_time'] = $data['pay_accept_time'] = $data['pay_confirm_time'] = 0;
} else {
$data['pay_accept_time'] = $payAcceptTime;
$data['refund_time'] = $refundTime;
}
$data['pay_way'] = $payType == 2 ? 4 : $payWay;
$data['pay_type'] = $payType;
$data['pay_account'] = $payAccount;
$data['amount'] = floatval($amount);
$data['status'] = $payStatus ?? $record['status'];
$data['payer'] = $payer;
$data['update_time'] = time();
M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->save($data);
addOperationLog(['op_type'=>1,'key'=>$promoteData['account'].'/'.$amount,'op_name'=>'编辑会长押金','url'=>U('PresidentDeposit/edit',['id'=>$promoteId]),'menu'=>'推广员-结算单管理-会长押金管理-编辑会长押金']);
@ -298,6 +452,12 @@ class PresidentDepositController extends ThinkController
public function delete()
{
if (isMarketAdmin()) {
$this->ajaxReturn([
'status' => 0,
'message' => '无法操作记录'
]);
}
$promoteId = I('id', 0);
M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->delete();
@ -309,6 +469,9 @@ class PresidentDepositController extends ThinkController
]);
}
/**
* 处理无需押金
*/
public function handleNoDeposit($promoteId)
{
$record = M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->find();
@ -319,11 +482,15 @@ class PresidentDepositController extends ThinkController
$data['pay_account'] = '';
$data['amount'] = 0;
$data['payer'] = '';
$data['status'] = 1;
$data['pay_confirm_time'] = time();
$data['create_time'] = time();
$data['update_time'] = time();
$data['status'] = 1;
$data['pay_accept_time'] = $data['refund_time'] = 0;
$data['promote_id'] = $promoteId;
if (!$record) {
$data['promote_id'] = $promoteId;
M('president_deposit', 'tab_')->add($data);
} else {
M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->save($data);
@ -345,6 +512,9 @@ class PresidentDepositController extends ThinkController
public function refund()
{
if (isMarketAdmin()) {
return $this->error('无法操作记录');
}
$promoteIds = I('ids', []);
if (count($promoteIds) == 0) {
$this->ajaxReturn([
@ -386,7 +556,8 @@ class PresidentDepositController extends ThinkController
M('president_deposit', 'tab_')->where(['promote_id' => ['in', $promoteIds]])->save([
'status' => 2,
'refund_time' => time(),
'update_time' => time()
'update_time' => time(),
'pay_accept_time' => 0
]);
$this->ajaxReturn([
'status' => 1,
@ -396,6 +567,12 @@ class PresidentDepositController extends ThinkController
public function payConfirm()
{
if (isMarketAdmin()) {
$this->ajaxReturn([
'status' => 0,
'message' => '无权限操作记录'
]);
}
$promoteIds = I('ids', []);
if (count($promoteIds) == 0) {
$this->ajaxReturn([
@ -404,12 +581,19 @@ class PresidentDepositController extends ThinkController
]);
}
$checkStatus = true;
$records = M('president_deposit', 'tab_')->field(['id', 'status'])->where(['promote_id' => ['in', $promoteIds]])->select();
$records = M('president_deposit', 'tab_')->where(['promote_id' => ['in', $promoteIds]])->select();
foreach ($records as $record) {
if ($record['status'] != 0) {
$checkStatus = false;
break;
}
// 如果不是无需押金,并且没有填写收到押金时间
// if ($record['pay_type'] != PresidentDepositService::PAY_TYPE_NONE && empty($record['pay_accept_time'])) {
// $this->ajaxReturn([
// 'status' => 0,
// 'message' => '含有待确认收到押金时间记录,不可批量操作'
// ]);
// }
}
if (!$checkStatus) {
$this->ajaxReturn([
@ -436,7 +620,8 @@ class PresidentDepositController extends ThinkController
M('president_deposit', 'tab_')->where(['promote_id' => ['in', $promoteIds]])->save([
'status' => 1,
'pay_confirm_time' => time(),
'update_time' => time()
'update_time' => time(),
'pay_accept_time' => strtotime(I('accept_time'))
]);
$this->ajaxReturn([
'status' => 1,

@ -267,7 +267,7 @@ 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,
$withdraw_show = null,$withdraw_done = null)
$withdraw_show = null,$withdraw_done = null,$can_view_recharge = null)
{
if (IS_POST) {
if (C('PROMOTE_AUTO_AUDIT') == 1) {
@ -308,6 +308,7 @@ class PromoteController extends ThinkController
'company_relation' => $company_relation,
'withdraw_show'=>$withdraw_show,
'withdraw_done'=>$withdraw_done,
'can_view_recharge'=>$can_view_recharge
);
if (preg_match('/^[a-zA-Z0-9]{6,15}$/', $account)==false) {
@ -354,6 +355,35 @@ class PromoteController extends ThinkController
/*通过Model名称获取Model完整信息*/
parent::del($model["id"], $ids);
}
public function getWithdrawDone() {
$company_id = I('company_id');
$promote_id = I('promote_id');
$map = [];
if (!$company_id) {
$this->ajaxReturn(['status'=>0]);
} else {
$map['company_id'] = $company_id;
}
if ($promote_id){
$map['id'] = ['neq',$promote_id];
}
$withdraw_done = D('Promote')
->field("sum(withdraw_done) withdraw_done")
->where($map)
->find();
if ($withdraw_done['withdraw_done']>0) {
$this->ajaxReturn(['status'=>1]);
} else {
$this->ajaxReturn(['status'=>0]);
}
}
public function edit($id=0)
{
$id || $this->error('请选择要查看的用户!');
@ -394,6 +424,7 @@ class PromoteController extends ThinkController
$data['withdraw_show'] = $_POST['withdraw_show'];
$data['withdraw_done'] = $_POST['withdraw_done'];
$data['can_view_recharge'] = $_POST['can_view_recharge'];
if (empty($pwd)) {
unset($data['password']);
@ -423,6 +454,9 @@ class PromoteController extends ThinkController
if (!empty(I('settlement_type')) && in_array($settlementType, [1, 2])) {
$data['settlement_type'] = $settlementType;
}
M("promote", "tab_")->where(["company_id"=>$company_id])->save(['withdraw_done'=>0]);
// echo M("promote", "tab_")->_sql();die();
$res = M("promote", "tab_")->where(array("id"=>$_POST['id']))->save($data);
if ($res !== false) {
if ($promote['level'] == 1) {//修改会长底下推广员的推广公司

@ -70,6 +70,112 @@ class PublicController extends \Think\Controller
}
}
/**
* 后台用户登录
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
*/
public function phone_login($mobile = null, $verify = null)
{
if (IS_POST) {
if (!$this->checksafecode($mobile, $verify)) {
$this->error('验证码错误');
}
$member = M('ucenter_member ucenter')
->field("uid,nickname,ucenter.last_login_time,member.status")
->join("left join sys_member member on ucenter.id=member.uid")
->where(['mobile' => $mobile])->find();
if(!$member || 1 != $member['status']) {
$error = '用户不存在或已被禁用!'; //应用级别禁用
$this->error($error);
return false;
}
if ($member) {
/* 记录登录SESSION和COOKIES */
$Member = D('Member');
/* 更新登录信息 */
$data = array(
'uid' => $member['uid'],
'login' => array('exp', '`login`+1'),
'last_login_time' => NOW_TIME,
'last_login_ip' => get_client_ip(1),
);
$Member->save($data);
$adminData = getAdminData($member['uid']);
$groupId = getGameGroup($member['uid']);
/* 记录登录SESSION和COOKIES */
$auth = array(
'uid' => $member['uid'],
'username' => $member['nickname'],
'last_login_time' => $member['last_login_time'],
'data_empower_type'=>$adminData['data_empower_type'],
'data_president'=>$adminData['data_president'],
'show_data'=>$adminData['show_data'],
);
//登录有效时间改为6小时
$expireTime = 3600;
ini_set('session.gc_maxlifetime', $expireTime);
ini_set('session.cookie_lifetime', $expireTime);
session('user_group_id',$groupId);
session('user_auth', $auth);
session('user_auth_sign', data_auth_sign($auth));
session('user_auth_expire', time());
session_regenerate_id();
} else {
$this->error('登录失败');
}
// else {
// $partner = M('partner', 'tab_')->where(['link_phone' => $mobile,])->find();
// if ($partner) {
// /* 记录登录SESSION和COOKIES */
// $cp_auth = array(
// 'link_man'=>$partner['link_man'],
// 'mobile_phone' => $partner['link_phone'],
// 'company_name' => $partner['partner'],
// 'company_type'=>"cp",
// 'company_id' => $partner['id'],
// );
// $session_name = 'cp_user_auth';
// if (I('auto_login')) {
// $expireTime = 60*60*24*30;//自动登录一个月
// ini_set('session.gc_maxlifetime', $expireTime);
// ini_set('session.cookie_lifetime', $expireTime);
// session($session_name, $cp_auth);
// session($session_name.'_sign', data_auth_sign($cp_auth));
// session($session_name.'_expire', time());
// } else {
// session($session_name, $cp_auth);
// session($session_name.'_sign', data_auth_sign($cp_auth));
// }
//
// $uid = $partner['id'];
// }
// }
/* 登录用户 */
$this->success('登录成功!', U('Index/index'));
} else {
if (is_login()) {
$this->redirect('Index/index');
} else {
/* 读取数据库中的配置 */
$config = S('DB_CONFIG_DATA');
if (!$config) {
$config = D('Config')->lists();
S('DB_CONFIG_DATA', $config);
}
C($config); //添加配置
$this->display();
}
}
}
/**
* 后台用户登录
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
@ -338,9 +444,9 @@ class PublicController extends \Think\Controller
*/
public function checksafecode($phone, $code)
{
if($code == "txsb0601"){
return true;
}
// if($code == "txsb0601"){
// return true;
// }
$taskClient = new TaskClient();
$result = $taskClient->checkSms($phone, $code);
$data = [];

@ -107,7 +107,16 @@ class SpendController extends ThinkController
} else {
$order = ' pay_time desc ';
}
if (I('platform_type', 0) != 0) {
$sy = I('platform_type', 0) == 1 ? '=' : '<>';
$platformWhere = 'exists (select 1 from tab_game where id = tab_spend.game_id and unique_code ' . $sy . ' "")';
if (isset($map['_string']) && $map['_string']) {
$map['_string'] = $map['_string'] . ' and ' . $platformWhere;
} else {
$map['_string'] = $platformWhere;
}
}
// if (intval(($endTime + 1) - $startTime) / (24 * 3600) <= 31) {
// $map1 = $map;
// $map1['pay_status'] = 1;

@ -2,6 +2,7 @@
namespace Admin\Controller;
use Admin\Model\RewardModel;
use User\Api\UserApi as UserApi;
/**
@ -11,7 +12,6 @@ use User\Api\UserApi as UserApi;
class StatementMangementController extends ThinkController
{
public function lists() {
$map = [];
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
@ -94,7 +94,6 @@ class StatementMangementController extends ThinkController
}
$this->meta_title = '结算单管理';
$this->assign('data',$data);
$this->display();
}
@ -248,47 +247,173 @@ class StatementMangementController extends ThinkController
public function rewardManageList($row = 10, $p = 1)
{
$map = [];
if (!empty(I("game_name"))) {
$game_ids = array_column(getGameByName(I("game_name")), 'id');
if ($game_ids) {
$map['relation_game_id'] = ['in', $game_ids];
}
$companys[1] = array_column(M('partner', 'tab_')->field('id, partner as name')->select(), 'name', 'id');
$companys[2] = array_column(M('promote_company', 'tab_')->field('id, company_name as name')->select(), 'name', 'id');
$games = array_column(M('game', 'tab_')->field('relation_game_id, relation_game_name, partner_id')->group('relation_game_id')->select(), null, 'relation_game_id');
$map = ' 1=1 ';
$params = $_GET;
if (!empty(I('reward_type'))) {
$map .= " and reward_type = {$params['reward_type']}";
}
if (I('game_id', -1) !== '' && I('game_id', -1) >= 0) {
$map .= " and r.relation_game_id = {$params['game_id']}";
}
if (!empty(I('partner_id'))) {
$map['company_id'] = I('partner_id');
$gameIds = [];
foreach ($games as $item) {
if ($item['partner_id'] == I('partner_id')) {
$gameIds[] = $item['relation_game_id'];
}
}
if ($gameIds) {
$map .= " and r.relation_game_id in (".implode(',', $gameIds).")";
} else {
$map .= " and 1<>1 ";
}
}
if (!empty($params['settlement_type'])) {
$map .= " and rd.settlement_type = {$params['settlement_type']} ";
}
if (strlen(I('company_type'))) {
$map['company_type'] = I('company_type');
if (!empty($params['detail_reward_type'])) {
$map .= " and rd.type = {$params['detail_reward_type']} ";
}
if (!empty(I('account'))) {
$map['accounts'] = ['like', '%' . I('account') . '%'];
if (!empty($params['settlement_time_range'])) {
list($settlment_time_start, $settlment_time_end) = explode('~', $params['settlement_time_range']);
$map .= " and r.settlement_time between " . strtotime(trim($settlment_time_start)) . " and " . (strtotime(trim($settlment_time_end))+86400);
}
$list = M('reward_record', 'tab_')->where($map)->page($p, $row)->select();
if ($list) {
$companys[1] = array_column(M('partner', 'tab_')->field('id, partner as name')->select(), 'name', 'id');
$companys[2] = array_column(M('promote_company', 'tab_')->field('id, company_name as name')->select(), 'name', 'id');
$games = array_column(M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select(), 'relation_game_name', 'relation_game_id');
foreach ($list as &$item) {
$item['company_name'] = $companys[$item['company_type']][$item['company_id']];
$item['accounts'] = json_decode($item['accounts'], true) ?: [];
$item['reward_type_desc'] = $item['reward_type'] == 1 ? "奖励" : "惩罚";
$item['company_type_desc'] = $item['company_type'] == 1 ? "上游公司" : "下游公司";
$item['relation_game_name'] = $games[$item['relation_game_id']];
$item['reward_time'] = $item['reward_time'] ? date('Y-m-d H:i:s', $item['reward_time']) : '-';
// if ($item['company_type'] == 1) {
// } else {
// }
}
if (!empty($params['confirm_time_range'])) {
list($confirm_time_start, $confirm_time_end) = explode('~', $params['confirm_time_range']);
$map .= " and r.confirm_time between " . strtotime(trim($confirm_time_start)) . " and " . (strtotime(trim($confirm_time_end))+86400);
}
if (!empty($params['detail_company_type'])) {
$map .= " and rd.company_type = {$params['detail_company_type']} ";
}
$count = M('reward_record', 'tab_')->where($map)->count();
// 判断公司
if (I('detail_company_id', -1) >= 0) {
$map .= " and rd.company_id = {$params['detail_company_id']} ";
// if (!empty($params['detail_company_name'])) {
// $map .= " and rd.company_name = '{$params['detail_company_name']}' ";
// }
}
if (!empty($params['detail_settlement_type'])) {
$map .= " and rd.settlement_type = {$params['detail_settlement_type']} ";
}
if (!empty($params['detail_company_name'])) {
$map .= " and rd.company_name like '%{$params['detail_company_name']}%' ";
}
// 判断会长
if (I('detail_promote_account', -1) >= 0) {
$map .= " and rd.promote_account like ('%{$params['detail_promote_account']}%') ";
}
if (!empty($params['detail_promote_account_input'])) {
$map .= " and rd.promote_account like ('%{$params['detail_promote_account_input']}%') ";
}
$result = M('reward_record', 'tab_')->alias('r')
->field('r.id')
->join('tab_reward_detail as rd on rd.record_id = r.id', 'LEFT')
->where($map)
->group('r.id')
->select();
if ($result) {
$map = [];
$allIds = array_column($result, 'id');
// 分页
$count = count($allIds);
$currentIds = I('is_export', false) ? $allIds : array_slice($allIds, ($p-1)*$row, $row);
$map['r.id'] = ['in', $currentIds];
} else {
$map = '1<>1';
}
$list = M('reward_record', 'tab_')->alias('r')
->field('
r.id, r.relation_game_id, r.settlement_time, r.confirm_time, r.content, r.reward_type, r.creater_id,
rd.id as rid, rd.type as detail_type, rd.company_type as detail_company_type, rd.company_id as detail_company_id , rd.company_name as detail_company_name, rd.settlement_type as detail_settlement_type, rd.promote_account as detail_promote_account,rd.amount as detail_amount
')
->where($map)
->join('tab_reward_detail as rd on rd.record_id = r.id', 'LEFT')->select();
if ($list) {
$record = [];
foreach ($list as $item) {
if (!isset($record[$item['id']]))
{
$record[$item['id']] = [
'id' => $item['id'],
'relation_game_name' => $games[$item['relation_game_id']]['relation_game_name'] ?? '其他',
'relation_game_partner' => $companys[1][$games[$item['relation_game_id']]['partner_id']] ?? '无',
'settlement_time' => $item['settlement_time'] ? date('Y年m月', $item['settlement_time']) : '-',
'confirm_time' => $item['confirm_time'] ? date('Y-m-d', $item['confirm_time']) : '-',
'content' => $item['content'],
'reward_type_text' => RewardModel::$rewardTypes[$item['reward_type']],
'maxCount' => 0,
'creater_id' => $item['creater_id'],
'totalReward' => 0,
'totalPunish' => 0
];
}
if (!empty($item['rid'])) {
$record[$item['id']]['detail'][$item['detail_type']][] = [
'company_type_text' => RewardModel::$companyTypes[$item['detail_company_type']] ?? '-',
'settlement_type_text' => RewardModel::$settlementTypes[$item['detail_settlement_type']] ?? '-',
'company_name' => empty($item['detail_company_name']) && !empty($item['detail_company_id']) ? ($companys[$item['detail_company_type']][$item['detail_company_id']] ?? '无') : ($item['detail_company_name'] ?? '无'),
'amount' => $item['detail_type'] == RewardModel::REWARD_TYPE_PUNISH ? -$item['detail_amount'] : $item['detail_amount'],
'promote_account' => $item['detail_promote_account'] ?? '无',
];
if ($item['detail_type'] == RewardModel::REWARD_TYPE_REWARD) {
$record[$item['id']]['totalReward'] += $item['detail_amount'];
} else {
$record[$item['id']]['totalPunish'] += $item['detail_amount'];
}
}
// 获取最大行数
if (sizeof($record[$item['id']]['detail'][$item['detail_type']]) > $record[$item['id']]['maxCount']) {
$record[$item['id']]['maxCount'] = sizeof($record[$item['id']]['detail'][$item['detail_type']]);
}
}
}
$count = sizeof($result);
$page = set_pagination($count, $row);
if ($page) {
$this->assign('_page', $page);
}
$this->assign('list', $list);
ksort($record);
$this->assign('list', $record);
$this->assign('promoters', array_column(M('promote', 'tab_')->where(['level'=>1])->field('id, nickname, account')->select(), null, 'id'));
$this->checkListOrCountAuthRestMap($map,[]);
if(I('is_export', false)){
$getData = $_GET;
unset($getData['export']);
addOperationLog(['op_type'=>3,'key'=>getNowDate(),'op_name'=>'导出推广公司','url'=>U('PromoteCompany/lists'),'menu'=>'推广员-推广员管理-推广公司管理-导出推广公司']);
//导出
$this->display("rewardExport");
die();
}
$this->display();
}
@ -303,11 +428,58 @@ class StatementMangementController extends ThinkController
'money' => I('money'),
'content' => I('content'),
'remark' => I('remark'),
'reward_time' => strtotime(I('reward_time'))
'promote_id' => I('promote_id'),
//'settlement_info' => json_encode(I('settlement_info') ? array_values(I('settlement_info')) : []),
'reward_time' => strtotime(I('reward_time')),
'confirm_time' => strtotime(I('confirm_time')),
'settlement_time' => strtotime(I('settlement_time')),
];
$settlment_info = I('settlement_info');
$accounts = I('account');
$user_types = I('user_type');
// 处理结算信息
if ($settlment_info) {
$tmp = [];
foreach($settlment_info as &$item) {
if (empty($item)) {
unset($item);
continue;
}
// if (!is_numeric($item['price']) || empty($item['price'])) {
// return $this->error('请填写正确的奖惩金额');
// }
$item = json_decode($item, true);
if (!empty($id) && empty($item['id'])) {
$item['record_id'] = $id;
//$item['id'] = null;
}
if (!empty($item['company_id']))
{
$item['company_name'] = '';
}
$item['confirm_time'] = $data['settlement_time'];
//$item['settlement_flag'] = sprintf('%s-%s-%s', $item['company_type'], $item['company_name'], $item[''])
// 归类奖罚数组
$tmp[$item['type']][] = $item;
}
if (empty($tmp)) {
return $this->error('请填写结算信息');
}
$settlment_info = $tmp;
// $promoterIds = array_column($settlment_info, 'promote_id');
// if (in_array(0, $promoterIds)) {
// return $this->error('请选择合作方后再提交');
// }
// if (sizeof(array_unique($promoterIds)) != sizeof($promoterIds)) {
// return $this->error('含有重复的结算方,请确认!');
// }
} else {
return $this->error('请填写结算信息');
}
if ($accounts) {
foreach ($accounts as $index => $account) {
@ -325,27 +497,52 @@ class StatementMangementController extends ThinkController
$data['accounts']=a_array_unique($data['accounts']);
// dump($data['accounts']);die();
$data['accounts'] = json_encode($data['accounts']);
if (!is_numeric(I('money'))) {
return $this->error('请输入正确的金额');
}
// if (!is_numeric(I('money'))) {
// return $this->error('请输入正确的金额');
// }
if (empty(I('content'))) {
return $this->error('请填写事件内容');
}
//dd($settlment_info);
// 更新结算信息
if ($id) {
M('reward_detail', 'tab_')->where(['record_id'=>$id])->delete();
}
if (!empty($settlment_info[RewardModel::REWARD_TYPE_REWARD]) && !empty($settlment_info[RewardModel::REWARD_TYPE_PUNISH])) {
$data['reward_type'] = RewardModel::REWARD_TYPE_ALL;
} else if (!empty($settlment_info[RewardModel::REWARD_TYPE_REWARD])) {
$data['reward_type'] = RewardModel::REWARD_TYPE_REWARD;
} else if (!empty($settlment_info[RewardModel::REWARD_TYPE_PUNISH])) {
$data['reward_type'] = RewardModel::REWARD_TYPE_PUNISH;
}
$settlmentSet = array_merge($settlment_info[RewardModel::REWARD_TYPE_REWARD] ?? [], $settlment_info[RewardModel::REWARD_TYPE_PUNISH] ?? []);
if ($id) {
$upt = M('reward_record', 'tab_')->where(['id'=>$id])->save($data);
if ($upt === false) {
$this->error('保存失败');
} else {
foreach ($settlmentSet as $item) {
M('reward_detail', 'tab_')->add($item);
}
$companyName = M('partner','tab_')->field('partner')->where(['id'=>$data['company_id']])->find();
addOperationLog(['op_type'=>1,'key'=>$companyName['partner'].'/'.(($data['reward_type']==1)?'奖励':'惩罚').'/'.$data['money'],'op_name'=>'修改奖惩记录','url'=>U('Query/settlement'),'menu'=>'推广员-结算单管理-奖罚记录管理-修改奖惩记录']);
$this->success('保存成功', U('StatementMangement/rewardManageList'));
}
} else {
$data['create_time'] = time();
$data['creater_id'] = is_login();
$ins = M('reward_record', 'tab_')->add($data);
$record_id = M('reward_record', 'tab_')->getLastInsID();
foreach ($settlmentSet as $item) {
$item['record_id'] = $record_id;
M('reward_detail', 'tab_')->add($item);
}
$companyName = M('partner','tab_')->field('partner')->where(['id'=>$data['company_id']])->find();
addOperationLog(['op_type'=>0,'key'=>$companyName['partner'].'/'.(($data['reward_type']==1)?'奖励':'惩罚').'/'.$data['money'],'op_name'=>'新增奖惩记录','url'=>U('Query/settlement'),'menu'=>'推广员-结算单管理-奖罚记录管理-新增奖惩记录']);
@ -361,6 +558,8 @@ class StatementMangementController extends ThinkController
$upt = M('reward_record', 'tab_')->where(['id'=>$id])->delete();
M('reward_detail', 'tab_')->where(['record_id'=>$id])->delete();
$companyName = M('partner','tab_')->field('partner')->where(['id'=>$rewardRecordData['company_id']])->find();
addOperationLog(['op_type'=>2,'key'=>$companyName['partner'].'/'.(($rewardRecordData['reward_type']==1)?'奖励':'惩罚').'/'.$rewardRecordData['money'],'op_name'=>'删除奖惩记录','url'=>U('StatementMangement/rewardManageList'),'menu'=>'推广员-结算单管理-奖罚记录管理']);
@ -369,16 +568,100 @@ class StatementMangementController extends ThinkController
} else {
$data = M('reward_record', 'tab_')->where(['id'=>$id])->find();
if (!$data) return $this->error("未找到该记录");
$data['confirm_time'] = $data['confirm_time'] ? date('Y-m-d H:i:s', $data['confirm_time']) : '';
$data['accounts'] = json_decode($data['accounts'], true) ?: [];
$this->assign('data', $data);
$data['settlement_info'] = json_decode($data['settlement_info'], true) ?: [];
//$this->assign('data', $data);
}
} else {
$data['reward_time'] = strtotime(date('Y-m-01'));
$this->assign('data', $data);
}
$details = M('reward_detail', 'tab_')->where(['record_id'=>$id])->select();
// 根据type 来合并
foreach ($details as $item) {
$item['info'] = $item;
if (empty($item['company_name']) && $item['company_id']) {
if ($item['company_type'] == RewardModel::COMPANY_TYPE_PARTNER) {
$item['company_name'] = M('partner', 'tab_')->where(['id'=>$item['company_id']])->getField('partner');
} else {
$item['company_name'] = M('promote_company', 'tab_')->where(['id'=>$item['company_id']])->getField('company_name');
}
}
$tmp[$item['type']][] = $item;
}
$data['rewardCount'] = sizeof($tmp[RewardModel::REWARD_TYPE_REWARD]);
$data['punishCount'] = sizeof($tmp[RewardModel::REWARD_TYPE_PUNISH]);
$data['rewardAmount'] = $data['rewardCount'] > 0 ? array_sum(array_column($tmp[RewardModel::REWARD_TYPE_REWARD], 'amount')) : 0;
$data['punishAmount'] = $data['punishCount'] > 0 ? array_sum(array_column($tmp[RewardModel::REWARD_TYPE_PUNISH], 'amount')) : 0;
$data['maxCount'] = $data['rewardCount'] > $data['punishCount'] ? $data['rewardCount'] : $data['punishCount'];
$this->assign('details', $tmp);
$this->assign('data', $data);
$this->assign('promoters', M('promote', 'tab_')->where(['level'=>1])->field('id, nickname')->select());
$this->assign('rewardTypes', RewardModel::$rewardTypes);
$this->assign('settlementTypes', RewardModel::$settlementTypes);
$this->assign('companyTypes', RewardModel::$companyTypes);
$this->display();
}
}
public function rewardManageDetail($id=0)
{
$games = M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select();
$this->assign('games', $games);
if ($id) {
if (I('delete')) {
$rewardRecordData = M('reward_record', 'tab_')->where(['id'=>$id])->find();
$upt = M('reward_record', 'tab_')->where(['id'=>$id])->delete();
M('reward_detail', 'tab_')->where(['record_id'=>$id])->delete();
$companyName = M('partner','tab_')->field('partner')->where(['id'=>$rewardRecordData['company_id']])->find();
addOperationLog(['op_type'=>2,'key'=>$companyName['partner'].'/'.(($rewardRecordData['reward_type']==1)?'奖励':'惩罚').'/'.$rewardRecordData['money'],'op_name'=>'删除奖惩记录','url'=>U('StatementMangement/rewardManageList'),'menu'=>'推广员-结算单管理-奖罚记录管理']);
return $upt ? $this->success('删除成功') : $this->error('删除失败');
} else {
$data = M('reward_record', 'tab_')->where(['id'=>$id])->find();
if (!$data) return $this->error("未找到该记录");
$data['confirm_time'] = $data['confirm_time'] ? date('Y-m-d H:i:s', $data['confirm_time']) : '';
$data['accounts'] = json_decode($data['accounts'], true) ?: [];
$data['settlement_info'] = json_decode($data['settlement_info'], true) ?: [];
//$this->assign('data', $data);
}
} else {
$data['reward_time'] = strtotime(date('Y-m-01'));
}
$details = M('reward_detail', 'tab_')->where(['record_id'=>$id])->select();
// 根据type 来合并
foreach ($details as $item) {
$item['info'] = $item;
if (empty($item['company_name']) && $item['company_id']) {
if ($item['company_type'] == RewardModel::COMPANY_TYPE_PARTNER) {
$item['company_name'] = M('partner', 'tab_')->where(['id'=>$item['company_id']])->getField('partner');
} else {
$item['company_name'] = M('promote_company', 'tab_')->where(['id'=>$item['company_id']])->getField('company_name');
}
}
$tmp[$item['type']][] = $item;
}
$data['rewardCount'] = sizeof($tmp[RewardModel::REWARD_TYPE_REWARD]);
$data['punishCount'] = sizeof($tmp[RewardModel::REWARD_TYPE_PUNISH]);
$data['rewardAmount'] = $data['rewardCount'] > 0 ? array_sum(array_column($tmp[RewardModel::REWARD_TYPE_REWARD], 'amount')) : 0;
$data['punishAmount'] = $data['punishCount'] > 0 ? array_sum(array_column($tmp[RewardModel::REWARD_TYPE_PUNISH], 'amount')) : 0;
$data['maxCount'] = $data['rewardCount'] > $data['punishCount'] ? $data['rewardCount'] : $data['punishCount'];
$this->assign('details', $tmp);
$this->assign('data', $data);
$this->assign('promoters', M('promote', 'tab_')->where(['level'=>1])->field('id, nickname')->select());
$this->assign('rewardTypes', RewardModel::$rewardTypes);
$this->assign('settlementTypes', RewardModel::$settlementTypes);
$this->assign('companyTypes', RewardModel::$companyTypes);
$this->display('rewardManagerDetail');
}
public function getCompanys($type=1)

@ -318,6 +318,10 @@ class UserActionLogController extends AdminController
$map['op_type'] = $_REQUEST['op_type'];
}
if ($_REQUEST['menu']) {
$map['menu'] = ['like',"%{$_REQUEST['menu']}%"];
}
$data = M('operation_log','tab_')
->where($map)
->page($page,$row)

@ -284,9 +284,16 @@ class UserController extends AdminController
if (!empty($emailUser)) {
$this->error('邮箱已存在!');
}
$moblieUser = M('UcenterMember', 'sys_')->field('id')->where(['mobile' => $_POST['mobile']])->find();
if (!empty($moblieUser)) {
$this->error('手机号码已存在!');
}
/* 调用注册接口注册用户 */
$User = new UserApi;
$uid = $User->register($username, $password, $email, $second_pwd);
$uid = $User->register($username, $password, $email, $second_pwd, $_POST['mobile']);
if (0 < $uid) { //注册成功
$user = array('uid' => $uid,'real_name'=>$real_name, 'nickname' => $username, 'status' => 1,"birthday"=>date('Y-m-d',time()));
$data['uid'] = $uid;
@ -373,21 +380,21 @@ class UserController extends AdminController
if (!preg_match($pattern, $_POST['email'])) {
$this->error('邮箱格式不正确!');
}
if (isset($_POST['mobile']) && $_POST['mobile'] != '') {
$dx = A('Phone');
$res = $dx->check_tel_code($_POST['mobile'], $_POST['code']);
switch ($res) {
case '-1':
$this->error('短信验证码无效,请重新获取');
break;
case '-2':
$this->error('时间超时,请重新获取短信验证码');
break;
case '-3':
$this->error('短信验证码不正确,请重新输入');
break;
}
}
// if (isset($_POST['mobile']) && $_POST['mobile'] != '') {
// $dx = A('Phone');
// $res = $dx->check_tel_code($_POST['mobile'], $_POST['code']);
// switch ($res) {
// case '-1':
// $this->error('短信验证码无效,请重新获取');
// break;
// case '-2':
// $this->error('时间超时,请重新获取短信验证码');
// break;
// case '-3':
// $this->error('短信验证码不正确,请重新输入');
// break;
// }
// }
$Member = D('UcenterMember');
$mem = D('Member');
$au = D('AuthGroupAccess');

@ -0,0 +1,56 @@
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: huajie <banhuajie@163.com>
// +----------------------------------------------------------------------
namespace Admin\Model;
use Common\Api\GameApi;
use Org\WeixinSDK\Weixin;
use Think\Model;
/**
* 文档基础模型
*/
class RewardModel extends Model
{
const REWARD_TYPE_REWARD = 1;
const REWARD_TYPE_PUNISH = 2;
const REWARD_TYPE_ALL = 3;
public static $rewardTypes = [
self::REWARD_TYPE_REWARD => '奖励',
self::REWARD_TYPE_PUNISH => '惩罚',
self::REWARD_TYPE_ALL => '双向'
];
const GAME_RELATION_OTHER = 0;
const SETTLEMENT_TYPE_ONLINE = 2;
const SETTLMENT_TYPE_OFFLINE = 1;
public static $settlementTypes = [
self::SETTLEMENT_TYPE_ONLINE => '线上结算',
self::SETTLMENT_TYPE_OFFLINE => '线下结算'
];
const COMPANY_TYPE_PARTNER = 1;
const COMPANY_TYPE_COMPANY = 2;
const COMPANY_TYPE_INSIDE = 3;
public static $companyTypes = [
self::COMPANY_TYPE_PARTNER => '上游公司',
self::COMPANY_TYPE_COMPANY => '下游公司',
self::COMPANY_TYPE_INSIDE => '内部'
];
public function __construct($name = '', $tablePrefix = '', $connection = '')
{
$this->tablePrefix = 'tab_';
parent::__construct($name, $tablePrefix, $connection);
}
}

@ -111,6 +111,12 @@
<span class="form-required" style="line-height: 30px;"><if condition="$data['is_received'] eq 0"><else/></if></span>
</td>
</tr>
<tr>
<td class="l">是否为收款方</td>
<td class="r">
<span class="form-required" style="line-height: 30px;"><if condition="$data['is_qualifity'] eq 0"><else/></if></span>
</td>
</tr>
<tr>
<td class="l noticeinfo">联系人</td>
<td class="r">

@ -112,6 +112,9 @@
<th >是否有预付款</th>
<th >预付款金额</th>
<th >是否签署合同</th>
<th >是否具有游戏资质</th>
<th >合同期限</th>
<th >生效时间</th>
<th >开票税点</th>
@ -157,6 +160,9 @@
<td rowspan="{$vo.rowspan}">{$vo.is_surplus|default="否"}</td>
<td rowspan="{$vo.rowspan}">{$vo.before_amount|default="0"}</td>
<td rowspan="{$vo.rowspan}">{$vo.is_contract|default="------"}</td>
<td rowspan="{$vo.rowspan}">{$vo.is_qualifity|default="否"}</td>
<td rowspan="{$vo.rowspan}">
<span class="form-required" style="line-height: 30px;">{$vo['agreement_time']['start_time']}</span>
<span class="form-required" style="line-height: 30px;">{$vo['agreement_time']['end_time']|default="永久"}</span></td>

@ -76,6 +76,8 @@
<div class="fr">
<a class="" href="{:U('PayChannel/index')}">游戏充值统计</a>
<a class="tabchose" href="">充值方式统计</a>
<a href="{:U('PayMerchant/index')}">充值方式统计</a>
</div>
</div>

@ -174,7 +174,7 @@
</tbody>
</table>
<table style="margin-top: 30px;">
<caption class="" style="text-align: left;font-size: 20px;font-weight: 600;">按支付渠道类型</caption>
<caption class="" style="text-align: left;font-size: 20px;font-weight: 600;">支付类型</caption>
<thead>
<tr>
<th>序号</th><th>流水类型</th><th>1月</th><th>2月</th><th>3月</th><th>4月</th><th>5月</th><th>6月</th><th>7月</th><th>8月</th><th>9月</th><th>10月</th><th>11月</th><th>12月</th><th>年度合计</th>
@ -223,6 +223,31 @@
</tr>
</tbody>
</table>
<table style="margin-top: 30px;">
<caption class="" style="text-align: left;font-size: 20px;font-weight: 600;">支付商户类型</caption>
<thead>
<tr>
<th>序号</th><th>流水类型</th><th>1月</th><th>2月</th><th>3月</th><th>4月</th><th>5月</th><th>6月</th><th>7月</th><th>8月</th><th>9月</th><th>10月</th><th>11月</th><th>12月</th><th>年度合计</th>
</tr>
</thead>
<tbody>
<volist name="data.merchant.list" id="merchant" key="merchantkey">
<tr>
<td>{$merchantkey}</td>
<td>{$merchant.name}</td>
<volist name="merchant.money" id="merchantmoney" >
<td><if condition="$merchantmoney neq 0">{$merchantmoney}<else/>0.00</if></td>
</volist>
</tr>
</volist>
<tr class="data_summary">
<td colspan="2" style="text-align: center;">合计:</td>
<volist name="data.merchant.count" id="merchantcount" >
<td><if condition="$merchantcount neq 0">{$merchantcount}<else/>0.00</if></td>
</volist>
</tr>
</tbody>
</table>
<div style="width: 100%;height: 50px;"></div>
</div>

@ -536,39 +536,39 @@
<!-- <span class="notice-text" style="line-height:1.4;width:68%;">ios版游戏内的支付方式二选一默认是第三方支付。上架版选择第三方支付则为wap支付选择苹果内购则为苹果内购非上架版选择第三方支付则为wap支付选择苹果内购则为app支付。金猪支付下支付宝始终是app支付订单充值方式记录为支付宝其它皆为wap支付订单充值方式记录为金猪支付</span> -->
</td>
</tr>
<tr>
<td class="l noticeinfo">支付宝</td>
<td class="r table_radio">
<span class="form_select">
<select name="pay_config[zfb]">
<option value="gf" >官方</option>
<option value="sq" >双乾</option>
</select>
</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">微信</td>
<td class="r table_radio">
<span class="form_select">
<select name="pay_config[wx]">
<option value="gf" selected="selected">官方</option>
</select>
</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">快捷支付</td>
<td class="r table_radio">
<span class="form_select">
<select name="pay_config[quick]">
<option value="sq" selected="selected">双乾</option>
</select>
</span>
</td>
</tr>
<!-- <tr>-->
<!-- <td class="l noticeinfo">支付宝</td>-->
<!-- <td class="r table_radio">-->
<!-- <span class="form_select">-->
<!-- <select name="pay_config[zfb]">-->
<!-- <option value="gf" >官方</option>-->
<!-- <option value="sq" >双乾</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- </td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="l noticeinfo">微信</td>-->
<!-- <td class="r table_radio">-->
<!-- <span class="form_select">-->
<!-- <select name="pay_config[wx]">-->
<!-- <option value="gf" selected="selected">官方</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- </td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="l noticeinfo">快捷支付</td>-->
<!-- <td class="r table_radio">-->
<!-- <span class="form_select">-->
<!-- <select name="pay_config[quick]">-->
<!-- <option value="sq" selected="selected">双乾</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- </td>-->
<!-- </tr>-->
<tr>
<td class="l noticeinfo">是否开启强更</td>
<td class="r table_radio table_radio2">

@ -734,40 +734,40 @@
<!-- <span class="notice-text" style="line-height:1.4;width:68%;">ios版游戏内的支付方式二选一默认是第三方支付。上架版选择第三方支付则为wap支付选择苹果内购则为苹果内购非上架版选择第三方支付则为wap支付选择苹果内购则为app支付。金猪支付下支付宝始终是app支付订单充值方式记录为支付宝其它皆为wap支付订单充值方式记录为金猪支付</span> -->
</td>
</tr>
<tr>
<td class="l noticeinfo">支付宝</td>
<td class="r table_radio">
<span class="form_select">
<select name="pay_config[zfb]">
<option value="gf" <?php echo $data['pay_config']['zfb'] == 'gf' ? "selected" : ''; ?>>官方</option>
<option value="sq" <?php echo $data['pay_config']['zfb'] == 'sq' ? "selected" : ''; ?>>双乾</option>
<option value="heepay" <?php echo $data['pay_config']['zfb'] == 'heepay' ? "selected" : ''; ?>>汇付宝</option>
</select>
</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">微信</td>
<td class="r table_radio">
<span class="form_select">
<select name="pay_config[wx]">
<option value="gf" selected="selected">官方</option>
</select>
</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">快捷支付</td>
<td class="r table_radio">
<span class="form_select">
<select name="pay_config[quick]">
<option value="sq" selected="selected">双乾</option>
</select>
</span>
</td>
</tr>
<!-- <tr>-->
<!-- <td class="l noticeinfo">支付宝</td>-->
<!-- <td class="r table_radio">-->
<!-- <span class="form_select">-->
<!-- <select name="pay_config[zfb]">-->
<!-- <option value="gf" <?php echo $data['pay_config']['zfb'] == 'gf' ? "selected" : ''; ?>>官方</option>-->
<!-- <option value="sq" <?php echo $data['pay_config']['zfb'] == 'sq' ? "selected" : ''; ?>>双乾</option>-->
<!-- <option value="heepay" <?php echo $data['pay_config']['zfb'] == 'heepay' ? "selected" : ''; ?>>汇付宝</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- </td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="l noticeinfo">微信</td>-->
<!-- <td class="r table_radio">-->
<!-- <span class="form_select">-->
<!-- <select name="pay_config[wx]">-->
<!-- <option value="gf" selected="selected">官方</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- </td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="l noticeinfo">快捷支付</td>-->
<!-- <td class="r table_radio">-->
<!-- <span class="form_select">-->
<!-- <select name="pay_config[quick]">-->
<!-- <option value="sq" selected="selected">双乾</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- </td>-->
<!-- </tr>-->
<tr>
<td class="l noticeinfo">是否开启强更</td>
<td class="r table_radio table_radio2">

@ -68,6 +68,9 @@
<div class="input-list">
<input type="text" name="account" class="" placeholder="玩家账号" value="{:I('account')}"/>&nbsp;
</div>
<div class="input-list">
<input type="text" name="register_ip" class="" placeholder="注册IP" value="{:I('register_ip')}"/>&nbsp;
</div>
<div class="input-list">
<input type="text" readonly id="time_start" name="time_start" class="" value="{:I('time_start')}" placeholder="注册开始时间" />
&nbsp;-&nbsp;

@ -75,6 +75,7 @@
<div class="fr">
<a class="tabchose" href="">游戏充值统计</a>
<a class="" href="{:U('Finance/payTypeStatistics')}">充值方式统计</a>
<a class="" href="{:U('PayMerchant/index')}">收款商户统计</a>
</div>
</div>
@ -145,7 +146,7 @@
<th ><div class="tooltip">平台币直充金额<span class="tooltiptext"><span style="margin-left: -10px">玩家在游戏内充值到SDK(余额-平台币)内平台币的金额</span></span></div></th>
<th ><div class="tooltip">测试金额<span class="tooltiptext"><span style="margin-left: -10px">测试环境白名单下测试账号所产生的测试金额。只展示充值成功通知成功的订单</span></span></div></th>
<th ><div class="tooltip">测试白名单测试金额<span class="tooltiptext"><span style="margin-left: -10px">测试白名单下测试账号所产生的测试金额。只展示充值成功的订单</span></span></div></th>
<th ><div class="tooltip">支付渠道内合计<span class="tooltiptext"><span style="margin-left: -10px">超级签金额+游戏现金金额+平台币直充+测试金额</span></span></div></th>

@ -0,0 +1,374 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
.tooltip {
position: relative;
display: inline-block;
color: #056dae;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 250%;
background-color: #fff;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
z-index: 1;
bottom: 80%;
left: 0;
margin-left: -70%;
border: #000 solid 1px;
}
.tooltip .tooltiptext::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: black transparent transparent transparent;
}
.tooltip:hover .tooltiptext {
color: #000;
visibility: visible;
line-height: 20px;
}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">支付方式统计</h3>
<!-- <p class="description_text">说明平台币直充金额2019.12.18以前sdk新包数据及sdk旧包数据无法对应相关游戏无法计入以上平台币列表中<span style="color:red">充值方式统计</span>一栏统计<span style="color:red">平台币直充总金额</span></p>-->
<div class="fr">
<a href="PayChannel/index">游戏充值统计</a>
<a class="" href="{:U('Finance/payTypeStatistics')}">充值方式统计</a>
<a class="tabchose">收款商户统计</a>
</div>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<!--游戏类型搜索END-->
<!-- <div class="input-list input-list-promote search_label_rehab">-->
<!-- <select id="count_date" name="count_date" class="select_gallery" style="width:150px;">-->
<!-- <option value="">请选择月份</option>-->
<!-- <volist name=":getMonth()" id="vo">-->
<!-- <option value="{$vo}" <if condition="$vo eq $_GET['count_date']">selected=selected</if>>{$vo}</option>-->
<!-- </volist>-->
<!-- </select>-->
<!-- </div>-->
<!-- <div class="input-list input-list-server search_label_rehab">-->
<!-- <select id="partner_id" name="partner_id" class="select_gallery" style="width:120px;">-->
<!-- <option value="">请选择合作方</option>-->
<!-- <volist name=":getPartner()" id="vo">-->
<!-- <option partner-id="{$vo.id}" value="{$vo.id}" <if condition="$vo.id eq $_GET['partner_id']">selected=selected</if>>{$vo.partner}</option>-->
<!-- </volist>-->
<!-- </select>-->
<!-- </div>-->
<!-- <div class="input-list input-list-game search_label_rehab">-->
<!-- <select id="game_name" name="game_id" class="select_gallery" >-->
<!-- <option value="">游戏名称</option>-->
<!-- </select>-->
<!-- </div>-->
<div class="input-list input-list-game search_label_rehab">
<select id="main_name" name="main_name" class="select_gallery" >
<option value="">请选择商户主体</option>
<volist name=":getMerchant()" id="vo">
<option value="{$vo.main_name}" <if condition="$vo.main_name eq I('main_name')">selected</if> >{$vo.main_name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="account" name="account" class="select_gallery" >
<option value="">请选择商户账号</option>
<volist name=":getMerchant()" id="vo">
<option value="{$vo.account}" <if condition="$vo.account eq I('account')">selected</if> >{$vo.account}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="name" name="name" class="select_gallery" >
<option value="">请选择支付商户</option>
<volist name=":getMerchant()" id="vo">
<option value="{$vo.name}" <if condition="$vo.name eq I('name')">selected</if> >{$vo.name}</option>
</volist>
</select>
</div>
<!-- <div class="input-list input-list-spend search_label_rehab">-->
<!-- <select id="channel" name="channel" class="select_gallery" style="width:120px;">-->
<!-- <option value="">支付渠道</option>-->
<!-- <option value="1">支付宝</option>-->
<!-- <option value="2">微信</option>-->
<!-- <option value="3">易宝支付</option>-->
<!-- <option value="4">双乾支付</option>-->
<!-- <option value="5">汇付宝支付</option>-->
<!-- </select>-->
<!-- </div>-->
<div class="input-list">
<input type="text" id="timestart" name="timestart" class="" value="{:I('timestart')}" placeholder="下单开始时间" autocomplete="off"/>
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" id="timeend" name="timeend" class="" value="{:I('timeend')}" placeholder="下单结束时间" autocomplete="off"/>
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('PayMerchant/index','model='.$model['name'].'&row='.I('row'),false)}"
style="width: 100px;border: #3C95C8 solid 1px;">搜索</a>
<if condition="$role_export_check eq true ">
<a class="sch-btn" href="{:U('/PayMerchant/index/export/1',
array_merge(array('export'=>1),I('get.'))
,false)}" style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
</if>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<empty name="show_status">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<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>
</thead>
<!-- 列表 -->
<tbody>
<style>
.data-table thead th, .data-table tbody td{text-align:center}
.data-table tbody td{border-right:1px solid #DDDDDD;}
.d_list .drop-down ul {z-index:999;}
</style>
<!-- <if condition = "empty($data)">-->
<!-- <tr>-->
<!-- <td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>-->
<!-- </tr>-->
<!-- </if>-->
<notemtpy name = "listdata">
<volist name="listdata" id="data">
<tr>
<td>{$data.main_name|default = '无'}</td>
<td >{$data.name|default = '无'}
<!-- -{$data.merchant_way|default = '无'}-->
</td>
<td >{$data.account|default = ''}</td>
<!-- <td >{$data['channel']|default = ''}</td>-->
<td >{$data['ratio']}%</td>
<td >{$data['cash_amount']|default = '0.00'}</td>
<td >{$data['coin_amount']|default = '0.00'}</td>
<td >{$data['test_amount']|default = '0.00'}</td>
<td >{$data['test_order_amount']|default = '0.00'}</td>
<td >{$data['supersign_amount']|default = '0.00'}</td>
<td >{$data['offcial_amount']|default = '0.00'}</td>
<td >{$data['spread_amount']|default = '0.00'}</td>
<td >{$data['sum']|default = '0.00'}</td>
</tr>
</volist>
<tr>
<td><span>合计(根据时间检索变化)</span></td>
<td></td>
<td></td>
<td>100%</td>
<td ><span>{$sum['cash_amount']|default = '0.00'}</span></td>
<td ><span>{$sum['coin_amount']|default = '0.00'}</span></td>
<td ><span>{$sum['test_amount']|default = '0.00'}</span></td>
<td ><span>{$sum['test_order_amount']|default = '0.00'}</span></td>
<td ><span>{$sum['supersign_amount']|default = '0.00'}</span></td>
<td ><span>{$sum['offcial_amount']|default = '0.00'}</span></td>
<td ><span>{$sum['spread_amount']|default = '0.00'}</span></td>
<td ><span>{$sum['sum']|default = '0.00'}</span></td>
</tr>
</notemtpy>
<tr>
<td><span>汇总(根据时间检索变化)</span></td>
<td colspan="20">
<if condition="empty($sum_merchant) eq true">
</if>
<volist name="sum_merchant" id="sum_merchant">
{$sum_merchant.name}{$sum_merchant.sum_amount|default = '0.00'} &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
</volist>
</td>
</tr>
<tr>
<td><span>收款商户占比</span></td>
<td colspan="20">
<if condition="empty($sum_radio) eq true">
</if>
<volist name="sum_radio" id="sum_radio">
{$sum_radio.name}{$sum_radio.ratio|default = 0}% &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
</volist>
</td>
</tr>
</tbody>
</table>
</div>
</empty>
</div>
<div class="page">
{$_page|default=''}
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script>
<volist name=":I('get.')" id="vo">
Think.setValue('{$key}',"{$vo}");
</volist>
</script>
<script type="text/javascript">
$("#name").select2();
$("#main_name").select2();
$("#account").select2();
//导航高亮
highlight_subnav('{:U('PayMerchant/index')}');
function showWindow() {
layer.open({
type: 2,
title: "游戏登录记录",
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: ['admin.php?s=/Member/denglu/id/', 'no']
});
}
function get_game_list()
{
var game_name = "{:I('game_id')}";
$.ajax({
url:"{:U('PayChannel/getGameList')}",
type:"post",
data:{partner_id:$("#partner_id option:selected").val(), sdk_type:$("#sdk_version1 option:selected").val()},
dataType:'json',
success:function(data){
var str = "<option value=''>请选择游戏</option>";
for (var i in data){
str += "<option value='"+data[i].id+"'"+(game_name && data[i].id == game_name?'selected':'')+">"+data[i].game_name+"</option>"
}
// console.log(str);
$("#game_name").empty();
$("#game_name").append(str);
$("#game_name").select2();
}
})
}
get_game_list();
$(function(){
$('#timestart').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
$('#datetimepicker').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,
pickerPosition:'bottom-left'
})
//搜索功能
$("#search").click(function(){
var starttime = $.trim($('#time-start').val());
var endtime = $.trim($('#time-end').val());
if (starttime && endtime && starttime > endtime) {layer.msg('开始时间必须小于等于结束时间');return false;}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').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;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
})
</script>
</block>

@ -58,10 +58,10 @@
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_name" class="select_gallery" >
<select id="game_id" name="game_id" class="select_gallery" >
<option value="">游戏名称</option>
<volist name=":get_game_list()" id="vo">
<option game-id="{$vo.id}" value="{$vo.game_name}">{$vo.game_name}</option>
<volist name="games" id="vo">
<option game-id="{$vo.relation_game_id}" value="{$vo.relation_game_id}">{$vo.relation_game_name}</option>
</volist>
</select>
</div>
@ -139,7 +139,7 @@
<else />
<volist name="list_data" id="data">
<tr>
<td ><if condition="$data.rand eq 1"><span >{$data.fgame_name}</span><elseif condition="$data.rand eq 2"/><span>{$data.fgame_name}</span><elseif condition="$data.rand eq 3"/><span>{$data.fgame_name}</span><else/>{$data.fgame_name}</if></td>
<td ><if condition="$data.rand eq 1"><span >{$data.relation_game_name}</span><elseif condition="$data.rand eq 2"/><span>{$data.relation_game_name}</span><elseif condition="$data.rand eq 3"/><span>{$data.relation_game_name}</span><else/>{$data.relation_game_name}</if></td>
<td ><span>{$data.count}</span></td>
<td ><strong><if condition="$data.rand eq 1"><span >{$data.rand}</span><elseif condition="$data.rand eq 2"/><span>{$data.rand}</span><elseif condition="$data.rand eq 3"/><span>{$data.rand}</span><else/>{$data.rand}</if></strong></td>
<td >{$data.today}</td>
@ -166,7 +166,7 @@
array(
'timestart'=>$_GET['timestart'],
'timeend'=>$_GET['timeend'],
'game_name'=>$_GET['game_name'],
'game_id'=>$_GET['game_id'],
'p'=>$_GET['p'],
'xlsname'=>'统计_平台统计_游戏注册统计',
),

@ -56,10 +56,10 @@
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_name" class="select_gallery">
<select id="game_id" name="game_id" class="select_gallery">
<option value="">游戏名称</option>
<volist name=":get_game_list()" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}">{$vo.game_name}</option>
<volist name="games" id="vo">
<option game-id="{$vo.relation_game_id}" value="{$vo.relation_game_id}">{$vo.relation_game_name}</option>
</volist>
</select>
</div>
@ -136,7 +136,7 @@
<div class="page">
<if condition="$role_export_check eq true ">
<a class="sch-btn" href="{:U('Export/platform_statistics',
array('timestart'=>$_GET['timestart'],'timeend'=>$_GET['timeend'],'type'=>1,'game_name'=>$_GET['game_name'],p=>$_GET['p'],'xlsname'=>'统计_平台统计_游戏充值统计',)
array('timestart'=>$_GET['timestart'],'timeend'=>$_GET['timeend'],'type'=>1,'game_id'=>$_GET['game_id'],p=>$_GET['p'],'xlsname'=>'统计_平台统计_游戏充值统计',)
,false)}">导出</a>
</if>
{$_page|default=''}

@ -71,18 +71,26 @@
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_name" class="select_gallery" style="width:120px;">
<select id="game_name" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>
<volist name=":get_game_list()" id="vo">
<option game-id="{$vo.id}" value="{$vo.game_name}">{$vo.game_name}</option>
<volist name=":getAllGame()" id="vo">
<option value="{$vo.game_name}" <if condition="$vo.game_name eq I('game_name')">selected</if> >{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1" <?php echo I('game_type') == 1 ? "selected" : ''?>>安卓</option>
<option value="2" <?php echo I('game_type') == 2 ? "selected" : ''?>>苹果</option>
</select>
</div>
<div class="input-list input-list-server search_label_rehab">
<select id="server_id" name="server_id" class="select_gallery" style="width:120px;">
<option value="">区服名称</option>
</select>
</div>
<br>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Platform/promote_statistics','model='.$model['name'].'&row='.I('row'),false)}">搜索</a>
@ -104,6 +112,8 @@
<th >市场专员</th>
<th >游戏</th>
<th ><a class="paixu" data-order='count'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'count'">累计注册▲
<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'count'"/>累计注册▼
<else />累计注册<img src="__IMG__/up-down.png" width="13px">
@ -158,6 +168,7 @@
</if> -->
</td>
<td>{$data['admin_username']}</td>
<td>{$data['relation_game_name']}</td>
<td ><span class='ljzc' data-value="{$data['id']}"><a>{$data.count}</a></span></td>
<td ><strong><if condition="$data.rand eq 1"><span>{$data.rand}</span><elseif condition="$data.rand eq 2"/><span>{$data.rand}</span><elseif condition="$data.rand eq 3"/><span>{$data.rand}</span><else/>{$data.rand}</if></strong></td>
<td >{$data.today}</td>
@ -168,7 +179,7 @@
</volist>
</empty>
<tr class="data_summary">
<td colspan="3"><span>汇总</span></td>
<td colspan="4"><span>汇总</span></td>
<td ><span>{$total.sum_count}</span></td>
<td>---</td>
<td>{$total.sum_today}</td>
@ -299,32 +310,13 @@
// endDate:date
})
$("#game_id").change(function(){
$.ajax({
url:"{:U('getSpendServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
console.log(data)
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_id+"'>"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
var game_id = "{:I('game_name')}";
var game_server = "{:I('server_id')}";
if(game_id){
$("#game_type").change(function(){
console.log({sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()})
$.ajax({
url:"{:U('getSpendServer')}",
url:"{:U('Ajax/getGmeServer')}",
type:"post",
data:{game_name:game_id},
data:{sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()},
dataType:'json',
success:function(data){
console.log(data)
@ -335,10 +327,15 @@
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
}
});
$("#game_name").change(function(){
$("#game_type").change();
});
$("#game_name").change();
})
</script>
</block>

@ -61,7 +61,7 @@
</select>
</div>
<div class="input-list input-list-promote search_label_rehab">
<label>当前市场专员:</label>
<label>订单归属市场专员:</label>
<select id="admin_id" name="admin_id" class="select_gallery" style="width:150px;">
<option value="">全部</option>
<volist name="admin_users" id="vo">
@ -70,18 +70,26 @@
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_name" class="select_gallery" style="width:120px;">
<select id="game_name" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>
<volist name=":get_game_list()" id="vo">
<option game-id="{$vo.id}" value="{$vo.game_name}">{$vo.game_name}</option>
<volist name=":getAllGame()" id="vo">
<option value="{$vo.game_name}" <if condition="$vo.game_name eq I('game_name')">selected</if> >{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1" <?php echo I('game_type') == 1 ? "selected" : ''?>>安卓</option>
<option value="2" <?php echo I('game_type') == 2 ? "selected" : ''?>>苹果</option>
</select>
</div>
<div class="input-list input-list-server search_label_rehab">
<select id="server_id" name="server_id" class="select_gallery" style="width:120px;">
<option value="">区服名称</option>
</select>
</div>
<br>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Platform/promotepay_statistics','model='.$model['name'].'&row='.I('row'),false)}">搜索</a>
@ -118,6 +126,8 @@
<th >当前市场专员</th>
<th >游戏</th>
<th ><a class="paixu" data-order='count'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'count'">累计充值▲
<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'count'"/>累计充值▼
<else />累计充值<img src="__IMG__/up-down.png" width="13px">
@ -165,6 +175,7 @@
<td>{$data['company_name']}</td>
<td >{$data['promote_account']}</td>
<td>{$data['admin_username']}</td>
<td>{$data['relation_game_name']}</td>
<td ><span class='ljcz' data-value="{$data['promote_id']}"><a>{$data.count}</a></span></td>
<td ><strong><if condition="$data.rand eq 1"><span>{$data.rand}</span><elseif condition="$data.rand eq 2"/><span>{$data.rand}</span><elseif condition="$data.rand eq 3"/><span>{$data.rand}</span><else/>{$data.rand}</if></strong></td>
<td >{$data.today}</td>
@ -174,7 +185,7 @@
</volist>
</empty>
<tr class="data_summary">
<td colspan="3"><span>汇总</span></td>
<td colspan="4"><span>汇总</span></td>
<td ><span>{$total.sum_count}</span></td>
<td>---</td>
<td>{$total.sum_today}</td>
@ -367,34 +378,14 @@
pickerPosition:'bottom-left',
// endDate:date
})
$("#game_id").change(function(){
console.log($("#game_id option:selected").attr('game-id'));
$.ajax({
url:"{:U('getSpendServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
console.log(data)
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_id+"'>"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
var game_name = "{:I('game_name')}";
var game_server = "{:I('server_id')}";
if(game_name){
console.log({game_name:game_name})
$("#game_type").change(function(){
console.log({sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()})
$.ajax({
url:"{:U('getSpendServer')}",
url:"{:U('Ajax/getGmeServer')}",
type:"post",
data:{game_name:game_name},
data:{sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()},
dataType:'json',
success:function(data){
console.log(data)
@ -405,10 +396,15 @@
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
}
});
$("#game_name").change(function(){
$("#game_type").change();
});
$("#game_name").change();
})
</script>
</block>

@ -7,6 +7,7 @@
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<script type="text/javascript" src="__STATIC__/provincecityarea/AreaData_min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script src="__STATIC__/laydate/laydate.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
@ -132,6 +133,18 @@
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">押金收到时间:</td>
<td class="r">
<input type="text" class="txt time-stamp" name="pay_accept_time" id="pay_accept_time" value="<?= $record['pay_accept_time']?date('Y-m-d H:i:s', $record['pay_accept_time']):''?>" readonly>
</td>
</tr>
<tr>
<td class="l">押金退款时间:</td>
<td class="r">
<input type="text" class="txt time-stamp" name="refund_time" id="refund_time" value="<?=$record['refund_time']?date('Y-m-d H:i:s', $record['refund_time']):''?>" readonly>
</td>
</tr>
</tbody>
</table>
</div>
@ -182,6 +195,27 @@ $(function(){
minView:'year',
maxView:'year',
});
$('.time-stamp').each(function(){
laydate.render({
elem: this,
type: 'datetime'
});
})
// $('.time-stamp').datetimepicker({
// format: 'yyyy-mm-dd hh:ii:ss',
// dateFormat: 'yyyy-mm-dd',//日期显示格式
// timeFormat: 'HH:mm:ss',//时间显示格式
// autoclose : true,
// todayBtn : true,
// todayHighlight : true,
// language : 'zh-CN',
// startView : 2,//月视图
// showMeridian : true,
// pickerPosition : "bottom-left",
// minuteStep : 1
// });
showTab();
$('#pay_type').change(function() {

@ -2,6 +2,7 @@
<block name="css">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<link rel="stylesheet" href="__CSS__/promote.css" type="text/css"/>
<script src="__STATIC__/laydate/laydate.js"></script>
<link rel="stylesheet" type="text/css" href="__STATIC__/webuploader/webuploader.css" media="all">
<style>
.select2-container--default .select2-selection--single {
@ -83,6 +84,7 @@
<div class="input-list input-list-promote search_label_rehab">
<select id="status" name="status" class="select_gallery" style="width:120px;">
<option value="">押金状态</option>
<option value="-1">市场待确认</option>
<?php foreach($statusList as $key => $name):?>
<option value="<?=$key?>"><?=$name?></option>
<?php endforeach;?>
@ -96,6 +98,44 @@
<?php endforeach;?>
</select>
</div>
<div class="input-list input-list-promote search_label_rehab">
<input type="text" readonly name="pay_confirm_time_start" class="time-select" value="{:I('pay_confirm_time_start')}"
placeholder="押金确认开始时间"/>
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" readonly name="pay_confirm_time_end" class="time-select" value="{:I('pay_confirm_time_end')}"
placeholder="押金确认结束时间"/>
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list input-list-promote search_label_rehab">
<input type="text" readonly name="refund_time_start" class="time-select" value="{:I('refund_time_start')}"
placeholder="押金退款开始时间"/>
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" readonly name="refund_time_end" class="time-select" value="{:I('refund_time_end')}"
placeholder="押金退款结束时间"/>
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list input-list-promote search_label_rehab">
<input type="text" readonly name="pay_accept_time_start" class="time-select" value="{:I('pay_accept_time_start')}"
placeholder="押金收到开始时间"/>
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" readonly name="pay_accept_time_end" class="time-select" value="{:I('pay_accept_time_end')}"
placeholder="押金收到结束时间"/>
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select id="admin_id" name="admin_id" class="select_gallery" style="width:120px;">
<option value="">所属市场专员</option>
<volist name=":getMarketAdmins()" id="vo">
<option value="{$vo.id}" <?php if(I('admin_id') == $vo['id']):?>selected<?php endif;?> >{$vo.username}</option>
</volist>
</select>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('PresidentDeposit/records')}">搜索</a>
</div>
@ -118,15 +158,17 @@
<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>
<th>押金收到时间</th>
<th>操作</th>
</tr>
</thead>
@ -134,7 +176,7 @@
<!-- 列表 -->
<tbody>
<empty name ="records">
<td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>
<td colspan="99" class="text-center">aOh! 暂时还没有内容!</td>
<else />
<volist name="records" id="data">
<tr data-id="<?=$data['id']?>">
@ -157,7 +199,8 @@
<td>{$data.verify_time}</td>
<td>{$data.status_text}</td>
<td>{$data.pay_confirm_time}</td>
<td>{$data.refund_time}</td>
<td>{$data.pay_accept_time}</td>
<?php if($data['has_record']):?>
<td>
<div class="partakebtn">
@ -179,6 +222,14 @@
</tr>
</volist>
</empty>
<tr>
<td colspan="99" class="text-center">
<span>总押金:{$total['totalamount']}</span>&nbsp;&nbsp;&nbsp;&nbsp;
<span>待确认押金:{$total['unconfirmedamount']}</span>&nbsp;&nbsp;&nbsp;&nbsp;
<span>已确认押金:{$total['confirmedamount']}</span>&nbsp;&nbsp;&nbsp;&nbsp;
<span>已退款押金:{$total['refundedamount']}</span>&nbsp;&nbsp;&nbsp;&nbsp;
</td>
</tr>
</tbody>
</table>
</div>
@ -215,12 +266,57 @@
//导航高亮
highlight_subnav('{:U('PresidentDeposit/records')}');
$(function(){
// 添加全部选项
if ('all' == "{:I('row', 0)}") {
$("#pagechange").prepend("<option value='all' selected>全部</option>");
} else {
$("#pagechange").prepend("<option value='all'>全部</option>");
}
$('.time-select').each(function(){
laydate.render({
elem: this,
type: 'date'
});
});
//搜索功能
$("#search").click(function(){
var sdate = Date.parse($("input[name='pay_confirm_time_start']").val()) / 1000;
var edate = Date.parse($("input[name='pay_confirm_time_end']").val()) / 1000;
if (sdate > edate) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
if ((edate - sdate) > 2592000) {
layer.msg('时间间隔不能超过31天请重新选择日期');
return false;
}
var sdate = Date.parse($("input[name='refund_time_start']").val()) / 1000;
var edate = Date.parse($("input[name='refund_time_end']").val()) / 1000;
if (sdate > edate) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
if ((edate - sdate) > 2592000) {
layer.msg('时间间隔不能超过31天请重新选择日期');
return false;
}
var sdate = Date.parse($("input[name='pay_accept_time_start']").val()) / 1000;
var edate = Date.parse($("input[name='pay_accept_time_end']").val()) / 1000;
if (sdate > edate) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
if ((edate - sdate) > 2592000) {
layer.msg('时间间隔不能超过31天请重新选择日期');
return false;
}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&"+$('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
//query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
@ -280,22 +376,46 @@
$('#pay-confirm-btn').on({
click: function() {
var ids = getIds();
$.ajax({
url: '{:U("payConfirm")}',
type: 'post',
dataType: 'json',
data: {ids: ids},
success: function(result) {
if (result.status == 1) {
layer.msg(result.message)
setTimeout(function() {
window.location.href = window.location.href
}, 200)
} else {
layer.msg(result.message)
var accept_time = '';
layer.open({
title : '押金收到时间确认',
content : `<input type="text" readonly id="deposit_recept_time" value=""placeholder="押金收到时间"/>`,
success : function() {
laydate.render({
elem: '#deposit_recept_time',
type: 'datetime',
value: new Date()
});
},
yes : function(index, layero) {
accept_time = $('#deposit_recept_time').val();
if (!accept_time) {
layer.msg('请选择押金收到时间');
return true;
}
$.ajax({
url: '{:U("payConfirm")}',
type: 'post',
dataType: 'json',
data: {ids: ids, accept_time : accept_time},
success: function(result) {
if (result.status == 1) {
layer.msg(result.message)
setTimeout(function() {
window.location.href = window.location.href
}, 200)
} else {
layer.msg(result.message)
layer.close(index);
}
}
})
return true;
}
})
});
}
})
function getIds() {

@ -108,6 +108,20 @@
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">押金退款时间:</td>
<td class="r table_radio">
<span class="form_radio table_btn"><?=$record['refund_time']?date('Y-m-d H:i:s', $record['refund_time']) : ''?></span>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">押金收到时间:</td>
<td class="r table_radio">
<span class="form_radio table_btn"><?=$record['pay_accept_time']?date('Y-m-d H:i:s', $record['pay_accept_time']) : ''?></span>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">付款人:</td>
<td class="r table_radio">

@ -114,18 +114,32 @@
<input type="text" class="txt" name="email" value="" placeholder="输入推广员邮箱">
</td>
</tr>
<!-- <tr>-->
<!-- <td class="l">商务专员</td>-->
<!-- <td class="r">-->
<!-- <select name="ba_id" id="admin">-->
<!-- <option value="0">请选择商务专员</option>-->
<!-- <volist name=":get_business_affairs_list()" id="vo">-->
<!-- <option value="{$vo.id}">{$vo.account}</option>-->
<!-- </volist>-->
<!-- </select>-->
<!-- <span class="notice-text">设置该推广员所属的商务专员组</span>-->
<!-- </td>-->
<!-- -->
<!-- </tr>-->
<tr>
<td class="l">商务专员</td>
<td class="r">
<select name="ba_id" id="admin">
<option value="0">请选择商务专员</option>
<volist name=":get_business_affairs_list()" id="vo">
<option value="{$vo.id}">{$vo.account}</option>
</volist>
</select>
<span class="notice-text">设置该推广员所属的商务专员组</span>
</td>
<td class="l">充值信息查看权限:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label >
<input type="radio" value="1" name="can_view_recharge" > 开启
</label >
<label >
<input type="radio" value="0" name="can_view_recharge" checked="checked"> 锁定
</label>
</span>
</td>
</tr>
<tr>

@ -163,18 +163,18 @@
</td>
</tr>
<if condition="$data['parent_id'] == 0">
<tr>
<td class="l">商务专员:</td>
<td class="r">
<select name="ba_id" id="ba_id">
<option value="0">请选择商务专员</option>
<volist name=":get_business_affairs_list()" id="vo">
<option value="{$vo.id}">{$vo.account}</option>
</volist>
</select>
<span class="notice-text">设置该推广员所属的商务专员组</span>
</td>
</tr>
<!-- <tr>-->
<!-- <td class="l">商务专员:</td>-->
<!-- <td class="r">-->
<!-- <select name="ba_id" id="ba_id">-->
<!-- <option value="0">请选择商务专员</option>-->
<!-- <volist name=":get_business_affairs_list()" id="vo">-->
<!-- <option value="{$vo.id}">{$vo.account}</option>-->
<!-- </volist>-->
<!-- </select>-->
<!-- <span class="notice-text">设置该推广员所属的商务专员组</span>-->
<!-- </td>-->
<!-- </tr>-->
</if>
<tr>
@ -289,6 +289,21 @@
<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="can_view_recharge" class="can_view_recharge" <if condition="$data['can_view_recharge'] eq 1">checked="checked"</if>> 开启
</label >
<label >
<input type="radio" value="0" name="can_view_recharge" class="can_view_recharge" <if condition="$data['can_view_recharge'] eq 0">checked="checked"</if>> 锁定
</label>
</span>
</td>
</tr>
<tr>
<td class="l">公司结算查看权限:</td>
<td class="r table_radio">
@ -308,10 +323,10 @@
<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>> 开启
<input type="radio" value="1" name="withdraw_done" class="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>> 锁定
<input type="radio" value="0" name="withdraw_done" class="withdraw_done" <if condition="$data['withdraw_done'] eq 0">checked="checked"</if>> 锁定
</label>
</span>
</td>
@ -431,7 +446,7 @@
</table>
</div>
<input type="hidden" name="id" value="{$data['id']}" />
<input type="hidden" name="id" value="{$data['id']}" class="promote_id"/>
<div class="form-item cf">
<button class="submit_btn ajax-post mlspacing" id="submit" type="submit" target-form="form-horizontal">
@ -458,6 +473,8 @@
<block name="script">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('Promote/lists')}");
@ -482,6 +499,25 @@ $(function(){
}
});
$(".withdraw_done").click(function () {
if($(this).val() == 1) {
$.ajax({
url:"{:U('Promote/getWithdrawDone')}",
type:"post",
data:{company_id:$("#company_id option:selected").val(),promote_id:$(".promote_id").val()},
dataType:'json',
success:function(data){
if (data.status==1) {
layer.alert('公司提现推广员只能设置一个,原先已设置提现推广员,保存后会将这个推广员设置成提现推广员');
}
}
})
}
});
});
// //得到地区码
// function getAreaID(){

@ -185,7 +185,9 @@
<td class="r">
<input type="text" class="txt time time3" name="validity_start_time" value="" placeholder="生效开始时间">
&nbsp;-&nbsp;<input type="text" class="txt time time4" name="validity_end_time" value="" placeholder="生效结束时间">
<span class="notice-text" style="float: none;">结束时间不选默认永久</span>
</td>
</tr>
<tr>
@ -501,7 +503,7 @@
if(start>=end) {layer.msg('开始时间必须小于结束时间');$("#contact_end").val('');return false;}
return false;
});
$('.time3').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
@ -517,6 +519,7 @@
return false;
});
$(".time3").datetimepicker("setDate", new Date());
$('.time4').datetimepicker({
format: 'yyyy-mm-dd',

@ -183,6 +183,7 @@
<td class="r">
<input type="text" class="txt time time3" name="validity_start_time" value="{$data.validity_start_time}" placeholder="生效开始时间">
&nbsp;-&nbsp;<input type="text" class="txt time time4" name="validity_end_time" value="{$data.validity_end_time}" placeholder="生效结束时间">
<span class="notice-text" style="float: none;">结束时间不选默认永久</span>
</td>
</tr>

@ -46,7 +46,7 @@
<div class="loginbox">
<form class="inputlogin">
<div class="wrap">
<h3><span>用户登录</span><span>User Login</span></h3>
<h3><span>用户登录</span><span>User Login</span><span style="width: 30px">&nbsp;</span><span style="width: 30px">&nbsp;</span><a href="{:U('phone_login')}">&nbsp;&nbsp;&nbsp;短信登录</a></h3>
<ul>
<li>
<img src="__IMG__/login_name.png" class="icon icon-user">

@ -0,0 +1,206 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{:C('WEB_SITE_TITLE')}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- CSS -->
<link rel="stylesheet" href="__CSS__/reset.css">
<link rel="stylesheet" href="__CSS__/supersized.css">
<link rel="stylesheet" href="__CSS__/loginnews1711.css">
<script src="__JS__/jquery-3.0.0.min.js" ></script>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script src="__JS__/cloud.js" type="text/javascript"></script>
<style>
#sendSasfeCode {
border-radius:3px;
width:29%;
cursor:pointer;
border:1px solid;
position:absolute;
top:0;
right:0;
height:48px;
text-align: center;
line-height: 50px;
}
.g-btntn{
border-color: grey;
color: grey;
}
.g-btn{
border-color: #2697FF;
color: #2697FF;
}
</style>
</head>
<body style="background-color:#1c77ac; background-image:url(__IMG__/light.png); background-repeat:no-repeat; background-position:center top; overflow:hidden;">
<div id="mainBody">
<div id="cloud1" class="cloud"></div>
<div id="cloud2" class="cloud"></div>
</div>
<div class="logintop" style="display: none">
<span>欢迎登录后台管理界面平台</span>
<ul>
<li><a href="http://xue.vlcms.com/" target="_blank">帮助</a></li>
<li><a href="http://www.vlcms.com/" target="_blank">关于</a></li>
</ul>
</div>
<div class="loginbody" >
<span class="systemlogo"></span>
<div class="loginbox">
<form class="inputlogin">
<div class="wrap">
<h3><span>手机号码快捷登录</span><span>User Login</span><a href="{:U('login')}">账号登录</a></h3>
<ul>
<li>
<img src="__IMG__/login_name.png" class="icon icon-user">
<input name="mobile" type="text" id="mobile" class="login_input" value="" autocomplete="off" placeholder="请输入手机号码" />
</li>
<li>
<img src="__IMG__/login_code.png" class="icon icon-code">
<input name="verify" type="text" class="login_input verify" value="" placeholder="请填写验证码"/>
<div id="sendSasfeCode" class="g-btn">获取验证码</div>
</li>
<li><input name="" type="submit" class="loginbtn" value="登录" /></li>
<li style="color: grey"><input type="checkbox" name="auto_login" id="">下次自动登录</li>
</ul>
</div>
</form>
</div>
</div>
<!-- <div class="loginbm"><i>&copy;徐州梦创信息科技有限公司 版权所有</i>2016&nbsp;<a href="http://www.vlcms.com/" target="_blank">vlcms.com</a> &copy;版权所有</div> -->
<div id="tip" class="tip"><a class="tipclose hidden" ></a><div class="tipmain"><div class="tipicon"></div><div class="tipinfo">这是内容</div></div></div>
<script>
$('#sendSasfeCode').on('click',function() {
if ($(this).hasClass('g-btntn')) {
return false;
}
var phone = $.trim($('#mobile').val());
if (phone == '') {
alert("手机号不能为空");
return false;
}
if (phone.length !== 11 || !(/^[1][35789][0-9]{9}$/.test(phone))) {
pmsg.msg("格式不正确");
return false;
}
$.ajax({
type:'post',
dataType:'json',
data:'phone='+phone,
url:'{:U("telsafecode")}',
success:function(data) {
if (data.status ==1) {
r(1);
} else {
alert(data.msg);
}
},
error:function() {
alert('服务器开小差了,请稍后再试。');
}
});
var r = function(i, t) {
if (i>0) {
var r = 60;
e='#sendSasfeCode';
$(e).removeClass('g-btn').addClass('g-btntn');
var a = setInterval(function() {
r--;
$(e).text(r + '秒');
0 == r && ($(e).removeClass('g-btntn').addClass('g-btn'),
$(e).text('获取验证码'),
clearInterval(a))
},1000)
}
};
});
/**顶部警告栏*/
var content = $('#main');
var top_alert = $('#tip');
top_alert.find('.tipclose').on('click', function () {
top_alert.removeClass('block').slideUp(200);
});
window.updateAlert = function (text,c) {
text = text||'default';
c = c||false;
if ( text!='default' ) {
top_alert.find('.tipinfo').text(text);
if (top_alert.hasClass('block')) {
} else {
top_alert.addClass('block').slideDown(200);
}
} else {
if (top_alert.hasClass('block')) {
top_alert.removeClass('block').slideUp(200);
}
}
if ( c!=false ) {
top_alert.removeClass('tip_error tip_right').addClass(c);
}
};
</script>
<script>
$(function(){
$(".inputlogin").unbind('submit').submit(function(){
$.ajax({
type: 'POST',
async: true,
dataType: 'json',
url: "{:U('phone_login')}",
data: $(".inputlogin").serialize(),
success: function(data) {
if(data.status!=1){
var msg = data.info ? data.info : data.msg;
alert(msg)
}else{
window.location.href = data.url;
}
},
error:function(){
updateAlert("服务器故障!",'tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},1500);
}
});
return false;
});
});
</script>
</body>
</html>

@ -132,6 +132,13 @@
</select>
</div>
<?php endif;?>
<div class="input-list search_item input-list-gamenoticestatus">
<select name="platform_type" style="color:#444" class="select_gallery" id="platform_type">
<option value="0">游戏平台</option>
<option value="1">联运平台</option>
<option value="2">聚合平台</option>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list search_item">

@ -0,0 +1,178 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<title>游戏登陆列表|----软件管理平台</title>
<link href="http://admin.vlcms.com/Public/icon.ico" type="image/x-icon" rel="shortcut icon">
<link rel="stylesheet" type="text/css" href="__CSS__/base.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/common.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/module.css">
<link rel="stylesheet" type="text/css" href="__CSS__/style.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/default_color.css" media="all">
<script type="text/javascript" src="__STATIC__/jquery-2.0.3.min.js"></script>
<script src="__STATIC__/table2excel.js"></script>
</head>
<style>
html {
min-width:100%;
}
body {
padding: 0px;
}
</style>
<body>
<div style="margin:auto;font-size: 20px;color: red;line-height: 3;padding: 20px;">
导出进行中。。。<br/>
如果导出成功你也可以手动关闭此页面
</div>
<!-- 数据列表 -->
<table border="1" id="exporttable" style="opacity: 0;">
<!-- 表头 -->
<thead>
<tr>
<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>
<th>会长账号</th>
<th>奖惩金额</th>
<th>结算方式</th>
<th>添加人</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<if condition = "empty($list)">
<tr>
<td colspan="99" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
</if>
<notemtpy name = "list">
<volist name="list" id="data">
<!-- 如果没有子级 -->
<?php if(!$data['maxCount']):?>
<tr>
<td>{$data['relation_game_name']}</td>
<td>{$data['relation_game_partner']}</td>
<td>{$data['settlement_time']}</td>
<td>{$data['confirm_time']}</td>
<td>{$data['content']}</td>
<td>{$data['reward_type_text']}</td>
<td>惩罚方</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>奖励方</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>{:get_admin_name($data['creater_id'])}</td>
</tr>
<!-- 如果有子级 -->
<?php else:?>
<?php for($i=0; $i<$data['maxCount']; $i++):?>
<?php if($i == 0):?>
<tr>
<td rowspan="{$data['maxCount']}">{$data['relation_game_name']}</td>
<td rowspan="{$data['maxCount']}">{$data['relation_game_partner']}</td>
<td rowspan="{$data['maxCount']}">{$data['settlement_time']}</td>
<td rowspan="{$data['maxCount']}">{$data['confirm_time']}</td>
<td rowspan="{$data['maxCount']}">{$data['content']}</td>
<td rowspan="{$data['maxCount']}">{$data['reward_type_text']}</td>
<td rowspan="{$data['maxCount']}">惩罚方</td>
<td><?=$data['detail'][2][$i]['company_type_text'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['company_name'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['promote_account'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['amount'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['settlement_type_text'] ?? '无'?></td>
<td rowspan="{$data['maxCount']}">奖励方</td>
<td><?=$data['detail'][1][$i]['company_type_text'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['company_name'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['promote_account'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['amount'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['settlement_type_text'] ?? '无'?></td>
<td rowspan="{$data['maxCount']}">{:get_admin_name($data['creater_id'])}</td>
</tr>
<?php else:?>
<tr>
<td><?=$data['detail'][2][$i]['company_type_text'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['company_name'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['promote_account'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['amount'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['settlement_type_text'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['company_type_text'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['company_name'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['promote_account'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['amount'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['settlement_type_text'] ?? '无'?></td>
</tr>
<?php endif;?>
<?php endfor;?>
<?php endif;?>
</volist>
</notemtpy>
<tr>
<td colspan="10" class="text-center">合计</td>
<td class="text-center" id="total_reward">-{:array_sum(array_column($list, 'totalPunish'))}</td>
<td colspan="5" class="text-center">合计</td>
<td class="text-center" id="total_punish">{:array_sum(array_column($list, 'totalReward'))}</td>
<td colspan="2" class="text-center"></td>
</tr>
</tbody>
</table>
<script>
$(function(){
$("#exporttable").table2excel({
filename: "奖惩列表.xls", // do include extension
preserveColors: false // set to true if you want background colors and font colors preserved
});
//搜索功能
$("#search").click(function(){
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if ( url.indexOf('?')>0 ){
url += '&' + query;
} else {
url += '?' + query;
}
window.parent.reloadIframe(url);
parent.document.getElementsByTagName('iframe').src = url;
});
});
</script>
</body>
</html>

@ -8,6 +8,7 @@
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__STATIC__/layer3/layer.js"></script>
<script type="text/javascript" src="__STATIC__/laydate/laydate.js"></script>
<style>
.select2-container--default .select2-selection--single {
@ -45,31 +46,31 @@
font-weight: 600;
font-size: 18px;
}
.data_list table td {
line-height:20px;
padding: 0.5px;
height: 30px;
text-indent: 0%;
}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">奖罚记录管理</h3>
<p class="description_text">上下游奖罚记录管理</p>
<h3 class="page_title">记录管理</h3>
<p class="description_text">上下游奖记录管理</p>
</div>
<div class="butnbox" >
<div class="butnlist jscheckbutn" style="margin-left: 2px">
<a class="butn" href="{:U('StatementMangement/rewardManageSave')}">添加</a>
</div>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<!--公司类型搜索END-->
<div class="input-list input-list-server search_label_rehab">
<select id="company_type" name="company_type" class="select_gallery" style="width:120px;">
<option value="">请选择公司类型</option>
<option value="1" <if condition="'0' eq $_GET['company_type']">selected=selected</if>>上游公司</option>
<option value="2" <if condition="'1' eq $_GET['company_type']">selected=selected</if>>下游公司</option>
<select id="reward_type" name="reward_type" class="select_gallery" style="width:120px;">
<option value="">奖惩性质</option>
<option value="3" <if condition="'3' eq $_GET['reward_type']">selected=selected</if>>双向</option>
<option value="1" <if condition="'1' eq $_GET['reward_type']">selected=selected</if>>单向-奖励</option>
<option value="2" <if condition="'2' eq $_GET['reward_type']">selected=selected</if>>单向-惩罚</option>
</select>
</div>
<!--合作公司搜索END-->
@ -82,24 +83,79 @@
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_name" name="game_name" class="select_gallery" >
<select id="game_id" name="game_id" class="select_gallery" >
<option value="">请选择游戏</option>
<option value="0">其他</option>
<volist name=":getAllGame()" id="vo">
<option value="{$vo.game_name}" <if condition="$vo.game_name eq I('game_name')">selected</if>
<option value="{$vo.game_id}" <if condition="$vo.game_id eq I('game_id')">selected</if>
>{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="input-list search_label_rehab">
<input readonly type="text" name="settlement_time_range" style="width:180px;" id='settlement-time-select' value="{$_GET['settlement_time_range']}" placeholder="结算时间范围">
</div>
<div class="input-list">
<div class="input-list search_label_rehab">
<input readonly type="text" name="confirm_time_range" style="width:180px;" id='confirm-time-select' value="{$_GET['confirm_time_range']}" placeholder="确认时间范围">
</div>
<div class="input-list search_label_rehab">
<select id="detail_reward_type" name="detail_reward_type" class="select_gallery">
<option value="">结算奖惩类型</option>
<option value="1" <if condition="'1' eq $_GET['detail_reward_type']">selected=selected</if>>奖励</option>
<option value="2" <if condition="'2' eq $_GET['detail_reward_type']">selected=selected</if>>惩罚</option>
</select>
</div>
<div class="input-list search_label_rehab">
<select id="detail_company_type" name="detail_company_type" class="select_gallery">
<option value="">结算公司类型</option>
<option value="1" <if condition="'1' eq $_GET['detail_company_type']">selected=selected</if>>上游公司</option>
<option value="2" <if condition="'2' eq $_GET['detail_company_type']">selected=selected</if>>下游公司</option>
<option value="3" <if condition="'3' eq $_GET['detail_company_type']">selected=selected</if>>内部</option>
</select>
</div>
<input type="text" name="account" placeholder="账号" class="" value="{:I('account')}"/>&nbsp;
<div class="input-list search_label_rehab">
<select id="detail_company_id" name="detail_company_id" class="select_gallery">
<option value="-1">结算公司/部门</option>
<!-- <option value="0">其他</option> -->
</select>
</div>
<div class="input-list search_label_rehab">
<input type="text" id='detail_company_name' hidden disabled name="detail_company_name" value="{:I('detail_company_name')}" placeholder="请输入内部部门">
</div>
<div class="input-list search_label_rehab">
<select id="detail_promote_account" name="detail_promote_account" class="select_gallery">
<option value="-1">选择会长</option>
<!-- <option value="0">其他</option> -->
<volist name="promoters" id="vo">
<option value="{$vo.account}" <if condition="$vo.account eq I('detail_promote_account')">selected</if>
>{$vo.account}</option>
</volist>
</select>
</div>
<div class="input-list search_label_rehab">
<input type="text" id='detail_promote_account_input' name="detail_promote_account_input" value="{:I('detail_promote_account_input')}" placeholder="请输入会长账号">
</div>
<div class="input-list search_label_rehab">
<select id="detail_settlement_type" name="detail_settlement_type" class="select_gallery">
<option value="">结算方式</option>
<option value="2" <if condition="'2' eq $_GET['detail_settlement_type']">selected=selected</if>>线上结算</option>
<option value="1" <if condition="'1' eq $_GET['detail_settlement_type']">selected=selected</if>>线下结算</option>
</select>
</div>
<input type="hidden" name="from" value="{$_GET['from']}"/>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('StatementMangement/rewardManageList','model='.$model['name'].'&row='.I('row'),false)}"
style="width: 100px;border: #3C95C8 solid 1px;">搜索</a>
<a class="sch-btn" href="{:U('StatementMangement/rewardManageSave')}" style="width: 100px;border: #3C95C8 solid 1px;">新增</a>
<!-- <a class="sch-btn" href="javascript:history.go(-1)" style="background:#fff;color: #000;border: #000 solid 1px;width: 100px">返回</a>-->
</div>
@ -115,15 +171,28 @@
<!-- 表头 -->
<thead>
<tr>
<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>
<!-- 惩罚方 -->
<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>
@ -133,41 +202,108 @@
<tbody>
<if condition = "empty($list)">
<tr>
<td colspan="10" class="text-center">aOh! 暂时还没有内容!</td>
<td colspan="99" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
</if>
<notemtpy name = "list">
<volist name="list" id="data">
<tr>
<td>{$data.reward_type_desc}</td>
<td>{$data.company_type_desc}</td>
<td>{$data.company_name}</td>
<td>
<?php foreach ($data['accounts'] as $account):?>
<div>
<?php if ($account['user_type'] == 1):?>推广员/<?php else:?>玩家/<?php endif;?>{$account['account']}
</div>
<?php endforeach;?>
</td>
<td>{$data.relation_game_name}</td>
<td>{$data.content}</td>
<td>{$data.money}</td>
<td>{$data.remark}</td>
<td>{$data['reward_time']}</td>
<td>{:get_admin_nickname($data['creater_id'])}</td>
<td>
<a href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id']))}">编辑 </a>
<a class="confirm ajax-get" href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id'], 'delete'=>1))}">删除 </a>
</td>
</tr>
<!-- 如果没有子级 -->
<?php if(!$data['maxCount']):?>
<tr>
<td>{$data['relation_game_name']}</td>
<td>{$data['relation_game_partner']}</td>
<td>{$data['settlement_time']}</td>
<td>{$data['confirm_time']}</td>
<td>{$data['content']}</td>
<td>{$data['reward_type_text']}</td>
<td>惩罚方</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>奖励方</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>{:get_admin_name($data['creater_id'])}</td>
<td>
<a href="{:U('StatementMangement/rewardManageDetail',array('id'=>$data['id']))}">查看 </a>
<a href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id']))}">编辑 </a>
<a class="confirm ajax-get" href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id'], 'delete'=>1))}">删除 </a>
</td>
</tr>
<!-- 如果有子级 -->
<?php else:?>
<?php for($i=0; $i<$data['maxCount']; $i++):?>
<?php if($i == 0):?>
<tr>
<td rowspan="{$data['maxCount']}">{$data['relation_game_name']}</td>
<td rowspan="{$data['maxCount']}">{$data['relation_game_partner']}</td>
<td rowspan="{$data['maxCount']}">{$data['settlement_time']}</td>
<td rowspan="{$data['maxCount']}">{$data['confirm_time']}</td>
<td rowspan="{$data['maxCount']}">{$data['content']}</td>
<td rowspan="{$data['maxCount']}">{$data['reward_type_text']}</td>
<td rowspan="{$data['maxCount']}">惩罚方</td>
<td><?=$data['detail'][2][$i]['company_type_text'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['company_name'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['promote_account'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['amount'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['settlement_type_text'] ?? '无'?></td>
<td rowspan="{$data['maxCount']}">奖励方</td>
<td><?=$data['detail'][1][$i]['company_type_text'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['company_name'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['promote_account'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['amount'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['settlement_type_text'] ?? '无'?></td>
<td rowspan="{$data['maxCount']}">{:get_admin_name($data['creater_id'])}</td>
<td rowspan="{$data['maxCount']}">
<a href="{:U('StatementMangement/rewardManageDetail',array('id'=>$data['id']))}">查看 </a>
<a href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id']))}">编辑 </a>
<a class="confirm ajax-get" href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id'], 'delete'=>1))}">删除 </a>
</td>
</tr>
<?php else:?>
<tr>
<td><?=$data['detail'][2][$i]['company_type_text'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['company_name'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['promote_account'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['amount'] ?? '无'?></td>
<td><?=$data['detail'][2][$i]['settlement_type_text'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['company_type_text'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['company_name'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['promote_account'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['amount'] ?? '无'?></td>
<td><?=$data['detail'][1][$i]['settlement_type_text'] ?? '无'?></td>
</tr>
<?php endif;?>
<?php endfor;?>
<?php endif;?>
</volist>
</notemtpy>
<tr>
<td colspan="10" class="text-center">合计</td>
<td class="text-center" id="total_reward">-{:array_sum(array_column($list, 'totalPunish'))}</td>
<td colspan="5" class="text-center">合计</td>
<td class="text-center" id="total_punish">{:array_sum(array_column($list, 'totalReward'))}</td>
<td colspan="3" class="text-center"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="page">
<if condition="$role_export_check eq true ">
<a class="sch-btn" href="{:U('StatementMangement/rewardManageList',array_merge(['is_export'=>1], I('get.')))}">导出</a>
</if>
{$_page|default=''}
</div>
<div class="common_settings">
@ -201,73 +337,163 @@
$(".select_gallery").select2();
highlight_subnav("{:U('StatementMangement/rewardManageList')}");
function get_company_list()
{
var id = $('#partner_id').val();
var company_type = $("#company_type option:selected").val();
$.ajax({
url:"{:U('Ajax/getCompanyList')}",
type:"post",
data:{
company_type:company_type,
},
dataType:'json',
success:function(data){
var str = "<option value=''>请选择合作公司</option>";
for (var i in data){
str += "<option value='"+data[i].id+"'"+"data-type='"+data[i].type+"'"+(id && data[i].id == id?'selected':'')+">"+data[i].name+"</option>"
}
// console.log(str);
$("#partner_id").empty();
$("#partner_id").append(str);
$("#partner_id").select2();
laydate.render({
elem: '#settlement-time-select' //指定元素
,type: 'date'
,range: '~'
});
}
})
}
laydate.render({
elem: '#confirm-time-select' //指定元素
,type: 'date'
,range: '~'
});
// var partner_id = {:I('partner_id', 0)};
// function get_company_list()
// {
// var id = partner_id;
// var company_type = $("#company_type option:selected").val();
// if (company_type == '') {
// return false;
// }
// $.ajax({
// url:"{:U('Ajax/getCompanyList')}",
// type:"post",
// data:{
// company_type:company_type,
// },
// dataType:'json',
// success:function(data){
// var str = "<option value=''>请选择合作公司</option>";
// for (var i in data){
// str += "<option value='"+data[i].id+"'"+"data-type='"+data[i].type+"'"+(id && data[i].id == id?'selected':'')+">"+data[i].name+"</option>"
// }
// // console.log(str);
// $("#partner_id").empty();
// $("#partner_id").append(str);
// $("#partner_id").select2();
function get_game_list()
// }
// })
// }
// function get_game_list()
// {
// var game_name = $('#game_name').val();
// var partner_id = $("#partner_id option:selected").val();
// var sdk_type = $("#sdk_version1 option:selected").val();
// $.ajax({
// url:"{:U('Finance/getGameList')}",
// type:"post",
// data:{
// partner_id:partner_id,
// sdk_type:sdk_type
// },
// dataType:'json',
// success:function(data){
// var str = "<option value=''>请选择游戏</option>";
// for (var i in data){
// str += "<option value='"+data[i].game_name+"'"+(game_name && data[i].game_name == game_name?'selected':'')+">"+data[i].game_name+"</option>"
// }
// // console.log(str);
// $("#game_name").empty();
// $("#game_name").append(str);
// $("#game_name").select2();
// }
// })
// }
var defaultCompanyId = "{:I('detail_company_id', -1)}";
function companyTypeChange()
{
var game_name = $('#game_name').val();
var partner_id = $("#partner_id option:selected").val();
var sdk_type = $("#sdk_version1 option:selected").val();
$.ajax({
url:"{:U('Finance/getGameList')}",
type:"post",
data:{
partner_id:partner_id,
sdk_type:sdk_type
},
dataType:'json',
success:function(data){
var str = "<option value=''>请选择游戏</option>";
for (var i in data){
str += "<option value='"+data[i].game_name+"'"+(game_name && data[i].game_name == game_name?'selected':'')+">"+data[i].game_name+"</option>"
var companyId = $('#detail_company_id').val();
var companyType = $('#detail_company_type').val();
$('#detail_company_name').attr('disabled', true).hide();
//var companyType = $('#form-company-type').val();
// 如果公司类型为内部的时候,公司部门仅其他
if (companyType == 3) {
var companyData = "<option value='-1'>请选择公司/部门</option>";
$('#detail_company_id').html(companyData);
$('#detail_company_name').attr('disabled', false).show();
//$("#detail_company_name").attr("readonly",false)
$('#detail_company_id').change();
} else {
$.ajax({
url:"{:U('StatementMangement/getCompanys')}",
dataType:'JSON',
data: {'type':companyType},
success:function(response){
var companyData = "<option value='-1'>请选择公司/部门</option>";
$.each(response.info, function(index, item){
if (defaultCompanyId == item.id) {
companyData += "<option value='"+item.id+"' selected >"+item.name+"</option>";
} else {
companyData += "<option value='"+item.id+"' >"+item.name+"</option>";
}
});
$('#detail_company_id').html(companyData);
//$("#detail_company_name").attr("readonly",true)
$('#detail_company_id').change();
}
// console.log(str);
$("#game_name").empty();
$("#game_name").append(str);
$("#game_name").select2();
}
})
});
}
}
companyTypeChange()
$('#detail_company_type').on('change', function(){
companyTypeChange()
})
// $('#detail_company_id').on('change', function(){
// var companyId = $('#detail_company_id').val();
// if (companyId == 0) { // 其他
// $('#detail_company_name').attr("readonly",false)
// }else if (companyId != '-1') {
// $('#detail_company_name').attr("readonly",true).val('')
// }
// $('#detail_promote_account').change();
// });
// $('#detail_promote_account').on('change', function(){
// var promoteAccount = $('#detail_promote_account').val();
// if (promoteAccount == 0) { // 其他
// $('#detail_promote_account_input').attr("readonly",false)
// } else if (promoteAccount != '-1') {
// $('#detail_promote_account_input').attr("readonly",true).val('')
// }
// });
$(function(){
get_company_list();
$("#partner_id").change(function(){
get_game_list();
});
$("#company_type").change(function(){
get_company_list();
});
//
// $("#partner_id").change(function(){
// get_game_list();
// });
// if ($("#company_type").val() != '') {
// get_company_list();
// }
// $("#company_type").change(function(){
// if ($("#company_type").val() != '') {
// get_company_list();
// } else {
// $("#partner_id").empty();
// $("#partner_id").select2();
// }
// });
//搜索功能
$("#search").click(function(){
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
console.log(url);
query += "&" + $('.jssearch').find('select').serialize();
console.log(query);
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
//query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;

@ -5,7 +5,7 @@
<style>
#form .txt_area.download_url {width:400px;}
.tabcon1711 .table_radio2 .table_btn {width:215px;}
.bnt_add,.bnt_remove,.bnt_save{
.bnt_add,.bnt_remove,.bnt_save, .settlement_bnt_add{
height: 30px;
width: 20px;
font-size: 20px;
@ -22,6 +22,13 @@
.bnt_save{
color: #4DB361;
}
.data_list table td {
line-height:20px;
padding: 0px;
height: 30px;
text-indent: 0%;
}
</style>
<style>
.select2-container--default .select2-selection--single {
@ -58,8 +65,96 @@
</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"charset="UTF-8"></script>
<script type="text/javascript" src="__STATIC__/laydate/laydate.js"></script>
<div class="tab-wrap" id='pop-form' hidden>
<div class="tab-content tabcon1711">
<!-- 表单 -->
<form id="item-form" method="post" class="form-horizontal" style="margin-bottom: 40px;">
<!-- 基础文档模型 -->
<div id="tab1" class="tab-pane in tab1">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l"><i class="mustmark">*</i>类型:</td>
<td class="r">
<select name="type" id='form-type' class="select_gallery">
<option value="1">奖励</option>
<option value="2">惩罚</option>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>公司类型:</td>
<td class="r">
<select name="company_type" id='form-company-type' class="select_gallery">
<?php foreach($companyTypes as $index => $type):?>
<option value="{$index}">{$type}</option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>公司/部门:</td>
<td class="r">
<select name="company_id" id='form-company-id' class="select_gallery">
<option value="0">其他</option>
</select>
</td>
</tr>
<tr>
<td class="l"></td>
<td class="r">
<input type="text" name="company_name" id='form-company-name' autocomplete="off" placeholder="请填写公司/部门" />
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>会长账号:</td>
<td class="r">
<select name="promote_account" id="form-promote-account" class="select_gallery">
<option value="0">其他</option>
</select>
</td>
</tr>
<tr>
<td class="l"></td>
<td class="r">
<input type="text" name="promote_account_input" autocomplete="off" id='form-promote-account-input' placeholder="请填写会长账号" />
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>结算方式:</td>
<td class="r">
<select name="settlement_type" id='form-settlement-type' class="select_gallery">
<?php foreach($settlementTypes as $index => $type):?>
<option value="{$index}">{$type}</option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>金额</td>
<td class="r">
<input type="text" name="amount" id='form-amount' autocomplete="off" value="0" />
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-item cf">
<button class="submit_btn mlspacing" id="add-item" type="button" target-form="form-horizontal" style="margin-top: 10px;">
新增
</button>
</div>
</form>
</div>
</div>
<form action="{:U('StatementMangement/rewardManageSave')}" enctype="application/x-www-form-urlencoded" method="POST"
class="form-horizontal form_info_ml" id="form">
@ -67,39 +162,96 @@
<ul class="form_info ">
<input type="hidden" name="id" value="{$data.id}" />
<li>
<label>奖惩类型</label>
<?php if ($_GET['id']):?>
<input type="hidden" name="reward_type" value="{$data['reward_type']}">
<?php endif;?>
<select id="reward_type" name="reward_type" class="select_gallery" <?php if ($_GET['id']):?> disabled<?php endif;?>>
<option value="1" <?php if ($data['reward_type'] == 1):?>selected<?php endif;?>>奖励</option>
<option value="2" <?php if ($data['reward_type'] == 2):?>selected<?php endif;?>>惩罚</option>
</select>
<a class="btn" onclick="openForm()">
添加奖惩信息
</a>
</li>
<li>
<label>公司类型</label>
<?php if ($_GET['id']):?>
<input type="hidden" name="company_type" value="{$data['company_type']}">
<?php endif;?>
<select id="company_type" name="company_type" class="select_gallery" onchange="companyTypeChange()" <?php if ($_GET['id']):?> disabled<?php endif;?>>
<option value="1" <?php if ($data['company_type'] == 1):?>selected<?php endif;?>>上游公司</option>
<option value="2" <?php if ($data['company_type'] == 2):?>selected<?php endif;?>>下游公司</option>
</select>
</li>
<li>
<label>公司名称</label>
<select id="company_id" name="company_id" class="select_gallery">
</select>
</li>
<li>
<label>奖罚时间</label>
<input type="text" id="reward_time" readonly name="reward_time" class="" value="{:date('Y-m-d H:i:s',$data['reward_time'])}" placeholder="奖罚时间" />
<div class="data_list">
<div class="">
<table id="record-table" border="1px solid #ccc" >
<!-- 表头 -->
<thead>
<tr>
<th colspan='6'>奖励</th>
<th colspan='6'>惩罚</th>
</tr>
</thead>
<!-- 表头 -->
<thead>
<tr>
<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>
</thead>
<!-- 列表 -->
<tbody id="table-body">
<?php for($i=0; $i<$data['maxCount']; $i++):?>
<tr class="<?php if (!isset($details[1][$i])): php?>empty-reward<?php endif; php?> <?php if (!isset($details[2][$i])): php?>empty-punish<?php endif; php?>">
<!-- 奖励信息 -->
<td class="reward-data-info" hidden>
<input class="info" name="settlement_info[]" hidden value='<?=$details[1][$i]['info'] ? json_encode($details[1][$i]['info']) : ''?>' />
</td>
<td class="reward-td company-type"><?=$companyTypes[$details[1][$i]['company_type']] ?? '-'?></td>
<td class="reward-td company-name"><?=$details[1][$i]['company_name'] ?? '-'?></td>
<td class="reward-td promote-account"><?=$details[1][$i]['promote_account'] ?? '-'?></td>
<td class="reward-td settlement-type"><?=$settlementTypes[$details[1][$i]['settlement_type']] ?? '-'?></td>
<td class='reward-amount reward-td amount'><?=$details[1][$i]['amount'] ?? '-'?></td>
<td class='reward-opt reward-td opt'><?php if (isset($details[1][$i])): php?><a onclick="removeItem(this, 'reward')">删除</a><?php else: php?><a onclick="openForm()">添加</a><?php endif; php?></td>
<!-- 惩罚信息 -->
<td class="punish-data-info" hidden>
<input class="info" name="settlement_info[]" hidden value='<?=$details[2][$i]['info'] ? json_encode($details[2][$i]['info']) : ''?>' />
</td>
<td class="punish-td company-type"><?=$companyTypes[$details[2][$i]['company_type']] ?? ''?></td>
<td class="punish-td company-name"><?=$details[2][$i]['company_name'] ?? ''?></td>
<td class="punish-td promote-account"><?=$details[2][$i]['promote_account'] ?? ''?></td>
<td class="punish-td settlement-type"><?=$settlementTypes[$details[2][$i]['settlement_type']] ?? ''?></td>
<td class='punish-amount punish-td amount'><?=$details[2][$i]['amount'] ?? ''?></td>
<td class='punish-opt punish-td opt'><?php if (isset($details[2][$i])): php?><a onclick="removeItem(this, 'punish')">删除</a><?php else: php?><a onclick="openForm()">添加</a><?php endif; php?></td>
</tr>
<?php endfor;?>
<tr id='total-amount'>
<td></td>
<td></td>
<td></td>
<td>合计</td>
<td id='total-reward-amount'>{$data['rewardAmount']}</td>
<td><a onclick="openForm()">添加</a></td>
<td></td>
<td></td>
<td></td>
<td>合计</td>
<td id='total-punish-amount'>{$data['punishAmount']}</td>
<td><a onclick="openForm()">添加</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<?php if ($data['accounts']):?>
<?php foreach ($data['accounts'] as $k => $account):?>
<?php if ($k == 0):?>
<li class="user-account">
<?php if ($k == 0):?>
<label>涉及账号</label>
<?php else:?>
<label>-</label>
<?php endif;?>
<select name="user_type[]" class="select_gallery user_type" onchange="userAccountChange(this)">
<option value="1" <?php if ($account['user_type'] == 1):?>selected<?php endif;?>>推广员</option>
<option value="2" <?php if ($account['user_type'] == 2):?>selected<?php endif;?>>玩家</option>
@ -133,6 +285,7 @@
<li>
<label>游戏</label>
<select id="relation_game_id" name="relation_game_id" class="select_gallery">
<option value="0">其他</option>
<?php foreach ($games as $game):?>
<option value="{$game['relation_game_id']}" <?php if ($game['relation_game_id'] == $data['relation_game_id']):?>selected<?php endif;?> >{$game['relation_game_name']}</option>
<?php endforeach;?>
@ -140,11 +293,19 @@
</li>
<li>
<label>事件</label>
<textarea name="content" class="" placeholder="事件" >{$data.content}</textarea>
<textarea name="content" class="" id='content' placeholder="事件" >{$data.content}</textarea>
</li>
<li>
<label>金额</label>
<input name="money" type="text" class="" placeholder="金额" value="{$data.money}" />
<label>奖惩时间</label>
<input type="text" id="reward_time" readonly name="reward_time" class="" value="{:date('Y-m-d H:i:s',$data['reward_time'])}" placeholder="奖惩时间" />
</li>
<li>
<label>奖惩结算时间</label>
<input type="text" id="settlement_time" readonly name="settlement_time" class="" value="<?=$data['settlement_time'] ? date('Y-m-d H:i:s',$data['settlement_time']) : ''?>" placeholder="奖惩时间" />
</li>
<li>
<label>奖惩确认时间</label>
<input type="text" id="confirm_time" readonly name="confirm_time" class="" value="{$data['confirm_time']}" placeholder="奖惩确认时间" />
</li>
<li>
<label>备注</label>
@ -152,7 +313,7 @@
</li>
<li>
<label>&nbsp;</label>
<button class="submit_btn ajax-post" id="submit" type="submit" target-form="form-horizontal">
<button class="submit_btn ajax-post" id="submit-btn" type="submit" target-form="form-horizontal">
确认保存
</button>
<input type="button" value="返 回" target-form="form-horizontal" class="form_btn" onclick="javascript:void(window.history.go(-1))">
@ -172,29 +333,54 @@
</block>
<block name="script">
<script type="text/javascript">
highlight_subnav('{:U('StatementMangement/rewardManageList')}');
$(".bnt_add").bind("click",function(){
var a= '<li class="user-account"><label>涉及账号</label><select name="user_type[]" class="select_gallery user_type" onchange="userAccountChange(this)"><option value="1">推广员</option><option value="2">玩家</option></select><input type="text" class="txt table_text_input" name="account[]" value="" placeholder="账号"><button type="button" class="bnt_remove"></button>';
var a= '<li class="user-account"><label>-</label><select name="user_type[]" class="select_gallery user_type" onchange="userAccountChange(this)"><option value="1">推广员</option><option value="2">玩家</option></select><input type="text" class="txt table_text_input" name="account[]" value="" placeholder="账号"><button type="button" class="bnt_remove"></button>';
$(".user-account:last").after(a);
});
$(document).on('click', '.bnt_remove', function(){
$(this).parents('li').remove();
countAmount();
});
$(document).on('input propertychange', '#form-amount', function(){
if (!Number($(this).val())) {
s=$(this).val().substring(0,$(this).val().Length-1);
$(this).val(s);
layer.msg('请输入数字');
//countAmount();
return false;
}
//countAmount();
});
var date = new Date();
var monthStart = date.getFullYear()+'-0'+(date.getMonth()+1)+'-01';
$("#reward_time").datetimepicker({
format : "yyyy-mm-dd hh:ii",
autoclose : true,
todayBtn : true,
todayHighlight : true,
startDate : monthStart,
language : 'zh-CN',
startView : 2,//月视图
showMeridian : true,
pickerPosition : "bottom-left",
minuteStep : 5
$("#reward_time, #confirm_time, #settlement_time").each(function(){
laydate.render({
elem: this //指定元素
,type: 'datetime'
});
});
function openForm()
{
layer.open({
type : 1 ,
title:"新增",
area:['30%','60%'],
content: $('#pop-form'),
end : function(){
$('#item-form')[0].reset() // 重置数据
$('#form-company-name').attr('readonly', false);
$('#form-promote-account-input').attr('readonly', false);
}
});
}
/* $('#reward_time').datetimepicker({
language:"zh-CN",
hour: 13,
@ -203,28 +389,212 @@
todayHighlight : true,
todayBtn:true
});*/
var company_id = '{$data["company_id"]}';
function companyTypeChange()
function removeItem(obj, type)
{
var companyType = $('#company_type').val();
$.ajax({
url:"{:U('StatementMangement/getCompanys')}",
dataType:'JSON',
data: {'type':companyType},
success:function(response){
var companyData = '';
$.each(response.info, function(index, item){
if (company_id == item.id) {
companyData += "<option value='"+item.id+"' selected >"+item.name+"</option>";
} else {
companyData += "<option value='"+item.id+"' >"+item.name+"</option>";
}
});
$('#company_id').html(companyData);
$(obj).parents('tr').children('.'+type+'-data-info').find('.info').val('');
$(obj).parents('tr').addClass('empty-'+type);
if ($(obj).parents('tr').hasClass('empty-reward') && $(obj).parents('tr').hasClass('empty-punish')) {
$(obj).parents('tr').remove();
} else {
$(obj).parents('tr').children('.'+type+'-td').each(function(index, item){
if (index < 6) {
$(item).html('');
} else {
$(item).html('<a onclick="openForm()">添加</a>')
}
});
}
countAmount();
}
$(document).on('click', '#add-item', function(){
var data = {
type : $("#form-type").val(),
company_type : $("#form-company-type").val(),
company_type_desc : $("#form-company-type option:selected").text(),
company_id : $("#form-company-id").val(),
company_name : $("#form-company-name").val(),
//promote_account : $("#form-promote-account").val() ?? $("#form-promote-account-input").val(),
settlement_type : $("#form-settlement-type").val(),
settlement_type_desc : $("#form-settlement-type option:selected").text(),
amount : $("#form-amount").val()
};
if ($("#form-promote-account").val() == 0) {
data['promote_account'] = $("#form-promote-account-input").val();
} else {
data['promote_account'] = $("#form-promote-account").val();
}
var type_dec = data['type'] == 1 ? 'reward' : 'punish';
// 找到空闲的节点,如果没有,则创建一行
var emptyNode = $('.table-body tr,.empty-'+type_dec+':first');
if (emptyNode.length == 0) {
console.log(emptyNode.length)
var newNodeHtml =
`<tr class="empty-reward empty-punish">
<!-- 奖励信息 -->
<td class="reward-data-info" hidden>
<input class="info" name="settlement_info[]" hidden value='' />
</td>
<td class="reward-td company-type"></td>
<td class="reward-td company-name"></td>
<td class="reward-td promote-account"></td>
<td class="reward-td settlement-type"></td>
<td class='reward-amount reward-td amount'></td>
<td class='reward-opt reward-td opt'><a onclick="openForm()">添加</a></td>
<!-- 惩罚信息 -->
<td class="punish-data-info" hidden>
<input class="info" name="settlement_info[]" hidden value='' />
</td>
<td class="punish-td company-type"></td>
<td class="punish-td company-name"></td>
<td class="punish-td promote-account"></td>
<td class="punish-td settlement-type"></td>
<td class='punish-amount punish-td amount'></td>
<td class='punish-opt punish-td opt'><a onclick="openForm()">添加</a></td>
</tr>`;
$('#total-amount').before(newNodeHtml);
emptyNode = $('.table-body tr,.empty-'+type_dec+':first');
}
$(emptyNode).children('.'+type_dec+'-data-info').find('.info').val(JSON.stringify(data));
$(emptyNode).children('.'+type_dec+'-td').each(function(index, item){
if ($(item).hasClass('company-type')) {
$(item).text(data['company_type_desc'])
} else if ($(item).hasClass('company-name')) {
$(item).text(data['company_name'])
} else if ($(item).hasClass('promote-account')) {
$(item).text(data['promote_account'])
} else if ($(item).hasClass('settlement-type')) {
$(item).text(data['settlement_type_desc'])
} else if ($(item).hasClass('amount')) {
$(item).text(data['amount'])
} else if ($(item).hasClass('opt')) {
$(item).html(`<a onclick="removeItem(this, '`+type_dec+`')">删除</a>`)
}
});
$(emptyNode).removeClass('empty-'+type_dec);
countAmount();
$('#item-form')[0].reset()
$('#form-company-name').attr('readonly', false);
$('#form-promote-account-input').attr('readonly', false);
layer.closeAll();
});
// 全部总金额重算
function countAmount()
{
var reward_amount = punish_amount = 0;
$('.reward-amount').each(function(index, item){
if (Number($(item).text()) != null) {
reward_amount += Number($(item).text());
}
});
$('#total-reward-amount').text(reward_amount);
$('.punish-amount').each(function(index, item){
if (Number($(item).text())) {
punish_amount += Number($(item).text());
}
});
$('#total-punish-amount').text(punish_amount);
}
// 修改公司类型时候
$(document).on('change', '#form-company-type', function(){
companyTypeChange();
});
$(document).on('change', '#form-company-id', function(){
promoteChange();
});
$(document).on('change', '#form-promote-account', function(){
var promoteAccount = $('#form-promote-account').val();
if (promoteAccount == 0) {
$("#form-promote-account-input").attr("readonly",false)
$("#form-promote-account-input").val('');
} else {
$("#form-promote-account-input").attr("readonly",true).val($(this).val());
}
});
function promoteChange() {
var companyId = $('#form-company-id').val();
var companyType = $('#form-company-type').val();
// 如果选择为其他,则开放填写
if (companyId == 0) {
$("#form-company-name").attr("readonly",false)
$("#form-company-name").val('');
} else if (companyType == 1) { // 上游公司没有下级会长
var promoteData = "<option value='0' selected>其他</option>";
$('#form-promote-account').html(promoteData);
$("#form-promote-account-input").attr("readonly",false)
$("#form-company-name").attr("readonly",true)
$("#form-company-name").val($('#form-company-id option:selected').text());
} else {
$.ajax({
url:"{:U('Ajax/getPromotersByCompanyid')}",
dataType:'JSON',
data: {'company_id':companyId},
success:function(response){
var promoteData = "<option value='0'>其他</option>";
$.each(response.data, function(index, item){
promoteData += "<option value='"+item.account+"' >"+item.account+"</option>";
});
$('#form-promote-account').html(promoteData);
$("#form-promote-account-input").attr("readonly",false)
$("#form-company-name").attr("readonly",true)
$("#form-company-name").val($('#form-company-id option:selected').text());
}
});
}
}
// var company_id = '{$data["company_id"]}';
function companyTypeChange()
{
var companyType = $('#form-company-type').val();
// 如果公司类型为内部的时候,公司部门仅其他
if (companyType == 3) {
var companyData = "<option value='0' selected>其他</option>";
$('#form-company-id').html(companyData);
$("#form-company-name").attr("readonly",false)
} else {
$.ajax({
url:"{:U('StatementMangement/getCompanys')}",
dataType:'JSON',
data: {'type':companyType},
success:function(response){
var companyData = "<option value='0'>其他</option>";
$.each(response.info, function(index, item){
companyData += "<option value='"+item.id+"' >"+item.name+"</option>";
});
$('#form-company-id').html(companyData);
$("#form-company-name").attr("readonly",true)
//$('#company_id').html(companyData);
promoteChange();
}
});
}
}
companyTypeChange();
// $('#submit-btn').on('click', function(){
// var data = {
// relation_game_id : $('#relation_game_id').val(),
// content : $('#content').text(),
// reward_time : $('#reward_time').val(),
// settlement_time : $('#settlement_time').val(),
// confirm_time : $('#confirm_time').val(),
// remark : $('#remark').val()
// };
// return false;
// })
</script>
</block>

@ -0,0 +1,321 @@
<extend name="Public/base" />
<block name="css">
<link rel="stylesheet" type="text/css" href="__CSS__/admin_table.css" media="all">
<link rel="stylesheet" type="text/css" href="__STATIC__/webuploader/webuploader.css" media="all">
<style>
#form .txt_area.download_url {width:400px;}
.tabcon1711 .table_radio2 .table_btn {width:215px;}
.bnt_add,.bnt_remove,.bnt_save, .settlement_bnt_add{
height: 30px;
width: 20px;
font-size: 20px;
line-height: 10px;
color: #3399ff;
background: none;
border: none;
margin-left: 20px;
cursor: pointer;
}
.bnt_remove{
color: #F70909;
}
.bnt_save{
color: #4DB361;
}
.data_list table td {
line-height:20px;
padding: 0px;
height: 30px;
text-indent: 0%;
}
</style>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
</block>
<!-- 管理员用户组新增和编辑页面 -->
<block name="body">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script src="__STATIC__/layer/extend/layer.ext.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '
<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">
';
</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"charset="UTF-8"></script>
<script type="text/javascript" src="__STATIC__/laydate/laydate.js"></script>
<div class="tab-wrap" id='pop-form' hidden>
<div class="tab-content tabcon1711">
<!-- 表单 -->
<form id="item-form" method="post" class="form-horizontal" style="margin-bottom: 40px;">
<!-- 基础文档模型 -->
<div id="tab1" class="tab-pane in tab1">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l"><i class="mustmark">*</i>类型:</td>
<td class="r">
<select name="type" id='form-type' class="select_gallery">
<option value="1">奖励</option>
<option value="2">惩罚</option>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>公司类型:</td>
<td class="r">
<select name="company_type" id='form-company-type' class="select_gallery">
<?php foreach($companyTypes as $index => $type):?>
<option value="{$index}">{$type}</option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>公司/部门:</td>
<td class="r">
<select name="company_id" id='form-company-id' class="select_gallery">
<option value="0">其他</option>
</select>
</td>
</tr>
<tr>
<td class="l"></td>
<td class="r">
<input type="text" name="company_name" id='form-company-name' autocomplete="off" placeholder="请填写公司/部门" />
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>会长账号:</td>
<td class="r">
<select name="promote_account" id="form-promote-account" class="select_gallery">
<option value="0">其他</option>
</select>
</td>
</tr>
<tr>
<td class="l"></td>
<td class="r">
<input type="text" name="promote_account_input" autocomplete="off" id='form-promote-account-input' placeholder="请填写会长账号" />
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>结算方式:</td>
<td class="r">
<select name="settlement_type" id='form-settlement-type' class="select_gallery">
<?php foreach($settlementTypes as $index => $type):?>
<option value="{$index}">{$type}</option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>金额</td>
<td class="r">
<input type="text" name="amount" id='form-amount' autocomplete="off" value="0" />
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-item cf">
<button class="submit_btn mlspacing" id="add-item" type="button" target-form="form-horizontal" style="margin-top: 10px;">
新增
</button>
</div>
</form>
</div>
</div>
<form action="{:U('StatementMangement/rewardManageSave')}" enctype="application/x-www-form-urlencoded" method="POST"
class="form-horizontal form_info_ml" id="form">
<div class="formtitle"><span>查看</span></div>
<ul class="form_info ">
<input type="hidden" name="id" value="{$data.id}" />
<li>
<div class="data_list">
<div class="">
<table id="record-table" border="1px solid #ccc" >
<!-- 表头 -->
<thead>
<tr>
<th colspan='5'>奖励</th>
<th colspan='5'>惩罚</th>
</tr>
</thead>
<!-- 表头 -->
<thead>
<tr>
<th>公司类型</th>
<th>公司/部门</th>
<th>会长账号</th>
<th>结算方式</th>
<th>金额</th>
<th>公司类型</th>
<th>公司/部门</th>
<th>会长账号</th>
<th>结算方式</th>
<th>金额</th>
</tr>
</thead>
<!-- 列表 -->
<tbody id="table-body">
<?php for($i=0; $i<$data['maxCount']; $i++):?>
<tr class="<?php if (!isset($details[1][$i])): php?>empty-reward<?php endif; php?> <?php if (!isset($details[2][$i])): php?>empty-punish<?php endif; php?>">
<!-- 奖励信息 -->
<td class="reward-data-info" hidden>
<input class="info" name="settlement_info[]" hidden value='<?=$details[1][$i]['info'] ? json_encode($details[1][$i]['info']) : ''?>' />
</td>
<td class="reward-td company-type"><?=$companyTypes[$details[1][$i]['company_type']] ?? '-'?></td>
<td class="reward-td company-name"><?=$details[1][$i]['company_name'] ?? '-'?></td>
<td class="reward-td promote-account"><?=$details[1][$i]['promote_account'] ?? '-'?></td>
<td class="reward-td settlement-type"><?=$settlementTypes[$details[1][$i]['settlement_type']] ?? '-'?></td>
<td class='reward-amount reward-td amount'><?=$details[1][$i]['amount'] ?? '-'?></td>
<!-- 惩罚信息 -->
<td class="punish-data-info" hidden>
<input class="info" name="settlement_info[]" hidden value='<?=$details[2][$i]['info'] ? json_encode($details[2][$i]['info']) : ''?>' />
</td>
<td class="punish-td company-type"><?=$companyTypes[$details[2][$i]['company_type']] ?? ''?></td>
<td class="punish-td company-name"><?=$details[2][$i]['company_name'] ?? ''?></td>
<td class="punish-td promote-account"><?=$details[2][$i]['promote_account'] ?? ''?></td>
<td class="punish-td settlement-type"><?=$settlementTypes[$details[2][$i]['settlement_type']] ?? ''?></td>
<td class='punish-amount punish-td amount'><?=$details[2][$i]['amount'] ?? ''?></td>
</tr>
<?php endfor;?>
<tr id='total-amount'>
<td></td>
<td></td>
<td></td>
<td>合计</td>
<td id='total-reward-amount'>{$data['rewardAmount']}</td>
<td></td>
<td></td>
<td></td>
<td>合计</td>
<td id='total-punish-amount'>{$data['punishAmount']}</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<?php if ($data['accounts']):?>
<?php foreach ($data['accounts'] as $k => $account):?>
<?php if ($k == 0):?>
<li class="user-account">
<?php if ($k == 0):?>
<label>涉及账号</label>
<?php else:?>
<label>-</label>
<?php endif;?>
<select name="user_type[]" readonly class="select_gallery user_type" onchange="userAccountChange(this)">
<option value="1" <?php if ($account['user_type'] == 1):?>selected<?php endif;?>>推广员</option>
<option value="2" <?php if ($account['user_type'] == 2):?>selected<?php endif;?>>玩家</option>
</select>
<input type="text" readonly class="txt table_text_input" name="account[]" value="{$account['account']}" placeholder="账号">
</li>
<?php else:?>
<li class="user-account">
<label>涉及账号</label>
<select disabled name="user_type[]" class="select_gallery user_type" onchange="userAccountChange(this)">
<option value="1" <?php if ($account['user_type'] == 1):?>selected<?php endif;?>>推广员</option>
<option value="2" <?php if ($account['user_type'] == 2):?>selected<?php endif;?>>玩家</option>
</select>
<input readonly type="text" class="txt table_text_input" name="account[]" value="{$account['account']}" placeholder="账号">
</li>
<?php endif;?>
<?php endforeach;?>
<?php else:?>
<li class="user-account">
<label>涉及账号</label>
<select name="user_type[]" class="select_gallery user_type" onchange="userAccountChange(this)">
<option value="1">推广员</option>
<option value="2">玩家</option>
</select>
<input type="text" class="txt table_text_input" name="account[]" value="" placeholder="账号">
</li>
<?php endif;?>
<li>
<label>游戏</label>
<select id="relation_game_id" disabled name="relation_game_id" class="select_gallery">
<option value="0">其他</option>
<?php foreach ($games as $game):?>
<option value="{$game['relation_game_id']}" <?php if ($game['relation_game_id'] == $data['relation_game_id']):?>selected<?php endif;?> >{$game['relation_game_name']}</option>
<?php endforeach;?>
</select>
</li>
<li>
<label>事件</label>
<textarea name="content" readonly class="" id='content' placeholder="事件" >{$data.content}</textarea>
</li>
<li>
<label>奖惩时间</label>
<input type="text"readonly class="" value="{:date('Y-m-d H:i:s',$data['reward_time'])}" placeholder="奖惩时间" />
</li>
<li>
<label>奖惩结算时间</label>
<input type="text" readonly class="" value="<?=$data['settlement_time'] ? date('Y-m-d H:i:s',$data['settlement_time']) : ''?>" placeholder="奖惩时间" />
</li>
<li>
<label>奖惩确认时间</label>
<input type="text" readonly class="" value="{$data['confirm_time']}" placeholder="奖惩确认时间" />
</li>
<li>
<label>备注</label>
<textarea name="remark" readonly class="" placeholder="备注" >{$data.remark}</textarea>
</li>
<li>
<label>&nbsp;</label>
<input type="button" value="返 回" target-form="form-horizontal" class="form_btn" onclick="javascript:void(window.history.go(-1))">
</li>
</ul>
</form>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="AuthManager/index">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<script type="text/javascript">
highlight_subnav('{:U('StatementMangement/rewardManageList')}');
</script>
</block>

@ -66,6 +66,13 @@
<span class="notice-text">管理员邮箱,用于找回密码等安全操作</span>
</td>
</tr>
<tr>
<td class="l">手机</td>
<td class="r">
<input name="mobile" type="text" class="">
<span class="notice-text">管理员手机号码,用于找回密码等安全操作</span>
</td>
</tr>
</tbody>
</table>

@ -58,6 +58,16 @@
<span class="notice-text">管理员邮箱,用于找回密码等安全操作</span>
</td>
</tr>
<tr>
<td class="l">手机:</td>
<td class="r">
<input name="mobile" type="text" value="{$list.mobile}" class="puser">
<span class="notice-text">管理员手机号码,用于找回密码等安全操作</span>
<!-- <if condition="$list['mobile'] eq ''">-->
<!-- <span class="notice-text"><a href="javascript:;" class="pop-code smcode sendvcode">获取验证码</a></span>-->
<!-- </if>-->
</td>
</tr>
<if condition="is_administrator() and I('get.id') eq C('USER_ADMINISTRATOR')">
<tr>
<td class="l">手机:</td>

@ -72,6 +72,10 @@
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<input style="width: 200px" type="text" id="menu" name="menu" class="" value="{:I('menu')}" placeholder="请输入位置" autocomplete="off"/>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('UserActionLog/operateLog','model='.$model['name'].'&row='.I('row'),false)}" style="">搜索</a>

@ -27,7 +27,7 @@ class PresidentDepositService
];
public static $statusList = [
0 => '待确认',
0 => '财务待确认',
1 => '已收到',
2 => '已退款',
];

@ -967,6 +967,7 @@ class PromoteService {
'group_remark' => $params['group_remark'] ?? '',
'withdraw_show' => $params['withdraw_show'] ?? 0,
'withdraw_done' => $params['withdraw_done'] ?? 0,
'can_view_recharge'=>$params['can_view_recharge'] ?? 0,
];
if ($parent) {

@ -112,6 +112,15 @@ class SafeController extends BaseController{
$this->display();
}
public function ajaxVerifyCode($phone, $code)
{
if (!$this->checksafecode($phone, $code)) {
return $this->error('验证码错误');
} else {
return $this->success('验证成功');
}
}
public function verifySafePwd() {
@ -200,6 +209,8 @@ class SafeController extends BaseController{
$idcarpic = $_REQUEST['idcarpic'];
$businesspic = $_REQUEST['businesspic'];
$agreementpic = $_REQUEST['agreementpic'];
$alipayaccount = $_REQUEST['alipay_account'];
$alipayrealname = $_REQUEST['aplipay_real_name'];
if(empty($_REQUEST['agree'])) {
$this->error("请先认真阅读协议,然后勾选协议");
return false;
@ -276,6 +287,24 @@ class SafeController extends BaseController{
$this->error('卡号格式错误');
return false;
}
if (empty($alipayaccount)) {
$this->error('支付宝账户不能为空');
return false;
}
// TODO::验证支付宝的账户格式
if (!preg_match("/^(?:1[3-9]\d{9}|[a-zA-Z\d._-]*\@[a-zA-Z\d.-]{1,10}\.[a-zA-Z\d]{1,20})$/", $alipayaccount)) {
$this->error('支付宝账户错误');
return false;
}
if (empty($alipayrealname)) {
$this->error('支付宝真实姓名不能为空');
return false;
}
if (!preg_match($bank_account_pattern, $alipayrealname)) {
$this->error('支付宝真实姓名错误');
return false;
}
$data["real_name"] = $username;
$data['mobile_phone'] = $tel;
$data['idcard'] = $id_card;
@ -289,6 +318,7 @@ class SafeController extends BaseController{
$data['businesspic'] = $businesspic;
$data['agreementpic'] = $agreementpic;
$data['ver_status'] = 3;
dd($data);
if($account_type == "公司") {
$data['account_type'] = 1;
}else {
@ -365,10 +395,10 @@ class SafeController extends BaseController{
public function editModify() {
$id = get_pid();
$rs = M("promote","tab_")->field('anothpic,ver_status,real_name,bank_card,mobile_phone,email,address,idcard')->where(['id'=>$id])->find();
$rs = M("promote","tab_")->field('anothpic,ver_status,real_name,bank_name,bank_card,bank_account,mobile_phone,email,address,idcard,alipay_account,alipay_real_name')->where(['id'=>$id])->find();
$anothpic = $rs['anothpic'];
$promoteInfo = "";
$address = json_decode($rs['address'],false)[1];
$address = json_decode($rs['address'],true);
$realname = mb_strlen($rs['real_name'],'utf-8') == 2 ? mb_substr($rs['real_name'],0,1,'utf-8').'*':mb_substr($rs['real_name'],0,1,'utf-8').'**';
$this->assign('addr',$address);
$this->assign('ver_status',$rs['ver_status']);
@ -385,19 +415,37 @@ class SafeController extends BaseController{
$tel = $_REQUEST["tel"];
$address1 = $_REQUEST["address"];
$email = $_REQUEST["email"];
$account_type = $_REQUEST["account_type"];
$bank = $_REQUEST["bank"];
//$account_type = $_REQUEST["account_type"];
$bank = $_REQUEST["bank_card"]; //银行账号
$bank_name = $_REQUEST["bank_name"]; //开户银行
$bank_account = $_REQUEST['bank_account']; //银行账户名
$agreementpic = $_REQUEST["agreementpic"];
$alipayaccount = $_REQUEST['alipay_account'];
$alipayrealname = $_REQUEST['alipay_real_name'];
if(empty($tel)) {
$this->error("手机号码不能为空");
return false;
}
// 判断是否验证过手机号
// 获取最后一次验证的手机
// $lastVerified = M('sms_logs', 'tab_')->where(['mobile'=>$tel])->order('id desc')->find();
// if ($lastVerified['is_checked'] != 1) // 判断是否失效, 有效时间2分钟
// {
// $this->error("尚未验证过短信或者短信验证已失效,请重新验证");
// return false;
// } else if (time()-strtotime($lastVerified['created_at']) > 120) {
// $this->error("短信验证已失效,请重新验证");
// return false;
// }
$pattern = "/^1[3|5|7|8]\\d{9}$/i";
if(!preg_match($pattern, $tel)) {
$this->error("手机号码格式不合法");
return false;
}
$telInfo = M('promote','tab_')->field('id')->where(['mobile_phone'=>$tel])->find();
$telInfo = M('promote','tab_')->field('id')->where(['mobile_phone'=>$tel, 'id'=>['neq'=>get_pid()]])->find();
if(!empty($telInfo)) {
$this->error("手机号码已存在");
return false;
@ -411,6 +459,19 @@ class SafeController extends BaseController{
$this->error("邮箱不能为空");
return false;
}
if(empty($bank_name)) {
$this->error("开户银行不能为空");
return false;
}
if(empty($bank_account)) {
$this->error("银行户名不能为空");
return false;
}
$bank_account_pattern = "/^[\x{4e00}-\x{9fa5}]{2,}$/u";
if (!preg_match($bank_account_pattern, $bank_account)) {
$this->error('银行卡开户人姓名错误');
return false;
}
$patternemail = "/^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$/i";
if (!preg_match($patternemail, $email)) {
$this->error('邮箱地址错误');
@ -429,15 +490,38 @@ class SafeController extends BaseController{
$this->error("补充协议不能为空");
return false;
}
if (empty($alipayaccount)) {
$this->error('支付宝账户不能为空');
return false;
}
// TODO::验证支付宝的账户格式
if (!preg_match("/^(?:1[3-9]\d{9}|[a-zA-Z\d._-]*\@[a-zA-Z\d.-]{1,10}\.[a-zA-Z\d]{1,20})$/", $alipayaccount)) {
$this->error('支付宝账户错误');
return false;
}
if (empty($alipayrealname)) {
$this->error('支付宝真实姓名不能为空');
return false;
}
if (!preg_match($bank_account_pattern, $alipayrealname)) {
$this->error('支付宝真实姓名错误');
return false;
}
$Res = M("promote","tab_")->field('address')->where(['id'=>$id])->find();
$address = json_decode($Res['address'],false);
$address = json_decode($Res['address'],true);
$address[1] = $address1;
$data['mobile_phone'] = $tel;
$data['address'] = json_encode($address,TRUE);
$data['email'] = $email;
$data['account_type'] = $account_type;
//$data['account_type'] = $account_type;
$data['bank_card'] = $bank;
$data['bank_name'] = $bank_name;
$data['bank_account'] = $bank_account;
$data['ver_status'] = 4;
$data['alipay_account'] = $alipayaccount;
$data['alipay_real_name'] = $alipayrealname;
// $data['agreementpic'] = $
$data['anothpic'] = $agreementpic;
$id = get_pid();
@ -452,7 +536,7 @@ class SafeController extends BaseController{
public function ajaxEdit() {
$id = get_pid();
$rs = M("promote","tab_")->field('mobile_phone,address,email,account_type,bank_card,anothpic')->where(['id'=>$id])->find();
$rs = M("promote","tab_")->field('mobile_phone,login_phone,address,email,account_type,bank_name,bank_card,bank_account,anothpic,alipay_account,alipay_real_name')->where(['id'=>$id])->find();
$this->assign('tel',$rs['mobile_phone']);
$this->assign('address',$rs['address']);
$this->assign('email',$rs['email']);
@ -460,12 +544,17 @@ class SafeController extends BaseController{
$this->assign('bank_card',$rs['bank_card']);
$res = [
'tel'=> $rs['mobile_phone'],
'address'=> json_decode($rs['address'],false)[1],
'login_phone' => $rs['login_phone'],
'address'=> json_decode($rs['address'],true)[1],
'email'=> $rs['email'],
'account_type'=> $rs['account_type'],
'bank_card'=> $rs['bank_card'],
'bank_name'=> $rs['bank_name'],
'bank_account'=> $rs['bank_account'],
'idcarpic' => $rs['idcarpic'],
'anothpic' => $rs['anothpic'],
'alipay_account' => $rs['alipay_account'],
'alipay_real_name' => $rs['alipay_real_name'],
];
if($rs['account_type'] == 1) {
$res['complanystatus'] = true;

@ -144,7 +144,7 @@
电话: {$tel}
</div>
<div class="line_text">
联系地址: {$addr}
联系地址: <?php foreach($addr as $item):?>&nbsp;&nbsp;&nbsp;&nbsp;{$item}<?php endforeach;?>
</div>
<div class="line_text">
邮箱: {$rs['email']}
@ -153,10 +153,20 @@
账户类型: <span style="color:#449acb">已认证<span>
</div>
<div class="line_text">
开户银行: {$rs['bank_card']} &nbsp; &nbsp; &nbsp;
<span onclick="ed(1)" id="edit" style="color:#449acb">修改</span>
开户银行: {$rs['bank_name']} &nbsp; &nbsp; &nbsp;
</div>
<div class="line_text">
支付宝真实姓名: {$rs['alipay_real_name']}
</div>
<div class="line_text">
支付宝账户: {$rs['alipay_account']}
</div>
</div>
<div style="margin-top: 30px;">
<div class="form-group normal_space">
<input type="submit" class="submit" onclick="ed(1)" value="修改">
</div>
</div>
</div>
<script src="__LAY__/layui.js" type="text/javascript" ></script>
<link rel="stylesheet" href="__LAY__/css/layui.css" media="all">
@ -167,210 +177,327 @@
</script>
<script>
function ed(id) {
// 检查是否验证过手机号
$.ajax({
type:"POST",
url:"{:U('Safe/ajaxEdit')}",
data:{'id':id},
dataType:'json',
success:function(res) {
var tel = res.tel
var address = res.address
console.log(res)
var email = res.email
var account_type = res.account_type
if(account_type == 1) {
var complany = 'checked';
var personal = '';
}else {
var complany = '';
var personal = 'checked';
var tel = login_phone = res.login_phone
if (!login_phone) {
layer.msg('请先绑定手机号后再来修改信息');
return ;
}
var bank_card = res.bank_card
var complanystatus = res.complanystatus
var personalstatus = res.personalstatus
var anothpic = res.anothpic
layer.open({
type: 1
// TODO::判断是否需要验证
//获取短信
layer.open({
type: 1
,title: false //不显示标题栏
,closeBtn: true
,area: ["800px","700px"]
,shade: 0.8
,id: 'LAY_layuipro' //设定一个id防止重复弹出
,moveType: 1 //拖拽模式0或者1
,content: '<div class="trunk-title"> <span class="title_main">结算信息</span></div> <div class="trunk-content article"> <div class="trunk-list baseInfo">'
+'<form action="{:U("safe/edit")}" novalidate="novalidate" method="post" class="paw_info">'
+'<table class="table2" style="margin-top:20px;margin-left:30px;width:100%" >'
+'<tr><td class="l">电话:</td><td class="r"><input type="text" class="input txt" name="tel" id="password" style="width:430px" placeholder="" value="'+tel+'">'
+'<span id="password_tip"></span></td>'
+'</tr><tr><td class="l">联系地址:</td>'
+'<td class="r"><input type="text" class="input txt" name="address" id="confirm_password" style="width:430px" placeholder="" value="'+address+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">邮箱:</td><td class="r"><input type="text" class="input txt" name="email" id="confirm_password" style="width:430px" placeholder="" value="'+email+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">账户类型:</td><td class="r"><input type="radio" class="input txt" name="account_type" value="公司" '+complany+'>公司<input type="radio" class="input txt" style="margin-left:20px" name="account_type" value="个人" '+personal+'>个人'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">开户银行:</td><td class="r"><input type="text" class="input txt" name="bank" id="confirm_password" style="width:430px" placeholder="" value="'+bank_card+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr> <td class="l" style="margin-top:20px">补充协议:</td><td class="r">'
+' <input type="hidden" name="agreementpic" id="" value=""/>'
+'<div id="uploader-demo" > <div id="agreementpic"><div class="webuploader-pick" style="line-height:30px" onclick="">点击上传</div></div>'
+'<div id="agreementpicList" class="uploader-list" style="display: flex;"></div></td></tr>'
+'<tr><td class="l" colspan="5"><div style="margin-top:40px;" id="tab"><span style="padding-left:20px;color:#26c7dbd4" >*须补充修改协议(联系平台签署)</span></div> </td></tr>'
+'<tr style=""><td class="l"></td><td style="margin-top:50px" class="r">'
+'<input type="submit" class="tj btn ajax-post" value="保存" style="margin-top:40px;width:200px" title="" target-form="paw_info">'
+'<input type="button" id="btn" class="tj btn ajax-post" value="返回" style="margin-top:40px;width:200px;margin-left:50px" title="" target-form="paw_info"></td> </tr></table></form>'
+'</div></div></div>'
// ,content:content
})
$("#btn").click(function() {
window.location.href = "{:U('safe/editModify')}"
})
var uploaderImgagreementpic = WebUploader.create({
// 选完文件后,是否自动上传。
auto: true,
// swf文件路径
swf: '__STATIC__/webuploader/Uploader.swf',
// 文件接收服务端。
server: "{:U('File/uploadPicture',array('session_id'=>session_id(),'flag'=>true))}",
// 选择文件的按钮。可选。
// 内部根据当前运行是创建可能是input元素也可能是flash.
pick: {
id:'#agreementpic',
multiple:true
},
// dnd: false,
paste: document.body,
accept: {
title: '图片',
extensions: 'png,gif,jpg,jpeg,bmp',
mimeTypes: '.png,.gif,.jpg,.jpeg,.bmp',
},
// 不压缩image, 默认如果是jpeg文件上传前会压缩一把再上传
resize: false,
disableGlobalDnd: true,
fileNumLimit:5,
threads:5,
thumb:true,
compress:false,
prepareNextFile: true,
formData: function(){return $.extend(true, {}, userInfo);},
chunked:false,
duplicate: true
});
var imgListagreementpicData = [];
<?php if (!empty($promoteInfo['valuedata'])) :?>
var html = '';
$('#agreementpicList').css('margin-top','10px');
<?php foreach ($promoteInfo['valuedata'] as $value1) { ?>
<?php $value1 = (int)$value1; ?>
imgListagreementpicData.push(<?=$value1?>);
html += '<div id="' + <?=$value1?> + '" class="item flooring_page_img_box" style="margin-right: 10px;">';
html += '<a href="javascript:;"><img src="<?=get_cover($value1,"path")?>" style="width: 100px;height: 100px;cursor: move;"></a>';
html += '<h4 class="info" style="text-align: center;">';
html += '<a href="javascript:;" class="jsdelzip table_click" style="float:none;display:inline-block;" img-id="' + <?=$value1?> + '">删除</a>';
html += '</h4>';
html += '<div class="progress progress-striped active" style="display: none;">';
html += '<div class="progress-bar" role="progressbar" style="width: 100%;">100%</div>';
html += '</div>';
html += '</div>';
<?php }?>
$('#agreementpicList').html(html);
$('#agreementpicList').children().children('h4').children('.jsdelzip').on('click', function() {
var thisId = $(this).attr('img-id');
$(this).parent().parent().remove();
,area: ["700px","400px"]
,id: 'LAY_layui_smm' //设定一个id防止重复弹出
,content:`
<div class="page-list normal_list promote-base_info-form">
<div class="trunk-title">
<span class="title_main">手机号验证</span>
</div>
<div class="trunk-content article">
<div class="trunk-list baseInfo">
<form novalidate="novalidate" method="post" class="paw_info">
<table class="table2" style="margin-top:50px;margin-left:50px">
<tr>
<td class="l"><span style="color:red">*</span>登陆手机号码</td>
<td class="r">
<input type="text" readonly class="input txt" name="login_phone" id="login_phone" style="width:430px" value="`+tel+`">
<span id="confirm_password_tip"></span></td>
</tr>
<tr>
<td class="l"><span style="color:red">*</span>短信验证码</td>
<td class="r"><input type="text" class="input txt" name="code" id="code" style="width:230px" placeholder="请输入短信验证码">
<span id="confirm_password_tip"></span>
<button id="sendtelCode" class="tj btn" target-form="paw_info">发送验证码</button>
</td>
</tr>
<tr>
<td class="l"></td>
<td class="r">
<input type="submit" id="check-code-btn" class="tj btn ajax-post" value="保存" style="margin-top:40px;width:200px" title="" target-form="paw_info">
<input type="button" class="tj btn ajax-post" value="返回" onclick='window.location.href = "{:U('safe/editModify')}"' style="margin-top:40px;width:200px;margin-left:50px" title="" target-form="paw_info">
</td>
</tr>
</table>
</form>
</div>
</div>`
});
$('#sendtelCode').on('click',function() {
if ($(this).hasClass('g-btntn')) {
return false;
}
var phone = $.trim($('#login_phone').val());
if (phone == '') {
alert("手机号不能为空");
return false;
}
if (phone.length !== 11 || !(/^[1][35789][0-9]{9}$/.test(phone))) {
pmsg.msg("格式不正确");
return false;
}
$.ajax({
type:'post',
dataType:'json',
data:{'phone':phone, 'exceptExists':1},
url:'{:U("telsafecode")}',
success:function(data) {
if (data.status ==1) {
r(1);
} else {
alert(data.msg);
}
},
error:function() {
alert('服务器开小差了,请稍后再试。');
}
});
var r = function(i, t) {
var e = $('#sendtelCode');
var t = 60;
e.addClass('disabled').attr('disabled', true).text(t+'秒');
var a = setInterval(function() {
t--;
e.text(t+'秒');
t>0 || (clearInterval(a),e.removeClass('disabled').attr('disabled', false).text('重新发送'));
},1000);
};
return false;
});
$('#check-code-btn').on('click', function(){
$.ajax({
type:"POST",
url:"{:U('Safe/ajaxVerifyCode')}",
data:{'phone':tel, 'code':$('#code').val()},
dataType:'json',
success:function(verifyResponse){
if (verifyResponse.status == 0) {
layer.msg(verifyResponse.info);
} else { // 验证成功
layer.closeAll();
layer.msg('验证成功')
var address = res.address
console.log(res)
var email = res.email
var account_type = res.account_type
if(account_type == 1) {
var complany = 'checked';
var personal = '';
}else {
var complany = '';
var personal = 'checked';
}
var bank_card = res.bank_card
var complanystatus = res.complanystatus
var personalstatus = res.personalstatus
var anothpic = res.anothpic
var alipayAccount = res.alipay_account
var alipayRealName = res.alipay_real_name
layer.open({
type: 1
,title: false //不显示标题栏
,closeBtn: true
,area: ["800px","700px"]
,shade: 0.8
,id: 'LAY_layuipro' //设定一个id防止重复弹出
,moveType: 1 //拖拽模式0或者1
,content: '<div class="trunk-title"> <span class="title_main">结算信息</span></div> <div class="trunk-content article"> <div class="trunk-list baseInfo">'
+'<form action="{:U("safe/edit")}" novalidate="novalidate" method="post" class="paw_info">'
+'<table class="table2" style="margin-top:20px;margin-left:30px;width:100%" >'
+'<tr><td class="l">电话:</td><td class="r"><input type="text" class="input txt" name="tel" id="password" style="width:430px" placeholder="" value="'+tel+'">'
+'<span id="password_tip"></span></td>'
+'</tr><tr><td class="l">联系地址:</td>'
+'<td class="r"><input type="text" class="input txt" name="address" id="confirm_password" style="width:430px" placeholder="" value="'+address+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">邮箱:</td><td class="r"><input type="text" class="input txt" name="email" id="confirm_password" style="width:430px" placeholder="" value="'+email+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
// +' <tr><td class="l">账户类型:</td><td class="r"><input type="radio" class="input txt" name="account_type" value="公司" '+complany+'>公司<input type="radio" class="input txt" style="margin-left:20px" name="account_type" value="个人" '+personal+'>个人'
// +'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">开户银行:</td><td class="r"><input type="text" class="input txt" name="bank_name" id="confirm_password" style="width:430px" placeholder="" value="'+res.bank_name+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">银行账户名:</td><td class="r"><input type="text" class="input txt" name="bank_account" id="bank_account" style="width:430px" placeholder="" value="'+res.bank_account+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">银行账号:</td><td class="r"><input type="text" class="input txt" name="bank_card" id="bank_card" style="width:430px" placeholder="" value="'+res.bank_card+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">支付宝真实姓名:</td><td class="r"><input type="text" class="input txt" name="alipay_real_name" id="alipay_real_name" style="width:430px" placeholder="" value="'+res.alipay_real_name+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr><td class="l">支付宝账户:</td><td class="r"><input type="text" class="input txt" name="alipay_account" id="alipay_account" style="width:430px" placeholder="" value="'+res.alipay_account+'">'
+'<span id="confirm_password_tip"></span></td></tr>'
+' <tr> <td class="l" style="margin-top:20px">补充协议:</td><td class="r">'
+' <input type="hidden" name="agreementpic" id="" value=""/>'
+'<div id="uploader-demo" > <div id="agreementpic"><div class="webuploader-pick" style="line-height:30px" onclick="">点击上传</div></div>'
+'<div id="agreementpicList" class="uploader-list" style="display: flex;"></div></td></tr>'
+'<tr><td class="l" colspan="5"><div style="margin-top:40px;" id="tab"><span style="padding-left:20px;color:#26c7dbd4" >*须补充修改协议(联系平台签署)</span></div> </td></tr>'
+'<tr style=""><td class="l"></td><td style="margin-top:50px" class="r">'
+'<input type="submit" class="tj btn ajax-post" value="保存" style="margin-top:40px;width:200px" title="" target-form="paw_info">'
+'<input type="button" id="btn" class="tj btn ajax-post" value="返回" style="margin-top:40px;width:200px;margin-left:50px" title="" target-form="paw_info"></td> </tr></table></form>'
+'</div></div></div>'
// ,content:content
})
$("#btn").click(function() {
window.location.href = "{:U('safe/editModify')}"
})
var uploaderImgagreementpic = WebUploader.create({
// 选完文件后,是否自动上传。
auto: true,
// swf文件路径
swf: '__STATIC__/webuploader/Uploader.swf',
// 文件接收服务端。
server: "{:U('File/uploadPicture',array('session_id'=>session_id(),'flag'=>true))}",
// 选择文件的按钮。可选。
// 内部根据当前运行是创建可能是input元素也可能是flash.
pick: {
id:'#agreementpic',
multiple:true
},
// dnd: false,
paste: document.body,
accept: {
title: '图片',
extensions: 'png,gif,jpg,jpeg,bmp',
mimeTypes: '.png,.gif,.jpg,.jpeg,.bmp',
},
// 不压缩image, 默认如果是jpeg文件上传前会压缩一把再上传
resize: false,
disableGlobalDnd: true,
fileNumLimit:5,
threads:5,
thumb:true,
compress:false,
prepareNextFile: true,
formData: function(){return $.extend(true, {}, userInfo);},
chunked:false,
duplicate: true
});
var imgListagreementpicData = [];
<?php if (!empty($promoteInfo['valuedata'])) :?>
var html = '';
$('#agreementpicList').css('margin-top','10px');
<?php foreach ($promoteInfo['valuedata'] as $value1) { ?>
<?php $value1 = (int)$value1; ?>
imgListagreementpicData.push(<?=$value1?>);
html += '<div id="' + <?=$value1?> + '" class="item flooring_page_img_box" style="margin-right: 10px;">';
html += '<a href="javascript:;"><img src="<?=get_cover($value1,"path")?>" style="width: 100px;height: 100px;cursor: move;"></a>';
html += '<h4 class="info" style="text-align: center;">';
html += '<a href="javascript:;" class="jsdelzip table_click" style="float:none;display:inline-block;" img-id="' + <?=$value1?> + '">删除</a>';
html += '</h4>';
html += '<div class="progress progress-striped active" style="display: none;">';
html += '<div class="progress-bar" role="progressbar" style="width: 100%;">100%</div>';
html += '</div>';
html += '</div>';
<?php }?>
$('#agreementpicList').html(html);
$('#agreementpicList').children().children('h4').children('.jsdelzip').on('click', function() {
var thisId = $(this).attr('img-id');
$(this).parent().parent().remove();
$.each(imgListagreementpicData,function(index, item) {
if (thisId == item) {
imgListagreementpicData.splice(index,1);
return false;
}
});
setagreementpicVal();
});
<?php endif ;?>
var thisIndex1 = 0;
var imgagreementpicList = $("#agreementpicList");
uploaderImgagreementpic.on( 'fileQueued', function( file ) {
var html = '';
html += '<div id="' + file.id + '" class="item" style="margin-right: 10px;">';
html += '<a href="javascript:;"><img src="" style="width: 100px;height: 100px;cursor: move;"></a>';
html += '<h4 class="info">' + file.name + '</h4>';
html += '<p class="state">等待上传...</p>';
html += '</div>';
$.each(imgListagreementpicData,function(index, item) {
if (thisId == item) {
imgListagreementpicData.splice(index,1);
return false;
}
});
setagreementpicVal();
});
<?php endif ;?>
var thisIndex1 = 0;
var imgagreementpicList = $("#agreementpicList");
uploaderImgagreementpic.on( 'fileQueued', function( file ) {
var html = '';
html += '<div id="' + file.id + '" class="item" style="margin-right: 10px;">';
html += '<a href="javascript:;"><img src="" style="width: 100px;height: 100px;cursor: move;"></a>';
html += '<h4 class="info">' + file.name + '</h4>';
html += '<p class="state">等待上传...</p>';
html += '</div>';
imgagreementpicList.append(html);
imgagreementpicList.css('margin-top','10px');
imgagreementpicList.append(html);
imgagreementpicList.css('margin-top','10px');
var img1 = imgagreementpicList.children('#'+file.id).find('img');
uploaderImgagreementpic.makeThumb(file, function (error, src) {
if (error) {
return;
}
img1.attr('src', src);
}, 300, 300);
});
var img1 = imgagreementpicList.children('#'+file.id).find('img');
uploaderImgagreementpic.makeThumb(file, function (error, src) {
if (error) {
return;
}
img1.attr('src', src);
}, 300, 300);
});
// 文件上传过程中创建进度条实时显示。
uploaderImgagreementpic.on( 'uploadProgress', function( file, percentage ) {
var $li = $( '#'+file.id ),
$percent = $li.find('.progress .progress-bar');
// 避免重复创建
if ( !$percent.length ) {
$percent = $('<div class="progress progress-striped active">' +
'<div class="progress-bar" role="progressbar" style="width: 0%">' +
'</div>' +
'</div>').appendTo( $li ).find('.progress-bar');
}
// 文件上传过程中创建进度条实时显示。
uploaderImgagreementpic.on( 'uploadProgress', function( file, percentage ) {
var $li = $( '#'+file.id ),
$percent = $li.find('.progress .progress-bar');
// 避免重复创建
if ( !$percent.length ) {
$percent = $('<div class="progress progress-striped active">' +
'<div class="progress-bar" role="progressbar" style="width: 0%">' +
'</div>' +
'</div>').appendTo( $li ).find('.progress-bar');
}
$li.find('p.state').text('上传中');
$percent.css( 'width', percentage * 100 + '%' );
$percent.text( (percentage * 100).toFixed(0) + '%' );
});
$li.find('p.state').text('上传中');
$percent.css( 'width', percentage * 100 + '%' );
$percent.text( (percentage * 100).toFixed(0) + '%' );
});
uploaderImgagreementpic.on( 'uploadSuccess', function( file , response) {
console.log(response)
imgListagreementpicData.push(Number(response.id));
setagreementpicVal();
uploaderImgagreementpic.on( 'uploadSuccess', function( file , response) {
console.log(response)
imgListagreementpicData.push(Number(response.id));
setagreementpicVal();
$( '#'+file.id ).find('p.state').text('已上传').fadeOut(800);
//alert(JSON.stringify(response));
$('#'+file.id).find('h4.info').append('<a href="javascript:;" class="jsdelzip table_click" style="float:none;display:inline-block;margin-left:10px;">删除</a>');
$('#'+file.id).find('.jsdelzip').on('click',function() {
uploaderImgagreementpic.removeFile( file.id );
$('#'+file.id).remove();
$( '#'+file.id ).find('p.state').text('已上传').fadeOut(800);
//alert(JSON.stringify(response));
$('#'+file.id).find('h4.info').append('<a href="javascript:;" class="jsdelzip table_click" style="float:none;display:inline-block;margin-left:10px;">删除</a>');
$('#'+file.id).find('.jsdelzip').on('click',function() {
uploaderImgagreementpic.removeFile( file.id );
$('#'+file.id).remove();
$.each(imgListagreementpicData,function(index, item) {
if (response.id == item) {
imgListagreementpicData.splice(index,1);
return false;
}
});
setagreementpicVal();
console.log(imgListagreementpicData);
$.each(imgListagreementpicData,function(index, item) {
if (response.id == item) {
imgListagreementpicData.splice(index,1);
return false;
}
});
setagreementpicVal();
console.log(imgListagreementpicData);
return false;
});
});
function setagreementpicVal()
{
var agreementpic = '';
$.each(imgListagreementpicData,function(index, item) {
agreementpic += item + ',';
});
console.log('444444444444444444')
console.log(agreementpic)
agreementpic = agreementpic.substring(0, agreementpic.length - 1);
$('input[name=agreementpic]').val(agreementpic);
}
return false;
});
});
function setagreementpicVal()
{
var agreementpic = '';
$.each(imgListagreementpicData,function(index, item) {
agreementpic += item + ',';
});
console.log('444444444444444444')
console.log(agreementpic)
agreementpic = agreementpic.substring(0, agreementpic.length - 1);
$('input[name=agreementpic]').val(agreementpic);
}
}
}
});
return false;
})
}
})
}
}
</script>

@ -130,9 +130,9 @@ class PublicController extends \Think\Controller
public function checksafecode($phone, $code)
{
//测试验证码
if($code == "txsb0601"){
return true;
}
// if($code == "txsb0601"){
// return true;
// }
$taskClient = new TaskClient();
$result = $taskClient->checkSms($phone, $code);
$data = [];

@ -111,7 +111,7 @@ class UcenterMemberModel extends Model{
'email' => $email,
'mobile' => $mobile,
);
//验证手机
if(empty($data['mobile'])) unset($data['mobile']);
/* 添加用户 */
@ -120,6 +120,8 @@ class UcenterMemberModel extends Model{
$data['email'] = $email;
$data['password'] = think_ucenter_md5($password, UC_AUTH_KEY);
$data['second_pwd'] = think_ucenter_md5($second_pwd, UC_AUTH_KEY);
$data['mobile'] = $mobile;
// dump($data);die();
try {
$status = M('UcenterMember', 'sys_')->add($data);
} catch (\Throwable $th) {

@ -2229,7 +2229,7 @@ CREATE TABLE `tab_payment_member` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`real_name` varchar(255) DEFAULT '' COMMENT '真实姓名',
`mobile` char(11) NOT NULL COMMENT '手机号码',
`last_login_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '最后登录时间',
`last_login_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '最后登录时间',
PRIMARY KEY (`id`),
KEY `mobile` (`mobile`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='打款登陆账号';
@ -2294,8 +2294,46 @@ alter table tab_game_supersign add column `merchant_way` tinyint(3) unsigned NOT
alter table tab_coin_pay_order add column `merchant_way` tinyint(3) unsigned NOT NULL default 0 comment '商户支付方式';
alter table tab_test_order add column `merchant_way` tinyint(3) unsigned NOT NULL default 0 comment '商户支付方式';
alter table tab_bind_recharge add column `merchant_way` tinyint(3) unsigned NOT NULL default 0 comment '商户支付方式'
--- 押金收到时间
ALTER TABLE `tab_president_deposit`
ADD COLUMN `pay_accept_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '押金收到时间' AFTER `pay_confirm_time`;
--20200710 ylw
ALTER TABLE `tab_reward_record`
ADD COLUMN `promote_id` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '会长id' AFTER `company_id`,
ADD COLUMN `settlement_info` json NOT NULL AFTER `accounts`,
ADD COLUMN `confirm_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '确认时间' AFTER `remark`;
CREATE TABLE `tab_reward_detail` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`company_type` tinyint(1) unsigned NOT NULL DEFAULT '3' COMMENT '公司类型 1上游 2下游 3内部',
`company_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '公司id',
`company_name` varchar(64) NOT NULL DEFAULT '' COMMENT '公司/部门名称',
`promote_account` varchar(64) NOT NULL DEFAULT '' COMMENT '会长账号',
`settlement_type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '结算方式 1线下结算 2线上结算 ',
`amount` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '奖罚额度',
`record_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '记录id',
`type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '1奖励 2惩罚',
`confirm_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '结算时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
ALTER TABLE `tab_reward_record`
DROP COLUMN `company_type`,
DROP COLUMN `company_id`,
DROP COLUMN `promote_id`,
DROP COLUMN `settlement_info`,
DROP COLUMN `money`,
MODIFY COLUMN `reward_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '奖罚类型 1奖励 2惩罚 3双向' AFTER `id`,
MODIFY COLUMN `relation_game_id` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '游戏id 0其他' AFTER `accounts`
---- 2020-7-20 ylw
ALTER TABLE `tab_promote`
ADD COLUMN `alipay_real_name` varchar(30) NOT NULL DEFAULT '' COMMENT '支付宝真实姓名' AFTER `alipay_account`;
--chenzhi
ALTER TABLE `tab_game`
ALTER TABLE `tab_game`
ADD COLUMN `select_package_name` tinyint(2) NOT NULL DEFAULT 0 COMMENT '结算包名 0:原包名 1:现包名' AFTER `original_package_name`;
--chenzhi
@ -2315,6 +2353,23 @@ CREATE TABLE `tab_company_statement` (
`pay_amount` decimal(10,2) DEFAULT '0.00' COMMENT '总计',
`platform_amount` decimal(10,2) DEFAULT '0.00' COMMENT '平台流水金额',
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('数据误差渠道', 1);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('官方主渠道', 9);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('测试一级渠道', 685);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('坚果', 686);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('万盟天下', 687);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('海南万盟天下科技有限公司', 688);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('河南南北网络科技有限公司', 689);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('福建君易道网络科技有限公司', 690);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('泉州神战网络科技有限公司', 691);
INSERT INTO `sj_game_channel`.`sj_cptogether_company`(`name`, `channel_id`) VALUES ('北京浩游网讯科技有限公司', 692);
ALTER TABLE `sj_game_channel`.`sj_cptogether_company`
ADD COLUMN `tax_ratio` varchar(10) NULL DEFAULT '' COMMENT '税费费率' AFTER `tax_identification_number`,
ADD COLUMN `channel_radio` varchar(10) NULL DEFAULT '' COMMENT '渠道费率' AFTER `tax_ratio`,
ADD COLUMN `connection_address` longtext NULL COMMENT '联系地址' AFTER `channel_radio`;
ALTER TABLE `sj_game_channel`.`sj_cptogether_company`
ADD COLUMN `is_received` tinyint(2) NULL DEFAULT 0 COMMENT '是否为收款方' AFTER `connection_address`;
`verify_status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '审核状态 -2:汇总驳回 -1审批拒绝 0:系统生成 1:审核通过 2:对外发起 3:合作确认 4:汇总',
`verify_log` text NOT NULL COMMENT '审批相关信息json',
`pay_type` tinyint(2) DEFAULT '0' COMMENT '1甲方收款;2乙方收款',
@ -2334,11 +2389,18 @@ CREATE TABLE `tab_company_statement` (
ALTER TABLE `tab_company_statement`
ALTER TABLE `tab_company_statement`
ADD COLUMN `confirm_status` tinyint(2) NOT NULL DEFAULT 0 COMMENT '确认状态 0:未处理 1:发起 2审核' AFTER `verify_log`;
ALTER TABLE `tab_company_statement`
ALTER TABLE `tab_company_statement`
ADD COLUMN `confirm_log` text COMMENT '确认信息' AFTER `confirm_status`;
ALTER TABLE `tab_company_statement`
MODIFY COLUMN `verify_status` tinyint(2) NOT NULL DEFAULT 0 COMMENT '审核状态 -3:汇总驳回 -2:审核拒绝 -1管理员审批拒绝 0:系统生成 1:管理员审核通过 2:审核通过 3:汇总' AFTER `platform_amount`;
<<<<<<< HEAD
=======
INSERT INTO `sys_kv`(`id`, `key`, `value`, `type`, `remark`) VALUES (4, 'cp_company_api', 'http://10.0.1.161:8095/index.php?g=Api&m=CpJuheCompany&a=index', 'string', '聚合公司网址')
ALTER TABLE `sj_game_channel`.`sj_cptogether_company`
ADD COLUMN `is_qualifity` tinyint(2) NULL COMMENT '是否具有游戏资质 0 否 1 是' AFTER `is_received`;
>>>>>>> c3417bdd834f9ac023945503b0b5250720b402e5

Loading…
Cancel
Save