123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- <?php
- /**
- * GameRebateController.php UTF-8
- * 游戏返利管理
- *
- * @date : 2018/7/30 15:10
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : chenbingling <cbl@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace admin\admin\controller\app;
- use cmf\controller\AdminBaseController;
- use cmf\view\Filter;
- use huolib\constant\CommonConst;
- use huolib\constant\GameConst;
- use huolib\constant\OptionConst;
- use huolib\constant\OrderConst;
- use huolib\tool\Export;
- use huolib\tool\Page;
- use huoRebate\logic\RebateLogic;
- class GameRebateController extends AdminbaseController {
- /*返利状态选择器*/
- protected function _statuses_select($status) {
- $_status = [
- OrderConst::REBATE_STATUS_NOT => '待处理',
- OrderConst::REBATE_STATUS_SUC => '成功',
- OrderConst::REBATE_STATUS_FAIL => '失败'
- ];
- $_status_select = Filter::selectCommon($_status, 'status', $status);
- $this->assign('statuses_select', $_status_select);
- $this->assign('statuses', $_status);
- }
- /***
- * 游戏返利列表
- * /admin/app.game_rebate/index
- */
- public function index() {
- if ('1' == $this->request->param('export/d', 0)) {
- return $this->exportIndex();
- }
- $_param = $this->request->param();
- $_order_input = Filter::text('order_id', get_val($_param, 'order_id', ''), '请输入订单ID');
- $this->assign('order_input', $_order_input);
- $_username_input = Filter::text('username', get_val($_param, 'username', ''), '请输入玩家账号');
- $this->assign('username_input', $_username_input);
- $this->_statuses_select(get_val($_param, 'status', ''));
- $this->_time(
- get_val($_param, 'start_time', date('Y-m-d', strtotime('-1 month'))),
- get_val($_param, 'end_time', date('Y-m-d'))
- );
- $this->_games(
- get_val($_param, 'app_id', 0), GameConst::GAME_STATUS_ON, CommonConst::CONST_NOT_DELETE,
- GameConst::GAME_IS_SDK
- );
- $this->_cp(get_val($_param, 'cp', 0));
- $_mg_mem_id_input = Filter::text('mg_mem_id', get_val($_param, 'mg_mem_id', ''), '请输入小号ID');
- $this->assign('mg_mem_id_input', $_mg_mem_id_input);
- $_page = $this->request->param('page/d', 1);
- $_listRows = $this->request->param('listRows/d', 10);
- $_list = (new RebateLogic())->getAdminList($_param, $_page.','.$_listRows);
- $_items = $_list['list'];
- $_items = (new Page())->paginate($_list['count'], $_items, $_page, $_listRows);
- $this->assign('page', $_items->render());
- $this->assign('items', $_items);
- $this->assign('members', $_list['members']);
- $this->assign('sum', $_list['sum']);
- return $this->fetch();
- }
- /**
- * 导出订单数据
- *
- * @param int $is_handle
- * @param int $cp_status
- */
- public function exportIndex() {
- $_param = $this->request->param();
- $_order_input = Filter::text('order_id', get_val($_param, 'order_id', ''), '请输入订单ID');
- $this->assign('order_input', $_order_input);
- $_username_input = Filter::text('username', get_val($_param, 'username', ''), '请输入玩家账号');
- $this->assign('username_input', $_username_input);
- $this->_statuses_select(get_val($_param, 'status', ''));
- $this->_time(
- get_val($_param, 'start_time', date('Y-m-d', strtotime('-1 month'))),
- get_val($_param, 'end_time', date('Y-m-d'))
- );
- $this->_games(
- get_val($_param, 'app_id', 0), GameConst::GAME_STATUS_ON, CommonConst::CONST_NOT_DELETE,
- GameConst::GAME_IS_SDK
- );
- $_cp = $this->_cp(0, true);
- $_mg_mem_id_input = Filter::text('mg_mem_id', get_val($_param, 'mg_mem_id', ''), '请输入小号ID');
- $this->assign('mg_mem_id_input', $_mg_mem_id_input);
- $_p = 1;
- $_offset = Export::MAX_ROWS;
- $_page = $_p.','.$_offset;
- $_data = (new RebateLogic())->getAdminList($_param, $_page.','.$_offset);
- $_members = $_data['members'];
- $_total_cnt = $_data['count'];
- if ($_total_cnt <= 0) {
- $_total_cnt = 1;
- }
- $_for_cnt = ceil($_total_cnt / $_offset);
- $_file_name_arr = [];
- while ($_p <= $_for_cnt) {
- $_head = [
- 'ID',
- '订单号',
- '用户',
- 'CP名称',
- '游戏',
- '区服',
- '角色ID',
- '角色',
- '金额',
- '状态',
- '申请时间',
- '小号ID',
- '备注'
- ];
- $_export_datas = [];
- if (1 == $_p) {
- $_data_sum['total'] = '汇总';
- $_data_sum['order_id'] = '--';
- $_data_sum['mem'] = '--';
- $_data_sum['cp'] = '--';
- $_data_sum['gamename'] = '--';
- $_data_sum['server_name'] = '--';
- $_data_sum['role_id'] = '--';
- $_data_sum['role_name'] = '--';
- $_data_sum['amount'] = $_data['sum'];
- $_data_sum['status'] = '--';
- $_data_sum['create_time'] = '--';
- $_data_sum['mg_mem_id'] = '--';
- $_data_sum['remark'] = '--';
- $_export_datas[] = $_data_sum;
- }
- foreach ($_data['list'] as $_key => $_val) {
- $_export_data['id'] = $_val['id'];
- $_export_data['order_id'] = $_val['order_id'];
- $_export_data['mem'] = isset($_members[$_val['mem_id']]) ? $_members[$_val['mem_id']] : '';
- $_export_data['cp'] = isset($_cp[$_val['cp_id']]) ? $_cp[$_val['cp_id']] : '';
- $_export_data['gamename'] = $_val['gamename'];
- $_export_data['server_name'] = $_val['server_name'];
- $_export_data['role_id'] = $_val['role_id'];
- $_export_data['role_name'] = $_val['role_name'];
- $_export_data['amount'] = $_val['amount'];
- $_export_data['status'] = $_val['status_txt'];
- $_export_data['create_time'] = date('Y-m-d H:i', $_val['apply_time']);
- $_export_data['mg_mem_id'] = $_val['mg_mem_id'];
- $_export_data['remark'] = $_val['remark'];
- $_export_datas[] = $_export_data;
- }
- if (1 == $_for_cnt) {
- Export::exportCsv($_head, $_export_datas, $path = $this->admin_id, '返利订单', '.csv', true);
- break;
- } else {
- $_file_name = '返利订单'.$_p;
- Export::exportCsv($_head, $_export_datas, $path = $this->admin_id, $_file_name);
- $_file_name_arr[] = $_file_name.'.csv';
- $_p++;
- if ($_p > 1) {
- $_data = null;
- $_page = $_p.','.$_offset;
- $_data = (new RebateLogic())->getAdminList($_param, $_page);
- }
- }
- }
- Export::exportZip($_file_name_arr, $path = $this->admin_id, '返利订单');
- }
- /**
- * 订单审核
- * /admin/app.game_rebate/setStatus
- */
- public function setStatus() {
- $_id = $this->request->param('oid/d', 0);
- $_status = $this->request->param('sts/d', 1);
- $_remark = $this->request->param('remark/s', '');
- if (empty($_id)) {
- $this->adminError(lang('param error'));
- }
- if (OrderConst::REBATE_STATUS_FAIL == $_status && empty($_remark)) {
- $this->adminError('请输入审核不通过原因!');
- }
- $_rs = (new RebateLogic())->setStatus($_id, $_status, $_remark);
- if (false == $_rs) {
- $this->adminError('修改失败');
- }
- $this->adminSuccess('修改成功');
- }
- /**
- * 订单详情
- * /admin/app.game_rebate/detail
- */
- public function detail() {
- $_id = $this->request->param('oid/d', 0);
- $_data = (new RebateLogic())->getRoInfo($_id);
- $this->_statuses_select(0);
- $this->assign('order', $_data['ro_info']);
- $this->assign('ro_list', $_data['ro_list']['list']);
- return $this->fetch();
- }
- /**
- * 获取最小值设定
- */
- public function minSet() {
- $_value = (new RebateLogic())->getMinSet();
- $this->assign('value', $_value);
- return $this->fetch('minSet');
- }
- /**
- * 设定最小值
- */
- public function setMinSet() {
- $_value = $this->request->param('rebate_min_set/d', 0);
- $_rs = (new RebateLogic())->setMinSet(OptionConst::REBATE_MIN_SET, $_value);
- if ($_rs) {
- return $this->adminSuccess('设定成功!');
- }
- return $this->adminError('设定失败!');
- }
- }
|