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
;
package
com
.
archser
.
aserver
.
controller
;
import
com.archser.aserver.util.FinalStringUtil
;
import
com.archser.aserver.util.FinalStringUtil
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.archser.aserver.interceptor.JwtInterceptor
;
import
com.archser.aserver.interceptor.JwtInterceptor
;
import
com.archser.aserver.model.Message
;
import
com.archser.aserver.model.Message
;
import
com.archser.aserver.service.LogService
;
import
com.archser.aserver.service.LogService
;
import
com.archser.aserver.service.MessageService
;
import
com.archser.aserver.service.MessageService
;
import
com.archser.aserver.websocket.MessageRefreshTrigger
;
import
com.archser.aserver.websocket.MessageRefreshTrigger
;
import
com.jfinal.aop.Clear
;
import
com.jfinal.aop.Clear
;
import
com.jfinal.aop.Inject
;
import
com.jfinal.aop.Inject
;
import
com.jfinal.core.Controller
;
import
com.jfinal.core.Controller
;
import
com.jfinal.kit.Ret
;
import
com.jfinal.kit.Ret
;
import
com.jfinal.kit.StrKit
;
import
com.jfinal.kit.StrKit
;
import
com.jfinal.plugin.activerecord.Page
;
import
com.jfinal.plugin.activerecord.Page
;
/**
/**
* 消息相关
* 消息相关
*
*
* @author dgq
* @author dgq
*
*
*/
*/
public
class
MessageController
extends
Controller
{
public
class
MessageController
extends
Controller
{
@Inject
@Inject
LogService
logService
;
LogService
logService
;
@Inject
@Inject
MessageService
messageService
;
MessageService
messageService
;
private
static
final
Logger
logger
=
Logger
.
getLogger
(
MessageController
.
class
);
private
static
final
Logger
logger
=
Logger
.
getLogger
(
MessageController
.
class
);
/**
/**
* 获取未读消息数量
* 获取未读消息数量
*/
*/
public
void
count
()
{
public
void
count
()
{
String
username
=
this
.
getAttr
(
"username"
);
String
username
=
this
.
getAttr
(
"username"
);
Long
count
=
messageService
.
getCountByRead
(
null
,
username
);
Long
count
=
messageService
.
getCountByRead
(
null
,
username
);
this
.
renderJson
(
Ret
.
ok
(
"count"
,
count
));
this
.
renderJson
(
Ret
.
ok
(
"count"
,
count
));
}
}
/**
/**
* menu unread:未读,readed:已读,其他;查询所有
* menu unread:未读,readed:已读,其他;查询所有
*/
*/
public
void
getMessagePageData
()
{
public
void
getMessagePageData
()
{
int
pageNumber
=
this
.
getParaToInt
(
"pageNumber"
);
int
pageNumber
=
this
.
getParaToInt
(
"pageNumber"
);
int
pageSize
=
this
.
getParaToInt
(
"pageSize"
);
int
pageSize
=
this
.
getParaToInt
(
"pageSize"
);
String
username
=
this
.
getAttr
(
"username"
);
String
username
=
this
.
getAttr
(
"username"
);
String
menu
=
this
.
getPara
(
"menu"
);
String
menu
=
this
.
getPara
(
"menu"
);
/** 2020年7月1日 添加模糊查询 yangchengwu YZJ-3915*/
/** 2020年7月1日 添加模糊查询 yangchengwu YZJ-3915*/
String
likeVal
=
this
.
getPara
(
"likeVal"
);
String
likeVal
=
this
.
getPara
(
"likeVal"
);
Page
<
Message
>
page
=
messageService
.
getMessagePageData
(
pageNumber
,
pageSize
,
username
,
menu
,
likeVal
);
Page
<
Message
>
page
=
messageService
.
getMessagePageData
(
pageNumber
,
pageSize
,
username
,
menu
,
likeVal
);
if
(
page
!=
null
)
{
if
(
page
!=
null
)
{
renderJson
(
Ret
.
ok
(
"page"
,
page
));
renderJson
(
Ret
.
ok
(
"page"
,
page
));
}
else
{
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"获取消息列表失败"
));
renderJson
(
Ret
.
fail
(
"msg"
,
"获取消息列表失败"
));
}
}
}
}
/**
/**
* 标记为已读
* 标记为已读
*/
*/
public
void
markRead
()
{
public
void
markRead
()
{
int
id
=
this
.
getParaToInt
(
"id"
);
int
id
=
this
.
getParaToInt
(
"id"
);
boolean
markRead
=
this
.
messageService
.
markRead
(
id
);
boolean
markRead
=
this
.
messageService
.
markRead
(
id
);
renderJson
(
markRead
?
Ret
.
ok
():
Ret
.
fail
());
renderJson
(
markRead
?
Ret
.
ok
():
Ret
.
fail
());
}
}
/**
/**
* 删除消息
* 删除消息
*/
*/
public
void
deleteMessage
()
{
public
void
deleteMessage
()
{
String
ids
=
this
.
getPara
(
"ids"
);
String
ids
=
this
.
getPara
(
"ids"
);
if
(
ids
.
length
()
==
0
)
{
if
(
ids
.
length
()
==
0
)
{
renderJson
(
Ret
.
fail
());
renderJson
(
Ret
.
fail
());
}
}
boolean
deleted
=
this
.
messageService
.
deleteMessage
(
ids
.
split
(
","
));
boolean
deleted
=
this
.
messageService
.
deleteMessage
(
ids
.
split
(
","
));
if
(
deleted
)
{
if
(
deleted
)
{
renderJson
(
Ret
.
ok
());
renderJson
(
Ret
.
ok
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-"
+
"-已删除了"
+
ids
.
split
(
","
).
length
+
"个消息"
,
FinalStringUtil
.
DELETE
);
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-"
+
"-已删除了"
+
ids
.
split
(
","
).
length
+
"个消息"
,
FinalStringUtil
.
DELETE
);
}
else
{
}
else
{
renderJson
(
Ret
.
fail
());
renderJson
(
Ret
.
fail
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-删除消息失败"
,
FinalStringUtil
.
DELETE
);
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-删除消息失败"
,
FinalStringUtil
.
DELETE
);
}
}
}
}
/**
/**
* 根据指定用户更新websocket的消息
* 根据指定用户更新websocket的消息
*/
*/
@Clear
(
JwtInterceptor
.
class
)
@Clear
(
JwtInterceptor
.
class
)
public
void
refreshMessage
()
{
public
void
refreshMessage
()
{
try
{
try
{
String
userId
=
this
.
getPara
(
"userId"
);
String
userId
=
this
.
getPara
(
"userId"
);
if
(
StrKit
.
isBlank
(
userId
))
{
if
(
StrKit
.
isBlank
(
userId
))
{
userId
=
IOUtils
.
toString
(
this
.
getRequest
().
getInputStream
());
userId
=
IOUtils
.
toString
(
this
.
getRequest
().
getInputStream
());
userId
=
JSON
.
parseObject
(
userId
).
getString
(
"userId"
);
userId
=
JSON
.
parseObject
(
userId
).
getString
(
"userId"
);
}
}
logger
.
error
(
"接受到消息刷新"
+
userId
);
logger
.
error
(
"接受到消息刷新"
+
userId
);
if
(
StrKit
.
notBlank
(
userId
))
{
if
(
StrKit
.
notBlank
(
userId
))
{
boolean
refrashed
=
MessageRefreshTrigger
.
refresh
(
userId
);
boolean
refrashed
=
MessageRefreshTrigger
.
refresh
(
userId
);
renderJson
(
Ret
.
ok
(
"refrashed"
,
refrashed
));
renderJson
(
Ret
.
ok
(
"refrashed"
,
refrashed
));
}
else
{
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"userId为null或userId不是一个数字"
));
renderJson
(
Ret
.
fail
(
"msg"
,
"userId为null或userId不是一个数字"
));
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"刷新消息出错"
,
e
);
logger
.
error
(
"刷新消息出错"
,
e
);
renderJson
(
Ret
.
fail
(
"msg"
,
"刷新消息出错"
));
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"
)
#
namespace
(
"message"
)
#
sql
(
"getMessagePageData"
)
#
sql
(
"getMessageInUnread"
)
select
t
.
id
,
t
.
sender_id
,
t
.
send_to_id
,
t
.
title
,
t
.
content
,
t
.
system_id
,
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
,
t
.
path
,
t
.
params
,
t
.
operate
,
t
.
read
,
t
.
send_time
,
su
.
name
as
sender
,
ru
.
name
as
receive
,
asys
.
title
as
system
su
.
name
as
sender
,
ru
.
name
as
receive
,
asys
.
title
as
system
from
as_message
t
from
as_message
t
left
join
as_user
su
left
join
as_user
su
on
su
.
id
=
t
.
sender_id
on
su
.
id
=
t
.
sender_id
left
join
as_user
ru
left
join
as_user
ru
on
ru
.
id
=
t
.
send_to_id
on
ru
.
id
=
t
.
send_to_id
left
join
as_system
asys
left
join
as_system
asys
on
asys
.
id
=
t
.
system_id
on
asys
.
id
=
t
.
system_id
where
t
.
send_to_id
=
#
para
(
send_to_id
)
where
t
.
send_to_id
=
#
para
(
send_to_id
)
and
read
is
null
#
if
(
menu
==
'unread'
)
order
by
id
desc
and
read
is
null
#
end
#
else
if
(
menu
==
'readed'
)
#
sql
(
"getMessagePageData"
)
and
read
=
'Y'
select
t
.
id
,
t
.
sender_id
,
t
.
send_to_id
,
t
.
title
,
t
.
content
,
t
.
system_id
,
#
end
t
.
path
,
t
.
params
,
t
.
operate
,
t
.
read
,
t
.
send_time
,
#
if
(
likeVal
)
su
.
name
as
sender
,
ru
.
name
as
receive
,
asys
.
title
as
system
and
(
from
as_message
t
t
.
title
like
'%#(likeVal)%'
left
join
as_user
su
or
su
.
name
like
'%#(likeVal)%'
on
su
.
id
=
t
.
sender_id
or
ru
.
name
like
'%#(likeVal)%'
left
join
as_user
ru
or
asys
.
title
like
'%#(likeVal)%'
on
ru
.
id
=
t
.
send_to_id
or
t
.
operate
like
'%#(likeVal)%'
left
join
as_system
asys
)
on
asys
.
id
=
t
.
system_id
#
end
where
t
.
send_to_id
=
#
para
(
send_to_id
)
#
if
(
menu
==
'unread'
)
order
by
t
.
send_time
desc
and
read
is
null
#
end
#
else
if
(
menu
==
'readed'
)
and
read
=
'Y'
#
sql
(
"markRead"
)
#
end
update
as_message
t
set
t
.
read
=
'Y'
#
if
(
likeVal
)
where
t
.
id
=
#
para
(
id
)
and
(
#
end
t
.
title
like
'%#(likeVal)%'
#
sql
(
"deleteMessage"
)
or
su
.
name
like
'%#(likeVal)%'
delete
as_message
t
or
ru
.
name
like
'%#(likeVal)%'
where
t
.
id
in
(
or
asys
.
title
like
'%#(likeVal)%'
#
for
(
item
:
ids
)
or
t
.
operate
like
'%#(likeVal)%'
#
(
for
.
index
==
0
?
""
:
","
)
#
(
item
)
)
#
end
#
end
)
#
end
order
by
t
.
send_time
desc
#
sql
(
"getCountByRead"
)
#
end
select
count
(
t
.
id
)
as
count
from
as_message
t
#
sql
(
"markRead"
)
where
t
.
send_to_id
is
not
null
and
t
.
send_to_id
=
(
update
as_message
t
set
t
.
read
=
'Y'
select
id
from
as_user
u
where
u
.
username
=
#
para
(
username
)
where
t
.
id
=
#
para
(
id
)
)
#
end
#
if
(
read
)
#
sql
(
"deleteMessage"
)
and
t
.
read
=
#
para
(
read
)
delete
as_message
t
#
else
where
t
.
id
in
(
and
t
.
read
is
null
#
for
(
item
:
ids
)
#
end
#
(
for
.
index
==
0
?
""
:
","
)
#
(
item
)
#
end
#
end
)
#
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