| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- <?php
- /**
- * 系统设置
- */
- namespace App\Http\Controllers\Admin;
- use App\Http\Controllers\Controller;
- use App\Models\Account;
- use App\Models\Account_group;
- use Illuminate\Http\Request as Req;
- use Illuminate\Support\Facades\DB;
- use Request;
- /**
- *
- */
- class MessageController extends Controller
- {
- /**
- * 活动公告
- */
- function Index(Req $req)
- {
- $request = array();
- $request['title'] = isset($req->title) ? trim($req->title) : null;
- $request['type'] = isset($req->type) ? trim($req->type) : null;
- // $request['message_type'] = isset($req->message_type) ? trim($req->message_type) : null;
- $request['toname'] = isset($req->toname) ? trim($req->toname) : null;
- $request['fromname'] = isset($req->fromname) ? trim($req->fromname) : null;
- $dt = \App\Lib\DataTable\DataTable::init();
- $dt->setDataSource('/admin/Message/getArticle');
- $dt->setLang('notice');
- // $dt->addColsFields('id');
- $dt->addColsFields('title');
- $dt->addColsFields('toname');
- $dt->addColsFields('group_name');
- $dt->addColsFields('formname');
- $dt->addColsFields('add_type');
- $dt->addColsFields('is_show');
- // $dt->addColsFields('content');
- $dt->addColsFields('add_time');
- // $dt->addColsFields('message_type');
- $dt->addColsFields('type');
- $dt->enableCheckBox();
- $arr[] = 'view';
- $dt->setToolBar($arr, array('width' => 140));
- return view('admin.Manager/arictle', $dt->render($request));
- }
- //获取信息
- //获取活动信息
- function getArticle()
- {
- $limit = Request::has('limit') ? Request::get('limit') : 10;
- $title = Request::has('title') ? Request::get('title') : '';
- $content = Request::has('content') ? Request::get('content') : '';
- $message_type = Request::has('message_type') ? Request::get('message_type') : '';
- $type = Request::has('type') ? Request::get('type') : '';
- $forname = Request::has('forname') ? Request::get('forname') : '';
- $toname = Request::has('toname') ? Request::get('toname') : '';
- $add_time = Request::has('add_time') ? Request::get('add_time') : '';
- $where = array();
- if (!empty($title)) {
- $where[] = array('title', 'like', '%' . $title . '%');
- }
- if (!empty($type)) {
- $where[] = array('type', '=', $type);
- } else {
- //$where[] = array('type', '!=', 2);
- //$where[] = array('type', '!=', 4);
- }
- if (!empty($content)) {
- $where[] = array('content', 'like', '%' . $content . '%');
- }
- if (!empty($forname)) {
- $where[] = array('formname', 'like', '%' . $forname . '%');
- }
- if (!empty($toname)) {
- $where[] = array('toname', 'like', '%' . $toname . '%');
- }
- if (!empty($add_time)) {
- $add_time = date('Y-m-d H:i:s', strtotime($add_time));
- $where[] = array('add_time', '<=', $add_time);
- }
- $db = new \App\Models\Manager();
- $data = $db->getlist($limit, $where);
- if (!($data < 0)) {
- $langinfo = trans('status.manager');
- $messged = trans('notice.message_status');
- $show = trans('notice.show');
- foreach ($data['data'] as $k => $v) {
- $data['data'][$k]['type'] = $langinfo[$v['type']];
- if (!empty($v['add_type'])) {
- $data['data'][$k]['add_type'] = $messged[$v['add_type']];
- }
- $data['data'][$k]['is_show'] = $show[$v['is_show']];
- }
- }
- return \App\Lib\DataTable\DataTable::init()->toJson($data['data'], $data['total']);
- }
- function view(Req $req)
- {
- return $this->Edit($req);
- }
- function Edit(Req $req)
- {
- $id = $req->id;
- // $id=Request::has('id')?Request::get('id'):'';
- if (intval($id) < 1) {
- abort(404);
- }
- $db = new \App\Models\Manager;
- $groupdata = \App\Models\Account_group::getAllInfo();
- if (!$req->isMethod('post')) {
- $data = $db->getDmsg($id, 1);
- if (!$data) {
- return responseToJson($data);
- }
- return view('admin.Manager/editNotice', ['data' => $data, 'group' => $groupdata]);
- } else {
- $data['title'] = $req->input('title');
- $data['content'] = $req->desc;
- $res = $db->updateMsg($data, $id);
- // $log = array(
- // session('adminInfo.admin_name'),
- // );
- // OperationLog(session('adminInfo.admin_id'), 'edit_game', $log);
- return responseToJson($res);
- }
- }
- /**
- * 批量删除
- * [delete description]
- * @return [type] [description]
- */
- function delete(Req $req)
- {
- $id = $req->input('id');
- if (empty($id)) {
- return responseToJson(-2001); //id������
- }
- $ids = explode(',', $id);
- if (!is_array($ids) && intval($ids) < 0) {
- return responseToJson(-2002); //id����
- }
- if (is_array($ids) && count($ids) > 0) {
- foreach ($ids as $k => $v) {
- if (intval($v) < 1) {
- unset($ids[$k]);
- }
- }
- }
- $rows = \App\Models\Manager::whereIn('id', $ids)->delete();
- if (!$rows) {
- return responseToJson(-2003); //id����
- }
- $log = array(
- session('adminInfo.admin_name'),
- );
- OperationLog(session('adminInfo.admin_id'), 'del_mess', $log);
- return responseToJson(1); //id����
- }
- function MessageView()
- {
- $id = Request::has('id') ? Request::get('id') : '';
- $admin_id = session('adminInfo.admin_id');
- $where = [
- 'id',
- $id
- ];
- $dataWhwew = [
- 'message_id' => $id,
- 'account_identity' => $admin_id,
- // 'add_time'=>time()
- ];
- $db = new \App\Models\Manager();
- $dbRead = new \App\Models\MessageRead;
- $data = $db->getlistd($where);
- $dataRead = $dbRead->Messagelist($id, $admin_id);
- if ($dataRead < 0) {
- $dat = $dbRead->addMessage($dataWhwew);
- }
- return view('admin.Manager/view', ['data' => $data]);
- }
- /**
- * 添加消息
- * @param Req $req
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
- */
- function addNotice(Req $req)
- {
- $groupdata = \App\Models\Account_group::getAllInfo();
- if (!$req->isMethod('post')) {
- $groupdatas = $groupdata;
- return view('admin.Manager/editNotice', ['select' => 1, 'group' => $groupdatas]);
- } else {
- $data['title'] = $req->input('title');
- $data['type'] = $req->type ? intval($req->type) : '';
- if (empty($data['type'])) {
- return responseToJson(-3001341);
- }
- $data['content'] = strip_tags($req->desc);//过滤html标签
- $log = array(
- session('adminInfo.admin_name'),
- $data['title']
- );
- $data['add_time'] = date('Y-m-d H:i:s');
- $data['formname'] = $req->input('formname');
- $data['toname'] = str_replace(',', ',', strip_tags(trim($req->input('toname'))));
- $data['add_type'] = isset($req->add_type) ? trim($req->add_type) : '1';
- $data['is_show'] = isset($req->is_show) ? trim($req->is_show) : 0; //首页是否弹出显示
- $groups = $req->groups;
- $send = [
- 'name' => $data['title'],
- 'from' => $data['formname'],
- 'content' => $data['content'],
- 'time' => $data['add_time'],
- 'type' => $data['type']
- ];
- $db = new \App\Models\Manager;
- //普通消息
- if ($data['type'] == 1) {
- $dataName = explode(',', $data['toname']);
- $send['to'] = $this->getIdBy($dataName);//接收者列表
- }
- //系统消息
- if ($data['type'] == 2) {
- $data['formname'] = '系统消息';
- //$data['toname'] = 'all';
- }
- //系统通知
- if ($data['type'] == 3) {
- $data['formname'] = '系统通知';
- //获取发送用户组
- if (is_array($groups) && count($groups) > 0) {
- $data['toname'] = 'groups';
- $data['group_code'] = '0,' . implode(',', $groups) . ',';
- $data['group_name'] = '|';
- foreach ($groupdata as $k => $v) {
- if (in_array($v['group_code'], $groups)) {
- $data['group_name'] .= $v['group_name'] . '|';
- }
- }
- }
- $groupcode = isset($data['group_code']) ? $data['group_code'] : 'all';
- }
- if (!$data['toname']) {
- $data['toname'] = 'all';
- }
- $res = $db->addNotice($data);
- if ($res < 0)
- return responseToJson($res);
- OperationLog(session('adminInfo.admin_id'), 'add_no', $log);
- return responseToJson(1);
- }
- }
- /**
- * 根据用户账号查ID
- * @param $names
- * @return null
- */
- protected function getIdBy($names)
- {
- if (!is_array($names)) $names = explode(',', $names);
- $names = array_unique($names);
- if (!$names) return null;
- $ids = (new Account())->whereIn('account', $names)->pluck('identity');
- return $ids ? $ids->toArray() : null;
- }
- }
|