消息设置为已读接口修改:若为审批中心,则根据msgSid更新消息,若不是则根据message_list的sid更新消息
This commit is contained in:
@@ -87,4 +87,6 @@ public interface MessageListMapper extends BaseMapper<MessageList> {
|
||||
IPage<AppMessageListVo> getAppMsgListByUserSid(IPage<AppMessageListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
|
||||
|
||||
int updateAppReadByType(@Param("msgTypeSid") String msgTypeSid, @Param("userSid") String userSid);
|
||||
|
||||
List<String> selectByMsgSid(String s);
|
||||
}
|
||||
@@ -27,8 +27,8 @@
|
||||
m.msgSource,
|
||||
ml.state
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
<where>
|
||||
${ew.sqlSegment}
|
||||
</where>
|
||||
@@ -45,12 +45,12 @@
|
||||
m.msgSource,
|
||||
ml.receiverSid
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
<where>
|
||||
${ew.sqlSegment}
|
||||
and ml.state = 0
|
||||
and ml.rDelStatus = 0
|
||||
and ml.state = 0
|
||||
and ml.rDelStatus = 0
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@@ -65,12 +65,12 @@
|
||||
m.msgSource,
|
||||
ml.receiverSid
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
<where>
|
||||
${ew.sqlSegment}
|
||||
and ml.state = 0
|
||||
and ml.rDelStatus = 0
|
||||
and ml.state = 0
|
||||
and ml.rDelStatus = 0
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@@ -83,9 +83,9 @@
|
||||
mt.crossIconUrl iconImage,<!--消息类别图标-->
|
||||
DATE_FORMAT(m.createTime, '%Y-%m-%d') AS createTime<!--创建时间-->
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m ON m.sid = ml.msgSid
|
||||
left join message_type mt ON mt.sid = m.msgTypeSid
|
||||
${ew.customSqlSegment}
|
||||
LEFT JOIN message m ON m.sid = ml.msgSid
|
||||
left join message_type mt ON mt.sid = m.msgTypeSid
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<update id="updateByReceiverSid">
|
||||
@@ -98,7 +98,7 @@
|
||||
<update id="changeRead">
|
||||
update message_list
|
||||
set state=1
|
||||
WHERE sid IN
|
||||
WHERE sid IN
|
||||
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
@@ -108,7 +108,7 @@
|
||||
<update id="changeUnRead">
|
||||
update message_list
|
||||
set state=0
|
||||
WHERE sid IN
|
||||
WHERE sid IN
|
||||
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
@@ -118,24 +118,24 @@
|
||||
<select id="selectListCount" resultType="int">
|
||||
SELECT count(*)
|
||||
FROM message_list ml
|
||||
left join message m ON m.sid = ml.msgSid
|
||||
left join message m ON m.sid = ml.msgSid
|
||||
WHERE M.msgTypeSid = #{msgTypeSid}
|
||||
AND ML.state = 0
|
||||
</select>
|
||||
|
||||
<select id="fetchByMsgSid" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
|
||||
SELECT ml.sid,
|
||||
ml.state,
|
||||
ml.msgSid,
|
||||
m.senderName,
|
||||
m.msgTitle,
|
||||
m.createTime,
|
||||
m.msgType,
|
||||
m.msgSource,
|
||||
m.msgContent
|
||||
ml.state,
|
||||
ml.msgSid,
|
||||
m.senderName,
|
||||
m.msgTitle,
|
||||
m.createTime,
|
||||
m.msgType,
|
||||
m.msgSource,
|
||||
m.msgContent
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
WHERE m.sid = #{sid}
|
||||
</select>
|
||||
|
||||
@@ -143,48 +143,74 @@
|
||||
<select id="fetchByReceiverSid" resultType="integer">
|
||||
SELECT COUNT(*)
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
LEFT JOIN message m
|
||||
ON m.sid = ml.msgSid
|
||||
<where>
|
||||
ml.state = 0
|
||||
and ml.rDelStatus = 0
|
||||
and ml.receiverSid = #{receiverSid}
|
||||
and ml.rDelStatus = 0
|
||||
and ml.receiverSid = #{receiverSid}
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 根据消息类型查询未读数量-->
|
||||
<select id="selectUnReadCount" resultType="int">
|
||||
SELECT COUNT(1) FROM message_list ml
|
||||
LEFT JOIN message m ON ml.msgSid=m.sid
|
||||
LEFT JOIN message_type mt ON m.msgTypeSid=mt.sid
|
||||
WHERE mt.identifier='0002' AND ml.state='0' AND ml.receiverSid=#{userSid}
|
||||
<if test="msgTypeSid != null and msgTypeSid !=''">
|
||||
AND mt.sid=#{msgTypeSid}
|
||||
SELECT COUNT(1)
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m ON ml.msgSid = m.sid
|
||||
LEFT JOIN message_type mt ON m.msgTypeSid = mt.sid
|
||||
WHERE mt.identifier = '0002'
|
||||
AND ml.state = '0'
|
||||
AND ml.receiverSid = #{userSid}
|
||||
<if test="msgTypeSid != null and msgTypeSid != ''">
|
||||
AND mt.sid = #{msgTypeSid}
|
||||
</if>
|
||||
</select>
|
||||
<!--查询最近消息-->
|
||||
<select id="selectLastMsg" resultType="com.yxt.messagecenter.api.messagelist.app.AppLastMsgVo">
|
||||
SELECT DATE_FORMAT(ml.createTime, '%Y-%m-%d') as sendTime,ml.state,m.msgTitle,ml.sid,m.msgContent,m.sid as msgSid
|
||||
SELECT DATE_FORMAT(ml.createTime, '%Y-%m-%d') as sendTime,
|
||||
ml.state,
|
||||
m.msgTitle,
|
||||
ml.sid,
|
||||
m.msgContent,
|
||||
m.sid as msgSid
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m ON ml.msgSid=m.sid
|
||||
LEFT JOIN message_type mt ON m.msgTypeSid=mt.sid
|
||||
WHERE ml.receiverSid=#{userSid} AND mt.sid=#{msgTypeSid}
|
||||
ORDER BY ml.id desc LIMIT 1
|
||||
LEFT JOIN message m ON ml.msgSid = m.sid
|
||||
LEFT JOIN message_type mt ON m.msgTypeSid = mt.sid
|
||||
WHERE ml.receiverSid = #{userSid}
|
||||
AND mt.sid = #{msgTypeSid}
|
||||
ORDER BY ml.id desc
|
||||
LIMIT 1
|
||||
</select>
|
||||
<select id="getAppMsgListByUserSid" resultType="com.yxt.messagecenter.api.messagelist.app.AppMessageListVo">
|
||||
SELECT ml.sid,ml.msgSid,m.app_type as type,m.moduleSid,m.args_json as json,m.msgTitle,m.msgContent,ml.state,
|
||||
DATE_FORMAT(ml.createTime, '%Y-%m-%d') as sendTime,m.msgTargetUri as moduleAction
|
||||
SELECT ml.sid,
|
||||
ml.msgSid,
|
||||
m.app_type as type,
|
||||
m.moduleSid,
|
||||
m.args_json as json,
|
||||
m.msgTitle,
|
||||
m.msgContent,
|
||||
ml.state,
|
||||
DATE_FORMAT(ml.createTime, '%Y-%m-%d') as sendTime,
|
||||
m.msgTargetUri as moduleAction
|
||||
FROM message_list ml
|
||||
LEFT JOIN message m ON ml.msgSid=m.sid
|
||||
LEFT JOIN message m ON ml.msgSid = m.sid
|
||||
<where>
|
||||
${ew.sqlSegment}
|
||||
and ml.rDelStatus = 0
|
||||
and ml.rDelStatus = 0
|
||||
</where>
|
||||
ORDER BY ml.id DESC
|
||||
</select>
|
||||
<update id="updateAppReadByType">
|
||||
UPDATE message_list ml,message m set ml.state=1
|
||||
WHERE ml.msgSid=m.sid AND ml.receiverSid=#{userSid} AND m.msgTypeSid=#{msgTypeSid}
|
||||
UPDATE message_list ml,message m
|
||||
set ml.state=1
|
||||
WHERE ml.msgSid = m.sid
|
||||
AND ml.receiverSid = #{userSid}
|
||||
AND m.msgTypeSid = #{msgTypeSid}
|
||||
</update>
|
||||
|
||||
<select id="selectByMsgSid" resultType="java.lang.String">
|
||||
select sid
|
||||
from message_list
|
||||
where msgSid = #{s}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -12,6 +12,7 @@ import com.yxt.messagecenter.api.messagelist.*;
|
||||
import com.yxt.messagecenter.api.messagelist.app.AppMessageListQuery;
|
||||
import com.yxt.messagecenter.api.messagelist.app.AppMessageListVo;
|
||||
import com.yxt.messagecenter.api.messagelist.app.AppMsgMainVo;
|
||||
import com.yxt.messagecenter.biz.message.MessageService;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -44,6 +45,8 @@ public class MessageListRest implements MessageListFeign {
|
||||
|
||||
@Autowired
|
||||
private HttpServletRequest request;
|
||||
@Autowired
|
||||
private MessageService messageService;
|
||||
|
||||
@Override
|
||||
public ResultBean<PagerVo<MessageListJoinMsgVo>> noreadListPage(PagerQuery<MessageListQuery> pq) {
|
||||
@@ -52,7 +55,7 @@ public class MessageListRest implements MessageListFeign {
|
||||
DecodedJWT decodedJWT = JWT.decode(token);
|
||||
String userSid = JWTUtil.getUserSid(decodedJWT);
|
||||
ResultBean rb = ResultBean.fireFail();
|
||||
PagerVo<MessageListJoinMsgVo> pv = messageListService.noreadListPage(pq,userSid);
|
||||
PagerVo<MessageListJoinMsgVo> pv = messageListService.noreadListPage(pq, userSid);
|
||||
return rb.success().setData(pv);
|
||||
}
|
||||
|
||||
@@ -63,7 +66,7 @@ public class MessageListRest implements MessageListFeign {
|
||||
DecodedJWT decodedJWT = JWT.decode(token);
|
||||
String userSid = JWTUtil.getUserSid(decodedJWT);
|
||||
ResultBean rb = ResultBean.fireFail();
|
||||
PagerVo<MessageListJoinMsgVo> pv = messageListService.readListPage(pq,userSid);
|
||||
PagerVo<MessageListJoinMsgVo> pv = messageListService.readListPage(pq, userSid);
|
||||
return rb.success().setData(pv);
|
||||
}
|
||||
|
||||
@@ -110,19 +113,58 @@ public class MessageListRest implements MessageListFeign {
|
||||
DecodedJWT decodedJWT = JWT.decode(token);
|
||||
String receiverSid = JWTUtil.getUserSid(decodedJWT);
|
||||
Integer count = messageListService.fetchByReceiverSid(receiverSid);
|
||||
if (count == 0){
|
||||
if (count == 0) {
|
||||
return rb.success().setMessage("该用户下暂无未读消息");
|
||||
}else {
|
||||
} else {
|
||||
int num = messageListService.updateByReceiverSid(receiverSid);
|
||||
}
|
||||
return rb.success().setMessage("操作成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 2022-08-17修整已读:若为审批中心,则根据msgSid更新消息,若不是则根据message_list的sid更新消息
|
||||
*
|
||||
* @param sids
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ResultBean<MessageList> changeRead(String sids) {
|
||||
ResultBean rb = ResultBean.fireFail();
|
||||
List<String> sidList = Arrays.asList(sids.split(","));
|
||||
int count = messageListService.changeRead(sidList);
|
||||
if (sidList.size() == 1) {
|
||||
//判断是否在消息列表中
|
||||
MessageList messageList = messageListService.fetchBySid(sidList.get(0));
|
||||
if (messageList == null) {
|
||||
//查询是否在消息体中
|
||||
Message message = messageService.fetchBySid(sidList.get(0));
|
||||
if (message != null) {
|
||||
//查询是否是审批中心
|
||||
if ("审批中心".equals(message.getMsgType())) {
|
||||
//更新所有的已读
|
||||
List<String> stringList = messageListService.selectByMsgSid(sidList.get(0));
|
||||
int count = messageListService.changeRead(stringList);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Message message = messageService.fetchBySid(messageList.getMsgSid());
|
||||
if (message != null) {
|
||||
//查询是否是审批中心
|
||||
if ("审批中心".equals(message.getMsgType())) {
|
||||
//更新所有的已读
|
||||
List<String> stringList = messageListService.selectByMsgSid(sidList.get(0));
|
||||
int count = messageListService.changeRead(stringList);
|
||||
}else{
|
||||
int count = messageListService.changeRead(sidList);
|
||||
}
|
||||
}else{
|
||||
int count = messageListService.changeRead(sidList);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
int count = messageListService.changeRead(sidList);
|
||||
}
|
||||
|
||||
return rb.success().setMessage("操作成功");
|
||||
}
|
||||
|
||||
|
||||
@@ -338,4 +338,8 @@ public class MessageListService extends MybatisBaseService<MessageListMapper, Me
|
||||
public int updateAppReadByType(String msgTypeSid, String userSid) {
|
||||
return baseMapper.updateAppReadByType(msgTypeSid, userSid);
|
||||
}
|
||||
|
||||
public List<String> selectByMsgSid(String s) {
|
||||
return baseMapper.selectByMsgSid(s);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user