Compare commits

...

2 Commits

Author SHA1 Message Date
PQZ
19a68b314c Merge branch 'master' of http://124.222.105.7:3000/dianliang/dl_site_system
# Conflicts:
#	dl_admin/ruoyi-admin/src/main/java/com/ruoyi/base/controller/WebController.java
2025-08-04 17:40:38 +08:00
PQZ
f9cdef026f 修改保存消息 2025-08-04 17:36:48 +08:00
6 changed files with 136 additions and 96 deletions

View File

@ -1,5 +1,7 @@
package com.ruoyi.base.controller;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -27,6 +29,7 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.webSocket.Message;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@ -75,9 +78,10 @@ public class WebController extends BaseController {
/**
* 导航栏接口--所有分类
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("获取站点分类树--所有分类")
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -91,9 +95,10 @@ public class WebController extends BaseController {
/**
* 获取站点产品分类树--产品分类
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("获取站点分类树--根据一级分类ID查询所有子级分类树")
@ApiImplicitParams(value = {
@ -115,11 +120,10 @@ public class WebController extends BaseController {
}
/**
*
* @author vinjor-M
* @date 15:44 2025/7/8
* @param id 查询单个分类栏目详情--单页面栏目和询盘栏目使用
* @return com.ruoyi.common.core.domain.R<com.ruoyi.busi.domain.BusiCategory>
* @author vinjor-M
* @date 15:44 2025/7/8
**/
@ApiOperation("查询单个分类栏目详情--单页面栏目和询盘栏目使用")
@ApiImplicitParam(name = "id", value = "主键ID", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -130,9 +134,10 @@ public class WebController extends BaseController {
/**
* 轮播图
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("轮播图")
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -143,9 +148,10 @@ public class WebController extends BaseController {
/**
* 公司介绍-富文本-首页展示区域
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("公司介绍-富文本-首页展示区域")
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -157,9 +163,10 @@ public class WebController extends BaseController {
/**
* 热门产品-前10
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("热门产品-前10")
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -170,9 +177,10 @@ public class WebController extends BaseController {
/**
* 普通产品-前10
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("普通产品-前10")
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -183,9 +191,10 @@ public class WebController extends BaseController {
/**
* 热门新闻-前10
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("热门新闻-前10")
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -196,9 +205,10 @@ public class WebController extends BaseController {
/**
* 页面底部
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("页面底部")
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -209,13 +219,14 @@ public class WebController extends BaseController {
/**
* 产品列表分页
* @author vinjor-M
* @date 15:17 2025/7/8
*
* @param tenantId 租户id
* @param catgId 分类ID
* @param pageNum
* @param pageSize
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 15:17 2025/7/8
**/
@ApiOperation("产品列表分页")
@ApiImplicitParams(value = {
@ -254,13 +265,14 @@ public class WebController extends BaseController {
/**
* 新闻列表分页
* @author vinjor-M
* @date 15:17 2025/7/8
*
* @param tenantId 租户id
* @param catgId 分类ID
* @param pageNum
* @param pageSize
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 15:17 2025/7/8
**/
@ApiOperation("新闻列表分页")
@ApiImplicitParams(value = {
@ -299,9 +311,10 @@ public class WebController extends BaseController {
/**
* 产品或新闻详情
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("产品或新闻详情")
@ApiImplicitParam(name = "id", value = "产品或新闻ID", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -312,9 +325,10 @@ public class WebController extends BaseController {
/**
* 全站搜索
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("全站搜索")
@ApiImplicitParams(value = {
@ -333,9 +347,10 @@ public class WebController extends BaseController {
/**
* 查询盘设置-都有哪些字段需要填写是否必填
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("查询盘设置-都有哪些字段需要填写,是否必填")
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@ -349,10 +364,11 @@ public class WebController extends BaseController {
/**
* 保存在线聊天内容
* @author PQZ
* @date 15:24 2025/7/17
*
* @param busiChatMain {@link BusiChatMain}
* @return com.ruoyi.common.core.domain.AjaxResult
* @author PQZ
* @date 15:24 2025/7/17
**/
@PostMapping("/chatMain")
public AjaxResult saveChatMain(@RequestBody BusiChatMain busiChatMain, HttpServletRequest request) {
@ -365,8 +381,12 @@ public class WebController extends BaseController {
logger.error("识别所属国家失败");
}
ip = StringUtils.isNotEmpty(ip) ? ip : "未知";
BusiChatMain result = busiChatMainService.queryByIpAndCusCode(ip,busiChatMain.getCusCode());
BusiChatMain result = busiChatMainService.queryByIpAndCusCode(ip, busiChatMain.getCusCode(), busiChatMain.getProdId());
if (result != null) {
if (StringUtils.isNotEmpty(result.getItemJson())) {
JSONArray array = new JSONArray(result.getItemJson());
result.setJsonArray(array);
}
return success(result);
} else {
nationalStr = StringUtils.isNotEmpty(nationalStr) ? nationalStr : "未知";
@ -386,11 +406,27 @@ public class WebController extends BaseController {
}
}
/**
* 保存用户消息
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author PQZ
* @date 14:12 2025/8/4
**/
@PostMapping("/saveMessage")
public AjaxResult saveMessage(@RequestBody BusiChatMain busiChatMain) {
busiChatMain.setItemJson(busiChatMain.getJsonArray().toString());
busiChatMainService.updateById(busiChatMain);
return success();
}
/**
* 提交在线询盘表单
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@ApiOperation("提交在线询盘表单")
@ApiImplicitParams(value = {

View File

@ -1,12 +1,17 @@
package com.ruoyi.busi.domain;
import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.webSocket.Message;
import lombok.*;
import com.ruoyi.common.core.domain.DlBaseEntity;
import java.util.List;
/**
* 在线聊天对象 dl_busi_chat_main
*
@ -65,4 +70,7 @@ public class BusiChatMain extends DlBaseEntity
/** 聊天记录 */
private String itemJson;
@TableField(exist = false)
JSONArray jsonArray;
}

View File

@ -26,5 +26,5 @@ public interface IBusiChatMainService extends IService<BusiChatMain> {
* @author PQZ
* @date 15:31 2025/7/17
**/
BusiChatMain queryByIpAndCusCode(String ip, String cusCode);
BusiChatMain queryByIpAndCusCode(String ip, String cusCode,String prodId);
}

View File

@ -7,6 +7,7 @@ import com.ruoyi.busi.vo.ChatMainVO;
import com.ruoyi.common.utils.DateUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -41,10 +42,14 @@ public class BusiChatMainServiceImpl extends ServiceImpl<BusiChatMainMapper,Busi
* @date 15:31 2025/7/17
**/
@Override
public BusiChatMain queryByIpAndCusCode(String ip, String cusCode) {
public BusiChatMain queryByIpAndCusCode(String ip, String cusCode,String prodId) {
LambdaQueryWrapper<BusiChatMain> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(BusiChatMain::getCusCode,cusCode)
.eq(BusiChatMain::getIp,ip);
//对应产品
if (StringUtils.isNotEmpty(prodId)) {
lambdaQueryWrapper.eq(BusiChatMain::getProdId,prodId);
}
BusiChatMain chatMain = getOne(lambdaQueryWrapper);
return chatMain;
}

View File

@ -6,12 +6,6 @@ import java.util.Date;
@Data
public class Message {
private Integer id;
// private String username;
// private String userface;
// private String text;
// private Date date;
/**发送方*/
private String dataFrom;
/**聊天内容*/

View File

@ -5,16 +5,13 @@ import java.util.concurrent.atomic.AtomicInteger;
public class MessageUtil {
// private static List<Message> messageList = new CopyOnWriteArrayList<>();
private static AtomicInteger atomicInteger = new AtomicInteger(0);
public Message toMessage(String content){
Message message = new Message();
String[] contents=content.split(",");
String name=contents[0];
String text=contents[1];
int id = atomicInteger.incrementAndGet();
message.setId(id);
message.setDataFrom(name);
message.setContent(text);
message.setCreateTime(new Date());