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