Merge pull request 'feature/more_finance_20201211' (#67) from feature/more_finance_20201211 into master

Reviewed-on: http://8.136.139.249:3000/wmtx/platform/pulls/67
master
廖金灵 4 years ago
commit 54266852cc

@ -2625,7 +2625,7 @@ function addOperationLog($options)
}
M("OperationLog","tab_")->add($addarray);
SM("OperationLog","tab_")->add($addarray);
}
function getLink($pid=0,&$arr){

@ -1057,3 +1057,37 @@ function showNumPercent($num)
}
}
//优化子站点实例化方法
function SM($name='', $tablePrefix='tab_',$is_subsiteTable=false)
{
if(empty($name)){
if(IS_SUBSITE){
return M($name, $tablePrefix,SUBSITE_DB);
}
}else{
$tableName = strtolower($tablePrefix.unCamelize($name));
if(is_subsiteTable($tableName) || $is_subsiteTable){
return M($name, $tablePrefix,SUBSITE_DB);
}
}
return M($name, $tablePrefix);
}
//判断是否有子站点表格
function is_subsiteTable($tableName,$is_subsiteTable=false)
{
if(IS_SUBSITE && ($is_subsiteTable || in_array($tableName,C('SUBSITE_TABLE')))){
return true;
}
return false;
}
/**
* 添加子站点条件
* @param [arrary] $map
* @param string $field 数据库查询字段
* @return void
*/
function addSubsiteWhere(&$map,$field){
if(IS_SUBSITE){
$map[$field] = ["in",[0,PARTNER_TYPE]];
}
}

@ -103,7 +103,7 @@ return array(
/* SESSION 和 COOKIE 配置 */
'SESSION_PREFIX' => 'onethink_admin', //session前缀
'SESSION_COOKIE_PATH' => '/admin.php',
'SESSION_COOKIE_PATH' => '/'.SUBSITE_INDEX,
'COOKIE_PREFIX' => 'onethink_admin_', // Cookie前缀 避免冲突
'VAR_SESSION_ID' => 'session_id', //修复uploadify插件无法传递session_id的bug
@ -113,5 +113,20 @@ return array(
'TMPL_EXCEPTION_FILE' => MODULE_PATH.'View/Public/exception.html',// 异常页面的模板文件
/*默认公司名称*/
'DEFAULT_COMPANY'=>"海南万盟天下科技有限公司",
'OFFICIEL_CHANNEL'=>"江息网络"
'OFFICIEL_CHANNEL'=>"江息网络",
/*分库的表格*/
'SUBSITE_TABLE'=>[
"sys_auth_group",
"tab_index_chart",
"tab_company_statement",
"tab_company_lack_statement_info",
"tab_company_statement_info",
"tab_company_statement_pool",
"tab_financial_summary",
"tab_pay_statement_info",
"tab_settleup_marketorder",
"tab_market_altogether",
"tab_cmd_tasks",
"tab_operation_log"
]
);

@ -406,6 +406,7 @@ class AdminController extends Controller {
}
session('ADMIN_MENU_LIST.'.$controller,$menus);
}
return $menus;
}

@ -147,7 +147,7 @@ class AuthManagerController extends AdminController{
*/
public function access(){
$this->updateRules();
$auth_group = M('AuthGroup')->where( array('status'=>array('egt','0'),'module'=>'admin','type'=>AuthGroupModel::TYPE_ADMIN) )
$auth_group = SM('auth_group',"sys_")->where( array('status'=>array('egt','0'),'module'=>'admin','type'=>AuthGroupModel::TYPE_ADMIN) )
->getfield('id,id,title,rules');
$node_list = $this->returnNodes();
$map = array('module'=>'admin','type'=>AuthRuleModel::RULE_MAIN,'status'=>1);
@ -205,12 +205,14 @@ class AuthManagerController extends AdminController{
}
}
if(isset($_POST['rules'])){
$isrules = true;
if(!empty($ruleiddata)){
$_POST['rules'] = array_merge($_POST['rules'],$ruleiddata);
}
sort($_POST['rules']);
$_POST['rules'] = implode( ',' , array_unique($_POST['rules']));
}else{
$isrules = false;
$_POST['rules'] = '';
}
$_POST['module'] = 'admin';
@ -220,7 +222,7 @@ class AuthManagerController extends AdminController{
if ( $data ) {
if ( empty($data['id']) ) {
\Think\Log::actionLog('AuthManager/createGroup','authGroup',1);
$r = $AuthGroup->add();
$r = $AuthGroup->syncAdd($data);
addOperationLog(array(
"op_type"=>0,
"key"=> $_POST['title'],
@ -228,7 +230,12 @@ class AuthManagerController extends AdminController{
));
}else{
\Think\Log::actionLog('AuthManager/editGroup','authGroup',1);
$r = $AuthGroup->save();
if($isrules){
$r = SM("auth_group","sys_")->save($data);
}else{
$r = $AuthGroup->where("id={$data['id']}")->syncSave($data);
}
//操作日志不传title表示是访问授权
$oparr = array(
"op_type"=>1,
@ -307,7 +314,8 @@ class AuthManagerController extends AdminController{
$savedata = [
"status"=>$status
];
$res = M("AuthGroup")->where("id in ({$ids})")->save($savedata);
// dd($savedata);
$res = D("AuthGroup")->where("id in ({$ids})")->syncSave($savedata);
if($res !==false ){
$this->success($msg['success'],$msg['url'],$msg['ajax']);
}else{
@ -570,7 +578,7 @@ class AuthManagerController extends AdminController{
$promoteData = '';
}
if ($AuthGroup->where("id = {$gid}")->save(array(
if ($AuthGroup->where("id = {$gid}")->syncSave(array(
'data_empower_type' => $data_empower_type,
'data_president' => $promoteData,
'show_data' => $show_data,
@ -619,7 +627,7 @@ class AuthManagerController extends AdminController{
$data = json_encode($data);
$AuthGroup->where(['id'=>$gid])->save(['market_percentage'=>$data]);
$AuthGroup->where(['id'=>$gid])->syncSave(['market_percentage'=>$data]);
$this->success("编辑成功",U("index"));

@ -35,7 +35,7 @@ class CompanyStatementController extends ThinkController
public function _initialize()
{
$this->admininfo = $_SESSION['onethink_admin']['user_auth'];
$this->DBModel = M("CompanyStatement","tab_");
$this->DBModel = SM("CompanyStatement","tab_");
parent::_initialize();
}
public function lists() {
@ -147,7 +147,7 @@ class CompanyStatementController extends ThinkController
// dd($map);
// $this->checkListOrCountAuthRestMap($map);//导出权限
//条件end
$data = M("company_statement","tab_")
$data = $this->DBModel
->field("id,withdraw_type,company_name,company_belong,statement_begin_time,statement_end_time,statement_money,platform_amount,verify_status,verify_log,confirm_status,confirm_log,op_time,remark")
->where($map)
->order("statement_begin_time desc,id desc")->page($page,$row)->select();
@ -210,7 +210,7 @@ class CompanyStatementController extends ThinkController
}
$v['oplist'] = $this->OpAuth($v);
}
$count = M("company_statement","tab_")->field("count(id) count,IFNULL(SUM(CASE WHEN withdraw_type < 2 THEN platform_amount ELSE 0 END),0) as platform_amount,SUM(statement_money) as statement_money")->where($map)->find();
$count = $this->DBModel->field("count(id) count,IFNULL(SUM(CASE WHEN withdraw_type < 2 THEN platform_amount ELSE 0 END),0) as platform_amount,SUM(statement_money) as statement_money")->where($map)->find();
// dd($count);
$params['p'] = $page;
$params['row'] = $row;
@ -236,7 +236,7 @@ class CompanyStatementController extends ThinkController
}
$id = $_REQUEST['id'];
//获取基本信息
$dbres = M("CompanyStatement","tab_")->where("id='{$id}'")->find();
$dbres = $this->DBModel->where("id='{$id}'")->find();
$first_party_info = json_decode($dbres['first_party_info'],true);
$second_party_info = json_decode($dbres['second_party_info'],true);
$statement_info = json_decode($dbres['statement_info'],true);
@ -328,12 +328,12 @@ class CompanyStatementController extends ThinkController
$params['second_party_info'] = json_encode($params['second_party_info'],JSON_UNESCAPED_UNICODE);
$params['statement_info'] = json_encode($params['statement_info'],JSON_UNESCAPED_UNICODE);
$y = M("CompanyStatement", "tab_")->where("id='{$params['id']}'")->find();
$y = $this->DBModel->where("id='{$params['id']}'")->find();
if($y['first_party_info'] != $params['first_party_info'] || $y['second_party_info'] != $params['second_party_info'] || $y['statement_info'] != $params['statement_info']){
$params['verify_status'] = 0;
$params['verify_log'] = json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y.m.d H:i:s")]);
$params['op_time'] = time();
M("CompanyStatement","tab_")->save($params);
$this->DBModel->save($params);
}
$this->ajaxReturn(["code"=>0,"msg"=>"ok"]);
}else{
@ -342,7 +342,7 @@ class CompanyStatementController extends ThinkController
}
$id = $_REQUEST['id'];
//获取基本信息
$dbres = M("CompanyStatement", "tab_")->where("id='{$id}'")->find();
$dbres = $this->DBModel->where("id='{$id}'")->find();
$dbres['first_party_info'] = json_decode($dbres['first_party_info'], true);
$dbres['second_party_info']= json_decode($dbres['second_party_info'], true);
$dbres['statement_info'] = json_decode($dbres['statement_info'], true);
@ -504,7 +504,7 @@ class CompanyStatementController extends ThinkController
if(!isset($_REQUEST['id'])) $this->error("参数错误");
$id = $_REQUEST['id'];
$data = M("CompanyStatement","tab_")->where(['id' => $id])->find();
$data = $this->DBModel->where(['id' => $id])->find();
$data['first_party_info'] = json_decode($data['first_party_info'], 1);//甲方
$data['second_party_info'] = json_decode($data['second_party_info'], 1);//乙方
@ -552,7 +552,7 @@ class CompanyStatementController extends ThinkController
if ($data['withdraw_type'] == 3 && $data['company_type'] == 2) {
$dbres = M("CompanyStatement","tab_")->where(['id' => $id])->find();
$dbres = $this->DBModel->where(['id' => $id])->find();
if($dbres['pay_type'] == 2){
//乙方收款
$dbres['company_info'] = $dbres['second_party_info'];
@ -766,8 +766,8 @@ class CompanyStatementController extends ThinkController
}
}
$Pool = M("company_statement_pool","tab_");
$Statemen = M("company_statement","tab_");
$Pool = SM("company_statement_pool","tab_");
$Statemen = $this->DBModel;
foreach ($datas as $k => $v) {
if(count($v['company_list']) <= 0){continue;}
$v['statement_num'] = "PL_".date('Ymd').date('His').sp_random_num(3);
@ -807,10 +807,10 @@ class CompanyStatementController extends ThinkController
}
if(!empty($info)){
$save["pool_id"]=$pool_id;
M("company_statement_info","tab_")->where("id in ({$info})")->save($save);
SM("company_statement_info","tab_")->where("id in ({$info})")->save($save);
}
if(!empty($v['del_lack_ids'])){
M("company_lack_statement_info","tab_")->where("id in ({$v['del_lack_ids']})")->save(["is_pool"=>1]);
SM("company_lack_statement_info","tab_")->where("id in ({$v['del_lack_ids']})")->save(["is_pool"=>1]);
}
//修改结算单规则
$this->updatePoolVerifyStatus($v['statement_ids'],2,"pool",$v['statement_num']);
@ -837,10 +837,10 @@ class CompanyStatementController extends ThinkController
}
//保存
protected function addStatementInfo($va,$k,&$v){
$StatementInfo = M("company_statement_info","tab_");
$StatementInfo = SM("company_statement_info","tab_");
$company_info = $va['company_info'];
$LackStatement = M("company_lack_statement_info","tab_");
$LackStatement = SM("company_lack_statement_info","tab_");
$no_pool_money = 300;
//统一比例字段
if($k == "up" || $k=="ups"){
@ -1044,7 +1044,7 @@ class CompanyStatementController extends ThinkController
"up_company_id"=>[],
"dowm_company_id"=>[],
];
$statement = M("company_statement","tab_")->field("count(id) count,company_id,company_belong")->group("company_id,company_belong")->select();
$statement = $this->DBModel->field("count(id) count,company_id,company_belong")->group("company_id,company_belong")->select();
$up_company_id = [];
$dowm_company_id= [];
foreach( $statement as $k=>$v){
@ -1159,7 +1159,7 @@ class CompanyStatementController extends ThinkController
if ($_REQUEST['relation_game_id']) {
$relation_game_id = implode(',',$_REQUEST['relation_game_id']);
// dd($relation_game_id);
$map['relation_game_id'] = ['in',$relation_game_id];
$radioMap['tab_company_game_ratio.relation_game_id'] = ['in',$relation_game_id];
@ -1182,7 +1182,7 @@ class CompanyStatementController extends ThinkController
$start_time = strtotime($_REQUEST['time_start']);
$end_time = strtotime($_REQUEST['time_end']) + 86399;
$check_add = M("company_statement","tab_")->field("statement_begin_time,statement_end_time,statement_info,company_type")->where(['company_id'=>$_REQUEST['company_id'],'withdraw_type'=>3])->select();
$check_add = $this->DBModel->field("statement_begin_time,statement_end_time,statement_info,company_type")->where(['company_id'=>$_REQUEST['company_id'],'withdraw_type'=>3])->select();
foreach ($check_add as $key => $value) {

@ -22,7 +22,7 @@ class CompanyStatementLackController extends ThinkController
public function _initialize()
{
$this->admininfo = $_SESSION['onethink_admin']['user_auth'];
$this->DBModel = M("CompanyLackStatementInfo","tab_");
$this->DBModel = SM("CompanyLackStatementInfo","tab_");
parent::_initialize();
}
public function lists() {
@ -226,8 +226,8 @@ class CompanyStatementLackController extends ThinkController
}
}
$Pool = M("company_statement_pool","tab_");
$Statemen = M("company_statement","tab_");
$Pool = SM("company_statement_pool","tab_");
$Statemen = SM("company_statement","tab_");
foreach ($datas as $k => $v) {
@ -253,10 +253,10 @@ class CompanyStatementLackController extends ThinkController
}
if(!empty($info)){
$save["pool_id"]=$pool_id;
M("company_statement_info","tab_")->where("id in ({$info})")->save($save);
SM("company_statement_info","tab_")->where("id in ({$info})")->save($save);
}
if(!empty($v['del_lack_ids'])){
M("company_lack_statement_info","tab_")->where("id in ({$v['del_lack_ids']})")->save(["is_pool"=>1]);
SM("company_lack_statement_info","tab_")->where("id in ({$v['del_lack_ids']})")->save(["is_pool"=>1]);
}
}
$this->ajaxReturn(array(
@ -296,7 +296,7 @@ class CompanyStatementLackController extends ThinkController
$verify_status = 2;
}
$StatementInfo = M("company_statement_info","tab_");
$StatementInfo = SM("company_statement_info","tab_");
if($va['pay_amount'] > 0){
//存成功
$company =[

@ -63,7 +63,7 @@ class CompanyStatementOfflineController extends ThinkController
//条件end
$data = M("company_statement_info","tab_")
$data = SM("company_statement_info","tab_")
->alias("c")
->field("c.*,p.statement_num,p.verify_status")
->where($map)
@ -103,7 +103,7 @@ class CompanyStatementOfflineController extends ThinkController
$v['oplist'] = $this->OpAuth($v);
}
$count = M("company_statement_info","tab_")->alias("c")->field("count(c.id) count,sum(c.statement_money) statement_money")->join("tab_company_statement_pool as p ON c.pool_id = p.id")->where($map)->find();
$count = SM("company_statement_info","tab_")->alias("c")->field("count(c.id) count,sum(c.statement_money) statement_money")->join("tab_company_statement_pool as p ON c.pool_id = p.id")->where($map)->find();
// dd($count);
$params['p'] = $page;
$params['row'] = $row;
@ -223,7 +223,7 @@ class CompanyStatementOfflineController extends ThinkController
$ids = $_REQUEST['ids'];
$payment_time = $_REQUEST['payment_time'];
//获取所有的母单id
$companyStatementInfo = M("company_statement_info","tab_");
$companyStatementInfo = SM("company_statement_info","tab_");
$statementPool = $companyStatementInfo->where("id in ($ids) and pay_status <> 1")->field("pool_id,count(id) count")->group("pool_id")->select();
$yPoolInfo = [];
foreach ($statementPool as $k => $v) {
@ -244,7 +244,7 @@ class CompanyStatementOfflineController extends ThinkController
$ires = $companyStatementInfo->where("id in ($ids)")->save($saveData);
//全部就打款成功,否则打款中
$companyStatementPool = M("company_statement_pool","tab_");
$companyStatementPool = SM("company_statement_pool","tab_");
foreach ($poolInfo as $k => $v) {
if($v['count'] == $yPoolInfo[$v['pool_id']]){
//打款成功
@ -271,7 +271,7 @@ class CompanyStatementOfflineController extends ThinkController
$is_export = true;
}
//获取基本信息
$dbres = M("company_statement_info","tab_")->where("id='{$id}'")->select();
$dbres = SM("company_statement_info","tab_")->where("id='{$id}'")->select();
$title = $dbres[0]['company_name'];
$this->assign("title",$title);
@ -289,7 +289,7 @@ class CompanyStatementOfflineController extends ThinkController
public function export(){
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
$ids = $_REQUEST['ids'];
$dbres = M("company_statement_info","tab_")->where("id in ({$ids})")->select();
$dbres = SM("company_statement_info","tab_")->where("id in ({$ids})")->select();
$is_export= false;
if (isset($_REQUEST['export']) && $_REQUEST['export']==1){
@ -312,13 +312,13 @@ class CompanyStatementOfflineController extends ThinkController
protected function setOneVerifyStatus($change_status,$op_pre,$id)
{
$dbres = M("company_statement_pool","tab_")->field("id,verify_status,verify_log")->where("id = {$id}")->find();
$dbres = SM("company_statement_pool","tab_")->field("id,verify_status,verify_log")->where("id = {$id}")->find();
$dbres['verify_log'] = json_decode($dbres['verify_log'],true);
$dbres['verify_log'][$op_pre.'_user']=$_SESSION['onethink_admin']['user_auth']["username"];
$dbres['verify_log'][$op_pre.'_time']=date("Y-m-d H:i:s");
$dbres['verify_log'] = json_encode($dbres['verify_log']);
$dbres['verify_status']=$change_status;
M("company_statement_pool","tab_")->save($dbres);
SM("company_statement_pool","tab_")->save($dbres);
}
public function OpAuth($info)

@ -51,7 +51,7 @@ class CompanyStatementPoolController extends ThinkController
public function _initialize()
{
$this->admininfo = $_SESSION['onethink_admin']['user_auth'];
$this->DBModel = M("CompanyStatementPool","tab_");
$this->DBModel = SM("CompanyStatementPool","tab_");
parent::_initialize();
}
@ -216,12 +216,12 @@ class CompanyStatementPoolController extends ThinkController
$is_export = true;
}
//获取基本信息
$infolist = M("company_statement_info","tab_")->field("*,'1' as st")->where("pool_id = '{$id}'")->select();
$infolist = SM("company_statement_info","tab_")->field("*,'1' as st")->where("pool_id = '{$id}'")->select();
//获取母单
$pool_info = M("company_statement_pool","tab_")->field('statement_num,create_lack_ids,verify_status,is_payment,withdraw_type,statement_begin_time,statement_end_time')->where("id={$id}")->find();
$pool_info = SM("company_statement_pool","tab_")->field('statement_num,create_lack_ids,verify_status,is_payment,withdraw_type,statement_begin_time,statement_end_time')->where("id={$id}")->find();
if(!empty($pool_info['create_lack_ids'])){
$l_ids = $pool_info['create_lack_ids'];
$lack_info = M("company_lack_statement_info","tab_")->field("*,'0' as st")->where("id in ({$l_ids})")->select();
$lack_info = SM("company_lack_statement_info","tab_")->field("*,'0' as st")->where("id in ({$l_ids})")->select();
$infolist =array_merge($infolist,$lack_info);
}
@ -251,12 +251,12 @@ class CompanyStatementPoolController extends ThinkController
$is_export = true;
}
//获取基本信息
$infolist = M("company_statement_info","tab_")->field("*,'1' as st")->where("pool_id = '{$id}'")->select();
$infolist = SM("company_statement_info","tab_")->field("*,'1' as st")->where("pool_id = '{$id}'")->select();
//获取母单
$pool_info = M("company_statement_pool","tab_")->field('statement_num,create_lack_ids,verify_status,is_payment,withdraw_type')->where("id={$id}")->find();
$pool_info = SM("company_statement_pool","tab_")->field('statement_num,create_lack_ids,verify_status,is_payment,withdraw_type')->where("id={$id}")->find();
if(!empty($pool_info['create_lack_ids'])){
$l_ids = $pool_info['create_lack_ids'];
$lack_info = M("company_lack_statement_info","tab_")->field("*,'0' as st")->where("id in ({$l_ids})")->select();
$lack_info = SM("company_lack_statement_info","tab_")->field("*,'0' as st")->where("id in ({$l_ids})")->select();
$infolist =array_merge($infolist,$lack_info);
}
@ -1143,7 +1143,7 @@ class CompanyStatementPoolController extends ThinkController
public function delPayInfo($id) {
$company_statement_info = M("company_statement_info","tab_")->field("id")->where("pool_id={$id}")->select();
$company_statement_info = SM("company_statement_info","tab_")->field("id")->where("pool_id={$id}")->select();
//有一笔单子已打款将不可撤回
foreach ($company_statement_info as $key => $value) {
if($value['pay_status'] == 1) {
@ -1151,14 +1151,14 @@ class CompanyStatementPoolController extends ThinkController
}
}
//线上打款审核状态撤回
M("company_statement_info","tab_")->where("pool_id={$id}")->save(['pay_verify_status'=>0,'verify_time'=>'','verify_member_id'=>0,'pay_check'=>0,'remark'=>'']);
SM("company_statement_info","tab_")->where("pool_id={$id}")->save(['pay_verify_status'=>0,'verify_time'=>'','verify_member_id'=>0,'pay_check'=>0,'remark'=>'']);
//线上打款支付宝状态撤回
M("company_statement_info","tab_")->where("pool_id={$id} and verify_status != 2")->save(['verify_status'=>0]);
SM("company_statement_info","tab_")->where("pool_id={$id} and verify_status != 2")->save(['verify_status'=>0]);
foreach ($company_statement_info as $key => $value) {
$is_hav = M("pay_statement_info","tab_")->where(['statement_info_id'=>$value['id']])->find();
$is_hav = SM("pay_statement_info","tab_")->where(['statement_info_id'=>$value['id']])->find();
if ($is_hav) {
M("pay_statement_info","tab_")->where(['statement_info_id'=>$value['id']])->delete();
SM("pay_statement_info","tab_")->where(['statement_info_id'=>$value['id']])->delete();
}
}
@ -1171,7 +1171,7 @@ class CompanyStatementPoolController extends ThinkController
$ids = $_REQUEST['ids'];
//修改info
$ires = M("company_statement_info","tab_")->where("pool_id='{$ids}'")->save(['pay_type'=>3,'pay_status'=>1]);
$ires = SM("company_statement_info","tab_")->where("pool_id='{$ids}'")->save(['pay_type'=>3,'pay_status'=>1]);
if($ires !== false){
$this->setVerifyStatus(1,4,"payment");
}
@ -1296,7 +1296,7 @@ class CompanyStatementPoolController extends ThinkController
public function setPayment(){
if(!isset($_REQUEST['id'])) $this->error("参数错误");
$id = $_REQUEST['id'];
$CompanyInfo = M("company_statement_info","tab_")
$CompanyInfo = SM("company_statement_info","tab_")
->alias('i')
->field("i.id,i.pool_id,i.company_name,i.company_info,i.statement_money,p.statement_num,i.remark,i.pay_status,p.statement_money all_money,i.verify_status")
->join("tab_company_statement_pool p ON p.id = i.pool_id")
@ -1323,7 +1323,7 @@ class CompanyStatementPoolController extends ThinkController
if(!isset($_REQUEST['info'])) $this->error("参数错误");
$info = $_REQUEST['info'];
$pool_id = $_REQUEST['pool_id'];
$CompanyInfo = M("company_statement_info","tab_");
$CompanyInfo = SM("company_statement_info","tab_");
//循环保存
foreach($info as $k=>$v){
$ydata = $CompanyInfo->where("id= '{$k}'")->find();
@ -1364,7 +1364,7 @@ class CompanyStatementPoolController extends ThinkController
public function viewPayment(){
if(!isset($_REQUEST['id'])) $this->error("参数错误");
$id = $_REQUEST['id'];
$CompanyInfo = M("company_statement_info","tab_")
$CompanyInfo = SM("company_statement_info","tab_")
->alias('i')
->field("i.id,i.pool_id,i.company_name,i.company_info,i.statement_money,p.statement_num,i.remark,i.pay_status,i.verify_status,p.statement_money all_money")
->join("tab_company_statement_pool p ON p.id = i.pool_id")
@ -1487,11 +1487,11 @@ class CompanyStatementPoolController extends ThinkController
if(!isset($_REQUEST['id'])) $this->error("参数错误");
$id = $_REQUEST['id'];
//获取结算信息
$v = M("company_statement_info","tab_")->where("id = '{$id}'")->find();
$v = SM("company_statement_info","tab_")->where("id = '{$id}'")->find();
if(empty($v)){
$this->error("请勿重复操作");
}
$pool = M("company_statement_pool","tab_")->where("id = {$v['pool_id']}")->find();
$pool = SM("company_statement_pool","tab_")->where("id = {$v['pool_id']}")->find();
// dump($pool);
@ -1520,7 +1520,7 @@ class CompanyStatementPoolController extends ThinkController
"withdraw_type"=>$v['withdraw_type'],
"remark"=>$v["remark"],
];
$l_id = M("company_lack_statement_info","tab_")->add($lackcompany);
$l_id = SM("company_lack_statement_info","tab_")->add($lackcompany);
//汇总表
$pool_data = [
@ -1539,8 +1539,8 @@ class CompanyStatementPoolController extends ThinkController
}else{
$pool_data['create_lack_ids'] = $pool['create_lack_ids'].",".$l_id;
}
M("company_statement_pool","tab_")->save($pool_data);
M("company_statement_info","tab_")->where("id='{$id}'")->delete();
SM("company_statement_pool","tab_")->save($pool_data);
SM("company_statement_info","tab_")->where("id='{$id}'")->delete();
$this->ajaxReturn(array(
'status' => 1,
"info"=>"不结算成功"
@ -1563,7 +1563,7 @@ class CompanyStatementPoolController extends ThinkController
$re_op = true;
$create_lack_ids = $db_res['create_lack_ids'];
if(!empty($create_lack_ids) && !$is_qz){
$clsi = M("company_lack_statement_info","tab_")->where("is_pool = 1 and id in ({$create_lack_ids})")->find();
$clsi = SM("company_lack_statement_info","tab_")->where("is_pool = 1 and id in ({$create_lack_ids})")->find();
$re_op = true;
if(!empty($clsi)){
$re_op = false; //被引用无法重算
@ -1592,32 +1592,32 @@ class CompanyStatementPoolController extends ThinkController
//执行删除
$dids = $info['del_lack_ids'];
$cids = $info['create_lack_ids'];
M()->startTrans();
SM()->startTrans();
//删除info
$infores = M("company_statement_info","tab_")->where("pool_id = {$info['id']}")->delete();
$infores = SM("company_statement_info","tab_")->where("pool_id = {$info['id']}")->delete();
if($infores === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"重算失败"));
}
//删除自己
$poolres = $this->DBModel->where("id = {$info['id']}")->delete();
if($poolres === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"重算失败"));
}
//修改引用不足单
if(!empty($dids)){
$dres = M("company_lack_statement_info","tab_")->where("id in ({$dids})")->save(['is_pool'=>0]);
$dres = SM("company_lack_statement_info","tab_")->where("id in ({$dids})")->save(['is_pool'=>0]);
if($dres === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"重算失败"));
}
}
//删除创建的不足单
if(!empty($cids)){
$cres = M("company_lack_statement_info","tab_")->where("id in ({$cids})")->delete();
$cres = SM("company_lack_statement_info","tab_")->where("id in ({$cids})")->delete();
if($cres === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"重算失败"));
}
}
@ -1626,7 +1626,7 @@ class CompanyStatementPoolController extends ThinkController
$type = $info['withdraw_type'];
A("CompanyStatementSet")->promoteUserPool($type,$stime,true);
M()->commit();
SM()->commit();
$this->ajaxReturn(array(
'status' => 1,
'info' => "重算成功"
@ -1635,19 +1635,19 @@ class CompanyStatementPoolController extends ThinkController
public function cancelQzPool($info){
if(!empty($info['del_lack_ids'])){
M()->startTrans();//事务
$dbres = M("company_lack_statement_info","tab_")->where("id in ({$info['del_lack_ids']})")->save(['is_pool'=>0]);
SM()->startTrans();//事务
$dbres = SM("company_lack_statement_info","tab_")->where("id in ({$info['del_lack_ids']})")->save(['is_pool'=>0]);
$poolres = $this->DBModel->where("id = {$info['id']}")->delete();
$infores = M("company_statement_info","tab_")->where("pool_id = {$info['id']}")->delete();
$infores = SM("company_statement_info","tab_")->where("pool_id = {$info['id']}")->delete();
if($dbres !== false && $poolres !== false && $infores !== false){
M()->commit();
SM()->commit();
$this->ajaxReturn(array(
'status' => 1,
'info' => "撤销汇总成功"
));
}
}
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array(
'status' => 0,
'info' => "撤销汇总失败"
@ -1662,50 +1662,50 @@ class CompanyStatementPoolController extends ThinkController
$dids = $info['del_lack_ids'];
$cids = $info['create_lack_ids'];
M()->startTrans();//事务
SM()->startTrans();//事务
//删除info
$infores = M("company_statement_info","tab_")->where("pool_id = {$info['id']}")->delete();
$infores = SM("company_statement_info","tab_")->where("pool_id = {$info['id']}")->delete();
if($infores === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"撤销汇总失败"));
}
//删除自己
$poolres = $this->DBModel->where("id = {$info['id']}")->delete();
if($poolres === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"撤销汇总失败"));
}
//修改结算单信息
$st_res = M("company_statement","tab_")->field("id,verify_status,verify_log")->where("id in ({$sids})")->select();
$st_res = SM("company_statement","tab_")->field("id,verify_status,verify_log")->where("id in ({$sids})")->select();
foreach($st_res as $k=>&$v){
$v['verify_log'] = json_decode($v['verify_log'],true);
$v['verify_log']['pool_user']=$this->admininfo["username"];
$v['verify_log']['pool_time']=date("Y.m.d H:i:s");
$v['verify_log'] = json_encode($v['verify_log']);
$v['verify_status']=-2;
$stres = M("company_statement","tab_")->save($v);
$stres = SM("company_statement","tab_")->save($v);
if($stres === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"撤销汇总失败"));
}
}
//修改引用不足单
if(!empty($dids)){
$dres = M("company_lack_statement_info","tab_")->where("id in ({$dids})")->save(['is_pool'=>0]);
$dres = SM("company_lack_statement_info","tab_")->where("id in ({$dids})")->save(['is_pool'=>0]);
if($dres === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"撤销汇总失败"));
}
}
//删除创建的不足单
if(!empty($cids)){
$cres = M("company_lack_statement_info","tab_")->where("id in ({$cids})")->delete();
$cres = SM("company_lack_statement_info","tab_")->where("id in ({$cids})")->delete();
if($cres === false){
M()->rollback();
SM()->rollback();
$this->ajaxReturn(array('status' => 0,"info"=>"撤销汇总失败"));
}
}
M()->commit();
SM()->commit();
$this->ajaxReturn(array(
'status' => 1,
"info"=>"撤销汇总成功"
@ -1724,7 +1724,7 @@ class CompanyStatementPoolController extends ThinkController
$re_op = true;
if(!empty($create_lack_ids) && !$is_qz){
$clsi = M("company_lack_statement_info","tab_")->where("is_pool = 1 and id in ({$create_lack_ids})")->find();
$clsi = SM("company_lack_statement_info","tab_")->where("is_pool = 1 and id in ({$create_lack_ids})")->find();
$re_op = true;
if(!empty($clsi)){
$re_op = false; //被引用无法重算
@ -1912,7 +1912,7 @@ class CompanyStatementPoolController extends ThinkController
foreach($value as $akey => $aval) {
if ($st[$key][$akey] == 1) {
$model = M("company_statement_info","tab_");
$model = SM("company_statement_info","tab_");
if (!$handledata[$key][1]) {
$handledata[$key][1] = 1;
@ -1922,7 +1922,7 @@ class CompanyStatementPoolController extends ThinkController
} else {
$model = M("company_lack_statement_info","tab_");
$model = SM("company_lack_statement_info","tab_");
if (!$handledata[$key][0]) {
$handledata[$key][0] = 1;
@ -1973,7 +1973,7 @@ class CompanyStatementPoolController extends ThinkController
$statement_info_data = json_encode($statement_info);
$r_data = $model->field("fine,reward")->where(['id'=>$key])->find();
if($model == M("company_statement_info","tab_")) {
if($model == SM("company_statement_info","tab_")) {
$reward += $r_data['reward'];
$fine += $r_data['fine'];
} else {
@ -1989,7 +1989,7 @@ class CompanyStatementPoolController extends ThinkController
}
//die();
M("company_statement_pool","tab_")->where(['id'=>$id])->save(['pay_amount'=>$statement_amount,'statement_money'=>$statement_amount+$reward-$fine,'lack_statement_money'=>$statement_lack_amount+$lreward-$lfine]);
SM("company_statement_pool","tab_")->where(['id'=>$id])->save(['pay_amount'=>$statement_amount,'statement_money'=>$statement_amount+$reward-$fine,'lack_statement_money'=>$statement_lack_amount+$lreward-$lfine]);
$this->ajaxReturn(['status'=>1,'info'=>'保存成功']);
@ -2081,7 +2081,7 @@ class CompanyStatementPoolController extends ThinkController
$save['reward'] = $svalue['reward'];
$save['is_limit'] = 1;
M("pay_statement_info", "tab_")->add($save);
SM("pay_statement_info", "tab_")->add($save);
}
} else {
@ -2100,7 +2100,7 @@ class CompanyStatementPoolController extends ThinkController
$save['fine'] = $svalue['fine'];
$save['reward'] = $svalue['reward'];
M("pay_statement_info", "tab_")->add($save);
SM("pay_statement_info", "tab_")->add($save);
}
@ -2149,7 +2149,7 @@ class CompanyStatementPoolController extends ThinkController
$save['fine'] = $svalue['fine'];
$save['reward'] = $svalue['reward'];
M("pay_statement_info", "tab_")->add($save);
SM("pay_statement_info", "tab_")->add($save);
}
} else {
$save['statement_begin_time'] = $svalue['statement_begin_time'];
@ -2170,7 +2170,7 @@ class CompanyStatementPoolController extends ThinkController
$save['fine'] = $svalue['fine'];
$save['reward'] = $svalue['reward'];
M("pay_statement_info", "tab_")->add($save);
SM("pay_statement_info", "tab_")->add($save);
}
}
}

@ -84,9 +84,11 @@ class CompanyStatementSetController extends Controller {
$this->promoteCompanyStatement(0,$stime);
echo "∟----推广公司周结统计ok".PHP_EOL;
$this->promoteUserPool(0,$stime);
echo "∟----推广个人周结ok".PHP_EOL;
if(!IS_SUBSITE){
$this->promoteUserPool(0,$stime);
echo "∟----推广个人周结ok".PHP_EOL;
}
}
if($company == "cp"){
$this->cpStatement(0,$stime);
@ -115,10 +117,11 @@ class CompanyStatementSetController extends Controller {
$this->promoteCompanyStatement(2,$stime);
$this->officeCompanyStatement($stime); //官方结算
echo "∟----官方/推广公司月结&补点统计ok".PHP_EOL;
$this->promoteUserPool(1,$stime);
$this->promoteUserPool(2,$stime);
echo "∟----推广个人月结&补点统计ok".PHP_EOL;
if(!IS_SUBSITE){
$this->promoteUserPool(1,$stime);
$this->promoteUserPool(2,$stime);
echo "∟----推广个人月结&补点统计ok".PHP_EOL;
}
}
if($company == "cp"){
$this->cpStatement(1,$stime);
@ -255,8 +258,7 @@ class CompanyStatementSetController extends Controller {
// TODO:此处不判断现游戏名=原包名,但却不是同一款游戏
$verify_log=json_encode(["create_user"=>"system","create_time"=>date("Y-m-d H:i:s")]);
$GameDb = M("Game","tab_");
$StatementDb = M("CompanyStatement","tab_");
$StatementDb = SM("CompanyStatement","tab_");
$statement_begin_time = date("Y.m.d",$begintime);
$statement_end_time = date("Y.m.d",$endtime);
foreach($cpList as $k=>$v){
@ -451,6 +453,7 @@ class CompanyStatementSetController extends Controller {
"payed_time"=>["BETWEEN",[$begintime,$endtime]],
"game_id"=>["in",$gmstr]
];
D("Spend")->addSubsiteWhere($paywhere);
$paydb = M('spend','tab_');
$paylist = $paydb->field("game_id,SUM(pay_amount) pay_amount")->where($paywhere)->group("game_id")->select();
if(empty($paylist)){
@ -535,6 +538,7 @@ class CompanyStatementSetController extends Controller {
"s.payed_time"=>['between', [$begintime,$endtime]],
"s.promote_id"=>0
];
D("Spend")->addSubsiteWhere($spenMap,"s");
$list = $Spend->alias('s')->field('sum(s.pay_amount) pay_amount,g.relation_game_id,g.relation_game_name game_name')->where($spenMap)->group('relation_game_id')
->join("left join tab_game g on s.game_id = g.id")
->select();
@ -559,7 +563,7 @@ class CompanyStatementSetController extends Controller {
//非重算
return $add_data;
}
M("CompanyStatement","tab_")->add($add_data);
SM("CompanyStatement","tab_")->add($add_data);
}
/**
@ -653,7 +657,7 @@ class CompanyStatementSetController extends Controller {
//数据整合
$verify_log=json_encode(["create_user"=>"system","create_time"=>date("Y-m-d H:i:s")]);
$StatementDb = M("CompanyStatement","tab_");
$StatementDb = SM("CompanyStatement","tab_");
$statement_begin_time = date("Y.m.d",$begintime);
$statement_end_time = date("Y.m.d",$endtime);
@ -954,14 +958,17 @@ class CompanyStatementSetController extends Controller {
"s.payed_time"=>['between', [$begintime,$endtime]],
"s.is_check"=>1
];
D("Spend")->addSubsiteWhere($spenMap);
$cpMap = [
"s.pay_status"=>1,
"s.payed_time"=>['between', [$begintime,$endtime]]
];
D("Spend")->addSubsiteWhere($cpMap);
$cpAllMap =[
"s.pay_status"=>1,
"s.payed_time"=>['elt',$endtime]
];
D("Spend")->addSubsiteWhere($cpAllMap);
for ($i=0; $i <count($idarr); $i++) {
$company_id = $idarr[$i];
@ -1261,17 +1268,19 @@ class CompanyStatementSetController extends Controller {
"s.payed_time"=>['between', [$begintime,$endtime]],
"s.is_check"=>1
];
D("Spend")->addSubsiteWhere($spenMap,"s");
$cpallgame = [];
$cpgame = [];
$cpMap = [
"s.pay_status"=>1,
"s.payed_time"=>['between', [$begintime,$endtime]]
];
D("Spend")->addSubsiteWhere($cpMap,"s");
$cpAllMap = [
"s.pay_status"=>1,
"s.payed_time"=>['elt',$endtime]
];
D("Spend")->addSubsiteWhere($cpAllMap,"s");
// unset($cpAllMap["s.payed_time"]);
for ($i=0; $i <count($idarr); $i++) {
@ -1591,12 +1600,12 @@ class CompanyStatementSetController extends Controller {
$this->getPuPromoteSpend($pc,array_unique(array_keys($pc)),$begintime,$endtime);
// dump($pc);die();
$StatementDb = M("CompanyStatement","tab_");
$StatementDb = SM("CompanyStatement","tab_");
$statement_begin_time = date("Y.m.d",$begintime);
$statement_end_time = date("Y.m.d",$endtime);
// $RewardRecord = M("RewardRecord","tab_");
$LackStatement = M("company_lack_statement_info","tab_");
$StatementInfo = M("company_statement_info","tab_");
$LackStatement = SM("company_lack_statement_info","tab_");
$StatementInfo = SM("company_statement_info","tab_");
foreach($pc as $k=>&$v){
$fax_ratio = $v['taxation_rate'];
@ -1966,14 +1975,14 @@ class CompanyStatementSetController extends Controller {
$data['del_lack_ids'] = implode(",",$data['del_lack_ids']);
$info = implode(",",$data['info_ids']);
unset($data['info_ids']);
$id = M("company_statement_pool","tab_")->add($data);
$id = SM("company_statement_pool","tab_")->add($data);
//回写
if(!empty($info)){
$save["pool_id"]=$id;
M("company_statement_info","tab_")->where("id in ({$info})")->save($save);
SM("company_statement_info","tab_")->where("id in ({$info})")->save($save);
}
if(!empty($data['del_lack_ids'])){
M("company_lack_statement_info","tab_")->where("id in ({$data['del_lack_ids']})")->save(["is_pool"=>1]);
SM("company_lack_statement_info","tab_")->where("id in ({$data['del_lack_ids']})")->save(["is_pool"=>1]);
}
}
@ -2149,6 +2158,7 @@ class CompanyStatementSetController extends Controller {
$game_id = D("Game")->changeRelationGameidToGameid($relation_game_id);
// dd($game_id);
$spenMap['s.game_id'] =['in',$game_id];
D("Spend")->addSubsiteWhere($spenMap);
//获取支付记录
$pay_amount = $Spend->alias('s')->field('sum(s.pay_amount) pay_amount')->where($spenMap)->find();
return $pay_amount['pay_amount'] ?? 0;
@ -2165,6 +2175,7 @@ class CompanyStatementSetController extends Controller {
"s.payed_time"=>['between', [$begintime,$endtime]],
"s.is_check"=>1
];
D("Spend")->addSubsiteWhere($spenMap);
$Pmap = [
"chain"=>["LIKE","%/{$promote_id}/%"],
@ -2305,7 +2316,7 @@ class CompanyStatementSetController extends Controller {
public function updateCompanyStatementData($id,$admin_user='system')
{
//获取数据
$StatementDb = M("CompanyStatement","tab_");
$StatementDb = SM("CompanyStatement","tab_");
$dbres = $StatementDb->where("id='{$id}'")->find();
//获取时间
$stime = $dbres['statement_end_time']-0+1;

@ -89,7 +89,7 @@ class DepositController extends ThinkController {
$sort = $data_order==3?'desc':'asc';
$map['order'] = $data_order_type.' '.$sort;
}
D(self::model_name)->addSubsiteWhere($map);
$map1=$map;
$map1['pay_status']=1;
@ -97,8 +97,12 @@ class DepositController extends ThinkController {
$total=null_to_0(D(self::model_name)->where($map1)->sum('pay_amount'));
$ttotal=null_to_0(D(self::model_name)->where('payed_time'.total(1))->where(array('pay_status'=>1))->sum('pay_amount'));
$ytotal=null_to_0(D(self::model_name)->where('payed_time'.total(5))->where(array('pay_status'=>1))->sum('pay_amount'));
$otherMap = ["pay_status"=>1];
D(self::model_name)->addSubsiteWhere($otherMap);
$ttotal=null_to_0(D(self::model_name)->where('payed_time'.total(1))->where($otherMap)->sum('pay_amount'));
$ytotal=null_to_0(D(self::model_name)->where('payed_time'.total(5))->where($otherMap)->sum('pay_amount'));
$this->assign('total',$total);
$this->assign('ttotal',$ttotal);
$this->assign('ytotal',$ytotal);

@ -1187,12 +1187,8 @@ class ExportController extends Controller
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;
}
$game_id = M("Game","tab_")->where('unique_code ' . $sy . ' ""')->getField("id",true);
$map['game_id'] = ['in',$game_id];
}
// if (intval(($endTime + 1) - $startTime) / (24 * 3600) <= 31) {
@ -1202,6 +1198,7 @@ class ExportController extends Controller
// $map = '1 = 2';
// $map1 = $map;
// }
D("Spend")->addSubsiteWhere($map);
$map1 = $map;
$map1['pay_status'] = 1;
$total = M('Spend','tab_')->where($map1)->sum('pay_amount');
@ -1280,7 +1277,7 @@ class ExportController extends Controller
mb_convert_variables('GBK', 'UTF-8', $xlsCell);
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
$accessNum = D('Spend')
$accessNum = M('Spend',"tab_")
->where($map)
->count();
@ -1289,7 +1286,7 @@ class ExportController extends Controller
// var_dump($count);die();
for($i = 1; $i <= $pages; $i++) {
$xlsData = D('Spend')
$xlsData = M('Spend',"tab_")
->field($fields)
->where($map)
->limit(($i-1)*$perSize ,$perSize)
@ -1433,6 +1430,7 @@ class ExportController extends Controller
$map['merchant_id'] = $_REQUEST['merchant_id'];
unset($_REQUEST['merchant_id']);
}
D('Deposit')->addSubsiteWhere($map);
$map1 = $map;
$map1['pay_status'] = 1;
@ -2598,7 +2596,7 @@ class ExportController extends Controller
unset($_REQUEST['merchant_id']);
}
addSubsiteWhere($map,"partner_type");
$orderData =M('test_order t', 'tab_')
->field("t.*,g.sdk_version")
->join("tab_game g on t.game_id = g.id","left")
@ -3452,7 +3450,7 @@ class ExportController extends Controller
$today = total(1);
$week = total(2);
$mounth = total(3);
D("Spend")->addSubsiteWhere($map,"tab_spend");
$data = $spend
->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)
@ -3473,6 +3471,7 @@ class ExportController extends Controller
//unset($_REQUEST['game_type']);
}
setPowerPromoteIds($map2);
D("Spend")->addSubsiteWhere($map2,"tab_spend");
$data2 = $spend
->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,
@ -3662,6 +3661,7 @@ class ExportController extends Controller
$today = total(1);
$week = total(2);
$mounth = total(3);
D("Spend")->addSubsiteWhere($map);
$data = $spend
->field('pay_way,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count')
->where($map)
@ -3672,6 +3672,7 @@ class ExportController extends Controller
$map2 = array();
$map2['pay_status'] = 1;
setPowerPromoteIds($map2);
D("Spend")->addSubsiteWhere($map2);
$data2 = $spend
->field('pay_way,
sum(IF(pay_time ' . $today . ',pay_amount,0)) as today,
@ -8356,296 +8357,296 @@ class ExportController extends Controller
/**
*充值-》财务管理-》游戏统计-》导出
*/
public function exportGameStatistics() {
$month = I("count_date");
$xlsName = $month . '游戏统计导出';
$xlsCell = array(
array('game_name','游戏'),
array('sdk_version','设备类型'),
array('game_type_name','游戏类型'),
array('partner_name','合作公司'),
array('cash_count','游戏现金金额'),
array('balance_coin_count','平台币直充支出'),
array('inside_cash_count','内充支出'),
array('all_cash_count','游戏内充值合计'),
array('notice_fail_count','联运通知失败合计'),
array('agg_wm_amount','聚合万盟数据'),
array('agg_wm_failed_amount','聚合万盟通知失败'),
array('test_amount','聚合平台测试订单'),
array('agg_amount','聚合其他渠道数据'),
array('agg_failed_amount','聚合其他渠道通知失败订单'),
);
$map = [];
$searchGameIds = null;
$game_ids = array_column(getGameByName(I("game_name"), I("sdk_type")), 'id');
$gameWhere = [];
$testStrWhere = '1=1';
if ($game_ids) {
$map['s.game_id'] = ['in', $game_ids];
$gameWhere['id'] = ['in', $game_ids];
}
if (!empty(I('partner_id'))) {
$map['g.partner_id'] = I('partner_id');
$gameWhere['partner_id'] = I('partner_id');
}
if (!empty(I('timestart'))) {
$timestart = strtotime(I('timestart'));
$map['_string'] = "s.payed_time >= {$timestart}";
$testStrWhere .= " and pay_time >= {$timestart}";
}
if (!empty(I('timeend'))) {
$timeend = strtotime(I('timeend') . ' 23:59:59');
if (!empty($map['_string'])) {
$map['_string'] .= " and ";
}
$map['_string'] .= " s.pay_time <= {$timeend}";
$testStrWhere .= " and pay_time <= {$timeend}";
}
if (!empty(I('game_type_id'))) {
$map['g.game_type_id'] = I('game_type_id');
$gameWhere['game_type_id'] = I('game_type_id', 0);
}
// public function exportGameStatistics() {
// $month = I("count_date");
// $xlsName = $month . '游戏统计导出';
// $xlsCell = array(
// array('game_name','游戏'),
// array('sdk_version','设备类型'),
// array('game_type_name','游戏类型'),
// array('partner_name','合作公司'),
// array('cash_count','游戏现金金额'),
// array('balance_coin_count','平台币直充支出'),
// array('inside_cash_count','内充支出'),
// array('all_cash_count','游戏内充值合计'),
// array('notice_fail_count','联运通知失败合计'),
// array('agg_wm_amount','聚合万盟数据'),
// array('agg_wm_failed_amount','聚合万盟通知失败'),
// array('test_amount','聚合平台测试订单'),
// array('agg_amount','聚合其他渠道数据'),
// array('agg_failed_amount','聚合其他渠道通知失败订单'),
// );
// $map = [];
// $searchGameIds = null;
// $game_ids = array_column(getGameByName(I("game_name"), I("sdk_type")), 'id');
// $gameWhere = [];
// $testStrWhere = '1=1';
// if ($game_ids) {
// $map['s.game_id'] = ['in', $game_ids];
// $gameWhere['id'] = ['in', $game_ids];
// }
// if (!empty(I('partner_id'))) {
// $map['g.partner_id'] = I('partner_id');
// $gameWhere['partner_id'] = I('partner_id');
// }
// if (!empty(I('timestart'))) {
// $timestart = strtotime(I('timestart'));
// $map['_string'] = "s.payed_time >= {$timestart}";
// $testStrWhere .= " and pay_time >= {$timestart}";
// }
// if (!empty(I('timeend'))) {
// $timeend = strtotime(I('timeend') . ' 23:59:59');
// if (!empty($map['_string'])) {
// $map['_string'] .= " and ";
// }
// $map['_string'] .= " s.pay_time <= {$timeend}";
// $testStrWhere .= " and pay_time <= {$timeend}";
// }
// if (!empty(I('game_type_id'))) {
// $map['g.game_type_id'] = I('game_type_id');
// $gameWhere['game_type_id'] = I('game_type_id', 0);
// }
$searchGameIds = M('game', 'tab_')->where($gameWhere)->getField('id', true);
$xlsData = D("spend")->gameStatistics($map);
$uniqueCodes = array_column($xlsData, 'unique_code');
$gameIds = array_column($xlsData, 'game_id');
$uniqueCodes = array_filter($uniqueCodes, function($value) {
if ($value) {
return true;
}
return false;
});
// $searchGameIds = M('game', 'tab_')->where($gameWhere)->getField('id', true);
// $xlsData = D("spend")->gameStatistics($map);
// $uniqueCodes = array_column($xlsData, 'unique_code');
// $gameIds = array_column($xlsData, 'game_id');
// $uniqueCodes = array_filter($uniqueCodes, function($value) {
// if ($value) {
// return true;
// }
// return false;
// });
$gameSets = M('game_set', 'tab_')->field(['game_id', 'pay_notify_url'])->select();
$gameSets = index_by_column('game_id', $gameSets);
$searchGameCodes = [];
$testList = [];
$testWhere = [
'game_id' => 0,
'_string' => $testStrWhere,
];
if (count($searchGameIds) > 0) {
$searchGameCodes = M('game', 'tab_')->where(['id' => ['in', $searchGameIds], 'unique_code' => ['neq', '']])->getField('unique_code', true);
$searchGameCodes = array_unique($searchGameCodes);
$testWhere['game_id'] = ['in', $searchGameIds];
$testRows = M('test_order', 'tab_')
->field(['game_id', 'sum(pay_amount) amount'])
->where($testWhere)
->group('game_id')
->select();
foreach ($testRows as $testRow) {
$testList[$testRow['game_id']] = round(floatval($testRow['amount']), 2);
}
}
// $gameSets = M('game_set', 'tab_')->field(['game_id', 'pay_notify_url'])->select();
// $gameSets = index_by_column('game_id', $gameSets);
// $searchGameCodes = [];
// $testList = [];
// $testWhere = [
// 'game_id' => 0,
// '_string' => $testStrWhere,
// ];
// if (count($searchGameIds) > 0) {
// $searchGameCodes = M('game', 'tab_')->where(['id' => ['in', $searchGameIds], 'unique_code' => ['neq', '']])->getField('unique_code', true);
// $searchGameCodes = array_unique($searchGameCodes);
// $testWhere['game_id'] = ['in', $searchGameIds];
// $testRows = M('test_order', 'tab_')
// ->field(['game_id', 'sum(pay_amount) amount'])
// ->where($testWhere)
// ->group('game_id')
// ->select();
// foreach ($testRows as $testRow) {
// $testList[$testRow['game_id']] = round(floatval($testRow['amount']), 2);
// }
// }
$client = new AggregateClient();
$result = $client->api('game-data', [
'unique_codes' => $uniqueCodes,
'started_at' => I('timestart', ''),
'ended_at' => I('timeend', ''),
'search_games' => $searchGameCodes,
'device_type' => I("sdk_type", 0),
]);
$aggData = [];
$aggWmData = [];
$aggFailData = [];
$aggWmFailData = [];
$aggTotal = '0.00';
$aggWmTotal = '0.00';
$aggFailTotal = '0.00';
$aggWmFailTotal = '0.00';
if ($result['code'] == '0000') {
$aggData = $result['data']['records'] ?? [];
$aggWmData = $result['data']['wm_records'] ?? [];
$aggFailData = $result['data']['fail_records'] ?? [];
$aggWmFailData = $result['data']['wm_fail_records'] ?? [];
$aggTotal = $result['data']['total'] ?? '0.00';
$aggWmTotal = $result['data']['wm_total'] ?? '0.00';
$aggFailTotal = $result['data']['fail_total'] ?? '0.00';
$aggWmFailTotal = $result['data']['wm_fail_total'] ?? '0.00';
}
$exceptIds = getAggExceptIds($gameSets);
foreach ($xlsData as $key => $value) {
$aggAmount = '0.00';
$aggWmAmount = '0.00';
$aggFailAmount = '0.00';
$aggWmFailAmount = '0.00';
$testAmount = '0.00';
$deviceType = $value['sdk_version'] == 1 ? 'android' : 'ios';
if ($value['unique_code']) {
if (isset($aggData[$value['unique_code']]) && isset($aggData[$value['unique_code']][$deviceType])) {
$aggAmount = number_format($aggData[$value['unique_code']][$deviceType], 2, '.', '');
}
if (isset($aggWmData[$value['unique_code']]) && isset($aggWmData[$value['unique_code']][$deviceType])) {
$aggWmAmount = number_format($aggWmData[$value['unique_code']][$deviceType], 2, '.', '');
}
if (isset($aggFailData[$value['unique_code']]) && isset($aggFailData[$value['unique_code']][$deviceType])) {
$aggFailAmount = number_format($aggFailData[$value['unique_code']][$deviceType], 2, '.', '');
}
if (isset($aggWmFailData[$value['unique_code']]) && isset($aggWmFailData[$value['unique_code']][$deviceType])) {
$aggWmFailAmount = number_format($aggWmFailData[$value['unique_code']][$deviceType], 2, '.', '');
}
}
$xlsData[$key]['agg_amount'] = $aggAmount;
$xlsData[$key]['agg_wm_amount'] = $aggWmAmount;
$xlsData[$key]['agg_failed_amount'] = $aggFailAmount;
$xlsData[$key]['agg_wm_failed_amount'] = $aggWmFailAmount;
if (isset($gameSets[$value['game_id']]) && isAggGame($gameSets[$value['game_id']]['pay_notify_url'])) {
$xlsData[$key]['cash_count'] = $value['cash_count'] = 0;
$xlsData[$key]['balance_coin_count'] = $value['balance_coin_count'] = 0;
$xlsData[$key]['inside_cash_count'] = $value['inside_cash_count'] = 0;
$testAmount = $testList[$value['game_id']] ?? '0.00';
}
$xlsData[$key]['test_amount'] = $testAmount;
// $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) {
$xlsData[$key]['sdk_version'] = '安卓';
} else if ($value['sdk_version'] == 2) {
$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) . ")";
}
}
$testWhere['_string'] .= ' and game_id in(' . implode(',', $exceptIds) . ')';
$testAllAmount = M('test_order', 'tab_')->where($testWhere)->sum('pay_amount');
$totalData = D("spend")->totalGameStatistics($map);
$sumCash = $totalData['cash_count'];
$sumBalance = $totalData['balance_coin_count'];
$sumInside = $totalData['inside_cash_count'];
$sumNoticeFail = $totalData['notice_fail_count']? $totalData['notice_fail_count']:0;
$sumAll = $sumCash + $sumBalance + $sumInside;
$sumData = [
[
'game_name'=>'总计',
'cash_count'=>$sumCash,
'balance_coin_count'=>$sumBalance,
'inside_cash_count'=>$sumInside,
'all_cash_count'=>$sumAll,
'notice_fail_count'=>$sumNoticeFail,
'agg_wm_amount' => $aggWmTotal,
'agg_wm_failed_amount' => $aggWmFailTotal,
'test_amount' => round(floatval($testAllAmount), 2),
'agg_amount' => $aggTotal,
'agg_failed_amount' => $aggFailTotal,
]
];
$xlsData = array_merge($xlsData,$sumData);
$this->exportAddOperationLog("Finance/gameStatistics","充值-财务管理-游戏统计-导出");
$this->exportExcel($xlsName, $xlsCell, $xlsData);
}
public function gameStatisticsDetail() {
$game_name = I("game_name");
$xlsName = $game_name . '游戏订单查看';
$xlsCell = array(
array('pay_order_number','支付订单号'),
array('extend','游戏订单号'),
array('pay_time','充值时间'),
array('user_account','玩家账号'),
array('game_name','游戏名称'),
array('promote_account','所属推广员'),
array('spend_ip','充值ip'),
array('server_name','游戏区服'),
array('game_player_name','角色名称'),
array('cost','订单金额'),
array('pay_amount','实付金额'),
array('pay_way','充值方式'),
);
if (isset($_REQUEST['pay_way'])) {
$map['pay_way'] = $_REQUEST['pay_way'];
}
if (!empty($_REQUEST['pay_order_number'])) {
$map['pay_order_number'] = $_REQUEST['pay_order_number'];
}
if (!empty(I('partner_id'))&&empty(I("game_id"))) {
$wherePartner = I('partner_id');
$gameId = M("game","tab_")->field("id")->where("partner_id={$wherePartner}")->select();
$gameId = implode(',',array_column($gameId,'id'));
$map['game_id'] = ['in',$gameId];
}
if (!empty(I('timestart'))) {
$timestart = strtotime(I('timestart'));
$map['_string'] = "pay_time >= {$timestart}";
}
if (!empty(I('timeend'))) {
$timeend = strtotime(I('timeend') . ' 23:59:59');
if (!empty($map['_string'])) {
$map['_string'] .= " and ";
}
$map['_string'] .= " pay_time < {$timeend}";
}
$map['pay_game_status'] = 1;
if (!empty(I("game_id"))) {
$map['game_id'] = I("game_id");
}
if (!empty(I('user_account'))) {
$map['user_account'] = array('like','%'.I("user_account").'%');
}
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,game_name,promote_account,spend_ip,server_name,game_player_name,pay_amount,cost,pay_way,extend";
$group = "";
$order = "pay_time DESC";
$xlsData = D('spend')->getSpendData($map,$field,$group,$order);
// dd(D("spend")->_sql());
foreach($xlsData as $key => $value) {
$xlsData[$key]['pay_way'] = getPayType($value['pay_way']);
}
$totalData = D("spend")->totalGameStatistics($map, false);
$sumCash = $totalData['cash_count'] ?? 0;
$sumBalance = $totalData['balance_coin_count'] ?? 0;
$sumInside = $totalData['inside_cash_count'] ?? 0;
$sumAll = $sumCash + $sumBalance + $sumInside;
$sumData = [['pay_order_number'=>'总计:' . $sumAll,
'extend'=>'现金金额:' . $sumCash,
'pay_time'=>'平台币:' . $sumBalance,
'user_account'=>'绑币:' . $sumInside]];
$xlsData = array_merge($xlsData,$sumData);
$this->exportAddOperationLog("Finance/gameStatisticsDetail","充值-财务管理-游戏统计-查看-导出");
$this->exportExcel($xlsName, $xlsCell, $xlsData);
}
// $client = new AggregateClient();
// $result = $client->api('game-data', [
// 'unique_codes' => $uniqueCodes,
// 'started_at' => I('timestart', ''),
// 'ended_at' => I('timeend', ''),
// 'search_games' => $searchGameCodes,
// 'device_type' => I("sdk_type", 0),
// ]);
// $aggData = [];
// $aggWmData = [];
// $aggFailData = [];
// $aggWmFailData = [];
// $aggTotal = '0.00';
// $aggWmTotal = '0.00';
// $aggFailTotal = '0.00';
// $aggWmFailTotal = '0.00';
// if ($result['code'] == '0000') {
// $aggData = $result['data']['records'] ?? [];
// $aggWmData = $result['data']['wm_records'] ?? [];
// $aggFailData = $result['data']['fail_records'] ?? [];
// $aggWmFailData = $result['data']['wm_fail_records'] ?? [];
// $aggTotal = $result['data']['total'] ?? '0.00';
// $aggWmTotal = $result['data']['wm_total'] ?? '0.00';
// $aggFailTotal = $result['data']['fail_total'] ?? '0.00';
// $aggWmFailTotal = $result['data']['wm_fail_total'] ?? '0.00';
// }
// $exceptIds = getAggExceptIds($gameSets);
// foreach ($xlsData as $key => $value) {
// $aggAmount = '0.00';
// $aggWmAmount = '0.00';
// $aggFailAmount = '0.00';
// $aggWmFailAmount = '0.00';
// $testAmount = '0.00';
// $deviceType = $value['sdk_version'] == 1 ? 'android' : 'ios';
// if ($value['unique_code']) {
// if (isset($aggData[$value['unique_code']]) && isset($aggData[$value['unique_code']][$deviceType])) {
// $aggAmount = number_format($aggData[$value['unique_code']][$deviceType], 2, '.', '');
// }
// if (isset($aggWmData[$value['unique_code']]) && isset($aggWmData[$value['unique_code']][$deviceType])) {
// $aggWmAmount = number_format($aggWmData[$value['unique_code']][$deviceType], 2, '.', '');
// }
// if (isset($aggFailData[$value['unique_code']]) && isset($aggFailData[$value['unique_code']][$deviceType])) {
// $aggFailAmount = number_format($aggFailData[$value['unique_code']][$deviceType], 2, '.', '');
// }
// if (isset($aggWmFailData[$value['unique_code']]) && isset($aggWmFailData[$value['unique_code']][$deviceType])) {
// $aggWmFailAmount = number_format($aggWmFailData[$value['unique_code']][$deviceType], 2, '.', '');
// }
// }
// $xlsData[$key]['agg_amount'] = $aggAmount;
// $xlsData[$key]['agg_wm_amount'] = $aggWmAmount;
// $xlsData[$key]['agg_failed_amount'] = $aggFailAmount;
// $xlsData[$key]['agg_wm_failed_amount'] = $aggWmFailAmount;
// if (isset($gameSets[$value['game_id']]) && isAggGame($gameSets[$value['game_id']]['pay_notify_url'])) {
// $xlsData[$key]['cash_count'] = $value['cash_count'] = 0;
// $xlsData[$key]['balance_coin_count'] = $value['balance_coin_count'] = 0;
// $xlsData[$key]['inside_cash_count'] = $value['inside_cash_count'] = 0;
// $testAmount = $testList[$value['game_id']] ?? '0.00';
// }
// $xlsData[$key]['test_amount'] = $testAmount;
// // $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) {
// $xlsData[$key]['sdk_version'] = '安卓';
// } else if ($value['sdk_version'] == 2) {
// $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) . ")";
// }
// }
// $testWhere['_string'] .= ' and game_id in(' . implode(',', $exceptIds) . ')';
// $testAllAmount = M('test_order', 'tab_')->where($testWhere)->sum('pay_amount');
// $totalData = D("spend")->totalGameStatistics($map);
// $sumCash = $totalData['cash_count'];
// $sumBalance = $totalData['balance_coin_count'];
// $sumInside = $totalData['inside_cash_count'];
// $sumNoticeFail = $totalData['notice_fail_count']? $totalData['notice_fail_count']:0;
// $sumAll = $sumCash + $sumBalance + $sumInside;
// $sumData = [
// [
// 'game_name'=>'总计',
// 'cash_count'=>$sumCash,
// 'balance_coin_count'=>$sumBalance,
// 'inside_cash_count'=>$sumInside,
// 'all_cash_count'=>$sumAll,
// 'notice_fail_count'=>$sumNoticeFail,
// 'agg_wm_amount' => $aggWmTotal,
// 'agg_wm_failed_amount' => $aggWmFailTotal,
// 'test_amount' => round(floatval($testAllAmount), 2),
// 'agg_amount' => $aggTotal,
// 'agg_failed_amount' => $aggFailTotal,
// ]
// ];
// $xlsData = array_merge($xlsData,$sumData);
// $this->exportAddOperationLog("Finance/gameStatistics","充值-财务管理-游戏统计-导出");
// $this->exportExcel($xlsName, $xlsCell, $xlsData);
// }
// public function gameStatisticsDetail() {
// $game_name = I("game_name");
// $xlsName = $game_name . '游戏订单查看';
// $xlsCell = array(
// array('pay_order_number','支付订单号'),
// array('extend','游戏订单号'),
// array('pay_time','充值时间'),
// array('user_account','玩家账号'),
// array('game_name','游戏名称'),
// array('promote_account','所属推广员'),
// array('spend_ip','充值ip'),
// array('server_name','游戏区服'),
// array('game_player_name','角色名称'),
// array('cost','订单金额'),
// array('pay_amount','实付金额'),
// array('pay_way','充值方式'),
// );
// if (isset($_REQUEST['pay_way'])) {
// $map['pay_way'] = $_REQUEST['pay_way'];
// }
// if (!empty($_REQUEST['pay_order_number'])) {
// $map['pay_order_number'] = $_REQUEST['pay_order_number'];
// }
// if (!empty(I('partner_id'))&&empty(I("game_id"))) {
// $wherePartner = I('partner_id');
// $gameId = M("game","tab_")->field("id")->where("partner_id={$wherePartner}")->select();
// $gameId = implode(',',array_column($gameId,'id'));
// $map['game_id'] = ['in',$gameId];
// }
// if (!empty(I('timestart'))) {
// $timestart = strtotime(I('timestart'));
// $map['_string'] = "pay_time >= {$timestart}";
// }
// if (!empty(I('timeend'))) {
// $timeend = strtotime(I('timeend') . ' 23:59:59');
// if (!empty($map['_string'])) {
// $map['_string'] .= " and ";
// }
// $map['_string'] .= " pay_time < {$timeend}";
// }
// $map['pay_game_status'] = 1;
// if (!empty(I("game_id"))) {
// $map['game_id'] = I("game_id");
// }
// if (!empty(I('user_account'))) {
// $map['user_account'] = array('like','%'.I("user_account").'%');
// }
// 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,game_name,promote_account,spend_ip,server_name,game_player_name,pay_amount,cost,pay_way,extend";
// $group = "";
// $order = "pay_time DESC";
// $xlsData = D('spend')->getSpendData($map,$field,$group,$order);
// // dd(D("spend")->_sql());
// foreach($xlsData as $key => $value) {
// $xlsData[$key]['pay_way'] = getPayType($value['pay_way']);
// }
// $totalData = D("spend")->totalGameStatistics($map, false);
// $sumCash = $totalData['cash_count'] ?? 0;
// $sumBalance = $totalData['balance_coin_count'] ?? 0;
// $sumInside = $totalData['inside_cash_count'] ?? 0;
// $sumAll = $sumCash + $sumBalance + $sumInside;
// $sumData = [['pay_order_number'=>'总计:' . $sumAll,
// 'extend'=>'现金金额:' . $sumCash,
// 'pay_time'=>'平台币:' . $sumBalance,
// 'user_account'=>'绑币:' . $sumInside]];
// $xlsData = array_merge($xlsData,$sumData);
// $this->exportAddOperationLog("Finance/gameStatisticsDetail","充值-财务管理-游戏统计-查看-导出");
// $this->exportExcel($xlsName, $xlsCell, $xlsData);
// }
public function coinDetail() {

@ -712,12 +712,10 @@ class FinanceController extends ThinkController
$gameWhere = [];
$testStrWhere = '1=1';
if ($game_ids) {
$map['s.game_id'] = ['in', $game_ids];
$gameWhere['id'] = ['in', $game_ids];
}
if (!empty(I('partner_id'))) {
$map['g.partner_id'] = I('partner_id');
$gameWhere['partner_id'] = I('partner_id');
}
@ -737,14 +735,19 @@ class FinanceController extends ThinkController
}
if (!empty(I('game_type_id'))) {
$map['g.game_type_id'] = I('game_type_id');
$gameWhere['game_type_id'] = I('game_type_id', 0);
}
$searchGameIds = M('game', 'tab_')->where($gameWhere)->getField('id', true);
$startTime = time();
D("spend")->addSubsiteWhere($map);
//游戏统计列表
$data = D("spend")->gameStatistics($map, $row, $p);
if(isset($_REQUEST['export'])){
$data = D("spend")->gameStatistics($map,$searchGameIds, 0, 0);
}else{
$data = D("spend")->gameStatistics($map,$searchGameIds, $row, $p);
}
$gameIds = array_column($data, 'game_id');
$uniqueCodes = array_column($data, 'unique_code');
$uniqueCodes = array_filter($uniqueCodes, function($value) {
@ -841,9 +844,34 @@ class FinanceController extends ThinkController
$data[$key]['agg_failed_amount'] = $aggFailAmount;
$data[$key]['agg_wm_failed_amount'] = $aggWmFailAmount;
$data[$key]['test_amount'] = $testAmount;
$data[$key]['sdk_version'] = $value['sdk_version'] == 1 ? "安卓" : "苹果";
}
if(isset($_REQUEST['export'])){
//操作日志
$GetData = $_GET;
unset($GetData['export']);
$dcop = array(
'partner_name'=>'合作公司',
'game_name'=>'游戏',
'sdk_version'=>'设备类型',
'game_type_name'=>'游戏类型',
'cash_count'=>'游戏现金金额',
'balance_coin_count'=>'平台币直充支出',
'inside_cash_count'=>'内充支出',
'all_cash_count'=>'游戏内充值合计',
'notice_fail_count'=>'联运通知失败合计',
'agg_wm_amount'=>'聚合万盟数据',
'agg_wm_failed_amount'=>'聚合万盟通知失败',
'test_amount'=>'聚合平台测试订单',
'agg_amount'=>'聚合其他渠道数据',
'agg_failed_amount'=>'聚合其他渠道通知失败订单'
);
addOperationLog(['op_type'=>3,'key'=>getNowDate(),'url'=>U(CONTROLLER_NAME.'/'.ACTION_NAME,$GetData),'menu'=>"充值-财务管理-游戏统计-导出"]);
data2csv($data,"游戏统计",$dcop);
}
$count = D("spend")->gameStatisticsCount($map);//列表总数
$count = count($searchGameIds);//列表总数
// $allData = D("spend")->gameStatistics($map);//列表总数
// $count = count($allData);
$page = set_pagination($count, $row);
@ -864,7 +892,7 @@ class FinanceController extends ThinkController
$map['_string'] = " s.game_id not in (" . implode(',', $exceptIds) . ")";
}
}
$totalData = D("spend")->totalGameStatistics($map);
$totalData = D("spend")->totalGameStatistics($map,$searchGameIds);
$sumCash = $totalData['cash_count'];
$sumBalance = $totalData['balance_coin_count'];
@ -1039,6 +1067,8 @@ class FinanceController extends ThinkController
if (!empty(I('user_nickname'))) {
$map['game_player_name'] = array('like',I("user_nickname").'%');
}
D("Spend")->addSubsiteWhere($map);
// var_dump($map);die();
$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,merchant_id";
$group = "";
@ -1295,7 +1325,9 @@ class FinanceController extends ThinkController
public function payTypeStatistics()
{
$time = array('egt', 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')));
}
if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$time = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
} elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
@ -1304,11 +1336,14 @@ class FinanceController extends ThinkController
$time = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
}
// setPowerPromoteIds($map);
$cashMap = [
'pay_status' => 1,'pay_way'=>['egt',1],'payed_time'=>$time
];
D("Spend")->addSubsiteWhere($cashMap);
//获取现金充值
$cashStatistics = M('spend', 'tab_')
->field('pay_way,"" as pay_type,SUM(pay_amount) AS pay_amount')
->where(['pay_status' => 1,'pay_way'=>['egt',1],'payed_time'=>$time])
->where($cashMap)
->group('pay_way')
->select();
foreach ($cashStatistics as $key => $value) {
@ -1318,12 +1353,14 @@ class FinanceController extends ThinkController
$cashStatistics = array_column($cashStatistics, null, 'pay_way');
// dd($cashStatistics);
//获取平台币充值
$deposit = M('deposit', 'tab_')->where([
$depositMap = [
'pay_source' => 2,
'tab_deposit.pay_status' => 1,
'tab_deposit.pay_way' => ['gt', 0],
'tab_deposit.payed_time'=>$time,
])->field('tab_deposit.pay_way,"" as pay_type, SUM(tab_deposit.pay_amount) AS balance')
];
D("Deposit")->addSubsiteWhere($depositMap,"tab_deposit");
$deposit = M('deposit', 'tab_')->where($depositMap)->field('tab_deposit.pay_way,"" as pay_type, SUM(tab_deposit.pay_amount) AS balance')
->group('tab_deposit.pay_way')
->select();
foreach ($deposit as $key => $value) {
@ -1405,18 +1442,16 @@ class FinanceController extends ThinkController
$cashStatistics[$value['pay_way']]['balance'] += $value['pay_amount'];//别表的平台币充值
}
//官网充值
$offcialmap['pay_status'] = 1;
$offcialmap['pay_way'] = array('egt',1);
$offcialmap['pay_source'] = 0;
$offcialmap = [
'pay_status'=>1,
'pay_way'=>['egt',1],
'pay_source'=>0,
'payed_time'=>$time
];
D("Deposit")->addSubsiteWhere($offcialmap);
$offcialData = M('deposit','tab_')
->field("pay_way,'' as pay_type,sum(pay_amount) as pay_amount")
->where([
'pay_status'=>1,
'pay_way'=>['egt',1],
'pay_source'=>0,
'payed_time'=>$time
])
->where($offcialmap)
->group('pay_way')
->select();
@ -1434,12 +1469,13 @@ class FinanceController extends ThinkController
}
$cashStatistics[$value['pay_way']]['balance'] += $value['pay_amount'];//别表的平台币充值
}
$testOrderMap = [
'pay_way'=>['egt',1],
'pay_time'=>$time
];
addSubsiteWhere($testOrderMap,"partner_type");
$testOrderData = M('test_order', 'tab_')
->where([
'pay_way'=>['egt',1],
'pay_time'=>$time
])
->where($testOrderMap)
->field('pay_way,sum(pay_amount) as pay_amount')
->group("pay_way")
->select();

@ -294,6 +294,7 @@ class FinancePromoteController extends AdminController
}
$map['s.pay_status']=1;
$map['s.is_check']=2;
D("Spend")->addSubsiteWhere($map,"s");
$field= "SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as bind_coin_count,
@ -378,6 +379,7 @@ class FinancePromoteController extends AdminController
}
$map['s.pay_status']=1;
$map['s.is_check']=1;
D("Spend")->addSubsiteWhere($map,"s");
$field= "SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as bind_coin_count,
@ -608,6 +610,7 @@ class FinancePromoteController extends AdminController
}
$map['s.pay_status']=1;
$map['s.is_check']=1;
D("Spend")->addSubsiteWhere($map,"s");
// dd($map);
$field= "SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count,
@ -697,7 +700,7 @@ class FinancePromoteController extends AdminController
$map['promote.admin_id'] = ['gt', 0];
$map['s.market_admin_id'] = ['gt', 0];
}
D("Spend")->addSubsiteWhere($map,"s");
//获取推广员
$title = '';
self::setPromoteMap($map,"s.promote_id",$title,false);
@ -833,7 +836,7 @@ class FinancePromoteController extends AdminController
if ($adminId > 0) {
$map['market_admin_id'] = $adminId;
}
D("Spend")->addSubsiteWhere($map);
/* if (!empty(I('develop_type'))) {
$map['company.develop_type'] = I('develop_type');
}
@ -1104,6 +1107,7 @@ class FinancePromoteController extends AdminController
if (!empty(I('user_nickname'))) {
$map['tab_spend.game_player_name'] = array('like',I("user_nickname").'%');
}
D("Spend")->addSubsiteWhere($map,"s");
$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";

@ -44,7 +44,7 @@ class FinancialSummaryController extends AdminController
public function updateStatement()
{
$temp = date('Y',time()).'-'.(date('m',time())-1);
$params = "php admin.php FinancialSummarySet/setMonthFinancialSummary/recount/1/count_date/{$temp}";
$params = "php ".SUBSITE_INDEX." FinancialSummarySet/setMonthFinancialSummary/recount/1/count_date/{$temp}";
$r = D("CmdTasks")->addTask("FinancialSummary",$params);
if($r){
$this->ajaxReturn(["success"=>"ok"]);
@ -100,7 +100,8 @@ class FinancialSummaryController extends AdminController
"count_year"=>$_REQUEST['year'],
"type"=>array("IN","1,{$_REQUEST['type']},4,5,6")
);
$dbres = M("FinancialSummary","tab_")->field("*")->where($map)->select();
$dbres = SM("FinancialSummary","tab_")->field("*")->where($map)->select();
// dd( $dbres);
foreach ($dbres as $k => $v) {
if($v['type'] == 1){
@ -147,6 +148,7 @@ class FinancialSummaryController extends AdminController
}
ksort($senddata[$k]['count']);
}
// dd($senddata);
$this->assign('data', $senddata);
}
//获取历史年份

@ -31,7 +31,7 @@ class FinancialSummarySetController extends \Think\Controller
$this->date = $this->year."-".$this->month;
$this->nowdata =time();
$this->FinancialSummaryModel =M("FinancialSummary",'tab_');
$this->FinancialSummaryModel =SM("FinancialSummary",'tab_');
$this->DepositModel =M("Deposit",'tab_');
$this->SpendModel = M("Spend",'tab_');
$this->GameSupersignModel = M("GameSupersign",'tab_');
@ -134,6 +134,7 @@ class FinancialSummarySetController extends \Think\Controller
"payed_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"pay_status"=>1,
);
D("Spend")->addSubsiteWhere($map);
$res = $this->SpendModel
->field("IFNULL(SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END),0) as cash_count,IFNULL(SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END),0) as balance_coin_count")
->where($map)
@ -225,6 +226,7 @@ class FinancialSummarySetController extends \Think\Controller
$map2 = array(
"pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth))
);
addSubsiteWhere($map2,"partner_type");
$test_pay_amount = $this->TestOrderModel->where($map2)->field("IFNULL(sum(pay_amount),0) pay_amount")->find()['pay_amount'];
$temparr['sum_money'] = number_format(($test_pay_amount*100 )/100, 2, '.', '');
@ -267,6 +269,7 @@ class FinancialSummarySetController extends \Think\Controller
"payed_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"pay_status"=>1,
);
D("Spend")->addSubsiteWhere($map,"s");
$res = $this->SpendModel
->alias('s')
->field("IFNULL(SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END),0) as cash_count,
@ -404,6 +407,7 @@ class FinancialSummarySetController extends \Think\Controller
"s.pay_status"=>1,
"s.merchant_id"=>["GT","0"]
);
D("Spend")->addSubsiteWhere($map,"s");
$spres=$this->SpendModel
->alias("s")
->field("SUM(s.pay_amount) pay_amount,p.channel")
@ -430,6 +434,7 @@ class FinancialSummarySetController extends \Think\Controller
"s.payed_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"s.pay_status"=>1
];
D("Deposit")->addSubsiteWhere($dp_map,"s");
$dpres=$this->DepositModel
->alias("s")
->field("SUM(s.pay_amount) pay_amount,p.channel")
@ -456,6 +461,7 @@ class FinancialSummarySetController extends \Think\Controller
"s.pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"s.merchant_id"=>["GT","0"]
];
addSubsiteWhere($to_map,"partner_type");
$tores=$this->TestOrderModel
->alias("s")
->field("SUM(s.pay_amount) pay_amount,p.channel")
@ -489,6 +495,7 @@ class FinancialSummarySetController extends \Think\Controller
"s.pay_status"=>1,
"s.merchant_id"=>["GT","0"],
);
D("Spend")->addSubsiteWhere($map,"s");
$spres=$this->SpendModel
->alias("s")
->field("SUM(s.pay_amount) pay_amount,s.merchant_way")
@ -513,6 +520,7 @@ class FinancialSummarySetController extends \Think\Controller
"s.payed_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"s.pay_status"=>1
];
D("Deposit")->addSubsiteWhere($dp_map,"s");
$dpres=$this->DepositModel
->alias("s")
->field("SUM(s.pay_amount) pay_amount,s.merchant_way")
@ -537,6 +545,7 @@ class FinancialSummarySetController extends \Think\Controller
"s.pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"s.merchant_id"=>["GT","0"]
];
addSubsiteWhere($to_map,"partner_type");
$tores=$this->TestOrderModel
->alias("s")
->field("SUM(s.pay_amount) pay_amount,s.merchant_way")
@ -571,7 +580,7 @@ class FinancialSummarySetController extends \Think\Controller
$map = [];
$map['payed_time'] = ['BETWEEN',[$this->beginThismonth, $this->endThismonth]];
addSubsiteWhere($map,"partner_type");
//游戏充值金额
$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,
@ -610,6 +619,9 @@ class FinancialSummarySetController extends \Think\Controller
->select(false);
$map['pay_time'] = $map['payed_time'];
unset($map['payed_time']);
if(isset($map['partner_type'])){
unset($map['partner_type']);
}
//推广后台
$spreadData = M("coin_pay_order","tab_")
->field("0 cash_amount,0 test_amount,0 coin_amount,0 offcial_amount,
@ -636,6 +648,7 @@ class FinancialSummarySetController extends \Think\Controller
->select(false);
//测试环境内网平台订单
addSubsiteWhere($map,"partner_type");
$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,
@ -649,7 +662,7 @@ class FinancialSummarySetController extends \Think\Controller
$sql = "{$data} UNION ALL {$coinData} UNION ALL {$officalData} UNION ALL {$spreadData} UNION ALL {$superSignData} UNION ALL {$testOrder}";
$data = M()->table("({$sql})a")
$data = M()->db(0)->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,
@ -658,9 +671,7 @@ class FinancialSummarySetController extends \Think\Controller
->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(

@ -33,7 +33,7 @@ class IndexChartSetController extends AdminController {
//初始化
$this->UserModel =M("User","tab_");
$this->ChartModel =M("IndexChart","tab_");
$this->ChartModel =SM("IndexChart","tab_");
$this->LoginModel =M("user_login_record","tab_");
$this->SpendModel =M("spend","tab_");
$this->PromoteModel =M("promote","tab_");
@ -191,6 +191,7 @@ class IndexChartSetController extends AdminController {
}
$this->adddata["pay_user_hours"] = json_encode($user_hours);
unset($user_hours);
D("Spend")->addSubsiteWhere($map);
$activeCount = $this->SpendModel->field('user_id')
->where($map)
->group('user_id')
@ -206,6 +207,7 @@ class IndexChartSetController extends AdminController {
public function payMoney()
{
$map = ['pay_time'=>['between',[$this->beginTime,$this->endTime]],"pay_status"=>1];//1支付成功
D("Spend")->addSubsiteWhere($map);
$hoursnews = $this->SpendModel->field('FROM_UNIXTIME(pay_time, "%H") as time,sum(pay_amount) AS money')
->where($map)
->group("time")
@ -278,7 +280,10 @@ class IndexChartSetController extends AdminController {
$allcount['android_gamesource_count'] = M("GameSource","tab_")->where("file_type = 1")->field("count(1) game_count")->find()['game_count'];//安卓游戏原包
$allcount['ios_gamesource_count'] = M("GameSource","tab_")->where("file_type = 2")->field("count(1) game_count")->find()['game_count'];//IOS游戏原包
$allcount['promote_user_count'] = $user->where("promote_id > 0 and puid = 0")->field("count(1) user_count")->find()['user_count'];//推广员注册用户
$allcount['promote_spend_sum'] = $spend->where("promote_id > 0 and pay_status = 1")->field("sum(pay_amount) pay_amount")->find()['pay_amount'];//推广员总充值
$promoteMap = [];
D("Spend")->addSubsiteWhere($promoteMap);
$allcount['promote_spend_sum'] = $spend->where("promote_id > 0 and pay_status = 1")->where($promoteMap)->field("sum(pay_amount) pay_amount")->find()['pay_amount'];//推广员总充值
$this->adddata["all_count"] = json_encode($allcount);
}

@ -49,7 +49,7 @@ class IndexController extends AdminController {
$this->foldLineDiagram($_REQUEST['start'],$_REQUEST['end'],$_REQUEST['num']);
}
$tm =strtotime(date("Y-m-d",strtotime("-1 day")));
$allcount = M("IndexChart","tab_")->field("all_count")->where("`date` = '{$tm}'")->find();
$allcount = SM("IndexChart","tab_")->field("all_count")->order("date desc")->find();
$allcount = json_decode($allcount['all_count'],true);
$this->assign('user_count',$allcount['user_count']);
@ -223,7 +223,7 @@ class IndexController extends AdminController {
$data['date'] = [$start];
$data['hours'] = 1;
$tm = strtotime($start);
$dbdata = M("IndexChart","tab_")->field("new_user_count,new_user_hours,active_user_count,active_user_hours,pay_user_count,pay_user_hours,pay_money_count,pay_money_hours,promote_new_count")->where("`date` = '{$tm}'")->find();
$dbdata = SM("IndexChart","tab_")->field("new_user_count,new_user_hours,active_user_count,active_user_hours,pay_user_count,pay_user_hours,pay_money_count,pay_money_hours,promote_new_count")->where("`date` = '{$tm}'")->find();
$data['news'] = json_decode($dbdata["new_user_hours"],true);
$data['active'] = json_decode($dbdata["active_user_hours"],true);
$data['player']=json_decode($dbdata["pay_user_hours"],true);
@ -231,7 +231,7 @@ class IndexController extends AdminController {
//获取昨天
$ytm = $starttime-86400;
$ydbdata = M("IndexChart","tab_")->field("new_user_count,active_user_count,pay_user_count,pay_money_count,promote_new_count")->where("`date` = '{$ytm}'")->find();
$ydbdata = SM("IndexChart","tab_")->field("new_user_count,active_user_count,pay_user_count,pay_money_count,promote_new_count")->where("`date` = '{$ytm}'")->find();
//计算
$cnews['count'] = $dbdata['new_user_count'];
$cnews['rate'] = $this->setRate($dbdata['new_user_count'],$ydbdata['new_user_count']);
@ -260,7 +260,7 @@ class IndexController extends AdminController {
$count1 = array();
$active_user_list = [];
$pay_user_list = [];
$dbdata = M("IndexChart","tab_")->field("FROM_UNIXTIME(`date`, '%Y-%m-%d') as time,new_user_count,active_user_count,active_user_list,pay_user_count,pay_user_list,pay_money_count,promote_new_count")
$dbdata = SM("IndexChart","tab_")->field("FROM_UNIXTIME(`date`, '%Y-%m-%d') as time,new_user_count,active_user_count,active_user_list,pay_user_count,pay_user_list,pay_money_count,promote_new_count")
->where($map)
->group("time")
->select();
@ -330,7 +330,7 @@ class IndexController extends AdminController {
$map1 = array(
"date"=>$between
);
$ydbdata = M("IndexChart","tab_")->field("new_user_count,active_user_count,active_user_list,pay_user_count,pay_user_list,pay_money_count,promote_new_count")
$ydbdata = SM("IndexChart","tab_")->field("new_user_count,active_user_count,active_user_list,pay_user_count,pay_user_list,pay_money_count,promote_new_count")
->where($map1)->select();
$active_user_list = [];
$pay_user_list = [];

@ -33,7 +33,7 @@ class MarketPercentageController extends ThinkController
// $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):'';
$_REQUEST['promote_id']?($map['promote_id'] = $_REQUEST['promote_id']):'';
$_REQUEST['relation_game_id']?($map['relation_game_id'] = $_REQUEST['relation_game_id']):'';
$_REQUEST['sdk_version']?($map['sdk_version'] = $_REQUEST['sdk_version']):'';
// $_REQUEST['sdk_version']?($map['sdk_version'] = $_REQUEST['sdk_version']):'';
$_REQUEST['admin_id']?($map['admin_id'] = $_REQUEST['admin_id']):'';
($_REQUEST['company_id']||$_REQUEST['company_id']=='0')?($map['company_id'] = $_REQUEST['company_id']):'';
@ -103,11 +103,10 @@ class MarketPercentageController extends ThinkController
// dump($map);die();
// var_dump($map);die();
$data = M("settleup_marketorder","tab_")
->field("pay_time,promote_account,company_name,company_belong,member.real_name,develop_type,game_name,
$data = SM("settleup_marketorder","tab_")
->field("pay_time,promote_account,company_name,company_belong,real_name,develop_type,game_name,
sum(pay_amount) pay_amount,sum(cp_amount) cp_amount,sum(promote_amount) promote_amount,
sum(channel_amount) channel_amount, sum(company_tax) company_tax,sum(company_profit) company_profit")
->join("left join sys_member member on member.uid=admin_id");
sum(channel_amount) channel_amount, sum(company_tax) company_tax,sum(company_profit) company_profit");
if ($_REQUEST['export']) {
$data = $data->where($map)
@ -122,7 +121,7 @@ class MarketPercentageController extends ThinkController
->select();
}
$sum = M("settleup_marketorder","tab_")
$sum = SM("settleup_marketorder","tab_")
->field("pay_time,promote_account,company_belong,real_name,develop_type,game_name,
sum(pay_amount) pay_amount,sum(cp_amount) cp_amount,sum(promote_amount) promote_amount,
sum(channel_amount) channel_amount, sum(company_tax) company_tax,sum(company_profit) company_profit")
@ -186,12 +185,13 @@ class MarketPercentageController extends ThinkController
data2csv($data,'市场毛利统计',$title);
}
$count = M("settleup_marketorder","tab_")
$count = SM("settleup_marketorder","tab_")
->field("promote_id,game_name,pay_time,admin_id")
->where($map)
->group("promote_id,game_name,pay_time,admin_id")
->select(false);
$count = M()->table("({$count}) count")->count();
->select();
$count = count($count);
// $count = M()->table("({$count}) count")->count();
$page = set_pagination($count, $row);
if ($page) {
@ -565,6 +565,8 @@ class MarketPercentageController extends ThinkController
$map = [];
$map['group_id'] = ['in','11,12,21'];
//获取权限
$marketPercentage = M("auth_group")->where($map)->getField("id,market_percentage");
// $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):'';
$_REQUEST['admin_id']?($map['admin_id'] = $_REQUEST['admin_id']):'';
@ -654,28 +656,24 @@ class MarketPercentageController extends ThinkController
$this->assign('start_time',$start_time);
$this->assign('end_time',$end_time);
$data = M("market_altogether","tab_")
$data = SM("market_altogether","tab_")
->where($map);
if ($_REQUEST['export']) {
$data = $data
->field("tab_market_altogether.*,market_percentage")
->join("left join sys_auth_group_access access on tab_market_altogether.admin_id = access.uid")
->join("left join sys_auth_group auth on access.group_id=auth.id")
->field("*")
->order("pay_time DESC,company_profit DESC")
->select();
} else {
$data = $data
->field("tab_market_altogether.*,market_percentage")
->join("left join sys_auth_group_access access on tab_market_altogether.admin_id = access.uid")
->join("left join sys_auth_group auth on access.group_id=auth.id")
->field("*")
// ->page($p, $row)
->order("pay_time DESC,company_profit DESC")
->select();
}
$count = M("market_altogether","tab_")
$count = SM("market_altogether","tab_")
->where($map)
->count();
@ -701,7 +699,7 @@ class MarketPercentageController extends ThinkController
$this->assign('coefficient_in_check',$this->checkRule($exportRule,array('in','1,2')));
}
$all_data = M("market_altogether","tab_")
$all_data = SM("market_altogether","tab_")
// ->where($map)
->select();
$wait_amount = [];
@ -722,6 +720,10 @@ class MarketPercentageController extends ThinkController
$admin = $_SESSION['onethink_admin']['user_auth']['username'];
foreach ($data as $key => $value) {
$level = $value['level'];
if(isset($marketPercentage[$level])){
$value['market_percentage'] = $marketPercentage[$level];
}
$Rule = strtolower(MODULE_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME . "_export_show_check");
if ($_REQUEST['export'] && $this->checkRule($Rule,array('in','1,2'))) {
@ -1024,6 +1026,8 @@ class MarketPercentageController extends ThinkController
$map = [];
$map['group_id'] = ['in','11,12,21'];
//获取权限
$marketPercentage = M("auth_group")->where($map)->getField("id,market_percentage");
// $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):'';
// $_REQUEST['admin_id']?($map['admin_id'] = $_REQUEST['admin_id']):'';
@ -1103,10 +1107,8 @@ class MarketPercentageController extends ThinkController
}
}
$data = M("market_altogether","tab_")
->field("tab_market_altogether.*,market_percentage")
->join("left join sys_auth_group_access access on tab_market_altogether.admin_id = access.uid")
->join("left join sys_auth_group auth on access.group_id=auth.id")
$data = SM("market_altogether","tab_")
->field("*")
->where($map);
if ($_REQUEST['export']) {
@ -1120,7 +1122,7 @@ class MarketPercentageController extends ThinkController
->select();
}
$count = M("market_altogether","tab_")
$count = SM("market_altogether","tab_")
->where($map)
->count();
@ -1140,6 +1142,10 @@ class MarketPercentageController extends ThinkController
$sum['wait_commission'] = 0;
foreach ($data as $key => $value) {
$level = $value['level'];
if(isset($marketPercentage[$level])){
$value['market_percentage'] = $marketPercentage[$level];
}
$data[$key]['start_time'] = date("Y-m-1",strtotime($value['pay_time']));
$data[$key]['end_time'] = date("Y-m-t",strtotime($value['pay_time']));
@ -1260,7 +1266,7 @@ class MarketPercentageController extends ThinkController
$this->ajaxReturn(['status'=>0,'msg'=>'数据错误']);
}
$check_data = M("market_altogether","tab_")
$check_data = SM("market_altogether","tab_")
->where(['pay_time'=>$_REQUEST['pay_time'],'admin_id'=>$_REQUEST['admin_id']])
->find();
@ -1286,7 +1292,7 @@ class MarketPercentageController extends ThinkController
$save['remark'] = '离职发放';
}
$is_save = M("market_altogether","tab_")
$is_save = SM("market_altogether","tab_")
->where($map)
->save($save);
@ -1309,7 +1315,7 @@ class MarketPercentageController extends ThinkController
// var_dump("cd ".ROOTTT.";php admin.php timing/caculateMarketStream/time/{$pay_time} > /dev/null &");die();
exec("source /etc/profile;cd ".ROOTTT.";php admin.php timing/caculateMarketStream/time/{$pay_time} > /dev/null &");
exec("source /etc/profile;cd ".ROOTTT.";php ".SUBSITE_INDEX." timing/caculateMarketStream/time/{$pay_time} > /dev/null &");
$this->ajaxReturn(['status'=>1]);
}
@ -1399,7 +1405,7 @@ class MarketPercentageController extends ThinkController
}
}
$data = M("market_altogether","tab_")
$data = SM("market_altogether","tab_")
->field("max(tab_market_altogether.pay_time) pay_time,tab_market_altogether.real_name,tab_market_altogether.admin_id,tab_market_altogether.nickname,level,sum(pay_amount) pay_amount,sum(extend_commission) extend_commission,
sum(performance_commission) performance_commission,sum(achievement_bonus* IF(coefficient is not NULL, coefficient, 100)/100) achievement_bonus,
sum(wait_performance_commission)+sum(wait_achievement_commission) wait_amount,
@ -1422,7 +1428,7 @@ class MarketPercentageController extends ThinkController
->select(false);
}
$data = M()->table("({$data})a")
$data = SM()->table("({$data})a")
->field("max(pay_time) pay_time,real_name,admin_id,nickname,level,sum(pay_amount) pay_amount,sum(extend_commission) extend_commission,
sum(performance_commission) performance_commission,sum(achievement_bonus) achievement_bonus,sum(wait_amount) wait_amount,
sum(wait_extend_commission) wait_extend_commission,sum(wait_commission) wait_commission,remark,status")
@ -1490,11 +1496,12 @@ class MarketPercentageController extends ThinkController
data2csv($data,'提成汇总结算单',$title);
}
$count = M("market_altogether","tab_")
$count = SM("market_altogether","tab_")
->field("admin_id")
->where($map)
->group("admin_id")
->select(false);
$count = M()->table("({$count}) count")->count();
->select();
$count = count($count);
$page = set_pagination($count, $row);
if ($page) {
@ -1573,7 +1580,7 @@ class MarketPercentageController extends ThinkController
$admin = $_SESSION['onethink_admin']['user_auth']['username'];
$market_check_detail = "市场部已确认({$admin}<br>".date("Y-m-d H:i:s",time());
$is_save = M("market_altogether","tab_")
$is_save = SM("market_altogether","tab_")
->where(['id'=>['in',$ids],'market_check'=>0])
->save(['market_check'=>1,'market_check_detail'=>$market_check_detail]);
@ -1596,7 +1603,7 @@ class MarketPercentageController extends ThinkController
$admin = $_SESSION['onethink_admin']['user_auth']['username'];
$finance_check_detail = "财务部已审批({$admin}<br>".date("Y-m-d H:i:s",time());
$is_save = M("market_altogether","tab_")
$is_save = SM("market_altogether","tab_")
->where(['id'=>['in',$ids],'finance_check'=>0])
->save(['finance_check'=>1,'finance_check_detail'=>$finance_check_detail]);

@ -530,9 +530,13 @@ class OldCountController extends \Think\Controller
*/
public function FinancialSummaryInit()
{
//清空数据库
$sql = "truncate table tab_financial_summary";
$res = M()->execute($sql);
if(IS_SUBSITE){
$res =M()->db(1,SUBSITE_DB)->execute($sql);
}else {
//清空数据库
$res = M()->execute($sql);
}
echo "tab_financial_summary 清空成功".PHP_EOL;
//获取19年9月到上个月的所有月份
$monthList = $this->getMonthsList();

@ -57,6 +57,12 @@ class PayChannelController extends ThinkController
$map['pay_status'] = $coinMap['pay_status'] = 1;
$map['pay_way'] = array('egt',1);
D("Spend")->addSubsiteWhere($map);
D("Deposit")->addSubsiteWhere($coinMap);
D("Deposit")->addSubsiteWhere($offcialmap);
addSubsiteWhere($maptestorder,"partner_type");
// setPowerPromoteIds($map,'promote_id');
//游戏币计算
@ -79,7 +85,6 @@ class PayChannelController extends ThinkController
->where($coinMap)
->group("game_id")
->select();
// unset($coinMap['game_id']);
//平台币充值
$coinSum = M('deposit','tab_')
@ -94,12 +99,13 @@ class PayChannelController extends ThinkController
foreach($coinData as $key => $value) {
$handleCoinData[$value['game_id']] = $value['platform_coin'];
}
//测试白名单
$testList = implode(",",M("test_white_list","tab_")->getField("user_id",true));
//测试数据汇总计算
$testData = M('spend','tab_')
->field("sum(pay_amount) as test_coin,game_name,game_id")
->join("inner join tab_test_white_list on tab_spend.user_id=tab_test_white_list.user_id")
->where($map)
->where("user_id in ({$testList})")
->group('game_id')
->select();
@ -131,6 +137,7 @@ class PayChannelController extends ThinkController
$data[$key]['sdk_version'] =getGameTypeName($data[$key]['sdk_version']);
}
$superMap = $map;
if(isset($superMap['partner_type'])) unset($superMap['partner_type']);
unset($superMap['payed_time']);
$superMap['pay_time'] = $map['payed_time'];
// unset($superMap['promote_id']);
@ -445,6 +452,7 @@ class PayChannelController extends ThinkController
->select(false);
$superMap = $map;
if(isset($superMap['partner_type'])) unset($superMap['partner_type']);
if ($map['payed_time']){
$superMap['pay_time'] = $map['payed_time'];
unset($superMap['payed_time']);
@ -600,6 +608,9 @@ class PayChannelController extends ThinkController
$map['pay_status'] = 1;
D("Spend")->addSubsiteWhere($map);
D("Deposit")->addSubsiteWhere($coinMap,"tab_deposit");
D("Deposit")->addSubsiteWhere($offcialmap);
$_REQUEST['model']?$model= $_REQUEST['model']:false;
@ -796,6 +807,9 @@ class PayChannelController extends ThinkController
$_REQUEST['game_id']?$coinMap['game_id'] = $_REQUEST['game_id']:false;
$map['pay_status'] = 1;
D("Spend")->addSubsiteWhere($map);
D("Deposit")->addSubsiteWhere($coinMap,"tab_deposit");
D("Deposit")->addSubsiteWhere($offcialmap);
// setPowerPromoteIds($map,'promote_id');
// setPowerPromoteIds($coinMap,'tab_deposit.promote_id');
@ -1022,6 +1036,7 @@ class PayChannelController extends ThinkController
if ($_REQUEST['game_id']) {
$map['game_id'] = $_REQUEST['game_id'];
}
D("Spend")->addSubsiteWhere($map,"tab_spend");
// setPowerPromoteIds($map,'promote_id');
$data = M('spend','tab_')
->field("pay_order_number,order_number,tab_spend.user_account,pay_time,game_name,server_name,game_player_name,cost,pay_amount,pay_way as pay_type,pay_way,pay_game_status,sdk_version")
@ -1036,6 +1051,8 @@ class PayChannelController extends ThinkController
$map['user_account'] = $map['tab_spend.user_account'];
unset($map['tab_spend.user_account']);
$coinMap = $map;
$map['tab_spend.user_account'] = array('like',"{$_REQUEST['user_account']}%");
$coinMap['tab_deposit.pay_status'] = 1;
@ -1043,6 +1060,9 @@ class PayChannelController extends ThinkController
$coinMap['tab_deposit.user_account'] = $coinMap['user_account'];
unset($coinMap['user_account']);
if(isset($coinMap['tab_spend.partner_type'])) unset($coinMap['tab_spend.partner_type']);
D("Deposit")->addSubsiteWhere($coinMap,"tab_deposit");
if(!$coinMap['tab_deposit.user_account']) {
unset($coinMap['tab_deposit.user_account']);
}
@ -1212,6 +1232,7 @@ class PayChannelController extends ThinkController
// unset($map['pay_time']);
// }
// setPowerPromoteIds($map,'tab_deposit.promote_id');
D("Deposit")->addSubsiteWhere($map,"tab_deposit");
$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")
->join('inner join tab_test_white_list on tab_deposit.user_id=tab_test_white_list.user_id')
@ -1401,6 +1422,7 @@ class PayChannelController extends ThinkController
if ($_REQUEST['game_id']) {
$map['game_id'] = $_REQUEST['game_id'];
}
D("Spend")->addSubsiteWhere($map,"tab_spend");
// setPowerPromoteIds($map,'promote_id');
$data = M('spend','tab_')
@ -1428,6 +1450,9 @@ class PayChannelController extends ThinkController
$coinMap['tab_deposit.user_account'] = $coinMap['user_account'];
unset($coinMap['user_account']);
if(isset($coinMap['tab_spend.partner_type'])) unset($coinMap['tab_spend.partner_type']);
D("Deposit")->addSubsiteWhere($coinMap,"tab_deposit");
if(!$coinMap['tab_deposit.user_account']) {
unset($coinMap['tab_deposit.user_account']);
}
@ -1623,6 +1648,7 @@ class PayChannelController extends ThinkController
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
$map['pay_source'] = 0;
D("Deposit")->addSubsiteWhere($map,"tab_deposit");
if ($map['pay_time']) {
$map['create_time'] = $map['pay_time'];
unset($map['pay_time']);

@ -106,6 +106,7 @@ class PlatformController extends ThinkController
"pay_time"=>["between",$yearMap],
"pay_status"=>1
];
D("Spend")->addSubsiteWhere($map);
$Payamount = M("Spend","tab_")->field("sum(pay_amount) pay_amount,FROM_UNIXTIME(`pay_time`, '%Y-%m') paytime")->where($map)->group("paytime")->select();
if(empty($Payamount)) return ;
foreach ($Payamount as $v) {
@ -254,6 +255,7 @@ class PlatformController extends ThinkController
"pay_time"=>["between",$yearMap],
"pay_status"=>1
];
D("Spend")->addSubsiteWhere($map);
$Payamount = M("Spend","tab_")->field("sum(IF(is_check=1,pay_amount,0)) pay_amount,IFNULL(sum(IF(is_check=2,pay_amount,0)),0) unpay_amount,FROM_UNIXTIME(`pay_time`, '%Y-%m') paytime")->where($map)->group("paytime")->select();
if(empty($Payamount)) return ;
foreach ($Payamount as $v) {
@ -567,9 +569,9 @@ class PlatformController extends ThinkController
$today = total(1);
$week = total(2);
$mounth = total(3);
D("Spend")->addSubsiteWhere($map,"tab_spend");
$data = $spend
->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)
->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')
->group('tab_game.relation_game_id')
@ -589,6 +591,7 @@ class PlatformController extends ThinkController
//unset($_REQUEST['game_type']);
}
setPowerPromoteIds($map2);
D("Spend")->addSubsiteWhere($map2,"tab_spend");
$data2 = $spend
->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,
@ -778,6 +781,7 @@ class PlatformController extends ThinkController
$today = total(1);
$week = total(2);
$mounth = total(3);
D("Spend")->addSubsiteWhere($map);
$data = $spend
->field('pay_way,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count')
->where($map)
@ -788,6 +792,7 @@ class PlatformController extends ThinkController
$map2 = array();
$map2['pay_status'] = 1;
setPowerPromoteIds($map2);
D("Spend")->addSubsiteWhere($map2);
$data2 = $spend
->field('pay_way,
sum(IF(pay_time ' . $today . ',pay_amount,0)) as today,
@ -1167,6 +1172,7 @@ class PlatformController extends ThinkController
//为数据权限添加
setPowerPromoteIds($map, 'tp1.id');
}
D("Spend")->addSubsiteWhere($map,"s");
$data = M('promote', 'tab_')->alias('tp1')
->field('tp1.account as promote_account,tp1.id,g.relation_game_id,g.relation_game_name,
@ -1363,7 +1369,7 @@ class PlatformController extends ThinkController
function day_data($model = 'User', $column1 = array(), $column2 = 'count')
{
//今日本周本月不跟随选择的实现变动 只以当前日期为基准
$table = M($model, 'tab_');
$table = SM($model, 'tab_');
$today = total(1);
$week = total(2);
$mounth = total(3);

@ -80,11 +80,12 @@ class RechargeSumController extends ThinkController
}
$map['pay_status'] = 1;
$newAddPay = D('Spend')->where(array_merge($map, array('_string' => '( small_id = 0 or small_id = user_id)')))->sum('pay_amount');
D("Spend")->addSubsiteWhere($map);
$newAddPay = M('spend',"tab_")->where(array_merge($map, array('_string' => '( small_id = 0 or small_id = user_id)')))->sum('pay_amount');
//当天累计付费
unset($map['user_id']);
$accumulated = D('Spend')->where($map)->sum('pay_amount');
$accumulated = M('spend',"tab_")->where($map)->sum('pay_amount');
$data[$key]['date'] = date('Y-m-d', $start);
$data[$key]['game_id'] = empty($_REQUEST['game_name']) ? "全部" : $_REQUEST['game_name'];

@ -119,12 +119,8 @@ class SpendController extends ThinkController
}
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;
}
$game_id = M("Game","tab_")->where('unique_code ' . $sy . ' ""')->getField("id",true);
$map['game_id'] = ['in',$game_id];
}
// if (intval(($endTime + 1) - $startTime) / (24 * 3600) <= 31) {
@ -135,28 +131,27 @@ class SpendController extends ThinkController
// $map1 = $map;
// }
$this->checkListOrCountAuthRestMap($map,["extend", "pay_order_number", "user_account"]);
D("Spend")->addSubsiteWhere($map);
$map1 = $map;
$map1['pay_status'] = 1;
$total = null_to_0(D(self::model_name)->where($map1)->sum('pay_amount'));
$ttotal = null_to_0(D(self::model_name)->where('pay_time' . total(1))->where(array('pay_status' => 1))->sum('pay_amount'));
$ytotal = null_to_0(D(self::model_name)->where('pay_time' . total(5))->where(array('pay_status' => 1))->sum('pay_amount'));
$total = null_to_0(M(self::model_name,"tab_")->where($map1)->sum('pay_amount'));
$this->assign('total', $total);
$this->assign('ttotal', $ttotal);
$this->assign('ytotal', $ytotal);
$this->meta_title = $this->m_title = '游戏充值';
$this->assign('commonset', M('Kuaijieicon')->where(['url' => 'Spend/lists', 'status' => 1])->find());
$data = D(self::model_name)->lists($_GET["p"], $map, $order);
$adminUsernameList = getAdminUsernameList(array_column($data['data'], 'market_admin_id'));
foreach ($data['data'] as $key=>&$value ) {
($value['promote_account']=='官方渠道')?($value['promote_account']=C('OFFICIEL_CHANNEL')):'';
$value['market_admin_username'] = $adminUsernameList[$value['market_admin_id']] ?? '无';
$value['is_check_str'] = D(self::model_name)::IsCheckStr[$value['is_check']];
//拆分游戏名称和设备类型
$game_arr = explode("(",rtrim($value['game_name'],")"));
$value['game_name'] = $game_arr[0];
$value['sdk_version_name'] = $game_arr[1];
$data = D(self::model_name)->lists($_GET["p"], $map, $order);
if (!empty($data['data'])) {
$adminUsernameList = getAdminUsernameList(array_column($data['data'], 'market_admin_id'));
foreach ($data['data'] as $key=>&$value) {
($value['promote_account']=='官方渠道')?($value['promote_account']=C('OFFICIEL_CHANNEL')):'';
$value['market_admin_username'] = $adminUsernameList[$value['market_admin_id']] ?? '无';
$value['is_check_str'] = D(self::model_name)::IsCheckStr[$value['is_check']];
//拆分游戏名称和设备类型
$game_arr = explode("(", rtrim($value['game_name'], ")"));
$value['game_name'] = $game_arr[0];
$value['sdk_version_name'] = $game_arr[1];
}
}
$this->assign('showMarketAdmin', session('user_auth')['show_market_admin']);

@ -63,6 +63,7 @@ class TestOrderController extends ThinkController
$map['merchant_id'] = $_REQUEST['merchant_id'];
unset($_REQUEST['merchant_id']);
}
addSubsiteWhere($map,"partner_type");
$order_list = M('test_order t', 'tab_')
->field("t.*,g.sdk_version")
->join("tab_game g on t.game_id = g.id","left")
@ -96,7 +97,13 @@ class TestOrderController extends ThinkController
public function saveOrder() {
$data = $_GET;
//获取parter_id
if(isset($data["merchant_id"])){
$w = [
"id"=>$data["merchant_id"]
];
$data["partner_type"] = M("payment_merchant","tab_")->where($w)->getField("main_id");
}
// dump($data);die();
$data['add_time'] = time();
$data['pay_time'] = strtotime($data['pay_time']);

@ -344,167 +344,6 @@ class TimingController extends AdminController {
}
public function caculateMarketList() {
$map = [];
$map['my_time'] = date('Y-m',strtotime('-1 month'));
if ($_REQUEST['count_date']) {
$map['my_time'] = $_REQUEST['count_date'];
}
if ($_REQUEST['count_date'] == 'all') {
$map['my_time'] = ['neq', date('Y-m',time())];
}
$spendMap['tab_spend.pay_status'] = 1;
//获取spend表中的数据同时根据会长id进行group分类
$data = M('Spend','tab_')
->field("FROM_UNIXTIME(pay_time,'%Y-%m') as my_time,sum(pay_amount) as pay_amount,game_id,tab_spend.game_name,SUBSTRING_INDEX(tab_spend.`game_name`,\"(\",1) as game_names,promote_id,promote_account,company_relation,company_belong,CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(`chain`,\"/\",2),\"/\",-1)='' THEN promote_id ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(`chain`,\"/\",2),\"/\",-1) END as root_id,tab_game.ratio,tab_game.relation_game_id,tab_spend.sdk_version ")
->join("left join tab_promote on promote_id = tab_promote.id")
->join("left join tab_game on tab_game.id=tab_spend.game_id")
->where($spendMap)
->group("my_time,game_id,root_id")
->order("my_time Desc")
->select(false);
//关联表获取会长账号名
$data = M()->table('('.$data.') as a')
->field("my_time,pay_amount,a.game_id,game_name,game_names,a.promote_id,a.promote_account,a.company_relation,a.company_belong,CASE WHEN root_id is null THEN 0 ELSE root_id END as root_id,CASE WHEN account is null THEN '官方渠道' ELSE account END as account,tab_ratio.ratio as ratio,turnover_ratio,a.ratio as game_ratio,a.sdk_version")
->join("left join tab_promote on root_id = tab_promote.id")
->join("left join tab_promote_game_ratio as tab_ratio on tab_ratio.game_id = a.relation_game_id and tab_ratio.promote_id=root_id and tab_ratio.status=1")
->where($map)
->group("my_time,game_id,root_id")
->order("my_time Desc")
->select();
// dump($data);die();
foreach($data as $key => $value) {
echo "{$value['my_time']}-{$value['promote_account']}-{$value['game_name']}:{$value['pay_amount']}\n";
$mytime = $value['my_time'];
$nextMonth = date('Y-m',strtotime("$mytime + 1 month"));
$game_id = $value['game_id'];
$gameInfo = M('game','tab_')->where(['id'=>$game_id])->getField('game_name');
$gameName = substr($gameInfo,0,strpos($gameInfo,'('));
$gameMap['game_name'] = ['like','%'.$gameName.'%'];
$gameIdArr = M('game','tab_')->field('id')->where($gameMap)->select();
$gameNameIdArr = [];
foreach($gameIdArr as $gameKey => $gameValue){
$gameNameIdArr[] = $gameValue['id'];
}
$promote_id = $value['promote_id'];
$pay_status = 1;
$promoteInfo = M('promote','tab_')->where(['id'=>$promote_id])->find();
$level = $promoteInfo['level'];
if($promote_id != 0) {
$promoteIdArr = [];
if ($level == 1) {
$rootPromoteId = $promote_id;
$promoteIdArr[] = $promote_id;
}else {
$chain = $promoteInfo['chain'];
$chainArr = explode('/',$chain);
$rootPromoteId = $chainArr[1];
}
$where1['chain'] = array('like', '%/' . $rootPromoteId. '/%');
$promoteIdInfo = M('promote','tab_')->field('id')->where($where1)->select();
foreach($promoteIdInfo as $key2 => $v1) {
$promoteIdArr[] = $v1['id'];
}
$where['promote_id'] = ['in',$promoteIdArr];
if (!$promoteIdArr) {
$where['promote_id']= 0;
}
}else {
$where['promote_id'] = 0;
}
$where['game_id'] = ['in',$gameNameIdArr];
$where['pay_status'] = 1;
$begTime = strtotime($mytime);
$endTime = strtotime($nextMonth);
$where['pay_time'] = ['between',[$begTime,$endTime]];
$spendInfo = M('spend','tab_')->field('pay_amount,pay_way')->where($where)->select();
$initNum = 0;
foreach($spendInfo as $key1 => $spendValue) {
$pay_way = $spendValue['pay_way'];
$channel_rate = $this->getChannelConfig($pay_way) / 100;
$initNum += $spendValue['pay_amount'] * $channel_rate;
}
$data[$key]['pay_amount'] = $value['pay_amount'] - $initNum;
$data[$key]['upstream'] = caculateUpstream($value['game_id'],$value['pay_amount']);
if ($value['ratio']) {
$data[$key]['downstream'] = $value['pay_amount'] * ($value['ratio']*0.01);
} else {
$data[$key]['downstream'] = $value['pay_amount'] * ($value['game_ratio']*0.01);
}
$value['turnover_ratio'] = json_decode($value['turnover_ratio'],true);
// dd($value);
if (is_array($value['turnover_ratio'])) {
foreach($value['turnover_ratio'] as $k =>$v) {
if(($value['pay_amount']>=$v['turnover']&&$v['instanceof']==1) || $value['pay_amount']>$v['turnover']) {
$data[$key]['downstream'] = $value['pay_amount'] * ($v['ratio']*0.01);
}
}
}
$data[$key]['highquality'] = number_format(($value['pay_amount'] - $initNum - $data[$key]['upstream']-$data[$key]['downstream']) * (1-0.0672),2,'.','');
if (!$data[$key]['company_belong']) {
$data[$key]['company_belong'] = getCompanyBlong(0);
} else {
$data[$key]['company_belong'] = getCompanyBlong($data[$key]['company_belong']);
}
$data[$key]['company_relation'] = $data[$key]['company_relation']?'只维护':'自主开发及维护';
}
foreach($data as $key => $value) {
$is_hav = M('market_balance','tab_')->where(['my_time'=>$value['my_time'],
'game_id'=>$value['game_id'],
'promote_id'=>$value['promote_id'],
'root_id'=>$value['root_id']])->find();
if (!$is_hav) {
M('market_balance','tab_')->add($value);
} else {
M('market_balance','tab_')
->where(['my_time'=>$value['my_time'],
'game_id'=>$value['game_id'],
'promote_id'=>$value['promote_id'],
'root_id'=>$value['root_id']])
->save(['pay_amount'=>$value['pay_amount'],
'ratio'=>$value['ratio'],
'turnover_ratio'=>$value['turnover_ratio'],
'game_ratio'=>$value['game_ratio'],
'upstream'=>$value['upstream'],
'downstream'=>$value['downstream'],
'highquality'=>$value['highquality']]);
}
}
echo 'success';
// dump($data);die();
}
public function getChannelConfig($pay_way = 0,$config=false) {
if(!$config) {
@ -764,7 +603,7 @@ class TimingController extends AdminController {
*/
public function getSpecialComplement($start_time=0,$end_time =0,$promote_id = 0) {
$data = M("company_statement","tab_")
$data = SM("company_statement","tab_")
// ->where("statement_begin_time<={$start_time} and statement_end_time<={$end_time} and withdraw_type=3")
->where("(statement_begin_time <={$end_time} AND ( statement_end_time = 0 OR statement_end_time >= {$start_time})) and withdraw_type=3")
->select();
@ -772,12 +611,12 @@ class TimingController extends AdminController {
$return = [];
foreach ($data as $key => $value) {
$info = [];
$pool_data = M("company_statement_pool","tab_")
$pool_data = SM("company_statement_pool","tab_")
->field("id")
->where("(statement_begin_time <={$end_time} AND ( statement_end_time = 0 OR statement_end_time >= {$start_time})) and withdraw_type=3 and statement_ids like '%{$value['id']}%'")
->select();
foreach ($pool_data as $pk => $pv) {
$info = M("company_statement_info","tab_")
$info = SM("company_statement_info","tab_")
->field("statement_info")
->where("(statement_begin_time <={$end_time} AND ( statement_end_time = 0 OR statement_end_time >= {$start_time})) and withdraw_type=3 and pool_id = {$pv['id']} and company_id = {$value['company_id']}")
->find()['statement_info'];
@ -834,7 +673,7 @@ class TimingController extends AdminController {
$amount_time['tab_spend.pay_status'] = 1;
$amount_time['pay_way'] = ['egt',0];
$amount_time['_string'] = "payed_time between {$statement_begin_time} and {$statement_end_time} and relation_game_id={$v['relation_game_id']}";
D("Spend")->addSubsiteWhere($amount_time);
$dataAmount = M("spend","tab_")
->field("pay_amount,relation_game_id,relation_game_name,payed_time,game_type_name,substring_index(substring_index(promote.`chain`,'/',2),'/',-1) promote_id,chain,admin_id")
->join("left join tab_promote promote on tab_spend.promote_id=promote.id")
@ -974,7 +813,7 @@ class TimingController extends AdminController {
public function getSpendData($begintime = 0,$endtime = 0,$company_id=0,$relation_game_id=0,$admin_id=0,$promote_id=0) {
$map['tab_spend.pay_status'] = 1;
$map['pay_way'] = ['egt',0];
D("Spend")->addSubsiteWhere($map,"tab_spend");
$spend = M("spend","tab_")
->field("sum(pay_amount) pay_amount,
CASE WHEN substring_index(substring_index(`chain`,'/',2),'/',-1) !='' THEN substring_index(substring_index(`chain`,'/',2),'/',-1) ELSE promote_id END promote_id,game.relation_game_id,company_id")
@ -1030,7 +869,7 @@ class TimingController extends AdminController {
}
if ($map['pay_time']) {
M("settleup_marketorder","tab_")
SM("settleup_marketorder","tab_")
->where(['pay_time'=>['in',$month_time]])
->delete();
}
@ -1086,7 +925,7 @@ class TimingController extends AdminController {
if (!$spend_map['_string']) {
$spend_map['_string'] = "relation_game_id = 0";
}
D("Spend")->addSubsiteWhere($spend_map,"tab_spend");
$spend = M("spend","tab_")
->field("sum(pay_amount) as pay_amount,FROM_UNIXTIME(pay_time,'%Y-%m') pay_time,
substring_index(substring_index(tab_spend.game_name,'(',1),'(',-1) game_name,game_id,relation_game_id,tab_spend.sdk_version,
@ -1108,7 +947,7 @@ class TimingController extends AdminController {
->select(false);
$unsettlement['_string'] = "tab_spend.id not in($not_in_spend)";
D("Spend")->addSubsiteWhere($unsettlement,"tab_spend");
$unsettlement_spend = M("spend","tab_")
->field("sum(pay_amount) as pay_amount,FROM_UNIXTIME(pay_time,'%Y-%m') pay_time,
substring_index(substring_index(tab_spend.game_name,'(',1),'(',-1) game_name,game_id,relation_game_id,tab_spend.sdk_version,
@ -1410,17 +1249,17 @@ class TimingController extends AdminController {
unset($promote_data[$key]['market_percentage']);
$marker_data = M("settleup_marketorder","tab_")
$marker_data = SM("settleup_marketorder","tab_")
->where(['pay_time'=>$value['pay_time'],'promote_id'=>$value['promote_id'],'game_name'=>$value['game_name'],'admin_id'=>$value['admin_id'],'is_settlement'=>$value['is_settlement']])
->find();
echo "日期:{$value['pay_time']},游戏:{$value['game_name']},推广员:{$value['promote_account']}\n";
echo "市场员:{$value['admin_id']} 推广员:{$value['promote_id']} 公司id{$value['company_id']} 游戏关联id{$value['relation_game_id']} 支付时间:{$value['pay_time']} 金额:{$value['pay_amount']}\n";
// dump($promote_data[$key]);die();
if (!$marker_data) {
M("settleup_marketorder","tab_")
SM("settleup_marketorder","tab_")
->add($promote_data[$key]);
} else {
M("settleup_marketorder","tab_")
SM("settleup_marketorder","tab_")
->where(['pay_time'=>$value['pay_time'],'promote_id'=>$value['promote_id'],'game_name'=>$value['game_name'],'admin_id'=>$value['admin_id'],'is_settlement'=>$value['is_settlement']])
->save($promote_data[$key]);
}
@ -1448,13 +1287,13 @@ class TimingController extends AdminController {
$value['remark'] = "";
$value['create_time'] = time();
$sign = M("market_altogether","tab_")
$sign = SM("market_altogether","tab_")
->where(['admin_id'=>$value['admin_id'],'pay_time'=>$time])
->find();
if (!$sign) {
M("market_altogether","tab_")->add($value);
SM("market_altogether","tab_")->add($value);
} elseif(!$sign['real_name']) {
M("market_altogether","tab_")->where(['admin_id'=>$value['admin_id'],'pay_time'=>$time])->save(['real_name'=>$value['real_name']]);
SM("market_altogether","tab_")->where(['admin_id'=>$value['admin_id'],'pay_time'=>$time])->save(['real_name'=>$value['real_name']]);
}
}
@ -1489,26 +1328,35 @@ class TimingController extends AdminController {
$map['pay_time'] = date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01'));;
// unset($map['pay_time']);
} else{
M("market_altogether","tab_")->where(['pay_time'=>$pay_time])->delete();
SM("market_altogether","tab_")->where(['pay_time'=>$pay_time])->delete();
$this->insertAllUserBonus($pay_time);
}
$map['is_settlement'] = 1;
$all_data = M("settleup_marketorder","tab_")
->field("tab_settleup_marketorder.id,pay_time,promote_account,company_belong,tab_settleup_marketorder.real_name,develop_type,game_name,
sum(pay_amount) pay_amount,sum(company_profit) company_profit,group_id,market_percentage,nickname,admin_id,
sum(if((develop_type = 1 or develop_type = 2), pay_amount, 0)) performance_revenue,sum(if(develop_type = 3, pay_amount, 0)) appraisal_bonuses,
sum(company_tax) company_tax, sum(cp_amount) cp_amount,sum(promote_amount) promote_amount")
->join("left join sys_auth_group_access access on admin_id=access.uid")
->join("left join sys_auth_group auth on access.group_id=auth.id")
->join("left join sys_member member on access.uid=member.uid")
->where(['group_id'=>['in','11,12,21']])
->where($map)
->group("admin_id,pay_time")
->select();
//获取admin_id
$accessData = M("auth_group_access")
->alias("access")
->join("left join sys_auth_group auth on access.group_id=auth.id")
->join("left join sys_member member on access.uid=member.uid")
->where(['group_id'=>['in','11,12,21']])
->getField("access.uid,group_id,market_percentage,nickname");
$all_data = SM("settleup_marketorder","tab_")
->field("id,admin_id,pay_time,promote_account,company_belong,tab_settleup_marketorder.real_name,develop_type,game_name,
sum(pay_amount) pay_amount,sum(company_profit) company_profit,
sum(if((develop_type = 1 or develop_type = 2), pay_amount, 0)) performance_revenue,sum(if(develop_type = 3, pay_amount, 0)) appraisal_bonuses,
sum(company_tax) company_tax, sum(cp_amount) cp_amount,sum(promote_amount) promote_amount")
->where($map)
->where(["admin_id"=>['in',array_keys($accessData)]])
->group("admin_id,pay_time")
->select();
foreach ($all_data as $key => $value) {
$admin_id = $value['admin_id'];
if(isset($accessData[$admin_id])){
$value = array_merge($value,$accessData[$admin_id]);
}
$sum_amount = $value['performance_revenue'] + $value['appraisal_bonuses'];
@ -1526,7 +1374,7 @@ class TimingController extends AdminController {
// echo "{$value['nickname']}:{$value['pay_time']}\n";
// dump($market_percentage);
$settleup_marketorder = M("settleup_marketorder","tab_")
$settleup_marketorder = SM("settleup_marketorder","tab_")
->where(['admin_id'=>$value['admin_id'],'pay_time'=>$value['pay_time'],'is_settlement'=>1])
->select();
@ -1606,14 +1454,14 @@ class TimingController extends AdminController {
$insert['performance_profit'] = number_format($all_data[$key]['performance_profit'], 2, '.', '');
// $insert['wait_commission'] = ($insert['wait_performance_commission']+$insert['wait_achievement_commission']);
$is_hav = M("market_altogether","tab_")
$is_hav = SM("market_altogether","tab_")
->where(['admin_id'=>$value['admin_id'],'pay_time'=>$value['pay_time']])
->find();
if (!$is_hav) {
M("market_altogether","tab_")->add($insert);
SM("market_altogether","tab_")->add($insert);
} else {
M("market_altogether","tab_")
SM("market_altogether","tab_")
->where(['admin_id'=>$value['admin_id'],'pay_time'=>$value['pay_time']])
->save($insert);
}
@ -1635,7 +1483,7 @@ class TimingController extends AdminController {
unset($map['pay_time']);
}
$data = M("market_altogether","tab_")
$data = SM("market_altogether","tab_")
->where($map)
->select();
// dump($map);die();
@ -1685,7 +1533,7 @@ class TimingController extends AdminController {
$map['pay_time'] = ['in',$where];
$map['admin_id'] = $value['admin_id'];
M("market_altogether","tab_")
SM("market_altogether","tab_")
->where($map)
->save($save);
}

@ -15,7 +15,7 @@ use Think\Model;
* Class AuthGroupModel
* @author 朱亚杰 <zhuyajie@topthink.net>
*/
class AuthGroupModel extends Model {
class AuthGroupModel extends SubsiteModel {
const TYPE_ADMIN = 1; // 管理员用户组类型标识
const MEMBER = 'member';
const UCENTER_MEMBER = 'ucenter_member';

@ -8,6 +8,14 @@ use Think\Model;
*/
class CmdTasksModel extends Model{
protected $tablePrefix = 'tab_';
public function __construct($model)
{
if(IS_SUBSITE){
parent::__construct($model, $this->tablePrefix, SUBSITE_DB);
}else{
parent::__construct($model, $this->tablePrefix);
}
}
//获取待执行任务
public function getTask()
{

@ -51,7 +51,20 @@ class DepositModel extends Model {
}
/**
* 添加子站点条件
* @param [arrary] $map
* @param string $alias spend数据库别名
* @return void
*/
public function addSubsiteWhere(&$map,$alias='')
{
$field = "partner_type";
!empty($alias) && $field = $alias.".".$field;
if(IS_SUBSITE){
$map[$field] = ["in",[0,PARTNER_TYPE]];
}
}
/*

@ -34,12 +34,12 @@ class SpendModel extends Model
array('order_number', '', self::MODEL_INSERT),
);
protected function _after_select(&$result, $options)
{
foreach ($result as $key => $value) {
// $result[$key]['pay_way'] = date('Y-m-d ', $value['time']);
}
}
// protected function _after_select(&$result, $options)
// {
// foreach ($result as $key => $value) {
// // $result[$key]['pay_way'] = date('Y-m-d ', $value['time']);
// }
// }
/**
* 构造函数
@ -66,6 +66,20 @@ class SpendModel extends Model
$create_time = I('post.create_time');
return $create_time ? strtotime($create_time) : NOW_TIME;
}
/**
* 添加子站点条件
* @param [arrary] $map
* @param string $alias spend数据库别名
* @return void
*/
public function addSubsiteWhere(&$map,$alias='')
{
$field = "partner_type";
!empty($alias) && $field = $alias.".".$field;
if(IS_SUBSITE){
$map[$field] = ["in",[0,PARTNER_TYPE]];
}
}
public function amdin_account()
{
@ -551,7 +565,7 @@ class SpendModel extends Model
}
$map['pay_status'] = 1;
$this->addSubsiteWhere($map);
$data = $this->field('FROM_UNIXTIME(pay_time,"' . $dateform . '") as ' . $group . ',sum(pay_amount) as ' . $fieldname)
->where($map)->group($group)->order($order)->select();
@ -656,6 +670,7 @@ class SpendModel extends Model
}
$map['pay_status'] = 1;
$this->addSubsiteWhere($map);
$data = $this->field('FROM_UNIXTIME(pay_time,"' . $dateform . '") as ' . $group . ',count( DISTINCT user_id) as ' . $fieldname)
@ -746,6 +761,7 @@ class SpendModel extends Model
{
$map['pay_status'] = 1;
$this->addSubsiteWhere($map);
$data = $this->field('count( DISTINCT user_id) as count')
->where($map)->select();
@ -763,7 +779,7 @@ class SpendModel extends Model
{
$map['pay_status'] = 1;
$this->addSubsiteWhere($map);
$data = $this
->where($map)->sum('pay_amount');
@ -810,13 +826,13 @@ class SpendModel extends Model
return $data;
}
/**
* 获取统计 $map,$page,$row
*/
public function getSpendData($map = [], $field = '', $group = '', $order = '', $page = 0, $row = 0, $join = false)
{
$query = $this->field($field)->where($map)->group($group)->order($order);
$query = M('spend',"tab_")->field($field)->where($map)->group($group)->order($order);
if ($join) {
$query = $query->join($join);
}
@ -856,68 +872,50 @@ class SpendModel extends Model
* @param $row int 每页条数
* @param $page int 第几页
*/
public function gameStatistics($map, $row = 0, $page = 1)
{
$gameMap = $this->getGameMapByGameStatMap($map);
$gameQuery = M('game', 'tab_')->field(['id', 'relation_game_name', 'unique_code', 'partner_id', 'game_type_name', 'sdk_version'])->where($gameMap);
public function gameStatistics($map,$gameIds, $row = 0, $page = 1)
{
$gameMap = [
"g.id"=>["in",$gameIds]
];
$gameQuery = M('game', 'tab_')
->alias('g')
->field(['g.id game_id', 'g.relation_game_name game_name', 'g.unique_code', 'g.game_type_name', 'g.sdk_version','IFNULL(p.partner,"无") as partner_name'])
->join('LEFT JOIN tab_partner as p ON g.partner_id=p.id')
->where($gameMap);
if ($row) {
$gameQuery->page($page,$row);
}
$games = $gameQuery->select();
$partners = [];
if (count($games)) {
$map['s.game_id'] = ['in', array_column($games, 'id')];
$partners = M('partner', 'tab_')->field(['id', 'partner'])->where(['id' => ['in', array_column($games, 'partner_id')]])->select();
$partners = index_by_column('id', $partners);
$map['s.game_id'] = ['in', array_column($games, 'game_id')];
}else{
$map['s.game_id'] = '-1';
}
$noticeFailData = M("Spend s use index(game_time)","tab_")
->field("SUM(pay_amount) as notice_fail_count,game_id")
->join('LEFT JOIN tab_game as g ON s.game_id=g.id')
->join('LEFT JOIN tab_partner as p ON g.partner_id=p.id')
->where(['s.pay_status' => 1, 'pay_game_status' => 0])
$data = M("Spend","tab_")
->alias('s')
->index('game_time')
->where(['s.pay_status' => 1])
->where($map)
->group('s.game_id')
->select(false);
$query = M("Spend s use index(game_time)","tab_")
->field("s.game_id,g.relation_game_name game_name, g.unique_code, p.partner as partner_name, g.game_type_name,
->getField("s.game_id,
SUM(CASE WHEN pay_way > 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as inside_cash_count,g.sdk_version,notice_fail_count")
->join('LEFT JOIN tab_game as g ON s.game_id=g.id')
->join('LEFT JOIN tab_partner as p ON g.partner_id=p.id')
->join("LEFT JOIN ({$noticeFailData})a ON s.game_id = a.game_id")
->where(['s.pay_status' => 1])
// ->where("(s.pay_status = 1 and pay_game_status = 1) or (s.pay_status = 1 and pay_game_status = 0)")
->where($map)
->group('s.game_id');
/* if ($row) {
$query = $query->page($page,$row);
} */
$data = $query->select();
$data = index_by_column('game_id', $data);
SUM(CASE WHEN pay_way = 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as inside_cash_count,
SUM(CASE WHEN s.pay_status = 1 and pay_game_status = 0 THEN pay_amount ELSE 0 END) as notice_fail_count");
$base = [
'cash_count' => "0.00",
'balance_coin_count' => "0.00",
'inside_cash_count' => "0.00",
'notice_fail_count' => "0.00"
];
$records = [];
foreach ($games as $game) {
if (isset($data[$game['id']])) {
$records[] = $data[$game['id']];
if (isset($data[$game['game_id']])) {
$records[] = array_merge($game,$data[$game['game_id']]);
} else {
$partner = $partners[$game['partner_id']] ?? null;
$records[] = [
'game_id' => $game['id'],
'game_name' => $game['relation_game_name'],
'unique_code' => $game['unique_code'],
'partner_name' => $partner ? $partner['partner'] : '无',
'game_type_name' => $game['game_type_name'],
'cash_count' => 0,
'balance_coin_count' => 0,
'inside_cash_count' => 0,
'sdk_version' => $game['sdk_version'],
'notice_fail_count' => 0
];
$records[] = array_merge($game,$base);
}
}
return $records;
}
public function gameStatisticsCount($map)
@ -929,40 +927,23 @@ SUM(CASE WHEN pay_way = -1 and s.pay_status = 1 and pay_game_status = 1 THEN pay
/**
*获取游戏统计列表数据
*/
public function totalGameStatistics($map, $join = true)
public function totalGameStatistics($map,$gameIds, $join = true)
{
$noticeFailData = M("Spend s use index(game_time)","tab_")
->field("SUM(pay_amount) as notice_fail_count,game_id")
->join('LEFT JOIN tab_game as g ON s.game_id=g.id')
->join('LEFT JOIN tab_partner as p ON g.partner_id=p.id')
->where(['s.pay_status' => 1, 'pay_game_status' => 0])
->where($map)
->find();
// var_dump($noticeFailData);die();
$query = M("Spend s use index(game_time)","tab_")
->field("SUM(CASE WHEN pay_way > 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as inside_cash_count");
if ($join) {
$query = $query->join('LEFT JOIN tab_game as g ON s.game_id=g.id')
->join('LEFT JOIN tab_partner as p ON g.partner_id=p.id');
if($gameIds){
$map['s.game_id'] = ['in', $gameIds];
}
$data = $query->where(['s.pay_status' => 1])
$data = M("Spend","tab_")
->alias('s')
->index('game_time')
->field("
SUM(CASE WHEN pay_way > 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as inside_cash_count,
SUM(CASE WHEN s.pay_status = 1 and pay_game_status = 0 THEN pay_amount ELSE 0 END) as notice_fail_count")
->where(['s.pay_status' => 1])
->where($map)
->find();
// $gc_game_id = array_unique(explode(',',$data['gc_game_id']));
// $noticeFailData = M("Spend s use index(game_time)","tab_")
// ->field("SUM(pay_amount) as notice_fail_count,game_id")
// ->where(['s.pay_status' => 1, 'pay_game_status' => 0])
// ->where($noticeMap)
// ->find();
$data['notice_fail_count'] = $noticeFailData['notice_fail_count'];
// dd($query->_sql());
return $data;
}

@ -0,0 +1,77 @@
<?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 Think\Model;
/**
* 文档基础模型
*/
class SubsiteModel extends Model{
//批量添加
protected $dbcount=0;
protected $syncKey="id";
protected $syncData;
protected $syncWhere=false;
public function __construct($name = '', $tablePrefix = '', $connection = '')
{
parent::__construct($name, $tablePrefix, $connection);
if(in_array($this->trueTableName,C('SUBSITE_TABLE'))){
$SUBSITE_DB = C("SUBSITE_DB_CONFIG");
$i = 1;
foreach ($SUBSITE_DB as $k => $v) {
$this->db($i,$v);
$i++;
}
$this->dbcount = $i;
}
}
//修改主键默认id
public function syncKey($key){
$this->syncKey = $key;
return $this;
}
//持续化数据条件
protected function syncCreate($data)
{
$this->syncData = $data;
if(isset($this->options['where'])){
$this->syncWhere = $this->options['where'];
}
}
//同步添加
public function syncAdd($data)
{
$this->syncCreate($data);
$syncVal = $this->db(0)->add();
if(empty($syncVal)){
return $syncVal;
}
$this->syncData[$this->syncKey] = $syncVal;
for ($i=1; $i < $this->dbcount; $i++) {
$this->db($i)->add($this->syncData);
}
return $syncVal;
}
//同步修改
public function syncSave($data)
{
$this->syncCreate($data);
for ($i=0; $i < $this->dbcount; $i++) {
$this->db($i)->where($this->syncWhere)->save($this->syncData);
}
return true;
}
}

@ -5,15 +5,16 @@
<h3 class="page_title">角色权限</h3>
<p class="description_text">说明:可以设置管理账号的不同操作权限</p>
</div>
<div class="cf top_nav_list">
<div class="fl button_list">
<a id="add-group" class="" href="{:U('createGroup')}"><span class="button_icon button_icon1"></span>新增</a>
<a url="{:U('changestatus?method=resumeGroup')}" class="ajax-post" target-form="ids" ><span class="button_icon button_icon4"></span>正常</a>
<a url="{:U('changestatus?method=forbidGroup')}" class="ajax-post" target-form="ids" ><span class="button_icon button_icon5"></span>禁用</a>
<a url="{:U('changestatus?method=deleteGroup')}" class="ajax-post confirm" target-form="ids" ><span class="button_icon button_icon2"></span>删除</a>
</div>
</div>
<if condition="!IS_SUBSITE">
<div class="cf top_nav_list">
<div class="fl button_list">
<a id="add-group" class="" href="{:U('createGroup')}"><span class="button_icon button_icon1"></span>新增</a>
<a url="{:U('changestatus?method=resumeGroup')}" class="ajax-post" target-form="ids" ><span class="button_icon button_icon4"></span>正常</a>
<a url="{:U('changestatus?method=forbidGroup')}" class="ajax-post" target-form="ids" ><span class="button_icon button_icon5"></span>禁用</a>
<a url="{:U('changestatus?method=deleteGroup')}" class="ajax-post confirm" target-form="ids" ><span class="button_icon button_icon2"></span>删除</a>
</div>
</div>
</if>
<!-- 数据列表 -->
<div class="data_list">
<table class="">
@ -33,7 +34,13 @@
<volist name="_list" id="vo">
<tr>
<td><input class="ids" type="checkbox" name="id[]" value="{$vo.id}" /></td>
<td><a href="{:U('AuthManager/editgroup?id='.$vo['id'])}">{$vo.title}</a> </td>
<td>
<if condition="IS_SUBSITE">
{$vo.title}
<else />
<a href="{:U('AuthManager/editgroup?id='.$vo['id'])}">{$vo.title}</a>
</if>
</td>
<td>
<span>
<empty name="vo['description']">
@ -43,25 +50,31 @@
</empty>
</span>
</td>
<td><a href="{:U('AuthManager/access?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >访问授权</a>
<a href="{:U('AuthManager/category?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >分类授权</a>
<a href="{:U('AuthManager/user?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >成员授权</a>
<a href="{:U('AuthManager/dataempower?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >数据授权</a>
<if condition="$vo['id'] eq 11 or $vo['id'] eq 12 or $vo['id'] eq 21">
<a href="{:U('AuthManager/AuthMarketMember?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >市场专员分成</a>
<td>
<a href="{:U('AuthManager/access?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >访问授权</a>
<if condition="!IS_SUBSITE">
<a href="{:U('AuthManager/category?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >分类授权</a>
<a href="{:U('AuthManager/user?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >成员授权</a>
<a href="{:U('AuthManager/dataempower?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >数据授权</a>
<if condition="$vo['id'] eq 11 or $vo['id'] eq 12 or $vo['id'] eq 21">
<a href="{:U('AuthManager/AuthMarketMember?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >市场专员分成</a>
</if>
</if>
</td>
<td>
<eq name="vo.status" value="1"><span class="enabled_status">{:get_status_title($vo['status'])}</span>
<else /><span class="disabled_status">{:get_status_title($vo['status'])}</span></eq>
</td>
<td><eq name="vo.status" value="1">
<a href="{:U('AuthManager/changeStatus?method=forbidGroup&id='.$vo['id'])}" class="ajax-get">禁用</a>
<else/>
<a href="{:U('AuthManager/changeStatus?method=resumeGroup&id='.$vo['id'])}" class="ajax-get">正常</a>
</eq>
<a href="{:U('AuthManager/changeStatus?method=deleteGroup&id='.$vo['id'])}" class="confirm ajax-get">删除</a>
</td>
<td>
<if condition="!IS_SUBSITE">
<eq name="vo.status" value="1">
<a href="{:U('AuthManager/changeStatus?method=forbidGroup&id='.$vo['id'])}" class="ajax-get">禁用</a>
<else/>
<a href="{:U('AuthManager/changeStatus?method=resumeGroup&id='.$vo['id'])}" class="ajax-get">正常</a>
</eq>
<a href="{:U('AuthManager/changeStatus?method=deleteGroup&id='.$vo['id'])}" class="confirm ajax-get">删除</a>
</if>
</td>
</tr>
</volist>
<else/>

@ -28,10 +28,12 @@
</style>
<div class="cf main-place top_nav_list navtab_list">
<div class="fr">
<a class="tabchose" href="{:U('lists',array('type'=>1))}">平台币充值</a>
<a href="{:U('lists_secord',array('type'=>2))}">推广员充值</a>
</div>
<if condition="!IS_SUBSITE">
<div class="fr">
<a class="tabchose" href="{:U('lists',array('type'=>1))}">平台币充值</a>
<a href="{:U('lists_secord',array('type'=>2))}">推广员充值</a>
</div>
</if>
<h3 class="page_title">平台币充值</h3>
<p class="description_text">说明:玩家充值平台币到账户的记录,不包含消费平台币的记录,如需查询平台币使用,请到游戏充值中查询</p>
</div>
@ -81,14 +83,16 @@
<option value="0">下单未付款</option>
</select>
</div>
<div class="input-list search_item input-list-gamenoticestatus">
<select id="merchant_id" name="merchant_id" class="select_gallery">
<option value="">请选择商户</option>
<volist name=":getMerchantList()" id="vo">
<option value="{$vo.id}" <if condition="$_GET['merchant_id'] eq $vo['id']">selected</if>>{$vo.name}</option>
</volist>
</select>
</div>
<if condition="!IS_SUBSITE">
<div class="input-list search_item input-list-gamenoticestatus">
<select id="merchant_id" name="merchant_id" class="select_gallery">
<option value="">请选择商户</option>
<volist name=":getMerchantList()" id="vo">
<option value="{$vo.id}" <if condition="$_GET['merchant_id'] eq $vo['id']">selected</if>>{$vo.name}</option>
</volist>
</select>
</div>
</if>
<!-- <div class="input-list search_item input-list-gamenoticestatus">-->
<!-- <select name="promote_level" style="color:#444" class="select_gallery" id="promote_level">-->
<!-- <option value="">请选择推广员等级</option>-->
@ -212,7 +216,7 @@
</td>
<td style="text-indent:0;">
<if condition="$data['pay_status'] eq 0">
<if condition="$data['pay_status'] eq 0 && !IS_SUBSITE">
<a class="pay_repair" href="javascript:void(0);"
href-data="{$data.pay_order_number}" href-hhh="{:U('Repair/noticePayed')}" style="width:100%;">通知到账</a>
</if>

@ -154,17 +154,7 @@
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>-->
<if condition="$role_export_check eq true ">
<a class="sch-btn" href="{:U('Export/exportGameStatistics',
array(
'timestart'=>$_GET['timestart'],
'timeend'=>$_GET['timeend'],
'sdk_type'=>$_GET['sdk_type'],
'game_name'=>$_GET['game_name'],
'game_type_id'=>$_GET['game_type_id'],
'game_id'=>$_REQUEST['game_id'],
'partner_id'=>$_REQUEST['partner_id'],
false))}"
style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
<a class="sch-btn" href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['export'=>1],I('get.')))}" style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
</if>
</div>
@ -222,7 +212,7 @@
<tr>
<td ><if condition="$data.partner_name neq ''">{$data.partner_name}<else/></if></td>
<td ><if condition="$data.game_name neq ''">{$data.game_name}<else/></if></td>
<td ><if condition="$data.sdk_version eq 1">安卓<elseif condition="$data.sdk_version eq 2"/>苹果</if></td>
<td >{$data.sdk_version}</td>
<td ><if condition="$data.game_type_name neq ''">{$data.game_type_name}<else/></if></td>
<td ><if condition="$data.cash_count neq ''">{$data.cash_count}<else/>0</if></td>
<td class="coin-detail" data-pay_type="0" style="color: #0066cc;cursor: pointer"

@ -76,8 +76,9 @@
<div class="fr">
<a class="" href="{:U('PayChannel/index')}">游戏充值统计</a>
<a class="tabchose" href="">充值方式统计</a>
<a href="{:U('PayMerchant/index')}">支付商户统计</a>
<if condition="!IS_SUBSITE">
<a class="" href="{:U('PayMerchant/index')}">支付商户统计</a>
</if>
</div>
</div>

@ -75,7 +75,9 @@
<div class="fr">
<a class="tabchose" href="">游戏充值统计</a>
<a class="" href="{:U('Finance/payTypeStatistics')}">充值方式统计</a>
<a class="" href="{:U('PayMerchant/index')}">支付商户统计</a>
<if condition="!IS_SUBSITE">
<a class="" href="{:U('PayMerchant/index')}">支付商户统计</a>
</if>
</div>
</div>
@ -244,9 +246,13 @@
<td colspan="6">
<volist name="payTypeData" id="payTypeData" key="index">
<if condition="$key neq '其他支付金额' and $payTypeData.amount neq 0">
<a href="{:U('PayMerchant/index',array('pay_way'=>$payTypeData['pay_way'],'type'=>$payTypeData['type'],'timestart'=>I('timestart'),'timeend'=>I('timeend')))}">
<if condition="IS_SUBSITE">
{$key}{$payTypeData['amount']} &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
</a>
<else />
<a href="{:U('PayMerchant/index',array('pay_way'=>$payTypeData['pay_way'],'type'=>$payTypeData['type'],'timestart'=>I('timestart'),'timeend'=>I('timeend')))}">
{$key}{$payTypeData['amount']} &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
</a>
</if>
</if>
</volist>
平台币直充总金额<span style="color: red">(2019.12.18号以前的无法对应游戏记录不显示在列表中,此项也不计入充值方式统计)</span><if condition="$coinSum neq ''">{$coinSum}<else/>0.00</if>

@ -178,14 +178,17 @@
<option value="2">聚合平台</option>
</select>
</div>
<div class="input-list search_item input-list-gamenoticestatus">
<select id="merchant_id" name="merchant_id" class="select_gallery">
<option value="0">请选择商户</option>
<volist name=":getMerchantList()" id="vo">
<option value="{$vo.id}" <if condition="$_GET['merchant_id'] eq $vo['id']">selected</if>>{$vo.name}</option>
</volist>
</select>
</div>
<if condition="!IS_SUBSITE">
<div class="input-list search_item input-list-gamenoticestatus">
<select id="merchant_id" name="merchant_id" class="select_gallery">
<option value="0">请选择商户</option>
<volist name=":getMerchantList()" id="vo">
<option value="{$vo.id}" <if condition="$_GET['merchant_id'] eq $vo['id']">selected</if>>{$vo.name}</option>
</volist>
</select>
</div>
</if>
<div class="input-list search_item input-list-gamenoticestatus">
<select id="is_check" name="is_check" class="select_gallery">
@ -379,14 +382,10 @@
<td colspan="2">汇总</td>
<td colspan="21">
当页充值:{:null_to_0(array_sum(array_column(array_status2value('pay_status','',$list_data),'pay_amount')))}
<!-- 今日充值:{$ttotal}-->
<!-- 昨日充值:{$ytotal}-->
累计充值:{$total}(此处只汇总充值成功的订单)
</td>
<!--<td colspan="99" style="color: #a9a9a9;">
今日充值:今日平台所有推广员的累计充值(包括官方渠道)/
昨日充值:昨日平台所有推广员的累计充值(包括官方渠道)
</td>-->
</tr>
</if>

@ -93,14 +93,16 @@
<option value="17" <if condition="$_GET['pay_way'] eq '17'">selected</if>>易宝支付</option>
</select>
</div>
<div class="input-list search_item input-list-gamenoticestatus">
<select id="merchant_id" name="merchant_id" class="select_gallery">
<option value="0">请选择商户</option>
<volist name=":getMerchantList()" id="vo">
<option value="{$vo.id}" <if condition="$_GET['merchant_id'] eq $vo['id']">selected</if>>{$vo.name}</option>
</volist>
</select>
</div>
<if condition="!IS_SUBSITE">
<div class="input-list search_item input-list-gamenoticestatus">
<select id="merchant_id" name="merchant_id" class="select_gallery">
<option value="0">请选择商户</option>
<volist name=":getMerchantList()" id="vo">
<option value="{$vo.id}" <if condition="$_GET['merchant_id'] eq $vo['id']">selected</if>>{$vo.name}</option>
</volist>
</select>
</div>
</if>
<div class="input-list input-list-server search_label_rehab">
<select id="platform_type" name="platform_type" class="select_gallery" style="width:120px;">
<option value="0">所属平台</option>
@ -116,9 +118,11 @@
array_merge(array('xlsname'=>'测试游戏订单查看导出'),I('get.')))}">导出</a>
</if>-->
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="upstream" style="width: 80px">订单录入</a>
</div>
<if condition="!IS_SUBSITE">
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="upstream" style="width: 80px">订单录入</a>
</div>
</if>
</div>
</div>

@ -148,11 +148,12 @@ class Auth{
static $groups = array();
if (isset($groups[$uid]))
return $groups[$uid];
$user_groups = M()
->table($this->_config['AUTH_GROUP_ACCESS'] . ' a')
->where("a.uid='$uid' and g.status='1'")
->join($this->_config['AUTH_GROUP']." g on a.group_id=g.id")
->field('uid,group_id,title,rules')->select();
$user_base = M()->table($this->_config['AUTH_GROUP_ACCESS'])->where("uid = {$uid}")->field('uid,group_id')->find();
$user_rule= SM("auth_group","sys_")->where("id = {$user_base['group_id']} and status = 1")->field('title,rules')->find();
if(empty($user_base) || empty($user_rule)){
return [];
}
$user_groups = [array_merge($user_base,$user_rule)];
$groups[$uid]=$user_groups?:array();
return $groups[$uid];
}

@ -35,6 +35,13 @@ if(!is_file(APP_PATH . 'User/Conf/config.php')){
*/
define ( 'RUNTIME_PATH', './Runtime/' );
/**
* 项目配置
*/
define ( 'IS_SUBSITE', false);
define ( 'SUBSITE_NAME', "all");
define ( 'SUBSITE_INDEX', "admin.php" );//子站点路口影响session
/**
* 引入核心入口
* ThinkPHP亦可移动到WEB以外的目录

@ -0,0 +1,52 @@
<?php
/**
* 金菠菜子站点入口
*/
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
/**
* 系统调试设置
* 项目正式部署后请设置为false
*/
define('APP_DEBUG', true );
define('BIND_MODULE','Admin');
define('ROOTTT',dirname(__FILE__).'/');
define('ROOTTTTT',dirname(__FILE__));
define('FONTS',dirname(__FILE__).'/Public/Admin/fonts/');
/**
* 应用目录设置
* 安全期间建议安装调试完成后移动到非WEB目录
*/
define ( 'APP_PATH', './Application/' );
if(!is_file(APP_PATH . 'User/Conf/config.php')){
header('Location: ./install.php');
exit;
}
/**
* 缓存目录设置
* 此目录必须可写建议移动到非WEB目录
*/
define ( 'RUNTIME_PATH', './Runtime/' );
/**
* 项目配置
*/
$JBC_DB_CONFIG = include_once APP_PATH."/Common/Conf/env.php";
if(!isset($JBC_DB_CONFIG['SUBSITE_DB_CONFIG']['WM_DB_CONFIG'])){
die("请先配置子站点连接参数");
}
$JBC_DB_CONFIG = $JBC_DB_CONFIG['SUBSITE_DB_CONFIG']['WM_DB_CONFIG'];
define ( 'IS_SUBSITE', true);
define ( 'PARTNER_TYPE', 1);
define ( 'SUBSITE_NAME', "wm");
define ( 'SUBSITE_DB', $JBC_DB_CONFIG );
define ( 'SUBSITE_INDEX', "wm.php" );//子站点路口影响session
/**
* 引入核心入口
* ThinkPHP亦可移动到WEB以外的目录
*/
require './ThinkPHP/ThinkPHP.php';
Loading…
Cancel
Save