Browse Source

!73 用localForage代替localStorage

Merge pull request !73 from blue/v_2.0.0
master
blue 2 years ago
committed by Gitee
parent
commit
b3ea91b17f
No known key found for this signature in database GPG Key ID: 173E9B9CA92EEF8F
  1. 6
      im-platform/src/main/java/com/bx/implatform/controller/LoginController.java
  2. 2
      im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java
  3. 6
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java
  4. 1
      im-ui/package.json
  5. 38
      im-ui/src/store/chatStore.js

6
im-platform/src/main/java/com/bx/implatform/controller/LoginController.java

@ -22,8 +22,8 @@ public class LoginController {
private final IUserService userService;
@PostMapping("/login")
@ApiOperation(value = "用户注册", notes = "用户注册")
public Result register(@Valid @RequestBody LoginDTO dto) {
@ApiOperation(value = "用户登陆", notes = "用户登陆")
public Result login(@Valid @RequestBody LoginDTO dto) {
LoginVO vo = userService.login(dto);
return ResultUtils.success(vo);
}
@ -46,7 +46,7 @@ public class LoginController {
@PutMapping("/modifyPwd")
@ApiOperation(value = "修改密码", notes = "修改用户密码")
public Result update(@Valid @RequestBody ModifyPwdDTO dto) {
public Result modifyPassword(@Valid @RequestBody ModifyPwdDTO dto) {
userService.modifyPassword(dto);
return ResultUtils.success();
}

2
im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java

@ -46,7 +46,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
@Override
public void addFriend(Long friendId) {
long userId = SessionContext.getSession().getUserId();
if (userId == friendId) {
if (friendId.equals(userId)) {
throw new GlobalException(ResultCode.PROGRAM_ERROR, "不允许添加自己为好友");
}
// 互相绑定好友关系

6
im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java

@ -75,7 +75,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
return vo;
}
@CacheEvict(value = "#vo.getId()")
@CacheEvict(key = "#vo.getId()")
@Transactional(rollbackFor = Exception.class)
@Override
public GroupVO modifyGroup(GroupVO vo) {
@ -100,7 +100,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
}
@Transactional(rollbackFor = Exception.class)
@CacheEvict(value = "#groupId")
@CacheEvict(key = "#groupId")
@Override
public void deleteGroup(Long groupId) {
UserSession session = SessionContext.getSession();
@ -178,7 +178,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
return vo;
}
@Cacheable(value = "#groupId")
@Cacheable(key = "#groupId")
@Override
public Group getById(Long groupId) {
Group group = super.getById(groupId);

1
im-ui/package.json

@ -12,6 +12,7 @@
"core-js": "^3.6.5",
"element-ui": "^2.15.10",
"js-audio-recorder": "^1.0.7",
"localforage": "^1.10.0",
"sass": "^1.47.0",
"sass-loader": "^10.1.1",
"vue": "^2.6.11",

38
im-ui/src/store/chatStore.js

@ -1,8 +1,7 @@
import {
MESSAGE_TYPE,
MESSAGE_STATUS
} from "../api/enums.js"
import { MESSAGE_TYPE, MESSAGE_STATUS } from "../api/enums.js"
import userStore from './userStore';
import localForage from 'localforage';
export default {
state: {
@ -142,9 +141,9 @@ export default {
chat.lastContent = "[文件]";
} else if (msgInfo.type == MESSAGE_TYPE.AUDIO) {
chat.lastContent = "[语音]";
} else if (msgInfo.type == MESSAGE_TYPE.TEXT
|| msgInfo.type == MESSAGE_TYPE.RECALL
|| msgInfo.type == MESSAGE_TYPE.TIP_TEXT ) {
} else if (msgInfo.type == MESSAGE_TYPE.TEXT ||
msgInfo.type == MESSAGE_TYPE.RECALL ||
msgInfo.type == MESSAGE_TYPE.TIP_TEXT) {
chat.lastContent = msgInfo.content;
} else if (msgInfo.type == MESSAGE_TYPE.ACT_RT_VOICE) {
chat.lastContent = "[语音通话]";
@ -179,14 +178,14 @@ export default {
// 根据id顺序插入,防止消息乱序
let insertPos = chat.messages.length;
// 防止 图片、文件 在发送方 显示 在顶端 因为还没存库,id=0
if(msgInfo.id && msgInfo.id > 0){
if (msgInfo.id && msgInfo.id > 0) {
for (let idx in chat.messages) {
if (chat.messages[idx].id && msgInfo.id < chat.messages[idx].id) {
insertPos = idx;
console.log(`消息出现乱序,位置:${chat.messages.length},修正至:${insertPos}`);
break;
}
}
}
}
chat.messages.splice(insertPos, 0, msgInfo);
this.commit("saveToStorage");
@ -264,7 +263,7 @@ export default {
groupMsgMaxId: state.groupMsgMaxId,
chats: state.chats
}
localStorage.setItem(key, JSON.stringify(chatsData));
localForage.setItem(key, chatsData)
},
clear(state) {
state.activeChat = null;
@ -276,12 +275,19 @@ export default {
return new Promise((resolve, reject) => {
let userId = userStore.state.userInfo.id;
let key = "chats-" + userId;
let item = localStorage.getItem(key)
if (item) {
let chatsData = JSON.parse(item);
context.commit("initChats", chatsData);
}
resolve();
localForage.getItem(key).then((item)=>{
let chatsData = item;
// 兼容历史数据,以后要删除
if(!chatsData){
chatsData = JSON.parse(localStorage.getItem(key));
}
if (chatsData) {
context.commit("initChats", chatsData);
}
resolve();
}).catch(()=>{
reject();
})
})
}
},

Loading…
Cancel
Save