This commit is contained in:
PQZ 2025-07-17 16:43:56 +08:00
parent e267a2121a
commit e439b060eb
5 changed files with 81 additions and 3 deletions

View File

@ -11,9 +11,11 @@ import com.ruoyi.base.service.IBaseNationalService;
import com.ruoyi.base.service.IBasePicService;
import com.ruoyi.base.service.IBaseSiteInfoService;
import com.ruoyi.busi.domain.BusiCategory;
import com.ruoyi.busi.domain.BusiChatMain;
import com.ruoyi.busi.domain.BusiInquiryItem;
import com.ruoyi.busi.domain.BusiProdNew;
import com.ruoyi.busi.service.IBusiCategoryService;
import com.ruoyi.busi.service.IBusiChatMainService;
import com.ruoyi.busi.service.IBusiInquiryItemService;
import com.ruoyi.busi.service.IBusiProdNewService;
import com.ruoyi.busi.utils.CommonUtils;
@ -68,6 +70,8 @@ public class WebController extends BaseController {
private IBaseNationalService nationalService;
@Autowired
private IBusiInquiryItemService inquiryItemService;
@Autowired
private IBusiChatMainService busiChatMainService;
/**
* 导航栏接口--所有分类
@ -318,6 +322,46 @@ public class WebController extends BaseController {
return R.ok(baseInquiryService.getInquiry(tenantId));
}
/**
* 保存在线聊天内容
* @author PQZ
* @date 15:24 2025/7/17
* @param busiChatMain {@link BusiChatMain}
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@Log(title = "在线聊天", businessType = BusinessType.INSERT)
@PostMapping("/chatMain")
public AjaxResult saveChatMain(@RequestBody BusiChatMain busiChatMain, HttpServletRequest request) {
String ip = "";
String nationalStr = "";
try {
ip = CommonUtils.getIpAddr(request);
nationalStr = CommonUtils.getAddr(ip);
}catch (Exception e){
logger.error("识别所属国家失败");
}
ip = StringUtils.isNotEmpty(ip)?ip:"未知";
BusiChatMain result = busiChatMainService.queryByIpAndCusCode(ip,busiChatMain.getCusCode());
if (result != null){
return success(result);
} else {
nationalStr = StringUtils.isNotEmpty(nationalStr)?nationalStr:"未知";
String national = nationalStr.split("\\|")[0];
System.out.println(ip+"-----"+nationalStr);
String oceania = "未知";
Map<String,String> nationalMap = nationalService.getNationalMap();
if(nationalMap.containsKey(national)){
oceania = nationalMap.get(national);
}
busiChatMain.setIp(ip);
busiChatMain.setNational(nationalStr);
busiChatMain.setOceania(oceania);
busiChatMain.setNums(0);
busiChatMainService.save(busiChatMain);
return success(busiChatMain);
}
}
/**
* 提交在线询盘表单
* @author vinjor-M

View File

@ -62,4 +62,7 @@ public class BusiChatMain extends DlBaseEntity
@Excel(name = "站点唯一编码", readConverterExp = "租=户id")
private String tenantId;
/** 聊天记录 */
private String itemJson;
}

View File

@ -1,6 +1,7 @@
package com.ruoyi.busi.service;
import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
@ -9,11 +10,21 @@ import com.ruoyi.busi.vo.ChatMainVO;
/**
* 在线聊天Service接口
*
*
* @author vinjor-m
* @date 2025-07-03
*/
public interface IBusiChatMainService extends IService<BusiChatMain>
{
public interface IBusiChatMainService extends IService<BusiChatMain> {
IPage<ChatMainVO> queryListPage(ChatMainVO pageReqVO, Page<BusiChatMain> page);
/**
* 校验是否需要新增
*
* @param ip ip
* @param cusCode 浏览器唯一编码
* @return void
* @author PQZ
* @date 15:31 2025/7/17
**/
BusiChatMain queryByIpAndCusCode(String ip, String cusCode);
}

View File

@ -2,6 +2,7 @@ package com.ruoyi.busi.service.impl;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.busi.vo.ChatMainVO;
import com.ruoyi.common.utils.DateUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -29,4 +30,22 @@ public class BusiChatMainServiceImpl extends ServiceImpl<BusiChatMainMapper,Busi
public IPage<ChatMainVO> queryListPage(ChatMainVO pageReqVO, Page<BusiChatMain> page) {
return busiChatMainMapper.queryListPage(pageReqVO, page);
}
/**
* 校验是否需要新增
*
* @param ip ip
* @param cusCode 浏览器唯一编码
* @return void
* @author PQZ
* @date 15:31 2025/7/17
**/
@Override
public BusiChatMain queryByIpAndCusCode(String ip, String cusCode) {
LambdaQueryWrapper<BusiChatMain> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(BusiChatMain::getCusCode,cusCode)
.eq(BusiChatMain::getIp,ip);
BusiChatMain chatMain = getOne(lambdaQueryWrapper);
return chatMain;
}
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.webSocket;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;