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.

221 lines
7.2 KiB
PHTML

5 years ago
<?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__($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;
}
}