package org.springblade.modules.chatrecords.controller;
|
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.modules.chatrecords.entity.ChatRecords;
|
import org.springblade.modules.chatrecords.service.ChatRecordsService;
|
import org.springblade.modules.system.entity.User;
|
import org.springblade.modules.system.feign.IUserClient;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import javax.validation.Valid;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author zhongrj
|
* @time 2021-06-18
|
* 聊天消息控制层
|
*/
|
@AllArgsConstructor
|
@RestController
|
@RequestMapping("/chat-records")
|
public class ChatRecordsController {
|
|
private final IUserClient iUserClient;
|
|
private final ChatRecordsService chatRecordsService;
|
|
/**
|
* 查询单聊消息记录
|
* @param chatRecords 消息记录对象
|
* @param response 响应
|
* @param query 查询条件,分页
|
* @return
|
*/
|
@GetMapping("/getSingleMessagePage")
|
public R getSingleMessagePage(@Valid ChatRecords chatRecords, HttpServletResponse response, Query query){
|
//跨域设置
|
crossDomain(response);
|
Map<String, Object> map = new HashMap<>(2);
|
//查询单聊人的信息
|
List<User> user = Arrays.asList(iUserClient.userInfoById(chatRecords.getSenderId()).getData(), iUserClient.userInfoById(chatRecords.getRecipientId()).getData());
|
//查询单聊记录信息
|
if (null==query.getCurrent()){
|
map.put("chatRecordsIPage",chatRecordsService.selectChatlist(chatRecords));
|
}else {
|
map.put("chatRecordsIPage",chatRecordsService.selectChatRecordsPage(Condition.getPage(query), chatRecords));
|
}
|
//封装数据
|
map.put("user",user);
|
//返回数据
|
return R.data(map);
|
}
|
|
|
/**
|
* 查询当前用户的聊天列表
|
* @param chatRecords 消息记录对象
|
* @param response 响应
|
* @param query 查询条件,分页
|
* @return
|
*/
|
@GetMapping("/getChatListPage")
|
public R getChatListPage(@Valid ChatRecords chatRecords, HttpServletResponse response, Query query){
|
//跨域设置
|
crossDomain(response);
|
if(null==query.getCurrent()){
|
//不分页
|
return R.data(chatRecordsService.getChatList( chatRecords));
|
}
|
//查询当前人员的聊天列表,并返回数据
|
return R.data(chatRecordsService.getChatListPage(Condition.getPage(query), chatRecords));
|
}
|
|
|
/**
|
* 单聊消息插入
|
* @param chatRecords 消息记录对象
|
* @param response 响应
|
* @return
|
*/
|
@PostMapping("/insertSingleChat")
|
public R insertSingleChat(@Valid @RequestBody ChatRecords chatRecords, HttpServletResponse response){
|
//跨域设置
|
crossDomain(response);
|
//单聊消息插入
|
return R.data(chatRecordsService.save(chatRecords));
|
}
|
|
/**
|
* 配置跨域设置
|
* @param response
|
*/
|
private void crossDomain(HttpServletResponse response) {
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
|
response.setHeader("Access-Control-Allow-Credentials","true");
|
}
|
}
|