修复平台给用户发送消息时间不同步的Bug,现已使双方任意一方发送消息,都会使得Redis中的key的有效时间重置

This commit is contained in:
wen 2022-01-13 18:59:55 +08:00
parent 366623bdeb
commit 07aa17ec4a
2 changed files with 11 additions and 2 deletions

View File

@ -24,6 +24,13 @@ public class XhpcMessageBoardController {
@Resource
XhpcMessageBoardService xhpcMessageBoardService;
/**
* 平台给用户发送消息
*
* @author WH
* @date 2022/1/13 18:43
* @since version-1.0
*/
@PostMapping("/platform/message")
public AjaxResult platformSendMessageToUser(@RequestBody PlatformSendMessageToUserRequest platformRequest) {

View File

@ -133,13 +133,13 @@ public class XhpcMessageBoardServiceImpl implements XhpcMessageBoardService {
String platformRedisKey = "PlatformMessageValidTime:" + "0:" + sysUser.getTenantId() + ":" + platformRequest.getSenderType() + ":" + platformRequest.getSenderAccount();
Object cacheObject = redisService.getCacheObject(platformRedisKey);
String currentTime;
String userRedisKey = "userMessageValidTime:" + platformRequest.getSenderType() + ":" + platformRequest.getSenderAccount() + ":" + "0:" + sysUser.getTenantId();
if (cacheObject == null) {
//设置当前时间
currentTime = DateUtil.getYyyyMmDdHhMmSs();
redisService.setCacheObject(platformRedisKey, currentTime);
redisService.expire(platformRedisKey, 60 * 5);
//设置用户RedisKey的有效时间保证双方时间数据同步
String userRedisKey = "userMessageValidTime:" + platformRequest.getSenderType() + ":" + platformRequest.getSenderAccount() + ":" + "0:" + sysUser.getTenantId();
redisService.setCacheObject(userRedisKey, currentTime);
redisService.expire(userRedisKey, 60 * 5);
platformRequest.setSendMessageTime(currentTime);
@ -150,10 +150,12 @@ public class XhpcMessageBoardServiceImpl implements XhpcMessageBoardService {
}
//reset redis key valid time
redisService.expire(platformRedisKey, 60 * 5);
redisService.expire(userRedisKey, 60 * 5);
platformRequest.setSendMessageTime((String) cacheObject);
platformRequest.setTenantId(sysUser.getTenantId());
platformRequest.setTenantType(0);
messageBoardMapper.insertPlatformMessage(platformRequest);
}
/**
@ -237,7 +239,7 @@ public class XhpcMessageBoardServiceImpl implements XhpcMessageBoardService {
*/
@Override
public String returnPlatformAvatar(String tenantId, Integer tenantType) {
//todo 查询数据库
return "https://xhpc-bucket1.oss-cn-hangzhou.aliyuncs.com/avatar/logo.png";
}