diff --git a/Application/Admin/Controller/FinancialSummaryController.class.php b/Application/Admin/Controller/FinancialSummaryController.class.php new file mode 100644 index 000000000..381f8bc09 --- /dev/null +++ b/Application/Admin/Controller/FinancialSummaryController.class.php @@ -0,0 +1,128 @@ +"现金充值收入", + "balance_coin_spend"=>"平台币充值收入", + "balance_coin_income"=>"平台币消耗", + "game_supersign_income"=>"超级签购买收入", + "test_user_income"=>"测试收入", + "reward_count"=>"奖励", + "fine_count"=>"违规处罚", + "inside_count"=>"内团", + "outer_count"=>"外团", + "outer_branch_count"=>"外团-分发", + "other_group_count"=>"无归属团", + // "inside_count"=>"内团", + // "outer_count"=>"外团", + "gfwx_count"=>"官方-微信", + "gfzfb_count"=>"官方-支付宝", + "sqzfb_count"=>"双乾-支付宝", + "sqkj_count"=>"双乾-快捷", + "wx_count"=>"微信", + "zfb_count"=>"支付宝", + "kj_count"=>"快捷" + ); + public function _initialize() + { + parent::_initialize(); + // echo "
";
+    }
+    public function index($p=1)
+    {
+        if(!array_key_exists("year",$_REQUEST) || !array_key_exists("type",$_REQUEST)){
+            $this->redirect(ACTION_NAME, array('year' => date('Y',time()),"type"=>2));
+        }
+        $this->getYearList();
+        $this->getYearData();
+        $this->display();
+
+    }
+    //获取指定年份数据
+    public function getYearData()
+    {
+        $senddata = array(
+            "income"=>[
+                "count"=>[0,0,0,0,0,0,0,0,0,0,0,0,0]
+            ],
+            "promote"=>[
+                "count"=>[0,0,0,0,0,0,0,0,0,0,0,0,0]
+            ],
+            "channel"=>[
+                "count"=>[0,0,0,0,0,0,0,0,0,0,0,0,0]
+            ],
+            "payway"=>[
+                "count"=>[0,0,0,0,0,0,0,0,0,0,0,0,0]
+            ]
+        );
+        $data = [];
+        //初始化数据
+        foreach ($this->keyname as $k => $v) {
+            $data[$k] = array("name"=>$v,"money"=>[0,0,0,0,0,0,0,0,0,0,0,0,0]);
+        }
+        $map = array(
+            "count_year"=>$_REQUEST['year'],
+            "type"=>array("IN","1,{$_REQUEST['type']},4,5")
+        );
+        $dbres = M("FinancialSummary","tab_")->field("*")->where($map)->select();
+        foreach ($dbres as $k => $v) {
+            if($v['type'] == 1){
+                if(!in_array($v['key_name'],$senddata['income']['list'])){
+                    $senddata['income']['list'][] = $v['key_name'];
+                }
+            }
+            if($v['type'] == 4){
+                if(!in_array($v['key_name'],$senddata['channel']['list'])){
+                    $senddata['channel']['list'][] = $v['key_name'];
+                }
+            }
+            if($v['type'] == 5){
+                if(!in_array($v['key_name'],$senddata['payway']['list'])){
+                    $senddata['payway']['list'][] = $v['key_name'];
+                }
+            }
+            if($v['type'] == $_REQUEST['type']){
+                if(!in_array($v['key_name'],$senddata['promote']['list'])){
+                    $senddata['promote']['list'][] = $v['key_name'];
+                }
+            }
+            $data[$v['key_name']]["money"][((int)$v['count_month']-1)] = $v['sum_money'];
+            # code...
+        }
+        foreach ($senddata as $k => $v) {
+            foreach ($v as $ke => $va) {
+                if($ke !='count'){
+                    foreach ($va as $key => $val) {
+                        for ($i=0; $i < 12; $i++) { 
+                            $data[$val]["money"][12] += $data[$val]["money"][$i];
+                            $senddata[$k]['count'][$i] += $data[$val]["money"][$i];
+                            $senddata[$k]['count'][12] +=$data[$val]["money"][$i];
+                        }
+                        $senddata[$k][$ke][$key] = $data[$val];
+                    }
+                }
+                
+            }
+        }
+        $this->assign('data', $senddata);
+    }
+    //获取历史年份
+    public function getYearList()
+    {
+        $star = 2019;
+        $end = date("Y",time());
+        $list = [];
+        for ($i=$star; $i <= $end; $i++) { 
+            $temp = array(
+                "value"=>$i,
+                "name"=>"{$i}年"
+            );
+            $list[] = $temp ;
+        }
+        $this->assign('YearList', $list);
+    }
+
+    
+    
+}
\ No newline at end of file
diff --git a/Application/Admin/Controller/FinancialSummarySetController.class.php b/Application/Admin/Controller/FinancialSummarySetController.class.php
new file mode 100644
index 000000000..6d08cb495
--- /dev/null
+++ b/Application/Admin/Controller/FinancialSummarySetController.class.php
@@ -0,0 +1,475 @@
+beginThismonth = mktime(0,0,0,date('m')-1,1,date('Y'));
+        $this->endThismonth = mktime(0,0,0,date('m'),1,date('Y'))-1;
+        $temp = strtotime(date('Y-m-01 00:00:00',strtotime('-1 month')));
+        $this->year= date('Y',$temp);
+        $this->month= date('m',$temp);
+        $this->date = $this->year."-".$this->month;
+        $this->nowdata =time();
+        
+        $this->FinancialSummaryModel =M("FinancialSummary",'tab_');
+        $this->DepositModel =M("Deposit",'tab_');
+        $this->SpendModel = M("Spend",'tab_');
+        $this->GameSupersignModel = M("GameSupersign",'tab_');
+        $this->CoinPayOrderModel = M("CoinPayOrder",'tab_');//会长充值平台币表
+
+
+    }
+    /**
+     * 更新某月数据
+     */
+    public function setMonthFinancialSummary($count_date)
+    {
+        $month = $count_date;
+        if(empty($month)) die("参数错误");
+
+        $this->adddata = [];//置空否者会脚本进来会重复计算
+        $this->date =  $month;
+        $tarry = explode('-',$month);
+        $this->year= $tarry[0];
+        if(strlen($tarry[1]) < 2) $tarry[1]="0".$tarry[1];
+
+        $this->month= $tarry[1];
+        $this->beginThismonth=mktime(0,0,0,$tarry[1],1,$tarry[0]);
+        $this->endThismonth=mktime(0,0,0,$tarry[1]-0+1,1,$tarry[0])-1;
+        $this->reCount();
+        $this->setFinancialSummary();
+    }
+    /**
+     * 强制重新聚合
+     */
+    public function reCount()
+    {
+        $recount = I("recount");
+        if(empty($recount) || $recount != 1){return ;}
+        # code...
+        //清理之前的聚合
+        $temp =array(
+            "count_year"=>$this->year,
+            "count_month"=>$this->month
+        );
+        $this->FinancialSummaryModel->where($temp)->delete();
+        echo "重置成功执行重新生成:";
+    }
+
+
+    /**
+     * 每个月的统计接口
+     */
+    public function setFinancialSummary()
+    {
+        set_time_limit(0);
+        $t1 = microtime(true);
+        //判断是否已经聚合
+        $countRes = $this->FinancialSummaryModel->field("IFNULL(COUNT(*),0) count")->where("count_year = '{$this->year}' and count_month= '{$this->month}'")->find()['count'];
+        if($countRes > 0){
+            die("error:Repeated statistics,msg:{$this->date}已经聚合过");
+        }
+
+        //按收入类型
+        $this->setIncomeMoney();
+        //按合作方类型
+        $this->setPromoteMoney();
+        //支付渠道/支付类型
+        $this->setPayWayMoney();
+        //存入数据
+        $this->addDb();
+
+        $t2 = microtime(true);
+        echo ("success {$this->date}:ok runtime:".round($t2-$t1,3).'s'.PHP_EOL);
+    }
+    /**
+     * 获取类型为1的数据,按收入类型
+     */
+    public function setIncomeMoney()
+    {
+        $this->getCashAndBalanCoinSpend();
+        $this->getBalanceCoinIncome();
+        $this->getGameSupersignIncome();
+        $this->getTestUserIncome();
+        $this->getRewardRecordIncome();
+    }
+    //现金充值及平台币消耗
+    protected function getCashAndBalanCoinSpend()
+    {
+
+        $map = array(
+            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1
+        );
+        $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)
+                    ->find();
+        $cash_spend["key_name"] = "cash_spend";
+        $cash_spend["type"] = 1;
+
+        $cash_spend["sort"] = 1;
+        $cash_spend["sum_money"] = $res['cash_count'];
+        $this->adddata[]=$cash_spend;
+
+        $balance_coin_spend["key_name"] = "balance_coin_spend";
+        $balance_coin_spend["type"] = 1;
+        $balance_coin_spend["sort"] = 2;
+        $balance_coin_spend["sum_money"] = $res['balance_coin_count'];
+        $this->adddata[]=$balance_coin_spend;
+    }
+    //平台币充值(deposit/CoinPayOrder)玩家及会长充值的平台币总额
+    protected function getBalanceCoinIncome()
+    {
+        $temparr = array(
+            "key_name"=>'balance_coin_income',
+            "type"=>1,
+            "sort"=>3,
+        );
+        $map = array(
+            "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1
+        );
+        $temparr['sum_money'] = $this->DepositModel->field("IFNULL(sum(pay_amount),0) pay_amount")->where($map)->find()['pay_amount'];
+        //获取会长充值的平台币
+        $map1= array(
+            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "order_status"=>array("EGT",1)
+        );
+        $COMoney= $this->CoinPayOrderModel->field("IFNULL(sum(pay_amount),0) pay_amount")->where($map1)->find()['pay_amount'];
+        $temparr['sum_money'] = number_format(($temparr['sum_money']*100+$COMoney*100)/100, 2, '.', '');
+        $this->adddata[]=$temparr;
+    }
+    //超级签购买收入
+    protected function getGameSupersignIncome()
+    {
+        $temparr = array(
+            "key_name"=>'game_supersign_income',
+            "type"=>1,
+            "sort"=>4,
+        );
+        $map = array(
+            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1
+        );
+        $temparr['sum_money'] = $this->GameSupersignModel->field("IFNULL(sum(pay_price),0) pay_price")->where($map)->find()['pay_price'];
+        $this->adddata[]=$temparr;
+    }
+    //测试账号收入
+    protected function getTestUserIncome()
+    {
+        $temparr = array(
+            "key_name"=>'test_user_income',
+            "type"=>1,
+            "sort"=>5
+        );
+        //获取测试白名单
+        $testlist = M("TestWhiteList",'tab_')->field("user_id")->select();
+        if($testlist){
+           $testlist = implode(",",array_column($testlist, 'user_id'));
+        }else{
+            $testlist = false; 
+        }
+        //获取现金充值
+        $map = array(
+            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1,
+            "pay_way"=>array("GT",0)
+        );
+        if($testlist) $map['user_id']=array("in",$testlist);
+        $cash_spend =  $this->SpendModel
+                            ->field("IFNULL(SUM(pay_amount),0) as pay_amount")
+                            ->where($map)
+                            ->find()['pay_amount'];
+        //获取平台币充值
+        $map1 = array(
+            "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1
+        );
+        if($testlist) $map1['user_id']=array("in",$testlist);
+        $deposit = $this->DepositModel->field("IFNULL(sum(pay_amount),0) pay_amount")->where($map1)->find()['pay_amount'];
+        $temparr['sum_money'] = number_format(($cash_spend*100+$deposit*100)/100, 2, '.', '');
+        $this->adddata[]=$temparr;
+    }
+    //奖罚收入
+    protected function getRewardRecordIncome()
+    {
+        $map = array(
+            "reward_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+        );
+        $rrres = M("RewardRecord","tab_")
+                ->field("
+                    IFNULL(SUM(CASE WHEN reward_type = 1 THEN money ELSE 0 END),0) as reward_count,
+                    IFNULL(SUM(CASE WHEN reward_type = 2 THEN money ELSE 0 END),0) as fine_count
+                    ")
+                ->where($map)
+                ->find();
+        //奖励负,惩罚正
+        $this->adddata[] = array(
+            "key_name"=>'reward_count',
+            "type"=>1,
+            "sort"=>6,
+            'sum_money'=>$rrres['reward_count']
+        );
+        $this->adddata[] = array(
+            "key_name"=>'fine_count',
+            "type"=>1,
+            "sort"=>7,
+            'sum_money'=>$rrres['fine_count']
+        );
+    }
+    /**
+     * 获取类型为2,3的数据/按合作方类型
+     */
+    public function setPromoteMoney()
+    {
+        $map = array(
+            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1
+        );
+        $res = $this->SpendModel
+                    ->alias('s')
+                    ->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,
+                            IFNULL(SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END),0) as bind_coin_count,
+                            promote.company_belong")
+                    ->where($map)
+                    ->join("tab_promote promote ON s.promote_id = promote.id", "left")
+                    ->group("company_belong")
+                    ->select();
+        $inside_count = 0;//内团
+        $outer_count = 0;//外团
+        $outer_branch_count = 0;//外团分发
+        $other_group_count = 0;//其他
+        
+
+        $inside_nobind_count = 0;
+        $outer_nobind_count = 0;
+        $outer_branch_nobind_count = 0;
+        $other_group_nobind_count = 0;//其他
+        foreach ($res as $k => $v) {
+            if($v['company_belong'] == 1){
+                $outer_count = $v['cash_count']*100+$v['balance_coin_count']*100+$v['bind_coin_count']*100;
+                $outer_nobind_count = $v['cash_count']*100+$v['balance_coin_count']*100;
+            }elseif($v['company_belong'] == 2){
+                //外团分发
+                $outer_branch_count = $v['cash_count']*100+$v['balance_coin_count']*100+$v['bind_coin_count']*100;
+                $outer_branch_nobind_count = $v['cash_count']*100+$v['balance_coin_count']*100;
+            }elseif($v['company_belong'] == 3){
+                //其他
+                $other_group_count = $v['cash_count']*100+$v['balance_coin_count']*100+$v['bind_coin_count']*100;
+                $other_group_nobind_count = $v['cash_count']*100+$v['balance_coin_count']*100;
+            }else{
+                //有可能存在官方渠道,company_belong=null
+                $inside_count += ($v['cash_count']*100+$v['balance_coin_count']*100+$v['bind_coin_count']*100);
+                $inside_nobind_count += ($v['cash_count']*100+$v['balance_coin_count']*100);
+            }
+        }
+        //处理数据
+        $this->adddata[] = array(
+            "key_name"=>'inside_count',
+            "type"=>2,"sort"=>1,
+            "sum_money"=>number_format($inside_count/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'outer_count',
+            "type"=>2,"sort"=>2,
+            "sum_money"=>number_format($outer_count/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'outer_branch_count',
+            "type"=>2,"sort"=>3,
+            "sum_money"=>number_format($outer_branch_count/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'other_group_count',
+            "type"=>2,"sort"=>4,
+            "sum_money"=>number_format($other_group_count/100, 2, '.', '')
+        );
+        //不含绑定币
+        $this->adddata[] = array(
+            "key_name"=>'inside_count',
+            "type"=>3,"sort"=>1,
+            "sum_money"=>number_format($inside_nobind_count/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'outer_count',
+            "type"=>3,"sort"=>2,
+            "sum_money"=>number_format($outer_nobind_count/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'outer_branch_count',
+            "type"=>3,"sort"=>3,
+            "sum_money"=>number_format($outer_branch_nobind_count/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'other_group_count',
+            "type"=>3,"sort"=>4,
+            "sum_money"=>number_format($other_group_nobind_count/100, 2, '.', '')
+        );
+    }
+    /**
+     * 获取类型为4,5的数据/按支付渠道类型,支付类型类型
+     */
+    public function setPayWayMoney()
+    {
+        $moneyarry=[
+            "wx"=>0,
+            "zfb"=>0,
+            "gfzfb"=>0,
+            "sqzfb"=>0,
+            "sqkj"=>0
+        ];
+        $this->getSpendPayWay($moneyarry);
+        $this->getGameSupersignPayWay($moneyarry);
+        $this->getDepositPayWay($moneyarry);
+        $this->getCoinPayOrderPayWay($moneyarry);
+        //统计数据
+        $moneyarry['zfb'] = ($moneyarry['gfzfb']-0+$moneyarry['sqzfb']);
+        $this->adddata[] = array(
+            "key_name"=>'gfwx_count',
+            "type"=>4,"sort"=>1,
+            "sum_money"=>number_format($moneyarry['wx']/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'gfzfb_count',
+            "type"=>4,"sort"=>2,
+            "sum_money"=>number_format($moneyarry['gfzfb']/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'sqzfb_count',
+            "type"=>4,"sort"=>3,
+            "sum_money"=>number_format($moneyarry['sqzfb']/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'sqkj_count',
+            "type"=>4,"sort"=>4,
+            "sum_money"=>number_format($moneyarry['sqkj']/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'wx_count',
+            "type"=>5,"sort"=>1,
+            "sum_money"=>number_format($moneyarry['wx']/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'zfb_count',
+            "type"=>5,"sort"=>2,
+            "sum_money"=>number_format($moneyarry['zfb']/100, 2, '.', '')
+        );
+        $this->adddata[] = array(
+            "key_name"=>'kj_count',
+            "type"=>5,"sort"=>3,
+            "sum_money"=>number_format($moneyarry['sqkj']/100, 2, '.', '')
+        );
+    }
+    //获取spend表
+    protected function getSpendPayWay(&$moneyarry){
+        $map = array(
+            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1,
+            "pay_way"=>array("IN","1,2,3,9,15")
+        );
+        $dbres=$this->SpendModel
+                    ->field("
+                        IFNULL(SUM(CASE WHEN pay_way = 2 THEN pay_amount ELSE 0 END),0) as wxsm_count,
+                        IFNULL(SUM(CASE WHEN pay_way = 3 THEN pay_amount ELSE 0 END),0) as wxapp_count,
+                        IFNULL(SUM(CASE WHEN pay_way = 1 THEN pay_amount ELSE 0 END),0) as zfbgf_count,
+                        IFNULL(SUM(CASE WHEN pay_way = 9 THEN pay_amount ELSE 0 END),0) as zfbsq_count,
+                        IFNULL(SUM(CASE WHEN pay_way = 15 THEN pay_amount ELSE 0 END),0) as kjsq_count
+                        ")
+                    ->where($map)
+                    ->find();
+        $moneyarry['wx'] += ($dbres['wxsm_count']*100+$dbres['wxapp_count']*100);
+        $moneyarry['gfzfb'] += $dbres['zfbgf_count']*100;
+        $moneyarry['sqzfb'] += $dbres['zfbsq_count']*100;
+        $moneyarry['sqkj'] += $dbres['kjsq_count']*100;
+    }
+    //获取超级签购买
+    protected function getGameSupersignPayWay(&$moneyarry)
+    {
+        $map = array(
+            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1
+        );
+        $dbres=$this->GameSupersignModel
+                    ->field("
+                        IFNULL(SUM(CASE WHEN pay_way = 2 THEN pay_price ELSE 0 END),0) as wx_count,
+                        IFNULL(SUM(CASE WHEN pay_way = 1 THEN pay_price ELSE 0 END),0) as zfb_count
+                      ")
+                    ->where($map)
+                    ->find();
+        $moneyarry['wx'] += $dbres['wx_count'];
+        $moneyarry['gfzfb'] += $dbres['zfb_count'];
+    }
+    //玩家购买平台币
+    protected function getDepositPayWay(&$moneyarry)
+    {
+        $map = array(
+            "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "pay_status"=>1,
+            "pay_way"=>array("IN","1,2,3,9,15")
+        );
+        $dbres=$this->DepositModel
+                    ->field("
+                            IFNULL(SUM(CASE WHEN pay_way = 2 THEN pay_amount ELSE 0 END),0) as wxsm_count,
+                            IFNULL(SUM(CASE WHEN pay_way = 3 THEN pay_amount ELSE 0 END),0) as wxapp_count,
+                            IFNULL(SUM(CASE WHEN pay_way = 1 THEN pay_amount ELSE 0 END),0) as zfbgf_count,
+                            IFNULL(SUM(CASE WHEN pay_way = 9 THEN pay_amount ELSE 0 END),0) as zfbsq_count,
+                            IFNULL(SUM(CASE WHEN pay_way = 15 THEN pay_amount ELSE 0 END),0) as kjsq_count
+                        ")
+                    ->where($map)
+                    ->find();
+        $moneyarry['wx'] += ($dbres['wxsm_count']*100+$dbres['wxapp_count']*100);
+        $moneyarry['gfzfb'] += $dbres['zfbgf_count']*100;
+        $moneyarry['sqzfb'] += $dbres['zfbsq_count']*100;
+        $moneyarry['sqkj'] += $dbres['kjsq_count']*100;
+    }
+    //会长充值平台币
+    protected function getCoinPayOrderPayWay(&$moneyarry)
+    {
+        $map= array(
+            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+            "order_status"=>array("EGT",1)
+        );
+        $dbres= $this->CoinPayOrderModel
+                        ->field("
+                            IFNULL(SUM(CASE WHEN pay_way = 2 THEN pay_amount ELSE 0 END),0) as wx_count,
+                            IFNULL(SUM(CASE WHEN pay_way = 1 THEN pay_amount ELSE 0 END),0) as zfb_count
+                            ")
+                        ->where($map)
+                        ->find();
+        $moneyarry['wx'] += $dbres['wx_count'];
+        $moneyarry['gfzfb'] += $dbres['zfb_count'];
+    }
+    public function addDb()
+    {
+        foreach ($this->adddata as $k=> &$v) {
+            $v["count_month"] = $this->month;
+            $v["count_year"] = $this->year;
+            $v["create_time"] = $this->nowdata;
+        }
+       $res = $this->FinancialSummaryModel->addAll($this->adddata);
+       if(!$res){
+           echo "DB save error";
+       }else{
+
+       }
+    }
+ 
+}
diff --git a/Application/Admin/Controller/GameController.class.php b/Application/Admin/Controller/GameController.class.php
index 61be35f1c..33ac58f57 100644
--- a/Application/Admin/Controller/GameController.class.php
+++ b/Application/Admin/Controller/GameController.class.php
@@ -176,10 +176,10 @@ class GameController extends ThinkController
             $downloadWays = $_POST['download_ways'] ?? [];
             if (in_array(GameService::DOWNLOAD_BETA, $downloadWays)) {
                 if (empty($_POST['beta_url'])) {
-                    return $this->error("请在Beta按钮开启的情况填写Beta链接");
+                    return $this->error("请在极速版下载按钮开启的情况填写极速版下载链接");
                 }
                 if (!preg_match("/^((https|http|itms-beta)?:\/\/)[^\s]+/i", $_POST['beta_url'])) {
-                    return $this->error("请填写正确的Beta链接");
+                    return $this->error("请填写正确的极速版下载链接");
                 }
             }
             $_POST['relation_game_name'] = $_POST['game_name'];
@@ -355,10 +355,10 @@ class GameController extends ThinkController
             $downloadWays = $_POST['download_ways'] ?? [];
             if (in_array(GameService::DOWNLOAD_BETA, $downloadWays)) {
                 if (empty($_POST['beta_url'])) {
-                    return $this->error("请在Beta按钮开启的情况填写Beta链接");
+                    return $this->error("请在极速版下载按钮开启的情况填写极速版下载链接");
                 }
                 if (!preg_match("/^((https|http|itms-beta)?:\/\/)[^\s]+/i", $_POST['beta_url'])) {
-                    return $this->error("请填写正确的Beta链接");
+                    return $this->error("请填写正确的极速版下载链接");
                 }
             }
             /*if($_POST['apply_status']==0&&$_POST['game_status']==1){
diff --git a/Application/Admin/Controller/OldCountController.class.php b/Application/Admin/Controller/OldCountController.class.php
index 37283c3ce..30e95b003 100644
--- a/Application/Admin/Controller/OldCountController.class.php
+++ b/Application/Admin/Controller/OldCountController.class.php
@@ -1,4 +1,5 @@
 execute($sql);
+        echo "tab_financial_summary 清空成功".PHP_EOL;
+        //获取19年9月到上个月的所有月份
+        $monthList = $this->getMonthsList();
+        $Financial = new FinancialSummarySetController();
+        foreach ($monthList as $k => $v) {
+            $Financial->setMonthFinancialSummary($v);
+        }
+    }
     //超级签订单新增识别微信或者支付宝2019-12-11
     public function gameSupersignPaywayInit()
     {
@@ -87,5 +102,25 @@ class OldCountController extends \Think\Controller
         }
         die("init ok");
     }
+    //获取公司月结所需要的所有月份截止至上个月
+    public function getMonthsList()
+    {
+        $start_month = "2019-09";
+
+        $temp = strtotime(date('Y-m-01 00:00:00',strtotime('-1 month')));
+        $end_month = date('Y',$temp)."-".date('m',$temp);
+
+        $time_arr = [];
+        $begin = new \DateTime($start_month);
+        $end = new \DateTime($end_month);
+        $end = $end->modify('+1 month');
+        $interval = new \DateInterval('P1M');
+        $daterange = new \DatePeriod($begin, $interval ,$end);
+        foreach($daterange as $date){
+            $time_arr[] = $date->format("Y-m");
+        }
+        return $time_arr;
+    }
+    
     
 }
diff --git a/Application/Admin/View/FinancialSummary/index.html b/Application/Admin/View/FinancialSummary/index.html
new file mode 100644
index 000000000..a94577f7d
--- /dev/null
+++ b/Application/Admin/View/FinancialSummary/index.html
@@ -0,0 +1,442 @@
+
+
+
+    
+    
+    
+    
+
+    
+    
+    
+    
+    
+ +
+
+ +
+
+ +
+
+ +
+ + + + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
按收入类型
序号流水类型1月2月3月4月5月6月7月8月9月10月11月12月年度合计
{$incomekey}{$income.name}{$incomemoney}
合计:{$incomecount}
+ + + + + + + + + + + + + + + + + + + + + + + + +
按合作方类型
序号流水类型1月2月3月4月5月6月7月8月9月10月11月12月年度合计
{$promotekey}{$promote.name}{$promotemoney}
合计:{$promotecount}
+ + + + + + + + + + + + + + + + + + + + + + + + +
按支付渠道类型
序号流水类型1月2月3月4月5月6月7月8月9月10月11月12月年度合计
{$channelkey}{$channel.name}{$channelmoney}
合计:{$channelcount}
+ + + + + + + + + + + + + + + + + + + + + + + + +
支付类型类型
序号流水类型1月2月3月4月5月6月7月8月9月10月11月12月年度合计
{$paywaykey}{$payway.name}{$paywaymoney}
合计:{$paywaycount}
+
+
+ +
+ + + + if(C('COLOR_STYLE')=='blue_color') echo ' + '; + + + + + + + + \ No newline at end of file diff --git a/Application/Home/View/default/Home/landingPage.html b/Application/Home/View/default/Home/landingPage.html index 5f33d9a21..35674dc43 100644 --- a/Application/Home/View/default/Home/landingPage.html +++ b/Application/Home/View/default/Home/landingPage.html @@ -258,7 +258,7 @@
-
极速下载:畅享稳定游戏,拒绝频繁掉签,极速下载,不丢游戏,不丢数据,高端定制,仅针对IOS用户免费开放!
+
极速下载:免费极速下载,高端定制,游戏稳定,仅针对IOS用户开放!
至尊下载:10元购买,永不闪退、不丢数据稳定与保障。同意设备安装一次可在一年内无限次下载重装,并赠送限量至尊超级礼包!
diff --git a/Data/update.sql b/Data/update.sql index 2ea456ec1..0a24145f5 100644 --- a/Data/update.sql +++ b/Data/update.sql @@ -1332,3 +1332,18 @@ ALTER TABLE `tab_promote_company` CHANGE COLUMN `bank_address` `bank_address` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '开户网点' AFTER `bank_name`, CHANGE COLUMN `platform_name` `platform_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '平台名称' AFTER `bank_address`, CHANGE COLUMN `contact_begin` `contact_begin` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '合同开始时间' AFTER `platform_name`; + +---财务每月分类汇总表 chenzhi---- +CREATE TABLE `tab_financial_summary` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `type` tinyint(3) NOT NULL DEFAULT '0' COMMENT '汇总分类:1按收入类型,2按合作方不包含绑币,3按合作方包含绑币,4按支付渠道,5支付类型', + `key_name` varchar(50) DEFAULT '' COMMENT '类型名称', + `sort` int(11) DEFAULT '0' COMMENT '排序', + `sum_money` decimal(10,2) DEFAULT '0.00' COMMENT '流水', + `count_month` varchar(10) DEFAULT '' COMMENT '统计月份', + `count_year` varchar(10) DEFAULT '' COMMENT '统计年份', + `create_time` int(10) NOT NULL DEFAULT '0' COMMENT '最后更新时间', + PRIMARY KEY (`id`) USING BTREE, + KEY `count_year` (`count_year`) USING BTREE, + KEY `key_name` (`key_name`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='财务分类汇总统计';