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.
312 lines
9.5 KiB
PHP
312 lines
9.5 KiB
PHP
<?php
|
|
|
|
namespace Admin\Controller;
|
|
|
|
/**
|
|
* 后台首页控制器
|
|
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
|
|
*/
|
|
class BusinessAffairsAwardController extends ThinkController
|
|
{
|
|
|
|
private $model;
|
|
|
|
public function _initialize()
|
|
{
|
|
$this->model = M("business_affairs_award","tab_");
|
|
parent::_initialize();
|
|
}
|
|
|
|
/**
|
|
*商务奖金比例列表
|
|
*/
|
|
public function lists()
|
|
{
|
|
$params = I('get.');
|
|
$page = $params['p'] ? intval($params['p']) : 1;
|
|
$row = $params['row'] ? intval($params['row']) : 10;
|
|
|
|
$data = $this->model->page($page, $row)->select();
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
if($value['end_amount'] == '0') {
|
|
$data[$key]['end_amount'] = '永久';
|
|
}
|
|
|
|
}
|
|
|
|
if(IS_ROOT){
|
|
$this->assign('add_check',true);
|
|
}else {
|
|
$exportRule = strtolower(MODULE_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME . "_add_check");
|
|
|
|
$this->assign('add_check', $this->checkRule($exportRule, array('in', '1,2')));
|
|
}
|
|
|
|
$count = $this->model->where("1=1")->count();
|
|
|
|
$page = set_pagination($count, $row,$params);
|
|
if($page) {
|
|
$this->assign('_page', $page);
|
|
}
|
|
|
|
$this->assign("list",$data);
|
|
|
|
$this->display();
|
|
|
|
}
|
|
|
|
public function add()
|
|
{
|
|
if(IS_POST) {
|
|
|
|
if (!$_POST['ratio']) {
|
|
$this->ajaxReturn(["msg"=>"请填写抽成比例","code"=>0]);
|
|
}
|
|
|
|
if(!$_POST['start_amount'] && $_POST['start_amount']!='0') {
|
|
$this->ajaxReturn(["msg"=>"请填写起始流水","code"=>0]);
|
|
}
|
|
|
|
if($_POST['start_amount'] >= $_POST['end_amount']&&$_POST['end_amount']) {
|
|
$this->ajaxReturn(["msg"=>"起始流水必须小于结束流水","code"=>0]);
|
|
}
|
|
|
|
$amount_start = $_POST['start_amount'];
|
|
$amount_end = $_POST['end_amount'];
|
|
|
|
$busunessData = M("business_affairs_award", "tab_")
|
|
->where("((start_amount<{$amount_start} and (end_amount >{$amount_start} or end_amount=0)) or (start_amount<{$amount_end} and (end_amount >={$amount_end} or end_amount=0)) or ((end_amount>{$amount_start} or end_amount=0) and (end_amount <={$amount_end} and end_amount!=0)))")
|
|
->select();
|
|
|
|
if ($busunessData) {
|
|
$this->ajaxReturn(["msg"=>"流水段已经存在","code"=>0]);
|
|
}
|
|
$add_data = $_POST;
|
|
$add_data['create_time'] = time();
|
|
|
|
!$add_data['end_amount']?($add_data['end_amount']=0):'';
|
|
|
|
$this->model->add($add_data);
|
|
|
|
$this->ajaxReturn(["msg"=>"添加成功","code"=>1,"url"=>U("lists")]);
|
|
} else {
|
|
$this->display();
|
|
}
|
|
}
|
|
|
|
public function edit()
|
|
{
|
|
$id = $_REQUEST["id"];
|
|
if(IS_POST) {
|
|
|
|
if (!$_POST['ratio']) {
|
|
$this->ajaxReturn(["msg"=>"请填写抽成比例","code"=>0]);
|
|
}
|
|
|
|
if(!$_POST['start_amount'] && $_POST['start_amount']!='0') {
|
|
$this->ajaxReturn(["msg"=>"请填写起始流水","code"=>0]);
|
|
}
|
|
|
|
if($_POST['start_amount'] >= $_POST['end_amount']&&$_POST['end_amount']) {
|
|
$this->ajaxReturn(["msg"=>"起始流水必须小于结束流水","code"=>0]);
|
|
}
|
|
|
|
$amount_start = $_POST['start_amount'];
|
|
$amount_end = $_POST['end_amount'];
|
|
|
|
$busunessData = M("business_affairs_award", "tab_")
|
|
->where("id != {$id} and ((start_amount<{$amount_start} and (end_amount >{$amount_start} or end_amount=0)) or (start_amount<{$amount_end} and (end_amount >={$amount_end} or end_amount=0)) or ((end_amount>{$amount_start} or end_amount=0) and (end_amount <={$amount_end} and end_amount!=0)))")
|
|
->select();
|
|
|
|
if ($busunessData) {
|
|
$this->ajaxReturn(["msg"=>"流水段已经存在","code"=>0]);
|
|
}
|
|
|
|
$add_data = $_POST;
|
|
$add_data['update_time'] = time();
|
|
|
|
!$add_data['end_amount']?($add_data['end_amount']=0):'';
|
|
|
|
$this->model->where(['id'=>$id])->save($add_data);
|
|
|
|
$this->ajaxReturn(["msg"=>"修改成功","code"=>1,"url"=>U("lists")]);
|
|
} else {
|
|
|
|
$data = $this->model->where(['id'=>$id])->find();
|
|
|
|
$data['start_amount'] = round($data['start_amount'],2);
|
|
$data['end_amount'] = round($data['end_amount'],2);
|
|
|
|
|
|
$this->assign("data",$data);
|
|
|
|
$this->display();
|
|
}
|
|
}
|
|
|
|
|
|
public function del()
|
|
{
|
|
if(!isset($_REQUEST['id'])){
|
|
$this->error('参数错误');
|
|
}
|
|
$id = $_REQUEST['id'];
|
|
$res = $this->model->where("id='{$id}'")->delete();
|
|
if($res !== false){
|
|
|
|
$this->success('删除成功',U("lists"));
|
|
|
|
}else{
|
|
$this->error('删除错误');
|
|
}
|
|
}
|
|
|
|
public function businessAffairsList() {
|
|
|
|
$check_quarter = ["03","06","09","12"];
|
|
|
|
$map = [];
|
|
|
|
$params = I('get.');
|
|
$page = $params['p'] ? intval($params['p']) : 1;
|
|
$row = $params['row'] ? intval($params['row']) : 10;
|
|
|
|
if($_REQUEST['time']) {
|
|
$map['time'] = $_REQUEST['time'];
|
|
}
|
|
|
|
if ($_REQUEST['game_belong_name']) {
|
|
$map['game_belong_name'] = ['like',"%{$_REQUEST['game_belong_name']}%"];
|
|
}
|
|
|
|
if ($_REQUEST['relation_game_name']) {
|
|
$map['relation_game_name'] = ['like',"%{$_REQUEST['game_name']}%"];
|
|
}
|
|
|
|
if ($_REQUEST['verify_status'] || $_REQUEST['verify_status'] == '0') {
|
|
$map['verify_status'] = ['like',"%{$_REQUEST['verify_status']}%"];
|
|
}
|
|
|
|
$data = M("business_affairs_award_pool","tab_")
|
|
->where($map);
|
|
|
|
if (!$_REQUEST['export']) {
|
|
$data->page($page, $row);
|
|
}
|
|
$data = $data->order("time desc")->select();
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
$detail = '未审核';
|
|
|
|
if ($value['verify_status'] == 1) {
|
|
$detail = '审批通过';
|
|
} elseif($value['verify_status'] == 2) {
|
|
$detail = '审批拒绝';
|
|
}
|
|
|
|
if($_REQUEST['export']) {
|
|
$data[$key]['time'] = '`'.$value['time'];
|
|
$detail .= "\n";
|
|
}else {
|
|
$detail .= "<br>";
|
|
}
|
|
|
|
$data[$key]['total_quarter_bonus_pool'] = round($value['quarter_bonus_pool'] * 0.25,2);
|
|
|
|
$time = date("m",strtotime($value['time']));
|
|
if (!in_array($time,$check_quarter)) {
|
|
$data[$key]["quarter_award"] = "0.00";
|
|
}
|
|
|
|
$data[$key]['person_award'] = $data[$key]['quarter_award'] + $value['month_award'];
|
|
|
|
if ($value['verify_status']) {
|
|
$data[$key]['verify_detail'] = $detail.date('Y-m-d H:i:s',$value['verify_time']);
|
|
} else {
|
|
$data[$key]['verify_detail'] = '未审核';
|
|
}
|
|
$data[$key]['ratio'] = round(($value['month_award']/$value['pay_amount']*100),2)."%";
|
|
|
|
}
|
|
|
|
if ($_REQUEST['export']) {
|
|
|
|
$title = ['time' => '月份',
|
|
'relation_game_name' => '游戏名称',
|
|
'pay_amount' => '产品流水',
|
|
'ratio' => '抽成比例',
|
|
'game_belong_name' => '奖励归属',
|
|
'month_bonus_pool' => '本月奖金池总额',
|
|
'total_quarter_bonus_pool'=>'本季度累计激励',
|
|
'quarter_bonus_pool' => '个人发放激励',
|
|
'month_award' => '流水个人奖金',
|
|
'person_award' => '个人奖金总额',
|
|
'verify_detail' => '审批状态'];
|
|
|
|
data2csv($data, '商务奖金汇总', $title);
|
|
}
|
|
|
|
$count = M("business_affairs_award_pool","tab_")
|
|
->where($map)
|
|
->count();
|
|
|
|
if(IS_ROOT){
|
|
$this->assign('verify_check',true);
|
|
$this->assign('caculate_check',true);
|
|
}else {
|
|
$exportRule = strtolower(MODULE_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME . "_verify_check");
|
|
$caculate_check = strtolower(MODULE_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME . "_caculate_check");
|
|
|
|
$this->assign('verify_check', $this->checkRule($exportRule, array('in', '1,2')));
|
|
$this->assign('caculate_check', $this->checkRule($caculate_check, array('in', '1,2')));
|
|
}
|
|
|
|
$page = set_pagination($count, $row,$params);
|
|
if($page) {
|
|
$this->assign('_page', $page);
|
|
}
|
|
|
|
$this->assign("list",$data);
|
|
|
|
$this->display();
|
|
|
|
}
|
|
|
|
public function verify() {
|
|
|
|
$status = $_REQUEST['status'];
|
|
|
|
$ids = $_REQUEST['ids'];
|
|
|
|
if ($ids) {
|
|
|
|
$is_save = M("business_affairs_award_pool","tab_")
|
|
->where(['id'=>['in',$ids]])
|
|
->save(['verify_status'=>$status,'verify_time'=>time()]);
|
|
|
|
if($is_save) {
|
|
$this->ajaxReturn(['status'=>1,'info'=>'操作成功']);
|
|
} else {
|
|
$this->ajaxReturn(['status'=>0,'info'=>'操作失败']);
|
|
}
|
|
|
|
} else {
|
|
|
|
$this->ajaxReturn(['status'=>0,'info'=>'数据错误']);
|
|
|
|
}
|
|
}
|
|
|
|
public function reCaculate()
|
|
{
|
|
|
|
exec("source /etc/profile;cd " . ROOTTT . ";php " . SUBSITE_INDEX . " timing/setbusinessAffairsAward > /dev/null &");
|
|
|
|
$this->ajaxReturn(['status' => 1]);
|
|
}
|
|
|
|
}
|