LocalChatRoomService.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.nb.im.service;
  2. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  3. import com.nb.common.crud.BaseService;
  4. import com.nb.im.entity.ChatRoomEntity;
  5. import com.nb.im.enums.ImStatusEnum;
  6. import com.nb.im.enums.SponsorEnum;
  7. import com.nb.im.mapper.ChatRoomMapper;
  8. import com.nb.im.service.dto.ChatRoomDto;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.context.annotation.Lazy;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. /**
  14. * @author lifang
  15. * @version 1.0.0
  16. * @ClassName LocalChatRoomSerice.java
  17. * @Description TODO
  18. * @createTime 2022年08月16日 09:30:00
  19. */
  20. @Service
  21. public class LocalChatRoomService extends BaseService<ChatRoomMapper, ChatRoomEntity,String> {
  22. @Autowired
  23. @Lazy
  24. private LocalChatRoomUserService chatRoomUserService;
  25. @Override
  26. public void validateBeforeSave(ChatRoomEntity entity) {
  27. }
  28. @Override
  29. public void validateBeforeUpdate(ChatRoomEntity entity) {
  30. }
  31. @Override
  32. public void validateBeforeDelete(String id) {
  33. }
  34. /**
  35. * 描述: 创建聊天室
  36. * @author lifang
  37. * @date 2022/8/16 16:46
  38. * @param source
  39. * @return void
  40. */
  41. @Transactional(rollbackFor = Exception.class)
  42. public ChatRoomEntity createChatRoom(ChatRoomDto source) {
  43. ChatRoomEntity result = new ChatRoomEntity();
  44. result.setAssistId(source.getAssistId());
  45. result.setPatientId(source.getPatientId());
  46. result.setPatientAge(source.getPatientAge());
  47. result.setPatientCode(source.getPatientCode());
  48. result.setPatientName(source.getPatientName());
  49. result.setPatientSex(source.getPatientSex());
  50. result.setDoctorId(source.getDoctorId());
  51. result.setSponsorType(source.getSponsorType());
  52. result.setTotalCount(0);
  53. //等待医生确认
  54. result.setStatus(source.getStatus());
  55. this.save(result);
  56. chatRoomUserService.createRoomUser(result.getId(),source.getAssistId(),SponsorEnum.assist);
  57. chatRoomUserService.createRoomUser(result.getId(),source.getDoctorId(),SponsorEnum.doctor);
  58. return result;
  59. }
  60. /**
  61. * 描述: 与看护人成功建立联系
  62. * @author lifang
  63. * @date 2022/8/16 16:48
  64. * @param chatRoomId
  65. * @param doctorId
  66. * @return void
  67. */
  68. @Transactional(rollbackFor = Exception.class)
  69. public void successChatRoom(String chatRoomId,String doctorId) {
  70. chatRoomUserService.createRoomUser(chatRoomId,doctorId,SponsorEnum.doctor);
  71. this.update(new UpdateWrapper<ChatRoomEntity>()
  72. .lambda()
  73. .eq(ChatRoomEntity::getId,chatRoomId)
  74. .set(ChatRoomEntity::getStatus,ImStatusEnum.SUCCESS)
  75. );
  76. }
  77. }