123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- <?php
- namespace Admin\Controller;
- /**
- * 素材管理
- * @author brent
- * @version 0.0.1
- */
- class MengbaoController extends CommonController {
- protected $table = ''; //表名
- /**
- * [_initialize 前置操作-继承公共前置方法]
- * @author Devil
- * @blog http://gong.gg/
- * @version 0.0.1
- * @datetime 2016-12-03T12:39:08+0800
- */
- public function _initialize() {
- // 调用父类前置方法
- parent::_initialize();
- // 登录校验
- $this->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 "<pre>";
- // 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);
- }
- }
- }
|