Browse Source

修改免登录

master
[yxf] 1 day ago
parent
commit
eea37d43a7
  1. 26
      im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java
  2. 22
      im-uniapp/App.vue
  3. 62
      im-uniapp/pages.json
  4. 8
      im-uniapp/pages/chat/chat-box.vue
  5. 5
      im-uniapp/pages/chat/chat.vue
  6. 61
      im-uniapp/pages/login/login.vue

26
im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java

@ -87,6 +87,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
public LoginVO login(LoginDTO dto) {
log.info("【测试】前端传的IP:{}", dto.getIp());
// 生成游客唯一标识UUID
String guestUuid = UUID.randomUUID().toString();
@ -96,21 +97,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
// 创建游客用户记录
User guestUser = new User();
guestUser.setUserName(guestUserName);
guestUser.setNickName(guestUserName); // 默认昵称为“游客”
guestUser.setPassword(""); // 游客无需密码,可为空
guestUser.setUuid(guestUuid); // 保存唯一标识
// guestUser.setCreateTime(LocalDateTime.now());
guestUser.setNickName(guestUserName);
guestUser.setPassword("");
guestUser.setUuid(guestUuid);
// ========== 先设置IP ==========
guestUser.setLastLoginIp(dto.getIp());
// 保存到数据库
this.save(guestUser);
Long customerServiceId = this.getRandomCustomerServiceId();
// ========== 正确更新 IP 和地址 ==========
// if(StrUtil.isNotBlank(dto.getIp())){
// this.updateIpAndAddress(guestUser);
// }
Long customerServiceId = this.getRandomCustomerServiceId();
// 创建会话信息
UserSession guestSession = new UserSession();
guestSession.setUserId(guestUser.getId());
guestSession.setUserName(guestUser.getUserName());
guestSession.setTerminal(dto.getTerminal());
// guestSession.setUuid(guestUuid);
// 生成Token
String guestJson = JSON.toJSONString(guestSession);
@ -134,12 +140,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
vo.setRefreshToken(refreshToken);
vo.setRefreshTokenExpiresIn(jwtProperties.getRefreshTokenExpireIn());
vo.setCustomerServiceId(customerServiceId == null ? -1 : customerServiceId);
// 设置当前登录的游客用户信息
vo.setUser(guestUser);
log.info("游客登录成功,userId:{}, uuid:{}", guestUser.getId(), guestUuid);
log.info("游客登录成功,userId:{}, uuid:{}, ip:{}", guestUser.getId(), guestUuid, dto.getIp());
return vo;
}
public Long getRandomCustomerServiceId() {
LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
// 条件:is_customer = 2 表示客服
@ -154,6 +161,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
return customerService == null ? null : customerService.getId();
}
@Override
public LoginVO loginCustom(LoginDTO dto) {
User user = this.findUserByUserName(dto.getUserName());

22
im-uniapp/App.vue

@ -471,12 +471,13 @@ export default {
// uni.switchTab({
// url: "/pages/chat/chat"
// })
uni.navigateTo({
url: "/pages/chat/chat-box?chatIdx=0"
})
// #endif
//
this.init();
uni.navigateTo({
url: "/pages/chat/chat-box?chatIdx=0"
})
this.closeSplashscreen(0);
}).catch(() => {
//
@ -484,6 +485,21 @@ export default {
url: "/pages/login/login"
})
})
this.$nextTick(() => {
const btn = document.querySelector('.btn-send');
if (btn) {
console.log('按钮找到:', btn);
//
const listeners = getEventListeners?.(btn);
console.log('按钮事件监听器:', listeners);
//
btn.addEventListener('click', (e) => {
console.log('原生点击事件触发');
this.sendTextMessage();
});
}
});
}
}
</script>

62
im-uniapp/pages.json

@ -79,36 +79,36 @@
"navigationBarBackgroundColor": "#f7f7f7",
"backgroundColor": "#f7f7f7"
},
"tabBar": {
"color": "#000000",
"selectedColor": "#587ff0",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/chat/chat",
"iconPath": "static/tab/chat.png",
"selectedIconPath": "static/tab/chat_active.png",
"text": "消息"
},
{
"pagePath": "pages/friend/friend",
"iconPath": "static/tab/friend.png",
"selectedIconPath": "static/tab/friend_active.png",
"text": "好友"
},
{
"pagePath": "pages/group/group",
"iconPath": "static/tab/group.png",
"selectedIconPath": "static/tab/group_active.png",
"text": "群聊"
},
{
"pagePath": "pages/mine/mine",
"iconPath": "static/tab/mine.png",
"selectedIconPath": "static/tab/mine_active.png",
"text": "我的"
}
]
},
// "tabBar": {
// "color": "#000000",
// "selectedColor": "#587ff0",
// "borderStyle": "black",
// "backgroundColor": "#ffffff",
// "list": [{
// "pagePath": "pages/chat/chat",
// "iconPath": "static/tab/chat.png",
// "selectedIconPath": "static/tab/chat_active.png",
// "text": "消息"
// },
// {
// "pagePath": "pages/friend/friend",
// "iconPath": "static/tab/friend.png",
// "selectedIconPath": "static/tab/friend_active.png",
// "text": "好友"
// },
// {
// "pagePath": "pages/group/group",
// "iconPath": "static/tab/group.png",
// "selectedIconPath": "static/tab/group_active.png",
// "text": "群聊"
// },
// {
// "pagePath": "pages/mine/mine",
// "iconPath": "static/tab/mine.png",
// "selectedIconPath": "static/tab/mine_active.png",
// "text": "我的"
// }
// ]
// },
"uniIdRouter": {}
}

8
im-uniapp/pages/chat/chat-box.vue

@ -1,6 +1,6 @@
<template>
<view class="page chat-box" id="chatBox">
<nav-bar back more @more="onShowMore">{{ title }}</nav-bar>
<nav-bar>{{ title }}</nav-bar>
<view class="chat-main-box" :style="{height: chatMainHeight+'px'}">
<view class="chat-message" @click="switchChatTabBox('none')">
<scroll-view class="scroll-box" scroll-y="true" upper-threshold="200" @scrolltoupper="onScrollToTop"
@ -46,7 +46,7 @@
<view v-if="isEmpty" class="iconfont icon-add" @click="onShowToolsChatTab()">
</view>
<button v-if="!isEmpty || atUserIds.length" class="btn-send" type="primary"
@touchend.prevent="sendTextMessage()" size="mini">发送</button>
@click="sendTextMessage()" size="mini">发送</button>
</view>
</view>
<view class="chat-tab-bar">
@ -301,10 +301,10 @@ export default {
if (op.insert.image) {
// emo
sendText += `#${op.attributes.alt};`
} else(
} else{
//
sendText += op.insert
)
}
})
//
sendText = sendText.trim();

5
im-uniapp/pages/chat/chat.vue

@ -1,5 +1,5 @@
<template>
<view class="tab-page">
<!-- <view class="tab-page">
<nav-bar search @search="onSearch()">消息</nav-bar>
<view v-if="loading" class="chat-loading">
<custom-loading :size="50" :mask="false">
@ -31,7 +31,7 @@
</long-press-menu>
</view>
</scroll-view>
</view>
</view> -->
</template>
<script>
@ -130,6 +130,7 @@ export default {
this.refreshUnreadBadge();
}
},
onShow() {
this.refreshUnreadBadge();
}

61
im-uniapp/pages/login/login.vue

@ -23,34 +23,31 @@ export default {
}
},
methods: {
autoLogin() {
async autoLogin() {
if (GLOBAL_AUTO_LOGIN_LOCK) return;
GLOBAL_AUTO_LOGIN_LOCK = true;
// //
// const loginInfo = uni.getStorageSync("loginInfo");
//
const loginInfo = uni.getStorageSync("loginInfo");
// const userName = uni.getStorageSync("userName") || "";
// const password = uni.getStorageSync("password") || "";
//
if (loginInfo) {
uni.navigateTo({
url: "/pages/chat/chat-box?chatIdx=0"
})
return;
}
this.getIp();
//
// if (!userName || !password) {
// console.log("");
// return;
// }
//
// this.dataForm.userName = userName;
// this.dataForm.password = password;
// //
// if (loginInfo) {
// try {
// // IM
// getApp().$vm.init();
// getApp().$vm.unloadStore();
// uni.reLaunch({
// url: "/pages/chat/chat-box?chatIdx=0"
// });
// } catch (err) {
// console.log("", err);
// }
// return;
// }
await this.getIp();
this.$http({
url: '/login',
data: this.dataForm,
@ -60,6 +57,7 @@ export default {
uni.setStorageSync("loginInfo", loginInfo);
getApp().$vm.init()
getApp().$vm.unloadStore();
this.$http({
url: "/friend/add?friendId=" + loginInfo.customerServiceId,
method: "POST"
@ -72,20 +70,17 @@ export default {
delete: false
}
this.friendStore.addFriend(friend);
uni.navigateTo({
url: "/pages/chat/chat-box?chatIdx=0"
})
uni.reLaunch({
url: "/pages/chat/chat-box?chatIdx=0"
});
})
getApp().$vm.unloadStore();
}).catch(err => {
console.log("自动登录失败", err);
});
// uni.navigateTo({ url: "/pages/chat/chat-box?chatIdx=0" });
},
async getIp() {
getIp() {
// ip
return new Promise((resolve, reject) => {
uni.request({

Loading…
Cancel
Save