提交 669c7141 作者: han

Merge branch 'develop'

流水线 #8236 已通过 于阶段
in 2 分 7 秒
package com.mmc.iuav.user.model.dto; package com.mmc.iuav.user.model.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.mmc.iuav.user.model.vo.CompanyInfoVO; import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
......
...@@ -23,4 +23,6 @@ public class UserMessageVO implements Serializable { ...@@ -23,4 +23,6 @@ public class UserMessageVO implements Serializable {
@ApiModelProperty(value = "消息内容") @ApiModelProperty(value = "消息内容")
private String content; private String content;
@ApiModelProperty(value = "发送的图片")
private String imgUrl;
} }
...@@ -58,7 +58,13 @@ public abstract class BaseController { ...@@ -58,7 +58,13 @@ public abstract class BaseController {
if (StringUtils.isBlank(json)){ if (StringUtils.isBlank(json)){
throw new BizException(ResultEnum.LOGIN_ACCOUNT_STATUS_ERROR); throw new BizException(ResultEnum.LOGIN_ACCOUNT_STATUS_ERROR);
} }
// 版本问题,需要修改json字符串,去除最外侧""和转义\
if (json.startsWith("\"") && json.endsWith("\"")) {
json = json.substring(1, json.length() - 1);
}
json = json.replace("\\","");
LoginSuccessDTO loginSuccessDTO = JSONObject.parseObject(json, LoginSuccessDTO.class); LoginSuccessDTO loginSuccessDTO = JSONObject.parseObject(json, LoginSuccessDTO.class);
return loginSuccessDTO; return loginSuccessDTO;
} }
} }
...@@ -93,6 +93,7 @@ public interface MessageDao { ...@@ -93,6 +93,7 @@ public interface MessageDao {
int insertUserMessage(UserMessageDO messageDO); int insertUserMessage(UserMessageDO messageDO);
List<UserMessageDO> selectUserMessage(@Param("messageQO")MessageUserQO messageQO,@Param("senderUserId")Integer senderUserId); List<UserMessageDO> selectUserMessage(@Param("messageQO")MessageUserQO messageQO,@Param("senderUserId")Integer senderUserId);
UserMessageDO selectEndUserMessage(@Param("receiverUserId") Integer receiverUserId,@Param("senderUserId")Integer senderUserId);
int countUserMessage(@Param("receiverUserId") Integer receiverUserId,@Param("senderUserId") Integer senderUserId); int countUserMessage(@Param("receiverUserId") Integer receiverUserId,@Param("senderUserId") Integer senderUserId);
......
...@@ -38,4 +38,8 @@ public class UserDO implements Serializable { ...@@ -38,4 +38,8 @@ public class UserDO implements Serializable {
private Integer unreadCount; private Integer unreadCount;
@ApiModelProperty(value = "手机号") @ApiModelProperty(value = "手机号")
private String phoneNum; private String phoneNum;
@ApiModelProperty(value = "最新消息")
private String endMessage;
@ApiModelProperty(value = "最新消息创建时间")
private Date createTime;
} }
...@@ -53,5 +53,6 @@ public class UserMessageDO implements Serializable { ...@@ -53,5 +53,6 @@ public class UserMessageDO implements Serializable {
public UserMessageDO(UserMessageVO message) { public UserMessageDO(UserMessageVO message) {
this.receiverUserId = message.getReceiverUserId(); this.receiverUserId = message.getReceiverUserId();
this.content = message.getContent(); this.content = message.getContent();
this.imgUrl = message.getImgUrl();
} }
} }
...@@ -154,7 +154,7 @@ public class MessageServiceImpl implements MessageService { ...@@ -154,7 +154,7 @@ public class MessageServiceImpl implements MessageService {
@Override @Override
public PageResult selectUserMessage(MessageUserQO messageQO,Integer senderUserId) { public PageResult selectUserMessage(MessageUserQO messageQO,Integer senderUserId) {
scheduledTaskUtil.destroy(messageQO.getReceiverUserId()); scheduledTaskUtil.destroy(senderUserId);
int count = messageDao.countUserMessage(messageQO.getReceiverUserId(),senderUserId); int count = messageDao.countUserMessage(messageQO.getReceiverUserId(),senderUserId);
if (count == 0) { if (count == 0) {
return PageResult.buildPage(messageQO.getPageNo(), messageQO.getPageSize(), count); return PageResult.buildPage(messageQO.getPageNo(), messageQO.getPageSize(), count);
...@@ -181,8 +181,17 @@ public class MessageServiceImpl implements MessageService { ...@@ -181,8 +181,17 @@ public class MessageServiceImpl implements MessageService {
UserAccountDO userAccount = userServiceDao.getUserAccountById(userMessageLogDO.getReceiverUserId()); UserAccountDO userAccount = userServiceDao.getUserAccountById(userMessageLogDO.getReceiverUserId());
UserDO userDO = userAccount.buildUserDO(); UserDO userDO = userAccount.buildUserDO();
userDO.setUnreadCount(userMessageLogDO.getMessageCount()); userDO.setUnreadCount(userMessageLogDO.getMessageCount());
UserMessageDO userMessageDO = messageDao.selectEndUserMessage(userMessageLogDO.getReceiverUserId(), senderUserId);
if(userMessageDO.getContent() != null){
userDO.setEndMessage(userMessageDO.getContent());
}else {
userDO.setEndMessage(userMessageDO.getImgUrl());
}
userDO.setCreateTime(userMessageDO.getCreateTime());
userAccountDOList.add(userDO); userAccountDOList.add(userDO);
} }
// 使用 Collections.sort() 方法和自定义的比较器进行排序
Collections.sort(userAccountDOList, Comparator.comparing(UserDO::getCreateTime).reversed());
return ResultBody.success(userAccountDOList); return ResultBody.success(userAccountDOList);
} }
......
...@@ -50,7 +50,11 @@ public class ScheduledTaskUtil { ...@@ -50,7 +50,11 @@ public class ScheduledTaskUtil {
public void destroy(Integer userAccountId){ public void destroy(Integer userAccountId){
redisTemplate.setValueSerializer(RedisSerializer.json()); redisTemplate.setValueSerializer(RedisSerializer.json());
MyTask task = new Gson().fromJson(redisTemplate.opsForValue().get("task"+userAccountId), MyTask.class); String s = redisTemplate.opsForValue().get("task" + userAccountId);
if(s == null || s == ""){
return;
}
MyTask task = new Gson().fromJson(s, MyTask.class);
ScheduledFuture<?> scheduledFuture = scheduledTasks.get(userAccountId); ScheduledFuture<?> scheduledFuture = scheduledTasks.get(userAccountId);
if (task != null && scheduledFuture != null) { if (task != null && scheduledFuture != null) {
scheduledFuture.cancel(false); scheduledFuture.cancel(false);
......
...@@ -41,17 +41,20 @@ ...@@ -41,17 +41,20 @@
where is_deleted = 0 where is_deleted = 0
</select> </select>
<select id="selectUserMessage" resultType="com.mmc.iuav.user.entity.UserMessageDO"> <select id="selectUserMessage" resultType="com.mmc.iuav.user.entity.UserMessageDO">
select SELECT id, img_url, content, sender_user_id, receiver_user_id, create_time
id, img_url, content, sender_user_id,receiver_user_id, create_time FROM (
from user_message SELECT id, img_url, content, sender_user_id, receiver_user_id, create_time
where is_deleted = 0 and sender_user_id in(#{senderUserId} ,#{messageQO.receiverUserId}) FROM user_message
order by create_time desc WHERE is_deleted = 0 AND sender_user_id IN (#{senderUserId} ,#{messageQO.receiverUserId}) AND receiver_user_id IN (#{senderUserId} ,#{messageQO.receiverUserId})
LIMIT #{messageQO.pageNo},#{messageQO.pageSize} ORDER BY create_time desc
LIMIT #{messageQO.pageNo},#{messageQO.pageSize}
) AS subquery
ORDER BY create_time ASC;
</select> </select>
<select id="countUserMessage" resultType="java.lang.Integer"> <select id="countUserMessage" resultType="java.lang.Integer">
select count(*) select count(*)
from user_message from user_message
where is_deleted = 0 and sender_user_id in(#{senderUserId} ,#{receiverUserId}) where is_deleted = 0 and sender_user_id in(#{senderUserId} ,#{receiverUserId}) and receiver_user_id in(#{senderUserId} ,#{receiverUserId})
</select> </select>
<select id="selectUserListBySenderUserId" resultType="java.lang.Integer"> <select id="selectUserListBySenderUserId" resultType="java.lang.Integer">
select select
...@@ -81,6 +84,14 @@ ...@@ -81,6 +84,14 @@
from user_message from user_message
where is_deleted = 0 and id = #{id} where is_deleted = 0 and id = #{id}
</select> </select>
<select id="selectEndUserMessage" resultType="com.mmc.iuav.user.entity.UserMessageDO">
select
id, img_url, content, sender_user_id,receiver_user_id, create_time
from user_message
where is_deleted = 0 and sender_user_id in(#{senderUserId} ,#{receiverUserId}) and receiver_user_id in(#{senderUserId} ,#{receiverUserId})
order by create_time desc
LIMIT 1
</select>
<insert id="insertSystemMessage"> <insert id="insertSystemMessage">
insert into message insert into message
......
...@@ -18,4 +18,4 @@ patches: ...@@ -18,4 +18,4 @@ patches:
images: images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG - name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms
newTag: 630bc290b85f8591c38152668845af8ec7d400f1 newTag: dc89a6cdd82582e2e1308b924144dd3c8b2253bc
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论