Commit 2b8d66c0 authored by liwei's avatar liwei

增加了留言已读未读显示

parent d687221d
......@@ -93,4 +93,19 @@ public class AppMemLeaveMessageController extends CyPaginationController<MemLeav
CyMessCons.MESSAGE_ALERT_ERROR,
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>
*/
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> {
*/
private String content;
/**
* 阅读状态 1:已读 0:未读
*/
private String readStatus;
/**
* 目标头像id
*/
......@@ -131,5 +136,11 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> {
*/
@TableField(exist = false)
private Integer blackUser;
/**
* 当前人对该对话留言的未读数
*/
@TableField(exist = false)
private Integer noReadCount;
}
......@@ -34,4 +34,9 @@ public interface MemLeaveMessageService {
IPage<MemLeaveMessage> queryMessageByPagination(CyPageInfo<MemLeaveMessage> paginationUtility, MemLeaveMessage memLeaveMessage);
CyPersistModel deleteMessage(MemLeaveMessage memLeaveMessage);
/**
* 查询未读消息总数
*/
int noReadMessageAllCount();
}
......@@ -133,6 +133,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memLeaveMessage.setUpdateBy(Integer.valueOf(userId));
memLeaveMessage.setCreateDate(new Date());
memLeaveMessage.setUpdateDate(new Date());
memLeaveMessage.setReadStatus("0");
int line = memLeaveMessageRepository.insert(memLeaveMessage);
//修改对话表
//查询是否已存在对话
......@@ -167,6 +168,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memLeaveMessage.setUpdateBy(Integer.valueOf(userId));
memLeaveMessage.setCreateDate(new Date());
memLeaveMessage.setUpdateDate(new Date());
memLeaveMessage.setReadStatus("0");
int line = memLeaveMessageRepository.insert(memLeaveMessage);
//查询是否已存在对话
MemLeaveMessage memUserTalks = memLeaveMessageRepository.queryUserTalk(Integer.valueOf(userId),memLeaveMessage.getTargetId());
......@@ -210,6 +212,7 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memLeaveMessage.setUpdateBy(Integer.valueOf(userId));
memLeaveMessage.setCreateDate(new Date());
memLeaveMessage.setUpdateDate(new Date());
memLeaveMessage.setReadStatus("0");
memLeaveMessageRepository.insert(memLeaveMessage);
//修改对话表
//查询是否已存在对话
......@@ -254,6 +257,13 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
public IPage<MemLeaveMessage> queryTalkByPagination(CyPageInfo<MemLeaveMessage> paginationUtility, MemLeaveMessage memLeaveMessage) {
memLeaveMessage.setCreateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
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;
}
......@@ -269,6 +279,8 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
IPage<MemLeaveMessage> userLeaveMessageIPage = memLeaveMessageRepository.leaveMessageDetailList(paginationUtility, memLeaveMessage);
//再对这最新的10条正序排序
userLeaveMessageIPage.getRecords().sort(Comparator.comparing(MemLeaveMessage::getCreateDate));
//修改留言未读状态
memLeaveMessageRepository.updateMessageReadStatus(Integer.valueOf(CyUserUtil.getAuthenBusinessId()),memLeaveMessage.getTargetId(),"1");
return userLeaveMessageIPage;
}
......@@ -296,4 +308,14 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
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 @@
<select id="selectDelUserById" resultType="java.lang.Integer">
select del_user from mem_user_talk where business_id = #{entity.businessId}
</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 from mem_user_talk where business_id = #{entity.businessId}
</delete>
......@@ -118,4 +136,10 @@
set black_user = #{entity.blackUser}
where business_id = #{entity.businessId}
</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>
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