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. 36
      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; private final IUserService userService;
@PostMapping("/login") @PostMapping("/login")
@ApiOperation(value = "用户注册", notes = "用户注册") @ApiOperation(value = "用户登陆", notes = "用户登陆")
public Result register(@Valid @RequestBody LoginDTO dto) { public Result login(@Valid @RequestBody LoginDTO dto) {
LoginVO vo = userService.login(dto); LoginVO vo = userService.login(dto);
return ResultUtils.success(vo); return ResultUtils.success(vo);
} }
@ -46,7 +46,7 @@ public class LoginController {
@PutMapping("/modifyPwd") @PutMapping("/modifyPwd")
@ApiOperation(value = "修改密码", notes = "修改用户密码") @ApiOperation(value = "修改密码", notes = "修改用户密码")
public Result update(@Valid @RequestBody ModifyPwdDTO dto) { public Result modifyPassword(@Valid @RequestBody ModifyPwdDTO dto) {
userService.modifyPassword(dto); userService.modifyPassword(dto);
return ResultUtils.success(); 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 @Override
public void addFriend(Long friendId) { public void addFriend(Long friendId) {
long userId = SessionContext.getSession().getUserId(); long userId = SessionContext.getSession().getUserId();
if (userId == friendId) { if (friendId.equals(userId)) {
throw new GlobalException(ResultCode.PROGRAM_ERROR, "不允许添加自己为好友"); 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; return vo;
} }
@CacheEvict(value = "#vo.getId()") @CacheEvict(key = "#vo.getId()")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public GroupVO modifyGroup(GroupVO vo) { public GroupVO modifyGroup(GroupVO vo) {
@ -100,7 +100,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@CacheEvict(value = "#groupId") @CacheEvict(key = "#groupId")
@Override @Override
public void deleteGroup(Long groupId) { public void deleteGroup(Long groupId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -178,7 +178,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
return vo; return vo;
} }
@Cacheable(value = "#groupId") @Cacheable(key = "#groupId")
@Override @Override
public Group getById(Long groupId) { public Group getById(Long groupId) {
Group group = super.getById(groupId); Group group = super.getById(groupId);

1
im-ui/package.json

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

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

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

Loading…
Cancel
Save