You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
6.4 KiB
PHP
186 lines
6.4 KiB
PHP
<?php
|
|
namespace Admin\Controller;
|
|
class FinancialSummaryController extends AdminController
|
|
{
|
|
public $keyname=array(
|
|
"cash_spend"=>"现金充值收入",
|
|
"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"=>"无归属团",
|
|
);
|
|
public function _initialize()
|
|
{
|
|
parent::_initialize();
|
|
// echo "<pre>";
|
|
}
|
|
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));
|
|
}
|
|
if(!IS_ROOT){
|
|
$this->OpAuthList= getModuleControllerAuth();
|
|
}
|
|
$this->assign('menubtn',$this->menuAuth());
|
|
$lastRecount = D("CmdTasks")->getTypeLastTask("FinancialSummary");
|
|
if(!$lastRecount){
|
|
$lastRecount = "无";
|
|
}
|
|
$this->assign('lastRecount',$lastRecount);
|
|
|
|
$this->getYearList();
|
|
$this->getYearData();
|
|
$this->display();
|
|
|
|
}
|
|
public function updateStatement()
|
|
{
|
|
$temp = date('Y',time()).'-'.(date('m',time())-1);
|
|
$params = "php admin.php FinancialSummarySet/setMonthFinancialSummary/recount/1/count_date/{$temp}";
|
|
$r = D("CmdTasks")->addTask("FinancialSummary",$params);
|
|
if($r){
|
|
$this->ajaxReturn(["success"=>"ok"]);
|
|
}else{
|
|
$this->ajaxReturn(["error"=>"error"]);
|
|
}
|
|
}
|
|
//获取指定年份数据
|
|
public function getYearData()
|
|
{
|
|
$Channel = D("PaymentMerchant")->Channel;
|
|
$Ways = D("PaymentMerchant")->Ways;
|
|
|
|
$senddata = array(
|
|
"income"=>[
|
|
"count"=>['0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00']
|
|
],
|
|
"promote"=>[
|
|
"count"=>['0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00']
|
|
],
|
|
"channel"=>[
|
|
"count"=>['0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00']
|
|
],
|
|
"payway"=>[
|
|
"count"=>['0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00']
|
|
]
|
|
);
|
|
|
|
$merchant_data = M("payment_merchant","tab_")
|
|
->field("identifier,name")
|
|
->where(['status'=>1,'type'=>1])
|
|
->select();
|
|
|
|
//将商户插入到默认数组中
|
|
foreach ($merchant_data as $key => $value) {
|
|
$identifier = (string)$value['identifier'];
|
|
$this->keyname[$identifier] = $value['name'];
|
|
}
|
|
//其他信息插入默认
|
|
foreach ($Channel as $key => $value) {
|
|
$this->keyname["c".$key] = $value;
|
|
}
|
|
foreach ($Ways as $key => $value) {
|
|
$this->keyname["w".$key] = $value;
|
|
}
|
|
|
|
$data = [];
|
|
//初始化数据
|
|
foreach ($this->keyname as $k => $v) {
|
|
$data[$k] = array("name"=>$v,"money"=>['0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00']);
|
|
}
|
|
$map = array(
|
|
"count_year"=>$_REQUEST['year'],
|
|
"type"=>array("IN","1,{$_REQUEST['type']},4,5,6")
|
|
);
|
|
$dbres = M("FinancialSummary","tab_")->field("*")->where($map)->select();
|
|
|
|
foreach ($dbres as $k => $v) {
|
|
if($v['type'] == 1){
|
|
if(!in_array($v['key_name'],$senddata['income']['list'])){
|
|
$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'] == 6){
|
|
if(!in_array($v['key_name'],$senddata['merchant']['list'])){
|
|
$senddata['merchant']['list'][] = $v['key_name'];
|
|
}
|
|
}
|
|
if($v['type'] == $_REQUEST['type']){
|
|
if(!in_array($v['key_name'],$senddata['promote']['list'])){
|
|
$senddata['promote']['list'][] = $v['key_name'];
|
|
}
|
|
}
|
|
$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];
|
|
}
|
|
}
|
|
|
|
}
|
|
ksort($senddata[$k]['count']);
|
|
}
|
|
$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);
|
|
}
|
|
public function menuAuth()
|
|
{
|
|
$mentBtn = [
|
|
"updateStatement"=>"<a class='butn' id='updateStatement' style='background-color: green;'>重算金额</a>"
|
|
];
|
|
$resarr = [];
|
|
foreach ($mentBtn as $k => $v) {
|
|
if(IS_ROOT){
|
|
$resarr[] = $v;
|
|
}else{
|
|
if(in_array($k,$this->OpAuthList)){
|
|
$resarr[] = $v;
|
|
}
|
|
}
|
|
}
|
|
return $resarr;
|
|
}
|
|
|
|
|
|
|
|
} |