Browse Source

修改查询消息报错

master
ccsens_zhengzhichuan 1 week ago
parent
commit
360e31bac2
  1. 36
      research-admin/src/main/java/com/research/web/controller/client/ExportController.java
  2. 7
      research-admin/src/main/java/com/research/web/controller/system/SysLoginController.java
  3. 2
      research-admin/src/main/resources/application-dev.yml
  4. 2
      research-admin/src/main/resources/application-prod.yml
  5. 14
      research-framework/src/main/java/com/research/framework/web/service/SysLoginService.java
  6. 6
      research-system/pom.xml
  7. 4
      research-system/src/main/java/com/research/system/domain/dto/SessionDto.java
  8. 3
      research-system/src/main/java/com/research/system/domain/vo/SessionVo.java
  9. 2
      research-system/src/main/java/com/research/system/persist/dao/SessionDao.java
  10. 13
      research-system/src/main/java/com/research/system/service/ExportService.java
  11. 5
      research-system/src/main/java/com/research/system/service/SessionService.java
  12. 204
      research-system/src/main/java/com/research/system/service/impl/ExportServiceImpl.java
  13. 79
      research-system/src/main/java/com/research/system/service/impl/SessionServiceImpl.java
  14. 39
      research-system/src/main/resources/mapper/dao/SessionDao.xml

36
research-admin/src/main/java/com/research/web/controller/client/ExportController.java

@ -0,0 +1,36 @@
package com.research.web.controller.client;
import com.research.system.service.ExportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
/**
* @Author zzc
* @Package com.research.web.controller.client
* @Date 2025/11/28 14:57
* @description:
*/
@RestController
@RequestMapping("/export")
@Api(tags = "任务相关")
@Slf4j
public class ExportController {
@Resource
private ExportService exportService;
@ApiOperation(value = "导出项目运行报告")
@RequestMapping(value = "/all", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public void export(HttpServletResponse response){
exportService.export( response);
}
}

7
research-admin/src/main/java/com/research/web/controller/system/SysLoginController.java

@ -2,6 +2,9 @@ package com.research.web.controller.system;
import java.util.List;
import java.util.Set;
import com.research.system.service.SessionService;
import liquibase.pro.packaged.E;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -19,6 +22,8 @@ import com.research.framework.web.service.SysPermissionService;
import com.research.framework.web.service.TokenService;
import com.research.system.service.ISysMenuService;
import javax.annotation.Resource;
/**
* 登录验证
*
@ -38,6 +43,8 @@ public class SysLoginController
@Autowired
private TokenService tokenService;
@Resource
private SessionService sessionService;
/**
* 登录方法

2
research-admin/src/main/resources/application-dev.yml

@ -62,3 +62,5 @@ spring:
server:
# 服务器的HTTP端口,默认为8080
port: 8080
research:
reportTemplate: C:\Users\zzc16\Desktop\report_template.docx

2
research-admin/src/main/resources/application-prod.yml

@ -62,3 +62,5 @@ spring:
server:
# 服务器的HTTP端口,默认为8080
port: 38081
research:
reportTemplate: D:\Projects\research\server\profile\reportTemplate.docx

14
research-framework/src/main/java/com/research/framework/web/service/SysLoginService.java

@ -1,6 +1,9 @@
package com.research.framework.web.service;
import javax.annotation.Resource;
import com.research.common.utils.SecurityUtils;
import com.research.system.service.SessionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
@ -51,7 +54,8 @@ public class SysLoginService
@Autowired
private ISysConfigService configService;
@Resource
private SessionService sessionService;
/**
* 登录验证
*
@ -96,6 +100,14 @@ public class SysLoginService
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
recordLoginInfo(loginUser.getUserId());
//
try {
sessionService.queryNoSessionUser(loginUser.getUserId());
}catch (Exception e) {
e.printStackTrace();
}
// 生成token
return tokenService.createToken(loginUser);
}

6
research-system/pom.xml

@ -16,7 +16,11 @@
</description>
<dependencies>
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.10.5</version>
</dependency>
<!-- 通用工具-->
<dependency>
<groupId>com.research</groupId>

4
research-system/src/main/java/com/research/system/domain/dto/SessionDto.java

@ -27,6 +27,7 @@ public class SessionDto {
@NotNull(message = "会话id不能为空")
@ApiModelProperty("会话id")
private Long sessionId;
private Long userId = SecurityUtils.getUserId();
}
@Data
@ -52,9 +53,10 @@ public class SessionDto {
@ApiModelProperty("会话名称")
private String sessionName;
@ApiModelProperty("会话类型 0普通会话 1群组会话")
private Byte type;
private Integer type;
@ApiModelProperty("会话成员")
private List<Long> memberList;
private Long loginUserId;
}
@Data

3
research-system/src/main/java/com/research/system/domain/vo/SessionVo.java

@ -26,11 +26,12 @@ public class SessionVo {
@ApiModelProperty("会话头像")
private String sessionAvatar;
@ApiModelProperty("会话类型")
private Byte sessionType;
private Integer sessionType;
@ApiModelProperty("最后一条消息")
private String lastMessage;
@ApiModelProperty("最后消息时间")
private Date lastMessageTime;
private Byte contentType;
private String orgName;
private Long senderId;

2
research-system/src/main/java/com/research/system/persist/dao/SessionDao.java

@ -22,4 +22,6 @@ public interface SessionDao {
List<SessionVo.MessageLogResult.MemberInfo> queryMemberList(SessionDto.SessionId dto);
List<SessionVo.UnRead.UnReadItem> queryUnReadList(Long userId);
List<Long> queryMineSessionList(Long userId);
}

13
research-system/src/main/java/com/research/system/service/ExportService.java

@ -0,0 +1,13 @@
package com.research.system.service;
import javax.servlet.http.HttpServletResponse;
/**
* @Author zzc
* @Package com.research.system.service
* @Date 2025/11/28 12:37
* @description:
*/
public interface ExportService {
void export(HttpServletResponse response);
}

5
research-system/src/main/java/com/research/system/service/SessionService.java

@ -4,6 +4,7 @@ import com.research.common.core.domain.BaseDto;
import com.research.system.domain.dto.SessionDto;
import com.research.system.domain.vo.SessionVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -14,6 +15,9 @@ import java.util.List;
*/
public interface SessionService {
//根据当前登录人,获取没有会话的人
List queryNoSessionUser(Long userId);
List<SessionVo.TxlResult> queryTxl(SessionDto.Query dto);
SessionVo.MessageLogResult queryLog(BaseDto<SessionDto.SessionId> dto);
@ -31,4 +35,5 @@ public interface SessionService {
Integer addSessionMember(SessionDto.AddSessionMember dto);
Integer delSessionMember(SessionDto.AddSessionMember dto);
}

204
research-system/src/main/java/com/research/system/service/impl/ExportServiceImpl.java

@ -0,0 +1,204 @@
package com.research.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.*;
import com.research.common.utils.DateUtils;
import com.research.common.utils.file.FileUtils;
import com.research.system.domain.dto.ClientPrjProOrgDto;
import com.research.system.domain.dto.GroupDto;
import com.research.system.domain.dto.OutcomeDto;
import com.research.system.domain.vo.ClientPrjProjInfoVo;
import com.research.system.domain.vo.GroupVO;
import com.research.system.domain.vo.OutcomeVo;
import com.research.system.service.CooperatorService;
import com.research.system.service.ExportService;
import com.research.system.service.KtsGroupService;
import com.research.system.service.OutcomeService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author zzc
* @Package com.research.system.service.impl
* @Date 2025/11/28 12:37
* @description:
*/
@Service
public class ExportServiceImpl implements ExportService {
@Resource
private CooperatorService cooperatorService;
@Value(value = "${research.reportTemplate}")
private String reportTemplate;
@Resource
private KtsGroupService ktsGroupService;
@Resource
private OutcomeService outcomeService;
@Override
public void export(HttpServletResponse response) {
XWPFTemplate template = XWPFTemplate.compile(reportTemplate);
HashMap<String, Object> map = new HashMap<>();
List<ClientPrjProjInfoVo.OrgVo> query = cooperatorService.query(new ClientPrjProOrgDto.Query());
//合作单位
if (CollUtil.isNotEmpty(query)) {
TextRenderData text1 = Texts.of("单位名称").bold().fontSize(12).create();
TextRenderData text2 = Texts.of("单位类型").bold().fontSize(12).create();
TextRenderData text3 = Texts.of("负责人").bold().fontSize(12).create();
RowRenderData headerRow = Rows.of(text1, text2, text3).center().create();
Tables.TableBuilder of = Tables.of(headerRow);
for (ClientPrjProjInfoVo.OrgVo orgVo : query) {
RowRenderData rowRenderData = Rows.of(
orgVo.getOrgName(),
orgVo.getCategory() == null ? null : orgVo.getCategory() == 0 ? "申报单位" : "合作单位",
orgVo.getOrgLeader()
).center().create();
of.addRow(rowRenderData).center();
}
TableRenderData tableData = of
.create();
map.put("table0", tableData);
}
//项目课题
List<GroupVO.Result> groupList = ktsGroupService.queryGroupList(new GroupDto.Query());
if (CollUtil.isNotEmpty(groupList)) {
TextRenderData text1 = Texts.of("单位名称").bold().fontSize(12).create();
TextRenderData text2 = Texts.of("课题").bold().fontSize(12).create();
TextRenderData text3 = Texts.of("负责人").bold().fontSize(12).create();
RowRenderData headerRow = Rows.of(text1, text2, text3).center().create();
Tables.TableBuilder of = Tables.of(headerRow);
for (GroupVO.Result result : groupList) {
RowRenderData rowRenderData = Rows.of(
result.getProjOrgName(),
result.getKtGroupName(),
result.getName()
).center().create();
of.addRow(rowRenderData).center();
}
TableRenderData tableData = of
.create();
map.put("table1", tableData);
}
//项目成果
List<OutcomeVo.Result> outcomeList = outcomeService.queryList(new OutcomeDto.Query());
if (CollUtil.isNotEmpty(outcomeList)) {
//学术论文
Map<Long, List<OutcomeVo.Result>> outcomeMap = outcomeList.stream().collect(Collectors.groupingBy(OutcomeVo.Result::getCategoryId1));
List<OutcomeVo.Result> results = outcomeMap.get(1L);
if (CollUtil.isNotEmpty(results)) {
TextRenderData text1 = Texts.of("单位名称").bold().fontSize(12).create();
TextRenderData text2 = Texts.of("标题").bold().fontSize(12).create();
TextRenderData text3 = Texts.of("作者").bold().fontSize(12).create();
TextRenderData text4 = Texts.of("类型").bold().fontSize(12).create();
TextRenderData text5 = Texts.of("刊物").bold().fontSize(12).create();
TextRenderData text6 = Texts.of("收录类别").bold().fontSize(12).create();
RowRenderData headerRow = Rows.of(text1, text2, text3, text4, text5, text6).center().create();
Tables.TableBuilder of = Tables.of(headerRow);
for (OutcomeVo.Result result : results) {
RowRenderData rowRenderData = Rows.of(
result.getProjOrgName(),
result.getTitle(),
result.getAuthors(),
result.getAchType() == null ? null : result.getAchType() == 0 ? "期刊论文" : result.getAchType() == 1 ? "会议论文" : result.getAchType() == 2 ? "报刊文章" : result.getAchType() == 3 ? "报纸文章" : "学位论文",
result.getSource(),
result.getCategoryId2() == null ? null : result.getCategoryId2() == 2 ? "SCI" : result.getCategoryId2() == 3 ? "中文期刊" : "其他"
).center().create();
of.addRow(rowRenderData).center();
}
TableRenderData tableData = of
.create();
map.put("table2", tableData);
}
List<OutcomeVo.Result> results1 = outcomeMap.get(11L);
if (CollUtil.isNotEmpty(results1)) {
TextRenderData text1 = Texts.of("单位名称").bold().fontSize(12).create();
TextRenderData text2 = Texts.of("专利名称").bold().fontSize(12).create();
TextRenderData text3 = Texts.of("专利号").bold().fontSize(12).create();
TextRenderData text4 = Texts.of("专利类型").bold().fontSize(12).create();
TextRenderData text5 = Texts.of("专利权人").bold().fontSize(12).create();
TextRenderData text6 = Texts.of("专利内容").bold().fontSize(12).create();
RowRenderData headerRow = Rows.of(text1, text2, text3, text4, text5, text6).center().create();
Tables.TableBuilder of = Tables.of(headerRow);
for (OutcomeVo.Result result : results1) {
RowRenderData rowRenderData = Rows.of(
result.getProjOrgName(),
result.getTitle(),
result.getNo(),
result.getAchType() == null ? null : result.getAchType() == 0 ? "发明专利" : result.getAchType() == 1 ? "实用新型专利" : "外观设计专利",
result.getAuthors(),
result.getRemark()
).center().create();
of.addRow(rowRenderData).center();
}
TableRenderData tableData = of
.create();
map.put("table3", tableData);
}
List<OutcomeVo.Result> results2 = outcomeMap.get(71L);
if (CollUtil.isNotEmpty(results2)) {
TextRenderData text1 = Texts.of("标题").bold().fontSize(12).create();
TextRenderData text2 = Texts.of("时间").bold().fontSize(12).create();
TextRenderData text3 = Texts.of("地点").bold().fontSize(12).create();
TextRenderData text4 = Texts.of("参与人").bold().fontSize(12).create();
TextRenderData text5 = Texts.of("类型").bold().fontSize(12).create();
TextRenderData text6 = Texts.of("内容").bold().fontSize(12).create();
RowRenderData headerRow = Rows.of(text1, text2, text3, text4, text5, text6).center().create();
Tables.TableBuilder of = Tables.of(headerRow);
for (OutcomeVo.Result result : results2) {
RowRenderData rowRenderData = Rows.of(
result.getTitle(),
DateUtil.format(result.getPublishDate(), "yyyy-MM-dd"),
result.getPlace(),
result.getAuthors(),
result.getAchType() == null ? null : result.getAchType() == 0 ? "学术讲座" : result.getAchType() == 1 ? "学术会议" : "外出进修",
result.getRemark()
).center().create();
of.addRow(rowRenderData).center();
}
TableRenderData tableData = of
.create();
map.put("table4", tableData);
}
}
try {
String fileName = "项目运行报告.docx";
String path = "C:/Users/zzc16/Desktop/项目运行报告.docx";
// String path = "D:/Projects/research/server/profile/项目运行报告.docx";
template.render(map);
//以文件形式输出
template.writeAndClose(Files.newOutputStream(Paths.get(path)));
//3.写出到客户端
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
FileUtils.setAttachmentResponseHeader(response, fileName);
FileUtils.writeBytes(path, response.getOutputStream());
} catch (Exception e) {
e.printStackTrace(); // 输出详细的异常信息
}
}
}

79
research-system/src/main/java/com/research/system/service/impl/SessionServiceImpl.java

@ -11,15 +11,14 @@ import com.research.system.domain.dto.SessionDto;
import com.research.system.domain.po.*;
import com.research.system.domain.vo.SessionVo;
import com.research.system.persist.dao.SessionDao;
import com.research.system.persist.mapper.ChatMessageReadStatusMapper;
import com.research.system.persist.mapper.ChatSessionMembersMapper;
import com.research.system.persist.mapper.ChatSessionMessagesMapper;
import com.research.system.persist.mapper.ChatSessionsMapper;
import com.research.system.persist.mapper.*;
import com.research.system.service.ISysUserService;
import com.research.system.service.SessionService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
@ -46,6 +45,41 @@ public class SessionServiceImpl implements SessionService {
private ISysUserService sysUserService;
@Resource
private ChatMessageReadStatusMapper chatMessageReadStatusMapper;
@Resource
private ChatContactListMapper chatContactListMapper;
@Override
public List queryNoSessionUser(Long userId) {
List<ChatContactList> chatContactLists = chatContactListMapper.selectByExample(new ChatContactListExample());
//查询有会话的人员
List<Long> collect = new ArrayList<>();
List<Long> list = sessionDao.queryMineSessionList(userId);
if (CollUtil.isNotEmpty(list)) {
ChatSessionMembersExample chatSessionMembersExample = new ChatSessionMembersExample();
chatSessionMembersExample.createCriteria().andSessionIdIn(list);
List<ChatSessionMembers> chatSessionMembers = chatSessionMembersMapper.selectByExample(chatSessionMembersExample);
if (CollUtil.isNotEmpty(chatSessionMembers)) {
collect = chatSessionMembers.stream().map(ChatSessionMembers::getSessionMemberId).distinct().collect(Collectors.toList());
}
}
if (CollUtil.isNotEmpty(chatContactLists)) {
for (ChatContactList chatContactList : chatContactLists) {
if (collect.contains(chatContactList.getUserId())) {
continue;
}
//添加会话
SessionDto.CreateSession createSession = new SessionDto.CreateSession();
createSession.setSessionName(chatContactList.getNickName());
createSession.setType(0);
createSession.setMemberList(CollUtil.newArrayList(chatContactList.getUserId(), userId));
createSession.setLoginUserId(userId);
addSession(createSession);
}
}
return null;
}
@Override
public List<SessionVo.TxlResult> queryTxl(SessionDto.Query dto) {
@ -53,16 +87,29 @@ public class SessionServiceImpl implements SessionService {
if (CollUtil.isNotEmpty(txlResults)) {
for (SessionVo.TxlResult txlResult : txlResults) {
if (txlResult.getSessionId() != null && txlResult.getSessionId() > 0) {
//如果是个人聊天,需要修改会话名称,查询合作单位名称
if (txlResult.getSessionType() == 0) {
if ( txlResult.getSenderId() != null && !Objects.equals(SecurityUtils.getUserId(), txlResult.getSenderId())) {
txlResult.setSessionName(sysUserService.selectUserById(txlResult.getSenderId()).getUserName());
ChatContactListExample chatContactListExample = new ChatContactListExample();
chatContactListExample.createCriteria().andUserIdEqualTo(txlResult.getSenderId());
List<ChatContactList> chatContactLists = chatContactListMapper.selectByExample(chatContactListExample);
if (CollUtil.isNotEmpty(chatContactLists)) {
txlResult.setOrgName(chatContactLists.get(0).getOrgName());
}
}
}
continue;
}
//查询会话接收人
SessionDto.CreateSession createSession = new SessionDto.CreateSession();
createSession.setSessionName(txlResult.getSessionName());
createSession.setType(txlResult.getSessionType());
createSession.setMemberList(CollUtil.newArrayList(txlResult.getSenderId()));
createSession.setMemberList(CollUtil.newArrayList(txlResult.getSenderId(), SecurityUtils.getUserId()));
Long addSession = addSession(createSession);
txlResult.setSessionId(addSession);
}
}
return txlResults;
}
@ -70,7 +117,7 @@ public class SessionServiceImpl implements SessionService {
@Override
public SessionVo.MessageLogResult queryLog(BaseDto<SessionDto.SessionId> dto) {
SessionVo.MessageLogResult messageLogResult = new SessionVo.MessageLogResult();
messageLogResult.setSessionInfo(sessionDao.querySessionInfo(dto.getParam()));
if (dto.getPageNum() > 0) {
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
}
@ -89,6 +136,13 @@ public class SessionServiceImpl implements SessionService {
messageLogResult.setLogList(new PageInfo<>(collect));
}
messageLogResult.setMemberList(sessionDao.queryMemberList(dto.getParam()));
SessionVo.MessageLogResult.SessionInfo sessionInfo = sessionDao.querySessionInfo(dto.getParam());
if (sessionInfo != null && "0".equals(sessionInfo.getSessionType())) {
if (CollUtil.isNotEmpty(messageLogResult.getMemberList())) {
sessionInfo.setSessionName(messageLogResult.getMemberList().get(0).getNickName());
}
messageLogResult.setSessionInfo(sessionInfo);
}
return messageLogResult;
}
@ -133,8 +187,8 @@ public class SessionServiceImpl implements SessionService {
public Long addSession(SessionDto.CreateSession dto) {
ChatSessions chatSessions = new ChatSessions();
chatSessions.setSessionName(dto.getSessionName());
chatSessions.setSessionType(dto.getType());
chatSessions.setCreatedBy(SecurityUtils.getUserId());
chatSessions.setSessionType(dto.getType().byteValue());
chatSessions.setCreatedBy(dto.getLoginUserId());
chatSessions.setCreatedAt(new java.util.Date());
if (dto.getType() == 0) {
SysUser sysUser = sysUserService.selectUserById(dto.getMemberList().get(0));
@ -142,7 +196,7 @@ public class SessionServiceImpl implements SessionService {
chatSessions.setAvatarUrl(sysUser.getAvatar());
}
}
chatSessions.setCreateBy(SecurityUtils.getUserId() + "");
chatSessions.setCreateBy("system");
chatSessions.setId(IdUtil.getSnowflakeNextId());
chatSessionsMapper.insertSelective(chatSessions);
@ -157,10 +211,10 @@ public class SessionServiceImpl implements SessionService {
chatSessionMembers.setId(IdUtil.getSnowflakeNextId());
chatSessionMembers.setSessionId(chatSessions.getId());
chatSessionMembers.setSessionMemberId(aLong);
chatSessionMembers.setIsCreator(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 : (byte) 0);
chatSessionMembers.setIsAdmin(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 : (byte) 0);
chatSessionMembers.setIsCreator(Objects.equals(aLong, dto.getLoginUserId()) ? (byte) 1 : (byte) 0);
chatSessionMembers.setIsAdmin(Objects.equals(aLong, dto.getLoginUserId()) ? (byte) 1 : (byte) 0);
chatSessionMembers.setSessionAlias("");
chatSessionMembers.setCreateBy(SecurityUtils.getUsername());
chatSessionMembers.setCreateBy("system");
chatSessionMembers.setCreateTime(new java.util.Date());
chatSessionMembersMapper.insertSelective(chatSessionMembers);
}
@ -244,4 +298,5 @@ public class SessionServiceImpl implements SessionService {
chatSessionMembers.setDelFlag((byte) 1);
return chatSessionMembersMapper.updateByExampleSelective(chatSessionMembers, chatSessionMembersExample);
}
}

39
research-system/src/main/resources/mapper/dao/SessionDao.xml

@ -20,8 +20,8 @@ select * from
null as orgName
FROM
chat_sessions s
LEFT JOIN chat_session_messages m on s.id = m.session_id
LEFT JOIN chat_session_members csm on s.id = csm.session_id
left JOIN chat_session_messages m on s.id = m.session_id
left JOIN chat_session_members csm on s.id = csm.session_id
where csm.session_member_id = #{userId}
<if test="nickname != null and nickname != ''">
and s.session_name like concat('%',#{nickname},'%')
@ -38,25 +38,24 @@ select * from
'',
null,
l.user_id as senderId,
null,
L.org_name AS orgName
null,
L.org_name AS orgName
FROM
chat_contact_list l
LEFT JOIN chat_session_members sm on sm.session_member_id = l.user_id and sm.is_creator = 1
LEFT JOIN chat_session_members sm on sm.session_member_id = l.user_id
LEFT JOIN chat_sessions cs on sm.session_id = cs.id and session_type = 0
<where>
l.user_id != #{userId}
l.user_id != #{userId} and cs.id is null
<if test="nickname != null and nickname != ''">
and l.nick_name like concat('%',#{nickname},'%')
</if>
</where>
group by l.user_id
)a
order by lastMessageTime desc, createTime desc
</select>
<select id="querySessionInfo" resultType="com.research.system.domain.vo.SessionVo$MessageLogResult$SessionInfo">
SELECT
s.id AS sessionId,
s.session_name as sessionName,
@ -82,22 +81,23 @@ select * from
left join chat_message_read_status s on m.session_id = s.session_id and m.id = s.session_message_id and s.del_status = 0
left join chat_contact_list cl on cl.user_id = m.sender_id
WHERE m.session_id = #{sessionId}
group by m.id
ORDER BY m.create_time DESC
</select>
<select id="queryMemberList" resultType="com.research.system.domain.vo.SessionVo$MessageLogResult$MemberInfo">
SELECT
c.user_name,
c.avatar,
c.nick_name,
c.user_name as userName,
c.avatar as avatar,
c.nick_name as nickName,
c.phonenumber,
c.sex,
c.status,
c.org_id,
c.org_name
c.org_id as orgId,
c.org_name as orgName
FROM chat_session_members sm
INNER JOIN chat_contact_list c ON sm.session_member_id = c.user_id
WHERE sm.session_id = #{sessionId}
WHERE sm.session_id = #{sessionId} and sm.session_member_id != #{userId}
</select>
<select id="queryUnReadList" resultType="com.research.system.domain.vo.SessionVo$UnRead$UnReadItem">
@ -114,4 +114,15 @@ select * from
GROUP BY
cs.id
</select>
<select id="queryMineSessionList" resultType="java.lang.Long">
SELECT
c.id
FROM
chat_sessions c
LEFT JOIN chat_session_members m on c.id = m.session_id
where
m.session_member_id = #{userId} and c.session_type = 0
and c.del_flag = 0
</select>
</mapper>

Loading…
Cancel
Save