|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Admin\Controller;
|
|
|
|
|
|
|
|
use User\Api\UserApi as UserApi;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 推广查询控制器
|
|
|
|
* @author 王贺
|
|
|
|
*/
|
|
|
|
class StatementMangementController extends ThinkController
|
|
|
|
{
|
|
|
|
public function lists() {
|
|
|
|
|
|
|
|
$map = [];
|
|
|
|
|
|
|
|
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
|
|
|
|
$map['create_time'] = ['between', [strtotime(I('time_start')), strtotime(I('time_end')) + 86399]];
|
|
|
|
} elseif (isset($_REQUEST['time_start'])) {
|
|
|
|
$map['create_time'] = ['GT', strtotime(I('time_start'))];
|
|
|
|
} elseif (isset($_REQUEST['time_end'])) {
|
|
|
|
$map['create_time'] = ['LT', strtotime(I('time_end')) + 86399];
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($_REQUEST['statement_type']||$_REQUEST['statement_type']=='0') {
|
|
|
|
if($_REQUEST['statement_type']=='2') {
|
|
|
|
$map['second_party_info'] = ['like','%"order_type":1%'];
|
|
|
|
} else {
|
|
|
|
$map['statement_type'] = $_REQUEST['statement_type'];
|
|
|
|
if ($_REQUEST['statement_type']=='1') {
|
|
|
|
|
|
|
|
$map['second_party_info'] = ['like','%"order_type":0%'];
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// dump($map['second_party_info']);die();
|
|
|
|
}
|
|
|
|
// var_dump($map);die();
|
|
|
|
|
|
|
|
if ($_REQUEST['company_id']) {
|
|
|
|
$map['company_name'] = $_REQUEST['company_id'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$data = M("statement","tab_")
|
|
|
|
->where($map)
|
|
|
|
->order("create_time Desc")
|
|
|
|
->select();
|
|
|
|
// var_dump($data);die();
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
$data[$key]['order'] = json_decode($value['second_party_info'],true)['order_type'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$sumData = M("statement","tab_")
|
|
|
|
->field('sum(`statement_money`) as sum_money,statement_type')
|
|
|
|
->where($map)
|
|
|
|
->group('statement_type')
|
|
|
|
->select();
|
|
|
|
|
|
|
|
$handleSumData = [];
|
|
|
|
foreach ($sumData as $key => $value) {
|
|
|
|
|
|
|
|
$handleSumData[$value['statement_type']] = $value['sum_money'];
|
|
|
|
}
|
|
|
|
if (!$handleSumData[1]) {
|
|
|
|
$handleSumData[1] = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$handleSumData[0]) {
|
|
|
|
$handleSumData[0] = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$this->assign('sum',$handleSumData);
|
|
|
|
// dump($sumData);die();
|
|
|
|
|
|
|
|
|
|
|
|
foreach($data as $key => $value) {
|
|
|
|
|
|
|
|
$data[$key]['create_time'] = date('Y-m-d H:i:s',$value['create_time']);
|
|
|
|
$data[$key]['statement_begin_time'] = date('Y-m-d H:i:s',$value['statement_begin_time']);
|
|
|
|
$data[$key]['statement_end_time'] = date('Y-m-d H:i:s',$value['statement_end_time']+86399);
|
|
|
|
|
|
|
|
// $data[$key]['is_confirm'] = $data[$key]['is_confirm']?'确认':'未确认';
|
|
|
|
// $data[$key]['statement_type'] = $value['statement_type']?'公会对账单':'CP对账单';
|
|
|
|
|
|
|
|
}
|
|
|
|
$this->meta_title = '结算单管理';
|
|
|
|
$this->assign('data',$data);
|
|
|
|
|
|
|
|
$this->display();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public function createDownstreamOrder() {
|
|
|
|
|
|
|
|
$this->display();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public function saveDownstreamOrder() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$second_party_info = $_REQUEST['second_party_info'];
|
|
|
|
$first_party_info = $_REQUEST['first_party_info'];
|
|
|
|
$statement_info = $_REQUEST['statement_info'];
|
|
|
|
$sumData = $_REQUEST['sum_data'];
|
|
|
|
|
|
|
|
if ($second_party_info['settlement_type']=='补点订单') {
|
|
|
|
$second_party_info['order_type'] = 1;
|
|
|
|
} else {
|
|
|
|
$second_party_info['order_type'] = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$second_party_info||!$first_party_info||!$statement_info||!$statement_info) {
|
|
|
|
$this->ajaxReturn(['code'=>0, 'msg'=>'数据错误' ]);
|
|
|
|
}
|
|
|
|
$insert['statement_type'] = 1;
|
|
|
|
$insert['company_id'] = $_REQUEST['company_id'];
|
|
|
|
$insert['company_name'] = $second_party_info['partner'];
|
|
|
|
$insert['link_phone'] = $second_party_info['link_phone'];;
|
|
|
|
|
|
|
|
$statement_begin_time = strtotime($statement_info[0]['statement_begin_time']);
|
|
|
|
$statement_end_time = strtotime($statement_info[0]['statement_end_time']);
|
|
|
|
|
|
|
|
foreach($statement_info as $key => $value) {
|
|
|
|
|
|
|
|
if ($statement_begin_time>strtotime($value['statement_begin_time'])&&$value['statement_begin_time']) {
|
|
|
|
$statement_begin_time = strtotime($value['statement_begin_time']);
|
|
|
|
}
|
|
|
|
// var_dump(strtotime($value['statement_begin_time']);
|
|
|
|
|
|
|
|
if ($statement_end_time<strtotime($value['statement_end_time'])&&$value['statement_end_time']) {
|
|
|
|
$statement_end_time=strtotime($value['statement_end_time']);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$insert['statement_begin_time'] = $statement_begin_time;
|
|
|
|
$insert['statement_end_time'] = $statement_end_time;
|
|
|
|
|
|
|
|
$insert['create_time'] = time();
|
|
|
|
$insert['statement_money'] =$sumData['statement_money'];
|
|
|
|
$insert['pay_amount'] = $sumData['pay_amount'];
|
|
|
|
$insert['ext_field'] = $_REQUEST['ext_field'];
|
|
|
|
$insert['first_party_info'] = json_encode($first_party_info);
|
|
|
|
$insert['second_party_info'] = json_encode($second_party_info);
|
|
|
|
$insert['statement_info'] = json_encode($statement_info);
|
|
|
|
|
|
|
|
if (!(M('statement','tab_')->where(['ext_field'=>$_REQUEST['ext_field']])->find())) {
|
|
|
|
M('statement','tab_')->add($insert);
|
|
|
|
$this->ajaxReturn(['code'=>1, 'msg'=>'生成结算单成功']);
|
|
|
|
} else {
|
|
|
|
$this->ajaxReturn(['code'=>0, 'msg'=>'生成结算单失败,结算单已经存在']);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public function editDownstreamOrder() {
|
|
|
|
|
|
|
|
$this->display('edit');
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public function editDownstreamOrderSave() {
|
|
|
|
$second_party_info = $_REQUEST['second_party_info'];
|
|
|
|
$first_party_info = $_REQUEST['first_party_info'];
|
|
|
|
$statement_info = $_REQUEST['statement_info'];
|
|
|
|
$sumData = $_REQUEST['sum_data'];
|
|
|
|
|
|
|
|
if (!$second_party_info||!$first_party_info||!$statement_info||!$statement_info) {
|
|
|
|
$this->ajaxReturn(['code'=>0, 'msg'=>'数据错误' ]);
|
|
|
|
}
|
|
|
|
$insert['statement_type'] = 1;
|
|
|
|
$insert['company_id'] = $_REQUEST['company_id'];
|
|
|
|
$insert['company_name'] = $second_party_info['partner'];
|
|
|
|
$insert['link_phone'] = $second_party_info['link_phone'];;
|
|
|
|
|
|
|
|
$statement_begin_time = strtotime($statement_info[0]['statement_begin_time']);
|
|
|
|
$statement_end_time = strtotime($statement_info[0]['statement_end_time']);
|
|
|
|
|
|
|
|
foreach($statement_info as $key => $value) {
|
|
|
|
|
|
|
|
if ($statement_begin_time>strtotime($value['statement_begin_time'])&&$value['statement_begin_time']) {
|
|
|
|
$statement_begin_time = strtotime($value['statement_begin_time']);
|
|
|
|
}
|
|
|
|
// var_dump(strtotime($value['statement_begin_time']);
|
|
|
|
|
|
|
|
if ($statement_end_time<strtotime($value['statement_end_time'])&&$value['statement_end_time']) {
|
|
|
|
$statement_end_time=strtotime($value['statement_end_time']);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$insert['statement_begin_time'] = $statement_begin_time;
|
|
|
|
$insert['statement_end_time'] = $statement_end_time;
|
|
|
|
|
|
|
|
$insert['create_time'] = time();
|
|
|
|
$insert['statement_money'] =$sumData['statement_money'];
|
|
|
|
$insert['pay_amount'] = $sumData['pay_amount'];
|
|
|
|
$insert['ext_field'] = $_REQUEST['ext_field'];
|
|
|
|
$insert['first_party_info'] = json_encode($first_party_info);
|
|
|
|
$insert['second_party_info'] = json_encode($second_party_info);
|
|
|
|
$insert['statement_info'] = json_encode($statement_info);
|
|
|
|
|
|
|
|
if ((M('statement','tab_')->where(['ext_field'=>$_REQUEST['ext_field']])->save($insert))) {
|
|
|
|
$this->ajaxReturn(['code'=>1, 'msg'=>'结算单编辑成功']);
|
|
|
|
} else {
|
|
|
|
$this->ajaxReturn(['code'=>0, 'msg'=>'结算单编辑失败']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function delStatementData() {
|
|
|
|
|
|
|
|
$id = $_REQUEST['id'];
|
|
|
|
if (!$id) {
|
|
|
|
$this->ajaxReturn(['code'=>2000,'error'=>'no']);
|
|
|
|
}
|
|
|
|
|
|
|
|
$is_del = M('statement','tab_')->where(['id'=>$id])->delete();
|
|
|
|
|
|
|
|
if ($is_del) {
|
|
|
|
$this->ajaxReturn(['code'=>0,'success'=>'ok']);
|
|
|
|
} else {
|
|
|
|
$this->ajaxReturn(['code'=>2000,'error'=>'no']);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public function rewardManageList($row = 10, $p = 1)
|
|
|
|
{
|
|
|
|
$map = [];
|
|
|
|
$list = M('reward_record', 'tab_')->where($map)->page($p, $row)->select();
|
|
|
|
if ($list) {
|
|
|
|
$companys[1] = array_column(M('partner', 'tab_')->field('id, partner as name')->select(), 'name', 'id');
|
|
|
|
$companys[2] = array_column(M('promote_company', 'tab_')->field('id, company_name as name')->select(), 'name', 'id');
|
|
|
|
$games = array_column(M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select(), 'relation_game_name', 'relation_game_id');
|
|
|
|
foreach ($list as &$item) {
|
|
|
|
$item['company_name'] = $companys[$item['company_type']][$item['company_id']];
|
|
|
|
$item['accounts'] = json_decode($item['accounts'], true) ?: [];
|
|
|
|
$item['reward_type_desc'] = $item['reward_type'] == 1 ? "奖励" : "惩罚";
|
|
|
|
$item['company_type_desc'] = $item['company_type'] == 1 ? "上游公司" : "下游公司";
|
|
|
|
$item['relation_game_name'] = $games[$item['relation_game_id']];
|
|
|
|
// if ($item['company_type'] == 1) {
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$count = M('reward_record', 'tab_')->where($map)->count();
|
|
|
|
$page = set_pagination($count, $row);
|
|
|
|
if ($page) {
|
|
|
|
$this->assign('_page', $page);
|
|
|
|
}
|
|
|
|
$this->assign('list', $list);
|
|
|
|
$this->display();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function rewardManageSave($id=0)
|
|
|
|
{
|
|
|
|
if (IS_POST) {
|
|
|
|
$data = [
|
|
|
|
'reward_type' => I('reward_type'),
|
|
|
|
'company_type' => I('company_type'),
|
|
|
|
'company_id' => I('company_id'),
|
|
|
|
'relation_game_id' => I('relation_game_id'),
|
|
|
|
'money' => I('money'),
|
|
|
|
'content' => I('content'),
|
|
|
|
'remark' => I('remark'),
|
|
|
|
];
|
|
|
|
$accounts = I('account');
|
|
|
|
$user_types = I('user_type');
|
|
|
|
if ($accounts) {
|
|
|
|
|
|
|
|
foreach ($accounts as $index => $account) {
|
|
|
|
$data['accounts'][] = array_merge(['account'=>$account], ['user_type'=>$user_types[$index]]);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$data['accounts'] = [];
|
|
|
|
}
|
|
|
|
$data['accounts'] = json_encode($data['accounts']);
|
|
|
|
if (!is_numeric(I('money'))) {
|
|
|
|
return $this->error('请输入正确的金额');
|
|
|
|
}
|
|
|
|
if (empty(I('content'))) {
|
|
|
|
return $this->error('请填写事件内容');
|
|
|
|
}
|
|
|
|
if ($id) {
|
|
|
|
$upt = M('reward_record', 'tab_')->where(['id'=>$id])->save($data);
|
|
|
|
return $upt ? $this->success('更新成功', U('StatementMangement/rewardManageList')) : $this->error('更新失败');
|
|
|
|
} else {
|
|
|
|
$data['create_time'] = time();
|
|
|
|
$data['creater_id'] = is_login();
|
|
|
|
$ins = M('reward_record', 'tab_')->add($data);
|
|
|
|
return $ins ? $this->success('新增成功', U('StatementMangement/rewardManageList')) : $this->error('新增失败');
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$games = M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select();
|
|
|
|
$this->assign('games', $games);
|
|
|
|
if ($id) {
|
|
|
|
if (I('delete')) {
|
|
|
|
$upt = M('reward_record', 'tab_')->where(['id'=>$id])->delete();
|
|
|
|
return $upt ? $this->success('删除成功') : $this->error('删除失败');
|
|
|
|
} else {
|
|
|
|
$data = M('reward_record', 'tab_')->where(['id'=>$id])->find();
|
|
|
|
if (!$data) return $this->error("未找到该记录");
|
|
|
|
$data['accounts'] = json_decode($data['accounts'], true) ?: [];
|
|
|
|
$this->assign('data', $data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$this->display();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getCompanys($type=1)
|
|
|
|
{
|
|
|
|
if ($type == 1) {
|
|
|
|
$data = M('partner', 'tab_')->field('id, partner as name')->select();
|
|
|
|
} elseif ($type == 0) {
|
|
|
|
$data = [];
|
|
|
|
} else {
|
|
|
|
$data = M('promote_company', 'tab_')->field('id, company_name as name')->select();
|
|
|
|
}
|
|
|
|
return $this->success($data, '', true);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|