优化Message消息推送和接收
This commit is contained in:
parent
f07f24175c
commit
03a46291c6
@ -23,7 +23,7 @@ class Notice extends AdminController
|
||||
if($count){
|
||||
$res = ['code'=>0,'msg'=>'','count'=>$count];
|
||||
foreach($notices as $msg){
|
||||
$res['data'][] = ['id'=>$msg['id'],'type'=>$msg['type'],'title'=>$msg['title'],'user_id'=>$msg['user_id'],'content'=>$msg['content'],'ctime'=>$msg['create_time']];
|
||||
$res['data'][] = ['id'=>$msg['id'],'type'=>$msg['type'] == 0 ? '系统消息': '个人消息','title'=>$msg['title'],'user_id'=>$msg['user_id'],'content'=>$msg['content'],'ctime'=>$msg['create_time']];
|
||||
}
|
||||
} else {
|
||||
$res = ['code'=>-1,'msg'=>'还没有发布任何通知'];
|
||||
@ -48,8 +48,8 @@ class Notice extends AdminController
|
||||
$data['user_id'] = $sendId; //发信人入信息库
|
||||
//写入信息库
|
||||
$result = Message::sendMsg($sendId,$receveId,$data);
|
||||
|
||||
if($result){
|
||||
//event('Message');
|
||||
$res = ['code'=>0,'msg'=>'发布成功'];
|
||||
} else {
|
||||
$res = ['code'=>-1,'msg'=>'发布失败'];
|
||||
|
@ -3,11 +3,10 @@ namespace app\common\model;
|
||||
|
||||
use think\Model;
|
||||
use think\model\concern\SoftDelete;
|
||||
use think\facade\Db;
|
||||
use think\facade\Session;
|
||||
use think\facade\Cookie;
|
||||
use think\facade\Log;
|
||||
use taoler\com\Api;
|
||||
use think\facade\Config;
|
||||
use think\facade\Lang;
|
||||
|
||||
class User extends Model
|
||||
{
|
||||
@ -44,8 +43,8 @@ class User extends Model
|
||||
public function login($data)
|
||||
{
|
||||
//查询使用邮箱或者用户名登陆
|
||||
$user = $this::whereOr('email',$data['name'])->whereOr('name',$data['name'])->find();
|
||||
|
||||
$user = $this::whereOr('email',$data['name'])->whereOr('name',$data['name'])->findOrEmpty();
|
||||
if(!$user->isEmpty()){
|
||||
//对输入的密码字段进行MD5加密,再进行数据库的查询
|
||||
$salt = substr(md5($user['create_time']),-6);
|
||||
$pwd = substr_replace(md5($data['password']),$salt,0,6);
|
||||
@ -56,7 +55,7 @@ class User extends Model
|
||||
Session::set('user_id',$user['id']);
|
||||
Session::set('user_name',$user['name']);
|
||||
if(isset($data['remember'])){
|
||||
$salt = 'taoler';
|
||||
$salt = Config::get('taoler.salt');
|
||||
//加密auth存入cookie
|
||||
$auth = md5($user['name'].$salt).":".$user['id'];
|
||||
Cookie::set('auth',$auth,604800);
|
||||
@ -66,10 +65,10 @@ class User extends Model
|
||||
|
||||
//查询结果1表示有用户,用户名密码正确
|
||||
return 1;
|
||||
}else{
|
||||
return '用户名或密码错误';
|
||||
}
|
||||
}
|
||||
return Lang::get('username or password error');
|
||||
}
|
||||
|
||||
//更新数据
|
||||
public function updata($data)
|
||||
|
@ -5,7 +5,9 @@ namespace app\event;
|
||||
|
||||
class Message
|
||||
{
|
||||
public function msg(){
|
||||
echo "这是一个事件";
|
||||
//public $userId;
|
||||
public function __construct(){
|
||||
//echo '1111';
|
||||
//$this->userId = $userId;
|
||||
}
|
||||
}
|
||||
|
22
app/facade/Article.php
Normal file
22
app/facade/Article.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
namespace app\facade;
|
||||
|
||||
use think\Facade;
|
||||
|
||||
/**
|
||||
* Class Article
|
||||
* @package app\facade
|
||||
* @method static array getArtTop(int $num) 获取置顶文章
|
||||
* @method static array getArtList(int $num) 获取文章列表
|
||||
* @method static array getArtHot(int $num) 获取精华文章
|
||||
*/
|
||||
class Article extends Facade
|
||||
{
|
||||
protected static function getFacadeClass()
|
||||
{
|
||||
return 'app\common\model\Article';
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
15
app/facade/User.php
Normal file
15
app/facade/User.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
namespace app\facade;
|
||||
|
||||
use think\Facade;
|
||||
|
||||
class User extends Facade
|
||||
{
|
||||
protected static function getFacadeClass()
|
||||
{
|
||||
return 'app\common\model\User';
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -113,7 +113,7 @@ class Article extends BaseController
|
||||
//文章评论
|
||||
public function comment()
|
||||
{
|
||||
//if (Request::isAjax()){
|
||||
if (Request::isAjax()){
|
||||
//获取评论
|
||||
$data = Request::only(['content','article_id','user_id']);
|
||||
$sendId = $data['user_id'];
|
||||
@ -127,7 +127,7 @@ class Article extends BaseController
|
||||
$title = $article['title'];
|
||||
$link = (string) url('article/detail',['id'=>$data['article_id']]);
|
||||
|
||||
//@user comment
|
||||
//评论中回复@user comment
|
||||
$preg = "/@([^@\s]*)\s/";
|
||||
preg_match($preg,$data['content'],$username);
|
||||
if(isset($username[1])){
|
||||
@ -135,15 +135,16 @@ class Article extends BaseController
|
||||
} else {
|
||||
$receveId = $article['user_id'];
|
||||
}
|
||||
$data = ['title'=>$title,'content'=>'评论通知','link'=>$link,'user_id'=>$sendId,'type'=>1];
|
||||
$data = ['title'=>$title,'content'=>'评论通知','link'=>$link,'user_id'=>$sendId,'type'=>2]; //type=2为评论留言
|
||||
Message::sendMsg($sendId,$receveId,$data);
|
||||
//event('CommMsg');
|
||||
|
||||
$res = ['code'=>0, 'msg'=>'留言成功'];
|
||||
} else {
|
||||
$res = ['code'=>-1, 'msg'=>'留言失败'];
|
||||
}
|
||||
return json($res);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加帖子文章
|
||||
|
@ -7,8 +7,7 @@ use think\facade\View;
|
||||
use think\facade\Request;
|
||||
use think\facade\Db;
|
||||
use think\facade\Cache;
|
||||
use app\common\model\Article;
|
||||
use app\common\model\User;
|
||||
use app\facade\Article;
|
||||
use app\common\lib\Msgres;
|
||||
|
||||
class Index extends BaseController
|
||||
@ -28,13 +27,12 @@ class Index extends BaseController
|
||||
$slider = new \app\common\model\Slider();
|
||||
$sliders = $slider->getSliderList();
|
||||
|
||||
$article = new Article();
|
||||
//置顶文章
|
||||
$artTop = $article->getArtTop(5);
|
||||
$artTop = Article::getArtTop(5);
|
||||
//首页文章列表,显示20个
|
||||
$artList = $article->getArtList(20);
|
||||
$artList = Article::getArtList(20);
|
||||
//热议文章
|
||||
$artHot = $article->getArtHot(10);
|
||||
$artHot = Article::getArtHot(10);
|
||||
|
||||
//首页赞助
|
||||
$ad_index = Cache::get('adindex');
|
||||
@ -96,8 +94,8 @@ class Index extends BaseController
|
||||
//友情链接
|
||||
$friend_links = Db::name('slider')->where(['slid_status'=>1,'delete_time'=>0,'slid_type'=>6])->whereTime('slid_over','>=',time())->field('slid_name,slid_href')->select();
|
||||
// 查询热议
|
||||
$article = new Article();
|
||||
$artHot = $article->getArtHot(10);
|
||||
//$article = new Article()1;
|
||||
$artHot = Article::getArtHot(10);
|
||||
|
||||
View::assign($searchs);
|
||||
View::assign(['flinks'=>$friend_links,'artHot'=>$artHot]);
|
||||
|
@ -69,17 +69,16 @@ class Login extends BaseController
|
||||
$user = new User();
|
||||
$res = $user->login($data);
|
||||
if ($res == 1) {
|
||||
//登陆成功
|
||||
$ip = request()->ip();
|
||||
$name = $data['name'];
|
||||
|
||||
//时间更新ip和日志
|
||||
event(new UserLogin($name,$ip));
|
||||
//获取系统站内通知信息
|
||||
//Message::insertMsg(session('user_id'));
|
||||
//跳转到登陆前页面
|
||||
//return json(['code'=>0,'msg'=>'登陆成功','url'=> Cookie::get('url')]);
|
||||
|
||||
return Msgres::success('login_success',Cookie::get('url'));
|
||||
} else {
|
||||
return json(['code'=>-1,'msg'=>$res]);
|
||||
return Msgres::error($res);
|
||||
}
|
||||
}
|
||||
return View::fetch('login');
|
||||
|
@ -6,6 +6,8 @@ return [
|
||||
\app\middleware\Browse::class,
|
||||
// 多语言加载
|
||||
\think\middleware\LoadLangPack::class,
|
||||
//接收消息
|
||||
\app\middleware\Message::class,
|
||||
//app\middleware\LoginCheck::class,
|
||||
//app\middleware\CheckRegister::class,
|
||||
//'logedcheck' => \app\middleware\logedCheck::class,
|
||||
|
@ -1,21 +0,0 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\listener;
|
||||
use taoler\com\Message;
|
||||
//use app\facade\Message;
|
||||
|
||||
class CommMsg
|
||||
{
|
||||
/**
|
||||
* 事件监听处理
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($event)
|
||||
{
|
||||
//执行登陆用户消息数据写入
|
||||
//Message::sendMsg();
|
||||
|
||||
}
|
||||
}
|
@ -3,7 +3,6 @@ declare (strict_types = 1);
|
||||
|
||||
namespace app\listener;
|
||||
use taoler\com\Message as MessageIns;
|
||||
//use app\facade\Message;
|
||||
|
||||
class Message
|
||||
{
|
||||
@ -15,7 +14,8 @@ class Message
|
||||
public function handle($event)
|
||||
{
|
||||
//执行登陆用户消息数据写入
|
||||
MessageIns::insertMsg(session('user_id'));
|
||||
//dump($event);
|
||||
//MessageIns::insertMsg(session('user_id'));
|
||||
|
||||
}
|
||||
}
|
||||
|
27
app/middleware/Message.php
Normal file
27
app/middleware/Message.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\middleware;
|
||||
use taoler\com\Message as MessageIns;
|
||||
|
||||
class Message
|
||||
{
|
||||
/**
|
||||
* @param $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function handle($request, \Closure $next)
|
||||
{
|
||||
//后置中间件
|
||||
$response = $next($request);
|
||||
|
||||
if(session('user_id')){
|
||||
MessageIns::insertMsg(session('user_id'));
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@ return [
|
||||
'alias' => [
|
||||
'logedcheck' => \app\middleware\LogedCheck::class,
|
||||
'logincheck' => \app\middleware\LoginCheck::class,
|
||||
'message' => \app\middleware\Message::class,
|
||||
],
|
||||
// 优先级设置,此数组中的中间件会按照数组中的顺序优先执行
|
||||
'priority' => [],
|
||||
|
@ -6,4 +6,5 @@
|
||||
return [
|
||||
//版本配置
|
||||
'version' => '1.6.3',
|
||||
'salt' => 'taoler'
|
||||
];
|
@ -10,9 +10,9 @@ class Message
|
||||
{
|
||||
/**
|
||||
* 发送消息
|
||||
* @param $sendId 发送者
|
||||
* @param $receveId 接收者
|
||||
* @param $data 发送数据
|
||||
* @param $sendId
|
||||
* @param $receveId
|
||||
* @param $data
|
||||
* @return bool
|
||||
*/
|
||||
public static function sendMsg($sendId,$receveId,$data)
|
||||
@ -22,7 +22,7 @@ class Message
|
||||
$msgId = $msg->id;
|
||||
|
||||
//类型1为用户,写入用户收件箱
|
||||
if($data['type'] == 1){
|
||||
if($data['type'] == 1 || $data['type'] == 2 ){
|
||||
$result = MessageTo::create(['send_id'=>$sendId,'receve_id'=>$receveId,'message_id'=>$msgId,'message_type'=>$data['type']]);
|
||||
if(!$result){
|
||||
return false;
|
||||
@ -58,13 +58,13 @@ class Message
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录用户把消息写入数据表
|
||||
* @param $uid 登陆用户ID
|
||||
* 登录用户把系统消息写入数据表
|
||||
* @param int $uid
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public static function insertMsg($uid)
|
||||
public static function insertMsg(int $uid)
|
||||
{
|
||||
//得到所有系统消息
|
||||
$sysmsg = MessageModel::where(['type'=>0,'delete_time'=>0])->select();
|
||||
|
@ -307,8 +307,12 @@ layui.define(['laypage', 'fly', 'element', 'flow'], function(exports){
|
||||
{{# for(var i = 0; i < len; i++){ }}\
|
||||
<li data-id="{{d.rows[i].id}}">\
|
||||
{{# if(d.rows[i].type == 1){ }}\
|
||||
<blockquote class="layui-elem-quote"><a href= "'+ userNameJump +'?username={{ d.rows[i].name}}" target="_blank"><cite>{{ d.rows[i].name}}</cite></a>给您发了站内信<a class="sys-title" id-data="{{ d.rows[i].id}}" href="javascript:;"><cite>{{ d.rows[i].title}}</cite></a> <span class="float:right">{{ d.rows[i].read}}</span></blockquote>\
|
||||
{{# } }}\
|
||||
{{# if(d.rows[i].type == 2){ }}\
|
||||
<blockquote class="layui-elem-quote"><a href= "'+ userNameJump +'?username={{ d.rows[i].name}}" target="_blank"><cite>{{ d.rows[i].name}}</cite></a>回答了您的帖子<a target="_blank" class="art-title" id-data="{{ d.rows[i].id}}" href="{{ d.rows[i].link}}"><cite>{{ d.rows[i].title}}</cite></a> <span class="float:right">{{ d.rows[i].read}}</span></blockquote>\
|
||||
{{# } else { }}\
|
||||
{{# } }}\
|
||||
{{# if(d.rows[i].type == 0){ }}\
|
||||
<blockquote class="layui-elem-quote">系统消息:<a class="sys-title" id-data="{{ d.rows[i].id}}" href="javascript:;"><cite>{{ d.rows[i].title}}</cite></a> <span class="float:right">{{ d.rows[i].read}}</span></blockquote>\
|
||||
{{# } }}\
|
||||
<p><span>{{d.rows[i].time}}</span><a href="javascript:;" class="layui-btn layui-btn-sm layui-btn-danger fly-delete">删除</a></p>\
|
||||
|
@ -333,6 +333,7 @@ layui.config({
|
||||
|
||||
});
|
||||
|
||||
//扫码阅读
|
||||
$("#rdown").hover(function(){
|
||||
$("#phonedl").show().stop();
|
||||
},function(){
|
||||
|
@ -45,7 +45,7 @@
|
||||
});
|
||||
});
|
||||
|
||||
//点开系统消息改变已读状态
|
||||
//读消息
|
||||
$('#LAY_minemsg').on('click','.sys-title', function(){
|
||||
var id = $(this).attr('id-data');
|
||||
var othis = $(this);
|
||||
|
Loading…
Reference in New Issue
Block a user