Is_Login(); // 权限校验 $this->Is_Power(); //要执行的表 $this->table = M('activity_mengbao'); } /** * [Index 列表] * @author Devil * @blog http://gong.gg/ * @version 0.0.1 * @datetime 2016-12-06T21:31:53+0800 */ public function Index() { $where = array(); $listRows = I('listRows') ? I('listRows') : 100; $keyword = I("keyword", "", "trim"); $keyword && $where['name'] = array('like', '%' . $keyword . '%'); if (isset($keyword) && !empty($keyword)) { $this->assign('keyword', $keyword); } // var_dump(I('post.'));die; $page = I('p') ? I('p') : 1; $this->assign('p', $page); $list = D('Admin/Mengbao')->get_mengbao_list($where, $page, $listRows, $count); // echo "
";
// var_dump($list); die;
//分页
$Page = new \Think\Page($count, $listRows);
$Page->parameter .= "&p=[PAGE]";
$Page->parameter .= "&listRows=" . $listRows;
$Page->parameter .= "&keyword=" .$keyword;
$Page = $this->page_config($Page);
$show = $Page->show();
$this->assign('page', $show);
$this->assign('List', $list);
$this->display('Index');
}
/**
* [ExcelExport excel文件导出]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-01-10T15:46:00+0800
*/
public function ExcelExport()
{
$where = array();
$data = M('activity_mengbao')->where($where)->order('score desc , id asc')->select();
$title = array(
'id' => array('col' => 'A', 'name' => 'ID'),
'name' => array('col' => 'B', 'name' => '名字'),
'uid' => array('col' => 'C', 'name' => 'uid'),
'phone' => array('col' => 'D', 'name' => '联系人手机号'),
'score' => array('col' => 'E', 'name' => '得票数'),
'is_show' => array('col' => 'F', 'name' => '在线状态(1在线,0下线)')
);
// Excel驱动导出数据
$excel = new \My\Excel(array('filename' => '萌宝排行榜', 'title' => $title, 'data' => $data, 'msg' => L('common_not_data_tips')));
$excel->Export();
}
/**
* [SaveInfo 文章添加/编辑页面]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public function SaveInfo() {
// 文章信息
if (empty($_REQUEST['id'])) {
$data = array();
} else {
$data = $this->table->find(I('id'));
if (empty($data)) {
$data = array('id' => I('id'));
}
}
if ($_REQUEST['map']) {
$map = $_REQUEST['map'];
}
//素材列表
if (I('id')) {
$sourceList = M('activity_mengbao')->where(['id' => array('neq', I('id'))])->field('id as source_id,name as source_name')->select();
}
$this->assign('sourceList', $sourceList);
$this->assign('data', $data);
$this->display('SaveInfo');
}
/**
* [Save 文章添加/编辑]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public function Save() {
// 是否ajax请求
if (!IS_AJAX) {
$this->error(L('common_unauthorized_access'));
}
// 添加
if (empty($_POST['id'])) {
$this->Add();
// 编辑
} else {
$this->Edit();
}
}
/**
* [Add 文章添加]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-18T16:20:59+0800
*/
private function Add() {
$m = $this->table;
$data = array();
// 额外数据处理
// $data['created_at'] = date('Y-m-d H:i:s', time());
// $data['name'] = I('name');
// if ($data['name']) {
// $data['first_string'] = $this->first_string($data['name']);
// }
$data['uid'] = I('uid');
$data['name'] = I('name');
$data['age'] = I('age');
$data['image'] = I('image');
$data['desc'] = I('desc');
$data['phone'] = I('phone');
$data['media_id'] = I('media_id');
$data['media_num'] = I('media_num');
$data['score'] = I('score');
$data['video'] = I('video');
$data['is_show'] = I('is_show');
// 数据添加
if ($m->add($data)) {
$this->ajaxReturn(L('common_operation_add_success'));
} else {
$this->ajaxReturn(L('common_operation_add_error'), -100);
}
}
/**
* [Edit 文章编辑]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-17T22:13:40+0800
*/
private function Edit() {
$m = $this->table;
$source_id = I('id');
$data = array();
// 额外数据处理
// $data['name'] = I('name');
// if ($data['name']) {
// $data['first_string'] = $this->first_string($data['name']);
// }
$data['uid'] = I('uid');
$data['name'] = I('name');
$data['age'] = I('age');
$data['image'] = I('image');
$data['desc'] = I('desc');
$data['phone'] = I('phone');
$data['media_id'] = I('media_id');
$data['media_num'] = I('media_num');
$data['score'] = I('score');
$data['video'] = I('video');
$data['is_show'] = I('is_show');
// 数据更新
if (false !== $m->where(array('id' => I('id')))->save($data)) {
$this->ajaxReturn(L('common_operation_edit_success'));
} else {
// echo M()->getLastsql();die;
$this->ajaxReturn(L('common_operation_edit_error'), -100);
}
}
/**
* [Delete 删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-15T11:03:30+0800
*/
public function Delete() {
// 是否ajax请求
if (!IS_AJAX) {
$this->error(L('common_unauthorized_access'));
}
// 删除数据
if (!empty($_POST['id'])) {
// 更新
$id = I('id');
$update = ['id'=>$id,'is_show'=>0];
if ($this->table->save($update)) {
$this->ajaxReturn(L('common_operation_delete_success'));
} else {
$this->ajaxReturn(L('common_operation_delete_error'), -100);
}
} else {
$this->ajaxReturn(L('common_param_error'), -1);
}
}
public function importExcel()
{
$param['title'] = array(
"id" => array('name' => 'id'),
"uid" => array('name' => 'uid'),
"phone" => array('name' => 'phone'),
"name" => array('name' => 'name'),
"age" => array('name' => 'age'),
"desc" => array('name' => 'desc'),
'score' => array('namr' => 'score'),
"image" => array('name' => 'image'),
"video" => array('name' => 'video'),
"media_id" => array('name' => 'media_id'),
"media_num" => array('name' => 'media_num'),
"is_show" => array('name' => 'is_show')
);
$excel = new \My\Excel($param);
$excel_data = $excel->Import($_FILES['excel']['tmp_name']);
$data = array_filter($excel_data);
if(!$data){
$msg = "检查标题是否对应正确";
goto end;
}
$update_data = $insert_data = array();
foreach ($data as $index=>$row) {
$row_num = $index + 2;
if(!$row = array_filter($row)){
$msg = '检查数据行: '.$row_num;
goto end;
}
//存在ID即代表更新
if($row['id']){
if(count($row) > 1){
//查看该素材是否存在,如果存在则更新,不存在则插入
if(M('activity_mengbao')->where(['id'=>$row['id']])->find()){
if(M('activity_mengbao')->save($row) === false){
Writelog( M()->getLastSql(), 'errorsql', 'inserttag');
$msg = '数据行更新失败: ' . $row_num . ' ,请告知技术进行处理';
goto end;
}
}
}else{
$msg = '检查数据行: '.$row_num;
goto end;
}
}else{
//新插入时检查注入所必须字段
$must_fields = array('name','image','phone','uid');
foreach ($must_fields as $field) {
if(!isset($row[$field])){
$msg = '检查数据行: '.$row_num;
goto end;
}
}
// $row['first_string'] = $this->first_string($row['name']);//首字母
$row['created_at'] = date('Y-m-d H:i:s');
if(!M('activity_mengbao')->add($row)){
Writelog( M()->getLastSql(), 'errorsql', 'inserttag');
$msg = '数据行插入失败: ' . $insertID . ' ,请告知技术进行处理';
goto end;
}
$insert_data[] = $row;
}
}
$msg = '导入完成';
goto end;
end:
$responsedata = array("msg" => $msg, "res" => 1, 'data' => []);
echo json_encode($responsedata,JSON_UNESCAPED_UNICODE);
exit;
}
/**
* 批量更新
* @param string $table_name [description]
* @param array $data [description]
* @param string $field [description]
* @return [type] [description]
*/
public function batch_update($table_name = '', $data = array(), $field = '') {
if (!$table_name || !$data || !$field) {
return false;
} else {
$sql = 'UPDATE ' . C('DB_PREFIX') . $table_name;
}
$con = array();
$con_sql = array();
$fields = array();
foreach ($data as $key => $value) {
$x = 0;
foreach ($value as $k => $v) {
if ($k != $field && !$con[$x] && $x == 0) {
$con[$x] = " set {$k} = (CASE {$field} ";
} elseif ($k != $field && !$con[$x] && $x > 0) {
$con[$x] = " {$k} = (CASE {$field} ";
}
if ($k != $field) {
$temp = $value[$field];
$con_sql[$x] .= " WHEN '{$temp}' THEN '{$v}' ";
$x++;
}
}
$temp = $value[$field];
if (!in_array($temp, $fields)) {
$fields[] = $temp;
}
}
$num = count($con) - 1;
foreach ($con as $key => $value) {
foreach ($con_sql as $k => $v) {
if ($k == $key && $key < $num) {
$sql .= $value . $v . ' end),';
} elseif ($k == $key && $key == $num) {
$sql .= $value . $v . ' end)';
}
}
}
$str = implode(',', $fields);
$sql .= " where {$field} in({$str})";
$res = M($table_name)->execute($sql);
return $res;
}
/**
* 上传图片文件
* @return [type] [description]
*/
public function uploadPics() {
$temp_config['pathFormat'] = C('uploaderSourceImg');
$temp_config['maxSize'] = C('ueditor_config.imageMaxSize');
$temp_config['allowFiles'] = C('ueditor_config.imageAllowFiles');
$up = new \My\Uploader('pics', $temp_config);
$info = $up->getFileInfo();
if ($info['state'] == 'SUCCESS') {
$this->ajaxReturn($info['state'], 200);
} else {
$this->ajaxReturn($info['state'], 400);
}
}
}