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.

285 lines
9.7 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace Admin\Event;
use Think\Controller;
/**
* 后台事件控制器
* @author 王贺
*/
class UserEvent extends BaseEvent {
public function lists($model=null,$p=1,$extends_map=array()){
parent::custom_list($model,$p,$extends_map);
}
public function user_join($model = null, $p = 0){
$model || $this->error('模型名标识必须!');
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
//解析列表规则
$fields = $model['fields'];
// 关键字搜索
$map = $model['map']; //array();
foreach ($key as $key => $value) {
if(isset($_REQUEST[$value])){
$map[$value] = array('like','%'.$_GET[$value].'%');
unset($_REQUEST[$value]);
}
}
// 条件搜索
foreach($_REQUEST as $name=>$val){
if(in_array($name,$fields)){
$map[$name] = $val;
}
}
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
//读取模型数据列表
$name = $model['m_name'];
//$new_model = D($name);
$data = D($name)
->field('tab_user.*,tab_user_play.game_id,tab_user_play.game_name')
->join('tab_user_play ON tab_user.id = tab_user_play.user_id','LEFT')
// 查询条件
->where($model['map'])
/* 默认通过id逆序排列 */
->order($model['order'])
->group('tab_user.id')
/* 数据分页 */
->page($page, $row)
/* 执行查询 */
->select();
/* 查询记录总数 */
$count = D($name)
->field('tab_user.*,tab_user_play.game_id,tab_user_play.game_name')
->join('tab_user_play ON tab_user.id = tab_user_play.user_id','LEFT')
// 查询条件
->group('tab_user.id')
->where($map)
->select();
$count=count($count);
//分页
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->assign('model', $model);
$this->assign('list_data', $data);
$this->assign('count', $count);
$this->meta_title = $model['title'].'列表';
$this->display($model['template_list']);
}
public function user_join_($model = null, $p = 0){
$model || $this->error('模型名标识必须!');
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
//解析列表规则
$fields = $model['fields'];
// 关键字搜索
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
// $row = 1;
//读取模型数据列表
$name = $model['m_name'];
$data = M($name,"tab_")
->field($model['fields'])
->join($model['join'])
->join($model['joins'])
->join($model['joinss'])
// 查询条件
->where($model['map'])
/* 默认通过id逆序排列 */
->order($model['order'])
->group($model['group'])
/* 数据分页 */
->page($page, $row)
/* 执行查询 */
->select();
//var_dump(M($name,"tab_")->getLastSql());exit;
/* 查询记录总数 */
$count = M($name,"tab_")
->field($model['fields'])
->join($model['join'])
->join($model['joins'])
->join($model['joinss'])
// 查询条件
->where($model['map'])
/* 默认通过id逆序排列 */
->order($model['order'])
->group($model['group'])
/* 数据分页 */
/* 执行查询 */
->count();
if($model['ranking']==1){
$i=($page-1)*$row;
foreach ($data as $key => $value) {
$ss[++$i]=$value;
}
$this->assign('list_data', $ss);
}else{
$this->assign('list_data', $data);
}
//分页
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->assign('model', $model);
$this->meta_title = $model['title'].'列表';
$this->display($model['template_list']);
}
public function user_join_v1($model = null, $p = 0){
$model || $this->error('模型名标识必须!');
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$arraypage = $page; //默认显示第一页数据
//解析列表规则
$fields = $model['fields'];
// 关键字搜索
$map = $model['map']; //array();
foreach ($key as $key => $value) {
if(isset($_REQUEST[$value])){
$map[$value] = array('like','%'.$_GET[$value].'%');
unset($_REQUEST[$value]);
}
}
// 条件搜索
foreach($_REQUEST as $name=>$val){
if(in_array($name,$fields)){
$map[$name] = $val;
}
}
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
//读取模型数据列表
$name = $model['m_name'];
$data = M($name,"tab_")
->field($model['fields'])
->join($model['join'])
->join($model['joins'])
->join($model['joinss'])
// 查询条件
->where($model['map'])
/* 默认通过id逆序排列 */
->order($model['order'])
->group($model['group'])
/* 数据分页 */
->page($page, $row)
/* 执行查询 */
->select();
$count=count($data);
//分页
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
if($_REQUEST['data_order']!=''){
$data_order=reset(explode(',',$_REQUEST['data_order']));
$data_order_type=end(explode(',',$_REQUEST['data_order']));
$this->assign('userarpu_order',$data_order);
$this->assign('userarpu_order_type',$data_order_type);
}
$data=my_sort($data,$data_order_type,(int)$data_order);
$size=$row;//每页显示的记录数
$pnum = ceil(count($data) / $size); //总页数ceil()函数用于求大于数字的最小整数
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
$data = array_slice($data, ($arraypage-1)*$size, $size);
$this->assign('model', $model);
$this->assign('list_data', $data);
$this->meta_title = $model['title'].'列表';
$this->display($model['template_list']);
}
public function user_join__($model = null, $p = 0){
$model || $this->error('模型名标识必须!');
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$arraypage = $page; //默认显示第一页数据
//解析列表规则
$fields = $model['fields'];
// 关键字搜索
$map = $model['map']; //array();
foreach ($key as $key => $value) {
if(isset($_REQUEST[$value])){
$map[$value] = array('like','%'.$_GET[$value].'%');
unset($_REQUEST[$value]);
}
}
// 条件搜索
foreach($_REQUEST as $name=>$val){
if(in_array($name,$fields)){
$map[$name] = $val;
}
}
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
//读取模型数据列表
$name = $model['m_name'];
$data = M($name,"tab_")
->field($model['fields'])
->join($model['join'])
->join($model['joins'])
->join($model['joinss'])
// 查询条件
->where($model['map'])
/* 默认通过id逆序排列 */
->order($model['order'])
->group($model['group'])
/* 数据分页 */
->page($page, $row)
/* 执行查询 */
->select();
$count=count($data);
//分页
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
if($_REQUEST['data_order']!=''){
$data_order=reset(explode(',',$_REQUEST['data_order']));
$data_order_type=end(explode(',',$_REQUEST['data_order']));
$this->assign('userarpu_order',$data_order);
$this->assign('userarpu_order_type',$data_order_type);
}
$data=my_sort($data,$data_order_type,(int)$data_order);
$size=$row;//每页显示的记录数
$pnum = ceil(count($data) / $size); //总页数ceil()函数用于求大于数字的最小整数
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
$data = array_slice($data, ($arraypage-1)*$size, $size);
$this->assign('model', $model);
$this->assign('list_data', $data);
$this->meta_title = $model['title'].'列表';
$this->display($model['template_list']);
}
/**
*获取用户实体
*@param int $id
*@return array
*@author 小纯洁
*/
public function user_entity($id=0){
$user = M("user","tab_");
$map['id'] = $id;
$data = $user->where($map)->find();
if(is_numeric($data['head_img'])){
$data['head_img'] = get_cover($data['head_img'],'path');
}
return $data;
}
}