提交 86d44c87 编写于 作者: 梦境迷离's avatar 梦境迷离

* 支持报错在线状态,打开会话框时检测对方状态「刷新会导致自己状态被置为在线」

上级 5fcd8f8e
......@@ -70,6 +70,7 @@
* 新增修改个人信息时可选择是否修改密码
* 修复收到消息时没有声音
* 支持获取离线消息和提醒「打开会话框时将对方发给我的所有消息置为已读」
* 支持报错在线状态,打开会话框时检测对方状态「刷新会导致自己状态被置为在线」
### v1.2 版本
......
......@@ -564,7 +564,7 @@ class UserController @Autowired() (userService: UserService, cookieService: Cook
u.setSex(sex)
u.setSign(user.getSign)
u.setUsername(user.getUsername)
userService.updateUserInfo(u, u.getId)
userService.updateUserInfo(u)
gson.toJson(new ResultSet(SystemConstant.SUCCESS, SystemConstant.UPDATE_INFO_SUCCESS))
} else if (!SecurityUtil.matchs(user.getOldpwd, u.getPassword)) {
gson.toJson(new ResultSet(SystemConstant.ERROR, SystemConstant.UPDATE_INFO_PASSWORD_FAIL))
......@@ -573,7 +573,7 @@ class UserController @Autowired() (userService: UserService, cookieService: Cook
u.setSex(sex)
u.setSign(user.getSign)
u.setUsername(user.getUsername)
userService.updateUserInfo(u, u.getId)
userService.updateUserInfo(u)
gson.toJson(new ResultSet(SystemConstant.SUCCESS, SystemConstant.UPDATE_INFO_SUCCESS))
}
}
......
......@@ -345,6 +345,19 @@ trait UserRepository {
)
def updateUserInfo(user: User): Int
/**
* 更新用户状态
*
* @param user 用户
* @return Int
*/
@Update(
Array(
"update t_user set status = #{status} where id = #{id}"
)
)
def updateUserStatus(user: User): Int
/**
* 激活用户账号
*
......
......@@ -123,7 +123,6 @@ class UserService @Autowired() (userRepository: UserRepository, mailService: Mai
* 更新用户信息
*
* @param user 个人信息
* @param uid 用户id
* @return Boolean
*/
@CacheEvict(
......@@ -131,10 +130,25 @@ class UserService @Autowired() (userRepository: UserRepository, mailService: Mai
allEntries = true
)
@Transactional
def updateUserInfo(user: User, uid: Int): Boolean = {
def updateUserInfo(user: User): Boolean = {
userRepository.updateUserInfo(user) == 1
}
/**
* 更新用户状态
*
* @param user 个人信息
* @return Boolean
*/
@CacheEvict(
value = Array("findUserById", "findUserByGroupId", "findFriendGroupsById"),
allEntries = true
)
@Transactional
def updateUserStatus(user: User): Boolean = {
userRepository.updateUserStatus(user) == 1
}
/**
* 移动好友分组
*
......
......@@ -258,6 +258,10 @@ object WebSocketService {
LOGGER.debug(s"检测在线状态 => [uId = $uId, status = $status]")
if ("online".equals(status)) redisService.setSet(SystemConstant.ONLINE_USER, uId + "")
else redisService.removeSetValue(SystemConstant.ONLINE_USER, uId + "")
val user = new User
user.setId(uId)
user.setStatus(status)
userService.updateUserStatus(user)
}
/**
......
......@@ -71,6 +71,7 @@ layui.use(['layim', 'jquery', 'laytpl'], function (layim) {
}
}
},
//处理接收到的消息
handleMessage: function (data) {
json = eval("(" + data + ")");
......@@ -148,7 +149,6 @@ layui.use(['layim', 'jquery', 'laytpl'], function (layim) {
//初始化WebSocket对象
im.init();
//基础配置
layim.config({
//主面板最小化后显示的名称
......@@ -204,9 +204,10 @@ layui.use(['layim', 'jquery', 'laytpl'], function (layim) {
//监听在线状态的切换事件
layim.on('online', function (data) {
console.log("当前状态:"+data)
socket.send(JSON.stringify({
type: "changOnline",
mine: null,
mine: parent.layui.layim.cache().mine,
to: null,
msg: data
}));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册