操作日志

master
sunke 5 years ago
parent bf7a2e36e4
commit 1f6de9be57

@ -152,6 +152,7 @@ class PromoteService {
]; ];
if (M('shift_task', 'sys_')->add($data)) { if (M('shift_task', 'sys_')->add($data)) {
recordPromoteLogs('管理中心','渠道迁移');
return [ return [
'status' => true, 'status' => true,
'msg'=>'迁移任务创建成功' 'msg'=>'迁移任务创建成功'

@ -1286,4 +1286,18 @@ function convertAmountToCn($num) {
} }
return $daxie . '整'; return $daxie . '整';
} }
//记录工作人员相关操作日志
function recordPromoteLogs($module,$action_type) {
$id = get_pid();
$promoteInfo = M("promote","tab_")->field('account')->where(['id'=>$id])->find();
$promoteLogsData['action_type'] = $action_type;
$promoteLogsData['module'] = $module;
$promoteLogsData['promote'] = $promoteInfo['account'];
$promoteLogsData['promote_id'] = $id;
$promoteLogsData['ip'] = $_SERVER['REMOTE_ADDR'];
$promoteLogsData['create_time'] = time();
M('promote_action_logs','tab_')->add($promoteLogsData);
}

@ -1139,7 +1139,7 @@ class ApplyController extends BaseController
if ($_POST['sdk_type'] > 0 && empty($res)) { if ($_POST['sdk_type'] > 0 && empty($res)) {
$this->ajaxReturn(array("status" => 1, "msg" => "已申请过该游戏")); $this->ajaxReturn(array("status" => 1, "msg" => "已申请过该游戏"));
} }
recordPromoteLogs('游戏管理','专服管理添加游戏');
$this->ajaxReturn(array("status" => 1, "msg" => "申请成功")); $this->ajaxReturn(array("status" => 1, "msg" => "申请成功"));
} else { } else {
$this->ajaxReturn(array("status" => "0", "msg" => "数据有误")); $this->ajaxReturn(array("status" => "0", "msg" => "数据有误"));

@ -154,6 +154,7 @@ class CoinOrderController extends BaseController
$data['pay_way'] = 3; $data['pay_way'] = 3;
} }
M("coin_pay_order", 'tab_')->add($data); M("coin_pay_order", 'tab_')->add($data);
recordPromoteLogs('平台币管理','提交充值订单');
$this->ajaxReturn(['status'=>1,'info'=>'充值提交成功','pay_type'=>$pay_type,'trade_no'=>$order_no,'time'=>1000],"JSON"); $this->ajaxReturn(['status'=>1,'info'=>'充值提交成功','pay_type'=>$pay_type,'trade_no'=>$order_no,'time'=>1000],"JSON");
}else{ }else{
$account = $_SESSION['onethink_home']['promote_auth']['account']; $account = $_SESSION['onethink_home']['promote_auth']['account'];

@ -1227,6 +1227,57 @@ class DownloadController extends BaseController {
} }
$this->success('添加下载成功',U('listsIndex')); $this->success('添加下载成功',U('listsIndex'));
} }
public function promotelogs_data_export() {
$begTime = I('begtime');
$endTime = I('endtime');
// $map1['chain'] = ['like','%'.'/'.PID.'/'.'%'];
// $rs = M('promote','tab_')->where($map1)->field('id,account,nickname')->select();
// $childPromoteIds = '';
// if(empty($rs)) {
// $map['promote_id'] = PID;
// }else {
// foreach ($rs as $rsKey => $rsValue) {
// $id = $rsValue['id'];
// $childPromoteIds .= $id.',';
// }
// $childPromoteIds = rtrim($childPromoteIds, ',');
// $childPromoteIds .= ',' . PID;
// $map['promote_id'] = ['in', $childPromoteIds];
// }
$map['pid'] = PID;
empty(I('user_account')) || $map['promote'] = ['like', '%' . I('user_account') . '%'];
empty(I('action_type')) || $map['action_type'] = ['like', '%' . I('action_type') . '%'];
if (!empty($begTime) && !empty($endTime)) {
$map['create_time'] = ['between', [strtotime($begTime), strtotime($endTime) +24*3600- 1]];
}else if (empty($begTime) && !empty($endTime)) {
$map['create_time'] = ['elt',strtotime($endTime) + 24*3600];
}else if (!empty($begTime) && empty($endTime)) {
$map['create_time'] = ['EGT',strtotime($begTime) + 24*3600];
}
$conditions = json_encode($map,TRUE);
$addtime = time();
$data = [
'logid' => 'promoteLogs_'.time(),
'promote_id' => PID,
'type' => '/Home/Safe/promoteLogs',
'dataname' => '推广员操作日志',
'status' => 0,
'addtime' => $addtime,
'begintime' => 0,
'content' => '',
'conditions' =>$conditions
];
$res = M('downloadlog','tab_')->add($data);
if (!$res) {
// $this->ajaxReturn(array("status" => -1, "msg" => "添加导出日志失败", 'ret' => $res));
$this->error('添加下载失败');
}
$this->success('添加下载成功',U('listsIndex'));
}
/** /**
* 充值明细添加下载 * 充值明细添加下载
* @author sunke * @author sunke
@ -2049,12 +2100,82 @@ class DownloadController extends BaseController {
case "推广员详情": case "推广员详情":
$this->promotequotaDtlExcelInfo($id,$map); $this->promotequotaDtlExcelInfo($id,$map);
break; break;
case "推广员操作日志":
$this->promotelogsExcelInfo($id,$map);
break;
default: default:
break; break;
} }
} }
public function promotelogsExcelInfo($id,$map) {
$xlsName = "推广员操作日志";
$xlsCell = array(
'位置',
'类型',
'操作人',
'时间',
'ip地址',
);
$pid = $map['pid'];
unset($map['pid']);
$map1['chain'] = ['like','%'.'/'.$pid.'/'.'%'];
$rs = M('promote','tab_')->where($map1)->field('id,account,nickname')->select();
$childPromoteIds = '';
if(empty($rs)) {
$map['promote_id'] = $pid;
}else {
foreach ($rs as $rsKey => $rsValue) {
$id = $rsValue['id'];
$childPromoteIds .= $id.',';
}
$childPromoteIds = rtrim($childPromoteIds, ',');
$childPromoteIds .= ',' . $pid;
$map['promote_id'] = ['in', $childPromoteIds];
}
$records = M('promote_action_logs', 'tab_')->where($map)->order('create_time')->select();
$csvFileName = $xlsName.'.csv';
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'. $csvFileName .'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$fp = fopen('php://output', 'a');//打开output流
mb_convert_variables('gb2312', 'UTF-8', $xlsCell);
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
$accessNum = count($records)?:0 ;
$perSize = 5000;//每次查询的条数
$pages = ceil($accessNum / $perSize);
for($i = 1; $i <= $pages; $i++) {
$data = M('promote_action_logs', 'tab_')->where($map)->order('create_time')
->limit(($i-1)*$perSize ,$perSize)->select();
foreach($data as $dataKey => $dataValue) {
$orderLen = strlen($dataValue['promote']);
$strLen = 3;
$hideChar = '';
if ($orderLen <= 8) { $strLen = 2;}
for ($i = 0; $i < $orderLen - $strLen * 2; $i++) {
$hideChar .= '*';
}
$csvData['module'] = $dataValue['module'];
$csvData['action_type'] = $dataValue['action_type'];
$csvData['user_account'] = substr($dataValue['promote'], 0, $strLen) . $hideChar . substr($dataValue['promote'], $orderLen - $strLen);
$csvData['create_time'] = date("Y-m-d H:i:s",$dataValue['create_time']);
$csvData['ip'] = $dataValue['ip'];
mb_convert_variables('GBK', 'UTF-8', $csvData);
fputcsv($fp, $csvData);
}
unset($csvData);
ob_flush();
flush();
}
fclose($fp);
$this->backSuccessExport($id);
}
public function promotequotaDtlExcelInfo($id,$map) { public function promotequotaDtlExcelInfo($id,$map) {
$xlsName = "推广员详情"; $xlsName = "推广员详情";
$xlsCell = array( $xlsCell = array(
@ -2067,6 +2188,7 @@ class DownloadController extends BaseController {
'等级', '等级',
'创建时间', '创建时间',
); );
$records = recordPromoteLogs('数据管理','推广员详情导出');
$records = M('user_play_info', 'tab_')->where($map)->order('create_time desc')->select(); $records = M('user_play_info', 'tab_')->where($map)->order('create_time desc')->select();
$csvFileName = $xlsName.'.csv'; $csvFileName = $xlsName.'.csv';
//设置好告诉浏览器要下载excel文件的headers //设置好告诉浏览器要下载excel文件的headers
@ -2130,6 +2252,7 @@ class DownloadController extends BaseController {
array('server_name','游戏区服'), array('server_name','游戏区服'),
array('role_num','角色数量'), array('role_num','角色数量'),
); );
$records = recordPromoteLogs('数据管理','推广员指标导出');
$params['isContainSubs'] = $map['isContainSubs']; $params['isContainSubs'] = $map['isContainSubs'];
$params['basicPromotes'] = json_decode($map['basicPromotes'],TRUE); $params['basicPromotes'] = json_decode($map['basicPromotes'],TRUE);
$ids = $map['ids']; $ids = $map['ids'];
@ -2276,7 +2399,8 @@ class DownloadController extends BaseController {
'注册ip', '注册ip',
'登陆时间', '登陆时间',
'登陆ip' '登陆ip'
); );
$records = recordPromoteLogs('数据管理','注册明细导出');
$model = M('user','tab_'); $model = M('user','tab_');
$data1 = $model->field('account')->where($map)->order('tab_user.id desc')->select(); $data1 = $model->field('account')->where($map)->order('tab_user.id desc')->select();
@ -2335,7 +2459,8 @@ class DownloadController extends BaseController {
array('role_name','游戏昵称'), array('role_name','游戏昵称'),
array('role_level','等级'), array('role_level','等级'),
array('create_time','创建时间'), array('create_time','创建时间'),
); );
$records = recordPromoteLogs('数据管理','角色查询导出');
$model = M('user_play_info','tab_'); $model = M('user_play_info','tab_');
$data = $model->field('user_account,promote_account,game_name,server_name,role_name,role_level,create_time')->where($map)->order('create_time desc')->select(); $data = $model->field('user_account,promote_account,game_name,server_name,role_name,role_level,create_time')->where($map)->order('create_time desc')->select();
$xlsData = []; $xlsData = [];
@ -2360,6 +2485,7 @@ class DownloadController extends BaseController {
array('new_ip_num','新增创角ip'), array('new_ip_num','新增创角ip'),
array('login_user_num','登陆用户数'), array('login_user_num','登陆用户数'),
); );
$records = recordPromoteLogs('数据管理','数据汇总导出');
if($this->canViewUserRecharge) { if($this->canViewUserRecharge) {
$xlsCell[] = array('spend_user_num','充值人数'); $xlsCell[] = array('spend_user_num','充值人数');
$xlsCell[] = array('spend_num','充值次数'); $xlsCell[] = array('spend_num','充值次数');
@ -2526,6 +2652,7 @@ class DownloadController extends BaseController {
array('create_time','创建时间'), array('create_time','创建时间'),
); );
$records = recordPromoteLogs('数据管理','渠道管理导出');
$model = M('promote','tab_'); $model = M('promote','tab_');
$data = $model->where($map)->select(); $data = $model->where($map)->select();
$xlsData = []; $xlsData = [];
@ -2551,14 +2678,15 @@ class DownloadController extends BaseController {
} }
public function mycoinExcelInfo($id,$map) { public function mycoinExcelInfo($id,$map) {
$xlsName = "我的平台币"; $xlsName = "我的平台币";
$xlsCell = array( $xlsCell = array(
array('cointype','平台币类型'), array('cointype','平台币类型'),
array('game_name','游戏名称'), array('game_name','游戏名称'),
array('num','平台币余额'), array('num','平台币余额'),
array('status','资产状态'), array('status','资产状态'),
); );
$records = recordPromoteLogs('平台币管理','我的平台币导出');
$data = M('PromoteBalanceCoin', 'tab_') $data = M('PromoteBalanceCoin', 'tab_')
->field('tab_promote_balance_coin.*,tab_game.game_name') ->field('tab_promote_balance_coin.*,tab_game.game_name')
->join('left join tab_game on tab_promote_balance_coin.game_id = tab_game.id') ->join('left join tab_game on tab_promote_balance_coin.game_id = tab_game.id')
@ -2585,8 +2713,8 @@ class DownloadController extends BaseController {
} }
public function mycoinRecordExcelInfo($id,$map) { public function mycoinRecordExcelInfo($id,$map) {
$xlsName = "我的平台币明细"; $xlsName = "我的平台币明细";
$xlsCell = array( $xlsCell = array(
array('sn','流水号'), array('sn','流水号'),
array('type_text','操作类型'), array('type_text','操作类型'),
array('sub_type_text','操作方式'), array('sub_type_text','操作方式'),
@ -2596,6 +2724,7 @@ class DownloadController extends BaseController {
array('description','交易说明'), array('description','交易说明'),
array('create_time','交易时间'), array('create_time','交易时间'),
); );
$records = recordPromoteLogs('平台币管理','我的平台币明细导出');
$service = new PromoteCoinRecordService(); $service = new PromoteCoinRecordService();
$data = M('promote_coin_record','tab_')->where($map)->select(); $data = M('promote_coin_record','tab_')->where($map)->select();
$records = []; $records = [];
@ -2632,6 +2761,7 @@ class DownloadController extends BaseController {
array('create_time',"交易时间"), array('create_time',"交易时间"),
array('status',"交易状态"), array('status',"交易状态"),
); );
$records = recordPromoteLogs('平台币管理','平台币转移导出');
$model = M('promote_coin_transfer_log', 'tab_'); $model = M('promote_coin_transfer_log', 'tab_');
$logs = $model->where($map)->select(); $logs = $model->where($map)->select();
$service = new PromoteCoinTransferLogService(); $service = new PromoteCoinTransferLogService();
@ -2702,7 +2832,7 @@ class DownloadController extends BaseController {
array('check_status',"状态"), array('check_status',"状态"),
array('create_time',"创建时间"), array('create_time',"创建时间"),
); );
$records = recordPromoteLogs('测试资源','测试资源导出');
$data = M('test_resource','tab_') $data = M('test_resource','tab_')
->field("tab_test_resource.*,user.check_status") ->field("tab_test_resource.*,user.check_status")
->join('tab_user user on tab_test_resource.user_id=user.id','left') ->join('tab_user user on tab_test_resource.user_id=user.id','left')
@ -2759,6 +2889,7 @@ class DownloadController extends BaseController {
array('create_time',"申请时间"), array('create_time',"申请时间"),
array('verify_time',"审核时间"), array('verify_time',"审核时间"),
); );
$records = recordPromoteLogs('测试资源','测试资源记录导出');
$data=M('test_resource','tab_')->where($map)->order('id desc')->select(); $data=M('test_resource','tab_')->where($map)->order('id desc')->select();
foreach($data as $key => $value) { foreach($data as $key => $value) {
$data[$key]['user_account'] = $this->encryption($value['user_account']); $data[$key]['user_account'] = $this->encryption($value['user_account']);
@ -2790,6 +2921,7 @@ class DownloadController extends BaseController {
array('check_status',"状态"), array('check_status',"状态"),
array('create_time',"创建时间"), array('create_time',"创建时间"),
); );
$records = recordPromoteLogs('测试资源','扶持号管理导出');
$data = M('test_resource','tab_') $data = M('test_resource','tab_')
->field('tab_test_resource.id,tab_test_resource.user_id,tab_test_resource.game_name,tab_test_resource.server_name,tab_test_resource.user_account,tab_test_resource.promote_account,tab_test_resource.role_name,tab_test_resource.create_time,device_number,lock_status as check_status') ->field('tab_test_resource.id,tab_test_resource.user_id,tab_test_resource.game_name,tab_test_resource.server_name,tab_test_resource.user_account,tab_test_resource.promote_account,tab_test_resource.role_name,tab_test_resource.create_time,device_number,lock_status as check_status')
->join('left join tab_user as user on tab_test_resource.user_id = user.id') ->join('left join tab_user as user on tab_test_resource.user_id = user.id')
@ -2824,7 +2956,8 @@ class DownloadController extends BaseController {
array('historyPayCount','累计付费用户'), array('historyPayCount','累计付费用户'),
array('arpu','ARPU'), array('arpu','ARPU'),
array('arppu','ARPPU'), array('arppu','ARPPU'),
); );
$records = recordPromoteLogs('数据管理','ARPU统计导出');
$dayList = $params["dayList"]; $dayList = $params["dayList"];
$arr = explode(',', $params['promote_id'][1]); $arr = explode(',', $params['promote_id'][1]);
$params['promote_id'] = $arr; $params['promote_id'] = $arr;
@ -2877,6 +3010,7 @@ class DownloadController extends BaseController {
array('order_status1','订单状态'), array('order_status1','订单状态'),
array('time','申请时间'), array('time','申请时间'),
); );
$records = recordPromoteLogs('平台币管理','平台币充值导出');
$model = M('coin_pay_order','tab_'); $model = M('coin_pay_order','tab_');
$data = $model->where($map)->order('id DESC')->select(); $data = $model->where($map)->order('id DESC')->select();
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
@ -3248,6 +3382,7 @@ class DownloadController extends BaseController {
array('login_user_num','登陆用户数'), array('login_user_num','登陆用户数'),
); );
$records = recordPromoteLogs('数据管理','每日概况导出');
if ($this->canViewUserRecharge) { if ($this->canViewUserRecharge) {
$xlsCell[] = array('spend_user_num','充值人数'); $xlsCell[] = array('spend_user_num','充值人数');
@ -3392,6 +3527,7 @@ class DownloadController extends BaseController {
array('new_create_role_ip_count','新创角ip'), array('new_create_role_ip_count','新创角ip'),
array('login_user_count','登陆用户数'), array('login_user_count','登陆用户数'),
); );
$records = recordPromoteLogs('数据管理','推广员业绩导出');
if ($this->canViewUserRecharge) { if ($this->canViewUserRecharge) {
$xlsCell[] = array('recharge_user_count','充值人数'); $xlsCell[] = array('recharge_user_count','充值人数');
$xlsCell[] = array('recharge_count','充值次数'); $xlsCell[] = array('recharge_count','充值次数');
@ -3534,6 +3670,7 @@ class DownloadController extends BaseController {
'推广员账号', '推广员账号',
); );
$records = recordPromoteLogs('数据管理','充值玩家导出');
$subMap = []; $subMap = [];
if(!empty($map['game_id'])) { if(!empty($map['game_id'])) {
$subMap['game_id'] = $map['game_id']; $subMap['game_id'] = $map['game_id'];
@ -3734,6 +3871,7 @@ class DownloadController extends BaseController {
'推广员', '推广员',
'付款时间', '付款时间',
); );
$records = recordPromoteLogs('数据管理','充值明细导出');
$model = M('spend','tab_'); $model = M('spend','tab_');
if(!empty($map['tab_spend.pay_status'])) { if(!empty($map['tab_spend.pay_status'])) {
$map['tab_spend.pay_status'] = $map['tab_spend.pay_status'] -2 ; $map['tab_spend.pay_status'] = $map['tab_spend.pay_status'] -2 ;

@ -306,6 +306,7 @@ class PromoteCoinController extends BaseController
} }
if ($result['status']) { if ($result['status']) {
recordPromoteLogs('平台币管理','平台币转移');
$this->ajaxReturn(['status' => 1, 'msg' => '转账成功!']); $this->ajaxReturn(['status' => 1, 'msg' => '转账成功!']);
} else { } else {
$this->ajaxReturn(['status' => -1, 'msg' => $result['msg']]); $this->ajaxReturn(['status' => -1, 'msg' => $result['msg']]);

@ -1091,6 +1091,7 @@ class PromoteController extends BaseController
$status = $promoteService->addPromote($params, $parent); $status = $promoteService->addPromote($params, $parent);
if ($status) { if ($status) {
recordPromoteLogs('管理中心','添加会员');
$this->ajaxReturn(['status' => 1, 'msg' => '添加成功']); $this->ajaxReturn(['status' => 1, 'msg' => '添加成功']);
} else { } else {
$this->ajaxReturn(['status' => 0, 'msg' => '添加失败']); $this->ajaxReturn(['status' => 0, 'msg' => '添加失败']);
@ -1145,6 +1146,7 @@ class PromoteController extends BaseController
$promoteService = new PromoteService(); $promoteService = new PromoteService();
if ($password = $promoteService->resetPassword($promoteId)) { if ($password = $promoteService->resetPassword($promoteId)) {
recordPromoteLogs('管理中心','重置密码');
$this->ajaxReturn(['status' => 1, 'msg' => '重置密码成功', 'data' => ['password' => $password]]); $this->ajaxReturn(['status' => 1, 'msg' => '重置密码成功', 'data' => ['password' => $password]]);
} else { } else {
$this->ajaxReturn(['status' => 0, 'msg' => '重置密码失败']); $this->ajaxReturn(['status' => 0, 'msg' => '重置密码失败']);
@ -1159,6 +1161,7 @@ class PromoteController extends BaseController
} }
$promoteService = new PromoteService(); $promoteService = new PromoteService();
if ($promoteService->froze($promoteId)) { if ($promoteService->froze($promoteId)) {
recordPromoteLogs('管理中心','冻结账号');
$this->ajaxReturn(['status' => 1, 'msg' => '冻结成功']); $this->ajaxReturn(['status' => 1, 'msg' => '冻结成功']);
} else { } else {
$this->ajaxReturn(['status' => 0, 'msg' => '冻结失败']); $this->ajaxReturn(['status' => 0, 'msg' => '冻结失败']);
@ -1173,6 +1176,7 @@ class PromoteController extends BaseController
} }
$promoteService = new PromoteService(); $promoteService = new PromoteService();
if ($promoteService->unfreeze($promoteId)) { if ($promoteService->unfreeze($promoteId)) {
recordPromoteLogs('管理中心','解冻账号');
$this->ajaxReturn(['status' => 1, 'msg' => '解冻成功']); $this->ajaxReturn(['status' => 1, 'msg' => '解冻成功']);
} else { } else {
$this->ajaxReturn(['status' => 0, 'msg' => '解冻失败']); $this->ajaxReturn(['status' => 0, 'msg' => '解冻失败']);
@ -1271,6 +1275,7 @@ class PromoteController extends BaseController
$res = $user->edit($_POST); $res = $user->edit($_POST);
if ($res !== false) { if ($res !== false) {
recordPromoteLogs('管理中心','修改管理成员');
$this->success("子账号修改成功", U('Promote/children')); $this->success("子账号修改成功", U('Promote/children'));
} else { } else {
$this->error("修改子账号失败"); $this->error("修改子账号失败");
@ -1311,6 +1316,7 @@ class PromoteController extends BaseController
$res = M("promote", "tab_")->where($map)->save($se); $res = M("promote", "tab_")->where($map)->save($se);
if ($res !== false) { if ($res !== false) {
recordPromoteLogs('管理中心','修改管理成员');
$this->success("修改成功", U('Promote/edit_chlid', array('id' => $id, 'type' => $type))); $this->success("修改成功", U('Promote/edit_chlid', array('id' => $id, 'type' => $type)));
} else { } else {
$this->error('修改失败', U('Promote/edit_chlid', array('id' => $id, 'type' => $type))); $this->error('修改失败', U('Promote/edit_chlid', array('id' => $id, 'type' => $type)));
@ -2038,6 +2044,7 @@ class PromoteController extends BaseController
$promoteId = $_POST['promote_id']; $promoteId = $_POST['promote_id'];
$applyService = new ApplyService(); $applyService = new ApplyService();
$applyService->cancelGame($gameId, $promoteId); $applyService->cancelGame($gameId, $promoteId);
recordPromoteLogs('游戏管理','专服管理下架游戏');
$this->ajaxReturn(['status' => true, 'msg' => '下架成功']); $this->ajaxReturn(['status' => true, 'msg' => '下架成功']);
} }

@ -48,6 +48,7 @@ class SafeController extends BaseController{
$id = get_pid(); $id = get_pid();
$updateRs = M("promote","tab_")->where(['id'=>$id])->save($data); $updateRs = M("promote","tab_")->where(['id'=>$id])->save($data);
if($updateRs) { if($updateRs) {
recordPromoteLogs('安全管理','设置安全密码');
$this->success("安全密码设置成功"); $this->success("安全密码设置成功");
} }
} }
@ -146,6 +147,7 @@ class SafeController extends BaseController{
$data['password'] = $this->think_ucenter_md5($newpwd, UC_AUTH_KEY); $data['password'] = $this->think_ucenter_md5($newpwd, UC_AUTH_KEY);
$updateRs = M('promote','tab_')->where(['id'=>$id])->save($data); $updateRs = M('promote','tab_')->where(['id'=>$id])->save($data);
if($updateRs) { if($updateRs) {
recordPromoteLogs('安全管理','修改登陆密码');
$this->success("修改成功"); $this->success("修改成功");
}else { }else {
$this->error("修改失败"); $this->error("修改失败");
@ -286,6 +288,7 @@ class SafeController extends BaseController{
$updateRs = M("promote","tab_")->where(['id'=>$id])->save($data); $updateRs = M("promote","tab_")->where(['id'=>$id])->save($data);
if($updateRs) { if($updateRs) {
recordPromoteLogs('安全管理','修改用户信息');
$this->success("更新信息成功"); $this->success("更新信息成功");
}else { }else {
$this->error("更新信息失败"); $this->error("更新信息失败");
@ -424,6 +427,7 @@ class SafeController extends BaseController{
$id = get_pid(); $id = get_pid();
$updateRs = M("promote","tab_")->where(['id'=>$id])->save($data); $updateRs = M("promote","tab_")->where(['id'=>$id])->save($data);
if($updateRs) { if($updateRs) {
recordPromoteLogs('安全管理','二次修改信息');
$this->success("更新信息成功",U('modifyBaseInfo')); $this->success("更新信息成功",U('modifyBaseInfo'));
}else { }else {
$this->error("更新信息失败"); $this->error("更新信息失败");
@ -487,4 +491,72 @@ class SafeController extends BaseController{
$this->assign('phone',$phone); $this->assign('phone',$phone);
$this->display(); $this->display();
} }
public function promoteLogs() {
$page = intval(I('p', 1));
$row = intval(I('row', 10));
$user_account = I('user_account');
$action_type = I('action_type');
$begTime = strtotime(I('begtime'));
$endTime = strtotime(I('endtime'));
$id = get_pid();
$loginPromote = $this->getLoginPromote();
$map1['chain'] = ['like', $loginPromote['chain'] . $loginPromote['id'] . '/%'];
$ids = M('promote', 'tab_')->where($map1)->getField('id', true);
$ids[] = $loginPromote['id'];
$map = [];
$map['promote_id'] = ['in', $ids];
if (!empty($user_account)) {
$map['promote'] = ['like','%'.$user_account.'%'];
}
if (!empty($action_type)) {
$map['action_type'] = ['like','%'.$action_type.'%'];
}
if (!empty($begTime) && !empty($endTime)) {
$map['create_time'] = ['between', [$begTime, $endTime + 24*3600 - 1]];
}else if (empty($begTime) && !empty($endTime)) {
$map['create_time'] = ['elt',$endTime + 24*3600];
}else if (!empty($begTime) && empty($endTime)) {
$map['create_time'] = ['EGT',$begTime + 24*3600];
}
$page = intval(I('get.p', 1));
$page = $page ? $page : 1; //默认显示第一页数据arraypage
$rs = M('promote_action_logs','tab_')->where($map)->order('create_time')
->page($page, $row)->select();
foreach($rs as $key => $v) {
$rs[$key]['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
}
$count = M('promote_action_logs', 'tab_')
->field('id')
->where($map)
->select();
$count = count($count);
//分页
$parameter['p'] = $page;
$parameter['row'] = $row;
$parameter['begtime'] = I('begtime');
$parameter['endtime'] = I('endtime');
$parameter['user_account'] = $user_account;
$parameter['action_type'] = $action_type;
$page = set_pagination($count, $row, $parameter);
if ($page) {
$this->assign('_page', $page);
}
$this->assign('listData',$rs);
$this->assign('initBegTime', I('begtime'));
$this->assign('initEndTime', I('endtime'));
$this->display();
}
public function deletePromoteLogs() {
$id = $_REQUEST['id'];
$rs = M('promote_action_logs','tab_')->where(['id'=>$id])->delete();
if($rs) {
$this->ajaxReturn(['code'=>0000,'mes'=>'删除成功']);
}
}
} }

@ -322,6 +322,7 @@ class SupportController extends BaseController {
$data['status']=C('SUPPORT_AUTO_AUDIT')==1?2:1; $data['status']=C('SUPPORT_AUTO_AUDIT')==1?2:1;
$model = M('support','tab_')->add($data); $model = M('support','tab_')->add($data);
if($model){ if($model){
recordPromoteLogs('测试资源','新增扶持号');
session('apply_status',1); session('apply_status',1);
} }
if(C('SUPPORT_AUTO_AUDIT')==1){ //自动审核开启请求cp发放扶持 if(C('SUPPORT_AUTO_AUDIT')==1){ //自动审核开启请求cp发放扶持

@ -606,6 +606,7 @@ class TestResourceController extends BaseController
} }
} }
M('test_resource','tab_')->commit(); //提交事物 M('test_resource','tab_')->commit(); //提交事物
recordPromoteLogs('测试资源','批量申请');
$this->ajaxReturn(['status'=>1,'msg'=>'申请成功']); $this->ajaxReturn(['status'=>1,'msg'=>'申请成功']);
} }
public function lists( $p = 1){ public function lists( $p = 1){

@ -107,6 +107,7 @@
<?php if ($loginer['level'] == 1) :?> <?php if ($loginer['level'] == 1) :?>
<a href="{:U('Safe/modifyBaseInfo')}" class="<if condition='CONTROLLER_NAME eq Safe and (ACTION_NAME eq modifyBaseInfo or ACTION_NAME eq my_game or ACTION_NAME eq my_game_ch or ACTION_NAME eq child_game ) '>active</if> ">用户基本信息</a> <a href="{:U('Safe/modifyBaseInfo')}" class="<if condition='CONTROLLER_NAME eq Safe and (ACTION_NAME eq modifyBaseInfo or ACTION_NAME eq my_game or ACTION_NAME eq my_game_ch or ACTION_NAME eq child_game ) '>active</if> ">用户基本信息</a>
<?php endif;?> <?php endif;?>
<a href="{:U('Safe/promoteLogs')}" class="<if condition='CONTROLLER_NAME eq Safe and (ACTION_NAME eq promoteLogs or ACTION_NAME eq promoteLogs or ACTION_NAME eq promoteLogs or ACTION_NAME eq promoteLogs ) '>active</if> ">操作日志</a>
</div> </div>
<div class="subNav jssubNav"><i class="prev_icon icon_fenbao"></i><span>测试资源</span><i class="arrow_icon"></i></div> <div class="subNav jssubNav"><i class="prev_icon icon_fenbao"></i><span>测试资源</span><i class="arrow_icon"></i></div>
<div class="navContent jsnavContent"> <div class="navContent jsnavContent">

@ -0,0 +1,327 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__STATIC__/icons_alibaba/iconfont.css?v=1.2" rel="stylesheet">
</block>
<block name="body">
<style>
@media screen and (max-width: 1500px) {
.normal_form {
padding-top: 45px;
}
.trunk-search .normal_txt {
width: 100px
}
.select2-container--default .select2-selection--single {
width: 125px;
}
.trunk-search .select-time .txt {
width: 100px;
}
.form-group .submit {
width: 55px;
}
}
.normal_space {
margin-left: 0;
margin-right: 10px;
margin-bottom: 10px;
}
.selected-color {
color: #2bd8ed;
}
.pointer-hand {
cursor: pointer;
}
.icon-spend {
position: relative;
font-size: 1.2rem;
top: 3px;
float: right;
right: 10px;
}
.form-group {
float: left;
margin-bottom: 10px;
}
.form-group label {
line-height: 34px;
height: 34px;
}
.form-group .txt {
width: 180px;
height: 34px;
}
</style>
<div class="page-search normal_list query-recharge-search jssearch">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>安全管理></span><span>操作日志</span></div>
</div>
<img src="__IMG__/20180207/icon_chongzhi.png">
<span class="title_main">说明</span>
<span class="details">工作人员在推广平台内的操作日志</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div class="form-group normal_space">
<input type="text" name="user_account" class="txt normal_txt" placeholder="操作人"
value="{:I('user_account')}">
</div>
<div class="form-group normal_space">
<input type="text" name="action_type" class="txt normal_txt" id="uid" placeholder="操作类型"
value="{:I('action_type')}">
</div>
<div class="form-group normal_space">
<label class="form-title select-title" style="position: relative;">起止时间:</label>
<div class="select-time">
<input type="text" readonly id="sdate" class="txt" name="begtime" placeholder="开始时间" value="{$initBegTime}">
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" readonly id="edate" class="txt" name="endtime" placeholder="结束时间" value="{$initEndTime}">
</div>
</div>
<div class="form-group normal_space">
<input type="submit" class="submit" id='submit' url="{:U('Safe/promoteLogs','model='.$model['name'],false)}"
value="查询">
</div>
<!-- <input type="hidden" name="version" value="{:I('version',1)}"> -->
<!-- </form>-->
</div>
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
<div class="trunk-content article">
<div class="tabcon trunk-list">
<table class="table normal_table">
<tr class="odd">
<th>编号</th>
<th>位置</th>
<th>类型</th>
<th>操作人</th>
<th>时间</th>
<th>IP地址</th>
</tr>
<empty name="listData">
<tr class="num2">
<td colspan="10" style="text-align: center;height: 45vh;">
<img src="__IMG__/20180207/icon_wushujv2.png"/>
<p style="line-height: 40px;color: #A5A5A5;">暂无数据</p>
</td>
</tr>
<else/>
<volist name="listData" id="vo">
<tr class="num2">
<td>{$vo.id}</td>
<td>{$vo.module}</td>
<td>{$vo.action_type}</td>
<td>{$vo.promote}</td>
<td>{$vo.create_time}</td>
<td>{$vo.ip}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<?php if ($loginer['level'] !== 4) :?>
<a id="sch-btn" data-href="{:U('download/promotelogs_data_export',array_merge(['xlsname'=>'ceshi'],I('get.')))}" class="ajax-get">导出</a>
<?php endif ;?>
{$_page}
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript" src="__JS__/common.js"></script>
<script>
function deleteLogs(id) {
layer.confirm('是否确认删除日志?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Safe/deletePormoteLogs')}",
data: {id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
</script>
<script type="text/javascript">
var promoteUrl = "{:U('Query/getSubPromotes')}"
initPromoteSelect(promoteUrl)
$().ready(function () {
setValue('relation_game_id', {$Think.request.relation_game_id |default = '""'});
setValue('sdk_version', {$Think.request.sdk_version |default = '""'});
setValue('server_id', {$Think.request.server_id |default = '""'});
setValue('row', '{:I("get.row",10)}');
var date = "{$setdate}";
$('#sdate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#edate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
function showPromoteSelect(html)
{
$("#promote_id").empty();
$('#promote_id').html(html);
$("#promote_id").select2();
}
$('#own').on('click',function () {
var own = $('#own_id');
var checkBox = $(this).children('i');
if (own.is(':checked')) {
checkBox.removeClass('iconfangxingxuanzhongfill');
checkBox.removeClass('selected-color');
checkBox.addClass('iconfangxingweixuanzhong');
own.prop('checked', false);
} else {
checkBox.removeClass('iconfangxingweixuanzhong');
checkBox.addClass('iconfangxingxuanzhongfill');
checkBox.addClass('selected-color');
own.prop('checked', true);
}
});
$('#relation_game_id').change(function () {
var relationGameId = $(this).val();
var sdkVersion = $('#sdk_version').val();
getServerList(relationGameId, sdkVersion);
});
$('#sdk_version').change(function () {
var sdkVersion = $(this).val();
var relationGameId = $('#relation_game_id').val();
if (relationGameId > 0) {
getServerList(relationGameId, sdkVersion);
}
});
function getServerList(relationGameId, sdkVersion)
{
$.ajax({
url: "{:U('getServerAjax')}",
type: "post",
data: {relation_game_id: relationGameId,sdk_version:sdkVersion},
dataType: 'json',
success: function (data) {
var html = "<option value='' selected>请选择区服</option>";
if (data.status == 1) {
var serverData = data.data;
if (serverData.length > 0) {
for (var i in serverData) {
html += "<option value='" + serverData[i]['server_id'] + "'>" + serverData[i]['server_name'] + "</option>";
}
}
}
$("#server_id").empty();
$('#server_id').html(html);
$("#server_id").select2();
}
})
}
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
$('#submit').click(function () {
var sdate = Date.parse($('#sdate').val()) / 1000;
var edate = Date.parse($('#edate').val()) / 1000;
if (sdate > edate) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
if ((edate - sdate) > 2592000) {
layer.msg('时间间隔不能超过31天请重新选择日期');
return false;
}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
window.location.href = url;
});
$(".select_gallery").select2();
});
</script>
</block>

@ -1379,3 +1379,15 @@ CREATE TABLE `tab_resource_verify_config` (
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='资源审核配置'; ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='资源审核配置';
ALTER TABLE tab_test_resource ADD COLUMN `is_new` tinyint(1) DEFAULT '0' COMMENT '0-未知1-新用户;2-非新用户'; ALTER TABLE tab_test_resource ADD COLUMN `is_new` tinyint(1) DEFAULT '0' COMMENT '0-未知1-新用户;2-非新用户';
--2020-2-27 sunke--
CREATE TABLE `tab_promote_action_logs` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`action_type` CHAR(254) NOT NULL DEFAULT '' COMMENT '操作类型',
`module` CHAR(254) NOT NULL DEFAULT '' COMMENT '所属模块',
`promote` CHAR(254) NOT NULL DEFAULT '' COMMENT '操作人',
`promote_id` INT(11) NOT NULL DEFAULT '0',
`ip` VARCHAR(254) NOT NULL DEFAULT '0' COMMENT 'ip',
`create_time` CHAR(254) NOT NULL DEFAULT '' COMMENT '创建时间',
PRIMARY KEY (`id`)
) COMMENT='推广员操作日志' COLLATE='utf8mb4_bin';

Loading…
Cancel
Save