diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.java index cdb6d90..ce7883f 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.java @@ -87,4 +87,6 @@ public interface MessageListMapper extends BaseMapper { IPage getAppMsgListByUserSid(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); int updateAppReadByType(@Param("msgTypeSid") String msgTypeSid, @Param("userSid") String userSid); + + List selectByMsgSid(String s); } \ No newline at end of file diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.xml b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.xml index cb99b49..ddf7076 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.xml +++ b/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 ${ew.sqlSegment} @@ -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 ${ew.sqlSegment} - and ml.state = 0 - and ml.rDelStatus = 0 + and ml.state = 0 + and ml.rDelStatus = 0 @@ -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 ${ew.sqlSegment} - and ml.state = 0 - and ml.rDelStatus = 0 + and ml.state = 0 + and ml.rDelStatus = 0 @@ -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} @@ -98,7 +98,7 @@ update message_list set state=1 - WHERE sid IN + WHERE sid IN #{item} @@ -108,7 +108,7 @@ update message_list set state=0 - WHERE sid IN + WHERE sid IN #{item} @@ -118,24 +118,24 @@ @@ -143,48 +143,74 @@ - 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} + \ No newline at end of file diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java index 6648fcd..53e5103 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java +++ b/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> noreadListPage(PagerQuery 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 pv = messageListService.noreadListPage(pq,userSid); + PagerVo 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 pv = messageListService.readListPage(pq,userSid); + PagerVo 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 changeRead(String sids) { ResultBean rb = ResultBean.fireFail(); List 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 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 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("操作成功"); } diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java index 49574e0..8e0be8c 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java @@ -338,4 +338,8 @@ public class MessageListService extends MybatisBaseService selectByMsgSid(String s) { + return baseMapper.selectByMsgSid(s); + } } \ No newline at end of file