Browse Source

消息设置为已读接口修改:若为审批中心,则根据msgSid更新消息,若不是则根据message_list的sid更新消息

master
dimengzhe 3 years ago
parent
commit
94546c44e3
  1. 2
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.java
  2. 44
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.xml
  3. 42
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java
  4. 4
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java

2
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.java

@ -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);
}

44
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.xml

@ -154,26 +154,44 @@
<!-- 根据消息类型查询未读数量-->
<select id="selectUnReadCount" resultType="int">
SELECT COUNT(1) FROM message_list ml
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}
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
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
<where>
@ -183,8 +201,16 @@
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>

42
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java

@ -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) {
@ -118,11 +121,50 @@ public class MessageListRest implements MessageListFeign {
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(","));
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("操作成功");
}

4
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java

@ -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);
}
}
Loading…
Cancel
Save