From 1458aa8fa7f5c530663491cad8e7fbce95b8f2e7 Mon Sep 17 00:00:00 2001 From: xsx <825657193@qq.com> Date: Wed, 3 Jul 2024 23:16:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=94=A8localForage=E4=BB=A3=E6=9B=BFlocal?= =?UTF-8?q?Storage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- im-ui/package.json | 1 + im-ui/src/store/chatStore.js | 38 +++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/im-ui/package.json b/im-ui/package.json index c10926b..4b43975 100644 --- a/im-ui/package.json +++ b/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", diff --git a/im-ui/src/store/chatStore.js b/im-ui/src/store/chatStore.js index 81f199d..14f18e7 100644 --- a/im-ui/src/store/chatStore.js +++ b/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(); + }) }) } }, From c683452a056a9bb037884fc055b9fd5e1d3f7361 Mon Sep 17 00:00:00 2001 From: xsx <825657193@qq.com> Date: Mon, 8 Jul 2024 17:56:25 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=B8=80=E4=BA=9B=E5=B0=8Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bx/implatform/controller/LoginController.java | 6 +++--- .../com/bx/implatform/service/impl/FriendServiceImpl.java | 2 +- .../com/bx/implatform/service/impl/GroupServiceImpl.java | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/im-platform/src/main/java/com/bx/implatform/controller/LoginController.java b/im-platform/src/main/java/com/bx/implatform/controller/LoginController.java index 4a5e2d4..4a960a1 100644 --- a/im-platform/src/main/java/com/bx/implatform/controller/LoginController.java +++ b/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(); } diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java index a034740..20ef491 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java +++ b/im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java @@ -46,7 +46,7 @@ public class FriendServiceImpl extends ServiceImpl 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, "不允许添加自己为好友"); } // 互相绑定好友关系 diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java index feb13c8..c32de84 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java +++ b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java @@ -75,7 +75,7 @@ public class GroupServiceImpl extends ServiceImpl 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 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 implements return vo; } - @Cacheable(value = "#groupId") + @Cacheable(key = "#groupId") @Override public Group getById(Long groupId) { Group group = super.getById(groupId);