diff --git a/xinelu-common/src/main/java/com/xinelu/common/core/dto/MessageTemplate.java b/xinelu-common/src/main/java/com/xinelu/common/core/dto/MessageTemplate.java index f5a80de..2d2b08e 100644 --- a/xinelu-common/src/main/java/com/xinelu/common/core/dto/MessageTemplate.java +++ b/xinelu-common/src/main/java/com/xinelu/common/core/dto/MessageTemplate.java @@ -40,6 +40,11 @@ public class MessageTemplate { */ private String msgType; + /** + * 消息类型(文字/图片) + */ + private String messageType; + /** * 发送时间 * */ diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/chatrecord/ChatRecordController.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/chatrecord/ChatRecordController.java index c6ddbea..6b80fdd 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/chatrecord/ChatRecordController.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/chatrecord/ChatRecordController.java @@ -12,12 +12,14 @@ import com.xinelu.common.core.domain.R; import com.xinelu.common.enums.BusinessType; import com.xinelu.common.socket.WebSocketUtils; import com.xinelu.manage.domain.chatRecord.ChatRecord; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.util.List; import java.util.Objects; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -33,6 +35,7 @@ import org.springframework.web.multipart.MultipartFile; * @author wanghao * @create 2023/9/26 0026 */ +@Api(tags = "消息控制器") @RestController @RequestMapping("/nurseApplet/chatRecord") public class ChatRecordController extends BaseController { @@ -62,7 +65,8 @@ public class ChatRecordController extends BaseController { @PostMapping("/sendMessage") @Transactional public AjaxResult sendMessage(@RequestBody ChatRecordDTO chatRecordDTO) { - if (chatRecordService.insertChatRecord(chatRecordDTO) > 0) { + chatRecordDTO.setMessageCategory("3"); + if (chatRecordService.insertChatRecord(chatRecordDTO) > 0) { // 判断接收人是否在线 if (WebSocketUtils.clients.get(chatRecordDTO.getRecipientId().toString()) == null) { return AjaxResult.success(); @@ -96,4 +100,13 @@ public class ChatRecordController extends BaseController { } return R.ok(chatRecordService.getMegVoList(messageDto)); } + + @ApiOperation("删除消息") + @GetMapping("/deleteMegs") + public R deleteMegs(@RequestBody List ids) { + if (CollectionUtils.isEmpty(ids)) { + return R.fail("请选择要删除的消息!"); + } + return chatRecordService.deleteMegs(ids) > 0 ? R.ok("删除成功") : R.fail("删除失败"); + } } diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/chatrecord/ChatRecordDTO.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/chatrecord/ChatRecordDTO.java index dd681ca..229c4e4 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/chatrecord/ChatRecordDTO.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/chatrecord/ChatRecordDTO.java @@ -2,6 +2,7 @@ package com.xinelu.applet.dto.chatrecord; import com.xinelu.common.core.domain.BaseEntity; import com.xinelu.common.custominterface.Insert; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import net.sf.jsqlparser.statement.update.Update; import org.hibernate.validator.constraints.Length; @@ -21,6 +22,9 @@ public class ChatRecordDTO extends BaseEntity implements Serializable { private static final long serialVersionUID = -3911806583514536587L; + @ApiModelProperty("消息类别 1:通知公告,2:健康推送,3:在线咨询 4:消息通知") + private String messageCategory; + /** * 聊天记录业务主键(问诊表id) */ diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/chatrecord/ChatRecordMapper.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/chatrecord/ChatRecordMapper.java index ecee67c..23412d5 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/chatrecord/ChatRecordMapper.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/chatrecord/ChatRecordMapper.java @@ -25,7 +25,7 @@ public interface ChatRecordMapper { * @param id 图文咨询-聊天记录主键 * @return 图文咨询-聊天记录 */ - public ChatRecord selectChatRecordById(Long id); + ChatRecord selectChatRecordById(Long id); /** * 查询图文咨询-聊天记录列表 @@ -33,7 +33,7 @@ public interface ChatRecordMapper { * @param chatRecord 图文咨询-聊天记录 * @return 图文咨询-聊天记录集合 */ - public List selectChatRecordList(ChatRecord chatRecord); + List selectChatRecordList(ChatRecord chatRecord); /** * 新增图文咨询-聊天记录 @@ -41,7 +41,7 @@ public interface ChatRecordMapper { * @param chatRecord 图文咨询-聊天记录 * @return 结果 */ - public int insertChatRecord(ChatRecord chatRecord); + int insertChatRecord(ChatRecord chatRecord); /** * 修改图文咨询-聊天记录 @@ -49,7 +49,7 @@ public interface ChatRecordMapper { * @param chatRecord 图文咨询-聊天记录 * @return 结果 */ - public int updateChatRecord(ChatRecord chatRecord); + int updateChatRecord(ChatRecord chatRecord); /** * 删除图文咨询-聊天记录 @@ -57,7 +57,7 @@ public interface ChatRecordMapper { * @param id 图文咨询-聊天记录主键 * @return 结果 */ - public int deleteChatRecordById(Long id); + int deleteChatRecordById(Long id); /** * 批量删除图文咨询-聊天记录 @@ -65,7 +65,9 @@ public interface ChatRecordMapper { * @param ids 需要删除的数据主键集合 * @return 结果 */ - public int deleteChatRecordByIds(Long[] ids); + int deleteChatRecordByIds(Long[] ids); Integer updateReadStatus(MarkReadDto markReadDto); + + int deleteMegs(@Param("ids") List ids); } diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/chatRecord/IChatRecordService.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/chatRecord/IChatRecordService.java index 4d2d1c0..c096174 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/chatRecord/IChatRecordService.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/chatRecord/IChatRecordService.java @@ -24,7 +24,7 @@ public interface IChatRecordService { * @param id 图文咨询-聊天记录主键 * @return 图文咨询-聊天记录 */ - public ChatRecord selectChatRecordById(Long id); + ChatRecord selectChatRecordById(Long id); /** * 查询图文咨询-聊天记录列表 @@ -32,7 +32,7 @@ public interface IChatRecordService { * @param chatRecord 图文咨询-聊天记录 * @return 图文咨询-聊天记录集合 */ - public List selectChatRecordList(ChatRecord chatRecord); + List selectChatRecordList(ChatRecord chatRecord); /** * 新增图文咨询-聊天记录 @@ -40,7 +40,7 @@ public interface IChatRecordService { * @param chatRecordDTO 图文咨询-聊天记录 * @return 结果 */ - public int insertChatRecord(ChatRecordDTO chatRecordDTO); + int insertChatRecord(ChatRecordDTO chatRecordDTO); Boolean sendMessage(ChatRecordDTO chatRecordDTO); @@ -50,7 +50,7 @@ public interface IChatRecordService { * @param chatRecord 图文咨询-聊天记录 * @return 结果 */ - public int updateChatRecord(ChatRecord chatRecord); + int updateChatRecord(ChatRecord chatRecord); /** * 批量删除图文咨询-聊天记录 @@ -58,7 +58,7 @@ public interface IChatRecordService { * @param ids 需要删除的图文咨询-聊天记录主键集合 * @return 结果 */ - public int deleteChatRecordByIds(Long[] ids); + int deleteChatRecordByIds(Long[] ids); /** * 删除图文咨询-聊天记录信息 @@ -66,7 +66,7 @@ public interface IChatRecordService { * @param id 图文咨询-聊天记录主键 * @return 结果 */ - public int deleteChatRecordById(Long id); + int deleteChatRecordById(Long id); /** @@ -75,7 +75,9 @@ public interface IChatRecordService { * @param multipartFile,consultationId 文件,问诊id * @return 结果 */ - public AjaxResult uploadChatRecordFile(MultipartFile multipartFile, Long consultationId) throws IOException, InvalidExtensionException; + AjaxResult uploadChatRecordFile(MultipartFile multipartFile, Long consultationId) throws IOException, InvalidExtensionException; List getMegVoList(MessageSearchDto messageDto); + + Integer deleteMegs(List ids); } diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/chatRecord/impl/ChatRecordServiceImpl.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/chatRecord/impl/ChatRecordServiceImpl.java index 489826a..c538368 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/chatRecord/impl/ChatRecordServiceImpl.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/chatRecord/impl/ChatRecordServiceImpl.java @@ -20,6 +20,7 @@ import com.xinelu.common.utils.file.MimeTypeUtils; import com.xinelu.manage.domain.chatRecord.ChatRecord; import java.io.IOException; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -76,6 +77,9 @@ public class ChatRecordServiceImpl implements IChatRecordService { chatRecord.setCreateTime(DateUtils.getNowDate()); ChatRecord record = new ChatRecord(); BeanUtils.copyBeanProp(record, chatRecord); + record.setReadStatus("0"); + record.setSendTime(new Date()); + record.setDelFlag(0); return chatRecordMapper.insertChatRecord(record); } @@ -87,6 +91,7 @@ public class ChatRecordServiceImpl implements IChatRecordService { msg.setFromKey(chatRecord.getSenderId().toString()); msg.setToKey(chatRecord.getRecipientId().toString()); msg.setMsgType(MessageContentType.CHAT.name()); + msg.setMessageType(chatRecord.getMessageType()); msg.setSendTime(chatRecord.getSendTime()); return WebSocketUtils.sendMessage(chatRecord.getRecipientId().toString(), msg); } @@ -209,4 +214,8 @@ public class ChatRecordServiceImpl implements IChatRecordService { return messageCenterVos; } + + @Override public Integer deleteMegs(List ids) { + return chatRecordMapper.deleteMegs(ids); + } } diff --git a/xinelu-nurse-applet/src/main/resources/mapper/applet/chatrecord/ChatRecordMapper.xml b/xinelu-nurse-applet/src/main/resources/mapper/applet/chatrecord/ChatRecordMapper.xml index e5172b4..907fae8 100644 --- a/xinelu-nurse-applet/src/main/resources/mapper/applet/chatrecord/ChatRecordMapper.xml +++ b/xinelu-nurse-applet/src/main/resources/mapper/applet/chatrecord/ChatRecordMapper.xml @@ -66,7 +66,7 @@ select from chat_record - where del_flag = '0' and (recipient_id = #{recipientId} or sender_id = #{recipientId}) + where del_flag = 0 and (recipient_id = #{recipientId} or sender_id = #{recipientId}) and message_category = #{messageCategory} @@ -89,7 +89,7 @@ recipient_id, recipient_name from chat_record - where del_flag = '0' + where del_flag = 0 and message_category = '3' and ((sender_id = #{bindingNo} and recipient_id = #{doctorNo}) or (sender_id = #{doctorNo} and recipient_id = #{bindingNo})) @@ -98,7 +98,7 @@