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. 120
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.xml
  3. 52
      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);
}

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

@ -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>

52
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) {
@ -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("操作成功");
}

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