Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
aserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
15所TongWeb
aserver
Commits
6ea651d4
Commit
6ea651d4
authored
Apr 06, 2021
by
刘可心
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
标记为已读
parent
ebe4b2d6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
198 additions
and
175 deletions
+198
-175
MessageController.java
...ava/com/archser/aserver/controller/MessageController.java
+127
-118
MessageService.java
...main/java/com/archser/aserver/service/MessageService.java
+0
-0
message.sql
src/main/resources/message.sql
+71
-57
No files found.
src/main/java/com/archser/aserver/controller/MessageController.java
View file @
6ea651d4
package
com
.
archser
.
aserver
.
controller
;
import
com.archser.aserver.util.FinalStringUtil
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.log4j.Logger
;
import
com.alibaba.fastjson.JSON
;
import
com.archser.aserver.interceptor.JwtInterceptor
;
import
com.archser.aserver.model.Message
;
import
com.archser.aserver.service.LogService
;
import
com.archser.aserver.service.MessageService
;
import
com.archser.aserver.websocket.MessageRefreshTrigger
;
import
com.jfinal.aop.Clear
;
import
com.jfinal.aop.Inject
;
import
com.jfinal.core.Controller
;
import
com.jfinal.kit.Ret
;
import
com.jfinal.kit.StrKit
;
import
com.jfinal.plugin.activerecord.Page
;
/**
* 消息相关
*
* @author dgq
*
*/
public
class
MessageController
extends
Controller
{
@Inject
LogService
logService
;
@Inject
MessageService
messageService
;
private
static
final
Logger
logger
=
Logger
.
getLogger
(
MessageController
.
class
);
/**
* 获取未读消息数量
*/
public
void
count
()
{
String
username
=
this
.
getAttr
(
"username"
);
Long
count
=
messageService
.
getCountByRead
(
null
,
username
);
this
.
renderJson
(
Ret
.
ok
(
"count"
,
count
));
}
/**
* menu unread:未读,readed:已读,其他;查询所有
*/
public
void
getMessagePageData
()
{
int
pageNumber
=
this
.
getParaToInt
(
"pageNumber"
);
int
pageSize
=
this
.
getParaToInt
(
"pageSize"
);
String
username
=
this
.
getAttr
(
"username"
);
String
menu
=
this
.
getPara
(
"menu"
);
/** 2020年7月1日 添加模糊查询 yangchengwu YZJ-3915*/
String
likeVal
=
this
.
getPara
(
"likeVal"
);
Page
<
Message
>
page
=
messageService
.
getMessagePageData
(
pageNumber
,
pageSize
,
username
,
menu
,
likeVal
);
if
(
page
!=
null
)
{
renderJson
(
Ret
.
ok
(
"page"
,
page
));
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"获取消息列表失败"
));
}
}
/**
* 标记为已读
*/
public
void
markRead
()
{
int
id
=
this
.
getParaToInt
(
"id"
);
boolean
markRead
=
this
.
messageService
.
markRead
(
id
);
renderJson
(
markRead
?
Ret
.
ok
():
Ret
.
fail
());
}
/**
* 删除消息
*/
public
void
deleteMessage
()
{
String
ids
=
this
.
getPara
(
"ids"
);
if
(
ids
.
length
()
==
0
)
{
renderJson
(
Ret
.
fail
());
}
boolean
deleted
=
this
.
messageService
.
deleteMessage
(
ids
.
split
(
","
));
if
(
deleted
)
{
renderJson
(
Ret
.
ok
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-"
+
"-已删除了"
+
ids
.
split
(
","
).
length
+
"个消息"
,
FinalStringUtil
.
DELETE
);
}
else
{
renderJson
(
Ret
.
fail
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-删除消息失败"
,
FinalStringUtil
.
DELETE
);
}
}
/**
* 根据指定用户更新websocket的消息
*/
@Clear
(
JwtInterceptor
.
class
)
public
void
refreshMessage
()
{
try
{
String
userId
=
this
.
getPara
(
"userId"
);
if
(
StrKit
.
isBlank
(
userId
))
{
userId
=
IOUtils
.
toString
(
this
.
getRequest
().
getInputStream
());
userId
=
JSON
.
parseObject
(
userId
).
getString
(
"userId"
);
}
logger
.
error
(
"接受到消息刷新"
+
userId
);
if
(
StrKit
.
notBlank
(
userId
))
{
boolean
refrashed
=
MessageRefreshTrigger
.
refresh
(
userId
);
renderJson
(
Ret
.
ok
(
"refrashed"
,
refrashed
));
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"userId为null或userId不是一个数字"
));
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"刷新消息出错"
,
e
);
renderJson
(
Ret
.
fail
(
"msg"
,
"刷新消息出错"
));
}
}
}
package
com
.
archser
.
aserver
.
controller
;
import
com.archser.aserver.util.FinalStringUtil
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.log4j.Logger
;
import
com.alibaba.fastjson.JSON
;
import
com.archser.aserver.interceptor.JwtInterceptor
;
import
com.archser.aserver.model.Message
;
import
com.archser.aserver.service.LogService
;
import
com.archser.aserver.service.MessageService
;
import
com.archser.aserver.websocket.MessageRefreshTrigger
;
import
com.jfinal.aop.Clear
;
import
com.jfinal.aop.Inject
;
import
com.jfinal.core.Controller
;
import
com.jfinal.kit.Ret
;
import
com.jfinal.kit.StrKit
;
import
com.jfinal.plugin.activerecord.Page
;
/**
* 消息相关
*
* @author dgq
*
*/
public
class
MessageController
extends
Controller
{
@Inject
LogService
logService
;
@Inject
MessageService
messageService
;
private
static
final
Logger
logger
=
Logger
.
getLogger
(
MessageController
.
class
);
/**
* 获取未读消息数量
*/
public
void
count
()
{
String
username
=
this
.
getAttr
(
"username"
);
Long
count
=
messageService
.
getCountByRead
(
null
,
username
);
this
.
renderJson
(
Ret
.
ok
(
"count"
,
count
));
}
/**
* menu unread:未读,readed:已读,其他;查询所有
*/
public
void
getMessagePageData
()
{
int
pageNumber
=
this
.
getParaToInt
(
"pageNumber"
);
int
pageSize
=
this
.
getParaToInt
(
"pageSize"
);
String
username
=
this
.
getAttr
(
"username"
);
String
menu
=
this
.
getPara
(
"menu"
);
/** 2020年7月1日 添加模糊查询 yangchengwu YZJ-3915*/
String
likeVal
=
this
.
getPara
(
"likeVal"
);
Page
<
Message
>
page
=
messageService
.
getMessagePageData
(
pageNumber
,
pageSize
,
username
,
menu
,
likeVal
);
if
(
page
!=
null
)
{
renderJson
(
Ret
.
ok
(
"page"
,
page
));
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"获取消息列表失败"
));
}
}
/**
* 标记为已读
*/
public
void
markRead
()
{
int
id
=
this
.
getParaToInt
(
"id"
);
boolean
markRead
=
this
.
messageService
.
markRead
(
id
);
renderJson
(
markRead
?
Ret
.
ok
():
Ret
.
fail
());
}
/**
* 删除消息
*/
public
void
deleteMessage
()
{
String
ids
=
this
.
getPara
(
"ids"
);
if
(
ids
.
length
()
==
0
)
{
renderJson
(
Ret
.
fail
());
}
boolean
deleted
=
this
.
messageService
.
deleteMessage
(
ids
.
split
(
","
));
if
(
deleted
)
{
renderJson
(
Ret
.
ok
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-"
+
"-已删除了"
+
ids
.
split
(
","
).
length
+
"个消息"
,
FinalStringUtil
.
DELETE
);
}
else
{
renderJson
(
Ret
.
fail
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-删除消息失败"
,
FinalStringUtil
.
DELETE
);
}
}
/**
* 根据指定用户更新websocket的消息
*/
@Clear
(
JwtInterceptor
.
class
)
public
void
refreshMessage
()
{
try
{
String
userId
=
this
.
getPara
(
"userId"
);
if
(
StrKit
.
isBlank
(
userId
))
{
userId
=
IOUtils
.
toString
(
this
.
getRequest
().
getInputStream
());
userId
=
JSON
.
parseObject
(
userId
).
getString
(
"userId"
);
}
logger
.
error
(
"接受到消息刷新"
+
userId
);
if
(
StrKit
.
notBlank
(
userId
))
{
boolean
refrashed
=
MessageRefreshTrigger
.
refresh
(
userId
);
renderJson
(
Ret
.
ok
(
"refrashed"
,
refrashed
));
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"userId为null或userId不是一个数字"
));
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"刷新消息出错"
,
e
);
renderJson
(
Ret
.
fail
(
"msg"
,
"刷新消息出错"
));
}
}
/**
* LiuKexin 20210402 批量标记为已读,且将通知性消息标为已读,下载或跳转的消息不批量已读
*/
public
void
allMsgReaded
()
{
String
username
=
this
.
getAttr
(
"username"
);
Ret
allMsgReaded
=
messageService
.
allMsgReaded
(
username
);
renderJson
(
allMsgReaded
);
}
}
src/main/java/com/archser/aserver/service/MessageService.java
View file @
6ea651d4
This diff is collapsed.
Click to expand it.
src/main/resources/message.sql
View file @
6ea651d4
#
namespace
(
"message"
)
#
sql
(
"getMessagePageData"
)
select
t
.
id
,
t
.
sender_id
,
t
.
send_to_id
,
t
.
title
,
t
.
content
,
t
.
system_id
,
t
.
path
,
t
.
params
,
t
.
operate
,
t
.
read
,
t
.
send_time
,
su
.
name
as
sender
,
ru
.
name
as
receive
,
asys
.
title
as
system
from
as_message
t
left
join
as_user
su
on
su
.
id
=
t
.
sender_id
left
join
as_user
ru
on
ru
.
id
=
t
.
send_to_id
left
join
as_system
asys
on
asys
.
id
=
t
.
system_id
where
t
.
send_to_id
=
#
para
(
send_to_id
)
#
if
(
menu
==
'unread'
)
and
read
is
null
#
else
if
(
menu
==
'readed'
)
and
read
=
'Y'
#
end
#
if
(
likeVal
)
and
(
t
.
title
like
'%#(likeVal)%'
or
su
.
name
like
'%#(likeVal)%'
or
ru
.
name
like
'%#(likeVal)%'
or
asys
.
title
like
'%#(likeVal)%'
or
t
.
operate
like
'%#(likeVal)%'
)
#
end
order
by
t
.
send_time
desc
#
end
#
sql
(
"markRead"
)
update
as_message
t
set
t
.
read
=
'Y'
where
t
.
id
=
#
para
(
id
)
#
end
#
sql
(
"deleteMessage"
)
delete
as_message
t
where
t
.
id
in
(
#
for
(
item
:
ids
)
#
(
for
.
index
==
0
?
""
:
","
)
#
(
item
)
#
end
)
#
end
#
sql
(
"getCountByRead"
)
select
count
(
t
.
id
)
as
count
from
as_message
t
where
t
.
send_to_id
is
not
null
and
t
.
send_to_id
=
(
select
id
from
as_user
u
where
u
.
username
=
#
para
(
username
)
)
#
if
(
read
)
and
t
.
read
=
#
para
(
read
)
#
else
and
t
.
read
is
null
#
end
#
end
#
end
#
namespace
(
"message"
)
#
sql
(
"getMessageInUnread"
)
select
t
.
id
,
t
.
sender_id
,
t
.
send_to_id
,
t
.
title
,
t
.
content
,
t
.
system_id
,
t
.
path
,
t
.
params
,
t
.
operate
,
t
.
read
,
t
.
send_time
,
su
.
name
as
sender
,
ru
.
name
as
receive
,
asys
.
title
as
system
from
as_message
t
left
join
as_user
su
on
su
.
id
=
t
.
sender_id
left
join
as_user
ru
on
ru
.
id
=
t
.
send_to_id
left
join
as_system
asys
on
asys
.
id
=
t
.
system_id
where
t
.
send_to_id
=
#
para
(
send_to_id
)
and
read
is
null
order
by
id
desc
#
end
#
sql
(
"getMessagePageData"
)
select
t
.
id
,
t
.
sender_id
,
t
.
send_to_id
,
t
.
title
,
t
.
content
,
t
.
system_id
,
t
.
path
,
t
.
params
,
t
.
operate
,
t
.
read
,
t
.
send_time
,
su
.
name
as
sender
,
ru
.
name
as
receive
,
asys
.
title
as
system
from
as_message
t
left
join
as_user
su
on
su
.
id
=
t
.
sender_id
left
join
as_user
ru
on
ru
.
id
=
t
.
send_to_id
left
join
as_system
asys
on
asys
.
id
=
t
.
system_id
where
t
.
send_to_id
=
#
para
(
send_to_id
)
#
if
(
menu
==
'unread'
)
and
read
is
null
#
else
if
(
menu
==
'readed'
)
and
read
=
'Y'
#
end
#
if
(
likeVal
)
and
(
t
.
title
like
'%#(likeVal)%'
or
su
.
name
like
'%#(likeVal)%'
or
ru
.
name
like
'%#(likeVal)%'
or
asys
.
title
like
'%#(likeVal)%'
or
t
.
operate
like
'%#(likeVal)%'
)
#
end
order
by
t
.
send_time
desc
#
end
#
sql
(
"markRead"
)
update
as_message
t
set
t
.
read
=
'Y'
where
t
.
id
=
#
para
(
id
)
#
end
#
sql
(
"deleteMessage"
)
delete
as_message
t
where
t
.
id
in
(
#
for
(
item
:
ids
)
#
(
for
.
index
==
0
?
""
:
","
)
#
(
item
)
#
end
)
#
end
#
sql
(
"getCountByRead"
)
select
count
(
t
.
id
)
as
count
from
as_message
t
where
t
.
send_to_id
is
not
null
and
t
.
send_to_id
=
(
select
id
from
as_user
u
where
u
.
username
=
#
para
(
username
)
)
#
if
(
read
)
and
t
.
read
=
#
para
(
read
)
#
else
and
t
.
read
is
null
#
end
#
end
#
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment