From 0a793caf800afd14972848dfe9527e8393ed9a49 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Mon, 1 Sep 2025 17:06:16 +0800 Subject: [PATCH] 1 --- .../ruoyi/base/controller/ChatController.java | 12 +--- .../ruoyi/base/controller/WebController.java | 6 +- .../controller/BusiChatMainController.java | 2 +- .../ruoyi/busi/mapper/BusiChatMainMapper.java | 10 ---- .../busi/service/IBusiChatMainService.java | 7 --- .../service/impl/BusiChatMainServiceImpl.java | 25 ++++---- .../java/com/ruoyi/constant/StrConstants.java | 4 -- .../src/main/resources/application-druid.yml | 12 ++-- .../src/main/resources/application.yml | 2 + .../mapper/busi/BusiChatItemMapper.xml | 8 ++- .../mapper/busi/BusiChatMainMapper.xml | 3 +- .../com/ruoyi/common/config/GoogleConfig.java | 2 + dl_vue/src/api/busi/chatMain.js | 14 +++++ dl_vue/src/layout/index.vue | 20 ++++++- dl_vue/src/views/busi/chatMain/chatForm.vue | 42 ++++++++------ .../src/views/busi/chatMain/messageList.vue | 57 +++++++++++-------- 16 files changed, 129 insertions(+), 97 deletions(-) diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/ChatController.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/ChatController.java index 81e2096..7ae39d2 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/ChatController.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/ChatController.java @@ -52,14 +52,6 @@ public class ChatController { public AjaxResult sendMessage(@RequestBody BusiChatItem message) { return AjaxResult.success(busiChatItemService.sendMessage(message)); } - /** - * 根据租户ID查询会话列表 - */ - @GetMapping("/tenant/{tenantId}") - public AjaxResult getByTenantId(@PathVariable String tenantId) { - List sessions = busiChatMainService.selectByTenantId(tenantId); - return AjaxResult.success(sessions); - } /** * 查询用户活跃会话 @@ -93,7 +85,7 @@ public class ChatController { */ @PutMapping("/read/{sessionId}") public AjaxResult markAsRead(@PathVariable String sessionId, @RequestParam String receiverId) { - boolean success = busiChatItemService.markAsRead(sessionId, receiverId); - return success ? AjaxResult.success() : AjaxResult.error("标记已读失败"); + busiChatItemService.markAsRead(sessionId, receiverId); + return AjaxResult.success(); } } diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/WebController.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/WebController.java index d3c1414..2c7060c 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/WebController.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/WebController.java @@ -15,6 +15,7 @@ import com.ruoyi.busi.utils.CommonUtils; import com.ruoyi.busi.vo.BusiCategoryVO; import com.ruoyi.busi.vo.SiteMapVO; import com.ruoyi.busi.vo.WebDetailVO; +import com.ruoyi.common.config.GoogleConfig; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.R; @@ -37,7 +38,6 @@ import java.util.*; import static com.ruoyi.constant.DictConstants.*; import static com.ruoyi.constant.DictConstants.CATG_TYPE_WZ; -import static com.ruoyi.constant.StrConstants.UPLOAD_DIR; /** * Web 专用Controller @@ -71,6 +71,8 @@ public class WebController extends BaseController { private ISysDictDataService dictDataService; @Autowired private IBaseAppService appService; + @Autowired + private GoogleConfig googleConfig; /** * 导航栏接口--所有分类 @@ -459,7 +461,7 @@ public class WebController extends BaseController { public void downloadApk(HttpServletResponse response) { try { // APK文件路径 - File file = new File(UPLOAD_DIR); + File file = new File(googleConfig.getAppDownload()); // 检查文件是否存在 if (!file.exists()) { diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiChatMainController.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiChatMainController.java index 88d5e39..e95f9a7 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiChatMainController.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiChatMainController.java @@ -118,7 +118,7 @@ public class BusiChatMainController extends BaseController } /** - * 根据客服ID查询会话列表---用到了 + * 根据客服ID查询会话列表---只有服务端使用,所以挪过来 */ @GetMapping("/service") public AjaxResult getByServiceId() { diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiChatMainMapper.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiChatMainMapper.java index 8f0db6c..2745b8f 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiChatMainMapper.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiChatMainMapper.java @@ -48,14 +48,6 @@ public interface BusiChatMainMapper extends BaseMapper List selectLineChart(@Param("tenantId")String tenantId,@Param("startDate")String startDate,@Param("endDate")String endDate); - - /** - * 根据租户ID查询会话列表 - * @param tenantId 租户ID - * @return 会话列表 - */ - List selectByTenantId(@Param("tenantId") String tenantId); - /** * 根据客服ID查询会话列表 * @param serviceId 客服ID @@ -66,12 +58,10 @@ public interface BusiChatMainMapper extends BaseMapper /** * 根据用户标识查询活跃会话 * @param tenantId 租户ID - * @param userIp 用户IP * @param deviceCode 设备编码 * @return 会话信息 */ BusiChatMain selectActiveSession(@Param("tenantId") String tenantId, - @Param("userIp") String userIp, @Param("deviceCode") String deviceCode, @Param("prodId") String prodId); } diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiChatMainService.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiChatMainService.java index 5dab75e..7f2425d 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiChatMainService.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiChatMainService.java @@ -36,13 +36,6 @@ public interface IBusiChatMainService extends IService { */ BusiChatMain createSession(BusiChatMain session); - /** - * 根据租户ID查询会话列表 - * @param tenantId 租户ID - * @return 会话列表 - */ - List selectByTenantId(String tenantId); - /** * 根据客服ID查询会话列表 * @param serviceId 客服ID diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiChatMainServiceImpl.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiChatMainServiceImpl.java index cb8f2ba..68d3432 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiChatMainServiceImpl.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiChatMainServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.busi.service.impl; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; @@ -97,11 +98,6 @@ public class BusiChatMainServiceImpl extends ServiceImpl selectByTenantId(String tenantId) { - return busiChatMainMapper.selectByTenantId(tenantId); - } - @Override public List selectByServiceId(Long serviceId) { // 先查缓存 @@ -111,9 +107,13 @@ public class BusiChatMainServiceImpl extends ServiceImpl0){ + // 存入缓存,设置较短过期时间,避免缓存与数据库不一致 + redisCache.setCacheList(cacheKey, sessions); + redisCache.expire(cacheKey, 5, TimeUnit.MINUTES); + }else{ + sessions = new ArrayList<>(); + } } for (BusiChatMain session : sessions) { session.setUnreadCount(busiChatItemService.selectUnreadCount(session.getId(),DATA_FROM_CUSTOMER)); @@ -124,7 +124,7 @@ public class BusiChatMainServiceImpl extends ServiceImpl 0; diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/constant/StrConstants.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/constant/StrConstants.java index 8b29541..2fa5edf 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/constant/StrConstants.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/constant/StrConstants.java @@ -36,8 +36,4 @@ public class StrConstants { * 国家 */ public static final String COUNTRY = "country"; - /** - * app下载目录 - */ - public static final String UPLOAD_DIR = "/app/apk/truck.apk"; } diff --git a/dl_admin/ruoyi-admin/src/main/resources/application-druid.yml b/dl_admin/ruoyi-admin/src/main/resources/application-druid.yml index 4e6a73d..d0d4dc8 100644 --- a/dl_admin/ruoyi-admin/src/main/resources/application-druid.yml +++ b/dl_admin/ruoyi-admin/src/main/resources/application-druid.yml @@ -5,15 +5,15 @@ spring: driverClassName: com.mysql.cj.jdbc.Driver druid: # 主库数据源-点亮开发库 - master: - url: jdbc:mysql://82.156.161.160:3306/dl_site_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - username: site - password: 123456 - #主库数据源-客户测试服务器 # master: -# url: jdbc:mysql://114.132.197.85:3306/dl_site_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +# url: jdbc:mysql://82.156.161.160:3306/dl_site_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # username: site # password: 123456 + #主库数据源-客户测试服务器 + master: + url: jdbc:mysql://127.0.0.1:3306/dl_site_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: site + password: 123456 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/dl_admin/ruoyi-admin/src/main/resources/application.yml b/dl_admin/ruoyi-admin/src/main/resources/application.yml index 6e973db..348b02e 100644 --- a/dl_admin/ruoyi-admin/src/main/resources/application.yml +++ b/dl_admin/ruoyi-admin/src/main/resources/application.yml @@ -161,4 +161,6 @@ google: json-path: /www/wwwroot/nuxt/chengda.json #月搜索量下限 search-down: 500 + #App下载路径 + app-download: /www/wwwroot/nuxt/truck.apk diff --git a/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiChatItemMapper.xml b/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiChatItemMapper.xml index b8a1a4f..4dc5b66 100644 --- a/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiChatItemMapper.xml +++ b/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiChatItemMapper.xml @@ -18,7 +18,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, main_id, data_from, sender_id,receiver_id,content,is_read, create_time from dl_busi_chat_item - + + + update dl_busi_chat_item + set is_read = 1 + where main_id = #{sessionId} + and receiver_id = #{receiverId} + \ No newline at end of file diff --git a/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiChatMainMapper.xml b/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiChatMainMapper.xml index 3d9e2b4..e6ae135 100644 --- a/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiChatMainMapper.xml +++ b/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiChatMainMapper.xml @@ -148,8 +148,7 @@ FROM dl_busi_chat_main WHERE - ip = #{userIp} - AND cus_code = #{deviceCode} + cus_code = #{deviceCode} AND `status` = 1 AND del_flag = '0' AND tenant_id = #{tenantId} diff --git a/dl_admin/ruoyi-common/src/main/java/com/ruoyi/common/config/GoogleConfig.java b/dl_admin/ruoyi-common/src/main/java/com/ruoyi/common/config/GoogleConfig.java index 4d4bed6..1e414a2 100644 --- a/dl_admin/ruoyi-common/src/main/java/com/ruoyi/common/config/GoogleConfig.java +++ b/dl_admin/ruoyi-common/src/main/java/com/ruoyi/common/config/GoogleConfig.java @@ -16,6 +16,8 @@ public class GoogleConfig { private String developerToken; private String jsonPath; private Long searchDown; + /** app下载路径 */ + private String appDownload; } diff --git a/dl_vue/src/api/busi/chatMain.js b/dl_vue/src/api/busi/chatMain.js index 6b289ad..169b24f 100644 --- a/dl_vue/src/api/busi/chatMain.js +++ b/dl_vue/src/api/busi/chatMain.js @@ -74,3 +74,17 @@ export function sendMessage(data) { data: data }) } + +export function markAsRead(id, query) { + return request({ + url: '/chat/read/'+id, + method: 'put', + params: query + }) +} +export function closeSession(id) { + return request({ + url: '/chat/close/'+id, + method: 'put', + }) +} diff --git a/dl_vue/src/layout/index.vue b/dl_vue/src/layout/index.vue index b5dfe60..f72c3af 100644 --- a/dl_vue/src/layout/index.vue +++ b/dl_vue/src/layout/index.vue @@ -33,9 +33,9 @@ - + - + @@ -105,6 +105,22 @@ export default { this.getSiteList() }, methods: { + //结束当前会话 + closeCurrentSession(){ + this.$refs.messageList.closeCurrentSession() + }, + //关闭聊天记录弹窗 + closeForm(){ + this.$refs.messageList.closeForm() + }, + //关闭聊天记录弹窗 + closeFormMes(){ + this.$refs.chatFrom.open=false + }, + //更新会话已读 + updateSessionRead(sessionId){ + this.$refs.messageList.updateSessionRead(sessionId) + }, //切换会话 switchSession(session){ this.$refs.chatFrom.show(session) diff --git a/dl_vue/src/views/busi/chatMain/chatForm.vue b/dl_vue/src/views/busi/chatMain/chatForm.vue index d93e916..22306e4 100644 --- a/dl_vue/src/views/busi/chatMain/chatForm.vue +++ b/dl_vue/src/views/busi/chatMain/chatForm.vue @@ -32,12 +32,13 @@ @keyup.enter.native="sendToServer" > + 结束会话