Commit 2b8d66c0 authored by liwei's avatar liwei

增加了留言已读未读显示

parent d687221d
...@@ -93,4 +93,19 @@ public class AppMemLeaveMessageController extends CyPaginationController<MemLeav ...@@ -93,4 +93,19 @@ public class AppMemLeaveMessageController extends CyPaginationController<MemLeav
CyMessCons.MESSAGE_ALERT_ERROR, CyMessCons.MESSAGE_ALERT_ERROR,
businessId); businessId);
} }
/**
* 我的留言-查询留言未读消息数量
*/
@PreAuthorize("@cyPerm.hasPerm('app:mem:query')")
@CyOpeLogAnno(title = "system-留言管理-查询留言未读消息数量", businessType = CyLogTypeEnum.QUERY)
@Operation(summary = "查询留言未读消息数量", description = "查询留言未读消息数量")
@Parameters({@Parameter(name = "businessId", description = "businessId", required = true)})
@GetMapping("/memLeaveMessage/noReadMessageAllCount")
public CyResult noReadMessageAllCount() {
return CyResultGenUtil.builder(new CyPersistModel(1),
CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR,
memLeaveMessageServiceImpl.noReadMessageAllCount());
}
} }
...@@ -65,5 +65,19 @@ public interface MemLeaveMessageRepository extends CyBaseMapper<MemLeaveMessage> ...@@ -65,5 +65,19 @@ public interface MemLeaveMessageRepository extends CyBaseMapper<MemLeaveMessage>
*/ */
int updateTalkBlack(@Param("entity") MemLeaveMessage memLeaveMessage); int updateTalkBlack(@Param("entity") MemLeaveMessage memLeaveMessage);
/**
* 查询当前人的对该对话的未阅读数量
*/
int queryTalkNoReadCount(@Param("createBy") Integer createBy,@Param("targetId") Integer targetId,@Param("loginUserId") Integer loginUserId);
/**
* 修改留言的阅读状态
*/
int updateMessageReadStatus(@Param("createBy") Integer createBy,@Param("targetId") Integer targetId,@Param("status") String status);
/**
* 当前人的未读留言总数
*/
int leaveMessageNoReadAllCount(Integer userId);
} }
...@@ -63,6 +63,11 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> { ...@@ -63,6 +63,11 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> {
*/ */
private String content; private String content;
/**
* 阅读状态 1:已读 0:未读
*/
private String readStatus;
/** /**
* 目标头像id * 目标头像id
*/ */
...@@ -131,5 +136,11 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> { ...@@ -131,5 +136,11 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> {
*/ */
@TableField(exist = false) @TableField(exist = false)
private Integer blackUser; private Integer blackUser;
/**
* 当前人对该对话留言的未读数
*/
@TableField(exist = false)
private Integer noReadCount;
} }
...@@ -34,4 +34,9 @@ public interface MemLeaveMessageService { ...@@ -34,4 +34,9 @@ public interface MemLeaveMessageService {
IPage<MemLeaveMessage> queryMessageByPagination(CyPageInfo<MemLeaveMessage> paginationUtility, MemLeaveMessage memLeaveMessage); IPage<MemLeaveMessage> queryMessageByPagination(CyPageInfo<MemLeaveMessage> paginationUtility, MemLeaveMessage memLeaveMessage);
CyPersistModel deleteMessage(MemLeaveMessage memLeaveMessage); CyPersistModel deleteMessage(MemLeaveMessage memLeaveMessage);
/**
* 查询未读消息总数
*/
int noReadMessageAllCount();
} }
...@@ -133,6 +133,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -133,6 +133,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memLeaveMessage.setUpdateBy(Integer.valueOf(userId)); memLeaveMessage.setUpdateBy(Integer.valueOf(userId));
memLeaveMessage.setCreateDate(new Date()); memLeaveMessage.setCreateDate(new Date());
memLeaveMessage.setUpdateDate(new Date()); memLeaveMessage.setUpdateDate(new Date());
memLeaveMessage.setReadStatus("0");
int line = memLeaveMessageRepository.insert(memLeaveMessage); int line = memLeaveMessageRepository.insert(memLeaveMessage);
//修改对话表 //修改对话表
//查询是否已存在对话 //查询是否已存在对话
...@@ -167,6 +168,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -167,6 +168,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memLeaveMessage.setUpdateBy(Integer.valueOf(userId)); memLeaveMessage.setUpdateBy(Integer.valueOf(userId));
memLeaveMessage.setCreateDate(new Date()); memLeaveMessage.setCreateDate(new Date());
memLeaveMessage.setUpdateDate(new Date()); memLeaveMessage.setUpdateDate(new Date());
memLeaveMessage.setReadStatus("0");
int line = memLeaveMessageRepository.insert(memLeaveMessage); int line = memLeaveMessageRepository.insert(memLeaveMessage);
//查询是否已存在对话 //查询是否已存在对话
MemLeaveMessage memUserTalks = memLeaveMessageRepository.queryUserTalk(Integer.valueOf(userId),memLeaveMessage.getTargetId()); MemLeaveMessage memUserTalks = memLeaveMessageRepository.queryUserTalk(Integer.valueOf(userId),memLeaveMessage.getTargetId());
...@@ -210,6 +212,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -210,6 +212,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memLeaveMessage.setUpdateBy(Integer.valueOf(userId)); memLeaveMessage.setUpdateBy(Integer.valueOf(userId));
memLeaveMessage.setCreateDate(new Date()); memLeaveMessage.setCreateDate(new Date());
memLeaveMessage.setUpdateDate(new Date()); memLeaveMessage.setUpdateDate(new Date());
memLeaveMessage.setReadStatus("0");
memLeaveMessageRepository.insert(memLeaveMessage); memLeaveMessageRepository.insert(memLeaveMessage);
//修改对话表 //修改对话表
//查询是否已存在对话 //查询是否已存在对话
...@@ -254,6 +257,13 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -254,6 +257,13 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
public IPage<MemLeaveMessage> queryTalkByPagination(CyPageInfo<MemLeaveMessage> paginationUtility, MemLeaveMessage memLeaveMessage) { public IPage<MemLeaveMessage> queryTalkByPagination(CyPageInfo<MemLeaveMessage> paginationUtility, MemLeaveMessage memLeaveMessage) {
memLeaveMessage.setCreateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId())); memLeaveMessage.setCreateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
IPage<MemLeaveMessage> userLeaveMessageIPage = memLeaveMessageRepository.queryTalkByPagination(paginationUtility, memLeaveMessage); IPage<MemLeaveMessage> userLeaveMessageIPage = memLeaveMessageRepository.queryTalkByPagination(paginationUtility, memLeaveMessage);
List<MemLeaveMessage> talks = userLeaveMessageIPage.getRecords();
talks.forEach(item->{
//查询每一个对话的我的未读留言数量
//1.查询该对话的所有留言 并且计算出当前用户对该留言的未读信息数量 对话的createBy和targetId会随时变 所以当前人id要手动获取
int count = memLeaveMessageRepository.queryTalkNoReadCount(item.getCreateBy(),item.getTargetId(),Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
item.setNoReadCount(count);
});
return userLeaveMessageIPage; return userLeaveMessageIPage;
} }
...@@ -269,6 +279,8 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -269,6 +279,8 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
IPage<MemLeaveMessage> userLeaveMessageIPage = memLeaveMessageRepository.leaveMessageDetailList(paginationUtility, memLeaveMessage); IPage<MemLeaveMessage> userLeaveMessageIPage = memLeaveMessageRepository.leaveMessageDetailList(paginationUtility, memLeaveMessage);
//再对这最新的10条正序排序 //再对这最新的10条正序排序
userLeaveMessageIPage.getRecords().sort(Comparator.comparing(MemLeaveMessage::getCreateDate)); userLeaveMessageIPage.getRecords().sort(Comparator.comparing(MemLeaveMessage::getCreateDate));
//修改留言未读状态
memLeaveMessageRepository.updateMessageReadStatus(Integer.valueOf(CyUserUtil.getAuthenBusinessId()),memLeaveMessage.getTargetId(),"1");
return userLeaveMessageIPage; return userLeaveMessageIPage;
} }
...@@ -296,4 +308,14 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -296,4 +308,14 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
return new CyPersistModel(line); return new CyPersistModel(line);
} }
} }
@Override
public int noReadMessageAllCount() {
//获取当前登录人
String userId = CyUserUtil.getAuthenBusinessId();
//查询未读的留言数
int count = memLeaveMessageRepository.leaveMessageNoReadAllCount(Integer.valueOf(userId));
//查询未读的要微信请求数
return count;
}
} }
...@@ -105,6 +105,24 @@ ...@@ -105,6 +105,24 @@
<select id="selectDelUserById" resultType="java.lang.Integer"> <select id="selectDelUserById" resultType="java.lang.Integer">
select del_user from mem_user_talk where business_id = #{entity.businessId} select del_user from mem_user_talk where business_id = #{entity.businessId}
</select> </select>
<select id="queryTalkNoReadCount" resultType="java.lang.Integer">
SELECT count(*)
FROM (
SELECT mulm.target_id,mulm.read_status
FROM mem_user_leave_message mulm
WHERE
(mulm.create_by = #{createBy} and mulm.target_id = #{targetId})
OR (mulm.create_by = #{targetId} and mulm.target_id = #{createBy})
) table1
WHERE table1.target_id = #{loginUserId} and table1.read_status = '0'
</select>
<select id="leaveMessageNoReadAllCount" resultType="java.lang.Integer">
SELECT COUNT(*)
from mem_user_leave_message mulm
where 1=1
and mulm.target_id = #{userId}
and mulm.read_status = '0'
</select>
<delete id="deleteTalkById"> <delete id="deleteTalkById">
delete from mem_user_talk where business_id = #{entity.businessId} delete from mem_user_talk where business_id = #{entity.businessId}
</delete> </delete>
...@@ -118,4 +136,10 @@ ...@@ -118,4 +136,10 @@
set black_user = #{entity.blackUser} set black_user = #{entity.blackUser}
where business_id = #{entity.businessId} where business_id = #{entity.businessId}
</update> </update>
<update id="updateMessageReadStatus">
update mem_user_leave_message mulm
set mulm.read_status = #{status}
where
mulm.create_by = #{targetId} and mulm.target_id = #{createBy}
</update>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment