|
|
@@ -1,13 +1,29 @@
|
|
|
package com.nb.im.controller;
|
|
|
|
|
|
+import cn.dev33.satoken.stp.StpLogic;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.nb.auth.utils.SecurityUtil;
|
|
|
import com.nb.common.crud.BaseService;
|
|
|
import com.nb.common.crud.controller.BaseCrudController;
|
|
|
+import com.nb.common.crud.controller.BaseSaveController;
|
|
|
import com.nb.core.result.R;
|
|
|
+import com.nb.im.service.dto.ChatRoomDto;
|
|
|
import com.nb.im.entity.ChatRoomEntity;
|
|
|
+import com.nb.im.enums.ImStatusEnum;
|
|
|
+import com.nb.im.enums.SponsorEnum;
|
|
|
import com.nb.im.service.LocalChatRoomService;
|
|
|
+import com.nb.im.service.dto.ChatRoomQuery;
|
|
|
+import com.nb.im.service.dto.ChatRoomResult;
|
|
|
import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
@@ -22,8 +38,8 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
@AllArgsConstructor
|
|
|
@RequestMapping("/im/room")
|
|
|
@Api(tags = "聊天室")
|
|
|
-public class ChatRoomController extends BaseCrudController<ChatRoomEntity, String> {
|
|
|
- private LocalChatRoomService chatRoomService;
|
|
|
+public class ChatRoomController implements BaseSaveController<ChatRoomEntity,String> {
|
|
|
+ private final LocalChatRoomService chatRoomService;
|
|
|
|
|
|
@Override
|
|
|
public BaseService<? extends Mapper<ChatRoomEntity>, ChatRoomEntity, String> getService() {
|
|
|
@@ -31,4 +47,51 @@ public class ChatRoomController extends BaseCrudController<ChatRoomEntity, Strin
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @ApiOperation(value = "查询并自动创建与病人看护人的聊天室",notes = "若存在,则返回聊天室信息,若不存在,则返回空")
|
|
|
+ @PostMapping("/look")
|
|
|
+ public R getChatRoom(@RequestBody@Validated ChatRoomDto source){
|
|
|
+ ChatRoomEntity chatRoom = chatRoomService.getOne(new QueryWrapper<ChatRoomEntity>()
|
|
|
+ .lambda()
|
|
|
+ .eq(ChatRoomEntity::getAssistId, source.getAssistId())
|
|
|
+ .eq(ChatRoomEntity::getDoctorId, source.getDoctorId())
|
|
|
+ .eq(ChatRoomEntity::getPatientId, source.getPatientId())
|
|
|
+ .nested(i->i.eq(ChatRoomEntity::getStatus, ImStatusEnum.WAITING)
|
|
|
+ .or()
|
|
|
+ .eq(ChatRoomEntity::getStatus,ImStatusEnum.SUCCESS))
|
|
|
+ .last("limit 1"));
|
|
|
+ if(chatRoom==null&&source.isAutoCreate()){
|
|
|
+ source.setTotalCount(0);
|
|
|
+ source.setSponsorType(SponsorEnum.doctor);
|
|
|
+ source.setStatus(ImStatusEnum.SUCCESS);
|
|
|
+ chatRoomService.createChatRoom(source);
|
|
|
+ }else if(chatRoom!=null&&ImStatusEnum.WAITING.equals(chatRoom.getStatus())&&source.isAutoCreate()){
|
|
|
+ chatRoom.setStatus(ImStatusEnum.SUCCESS);
|
|
|
+ chatRoomService.successChatRoom(chatRoom.getId(),source.getDoctorId());
|
|
|
+ }
|
|
|
+ return R.success(chatRoom);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("/no_page")
|
|
|
+ @ApiOperation("聊天室列表查询")
|
|
|
+ public R<IPage<ChatRoomResult>> list(@RequestBody @Validated ChatRoomQuery query){
|
|
|
+ query.getPage().setSearchCount(false);
|
|
|
+ if(StrUtil.isNotEmpty(query.getPatient())){
|
|
|
+ return R.success(chatRoomService.getBaseMapper().queryPageNoneMsgBlurry(query.getPage(),query));
|
|
|
+ }else if(StrUtil.isNotEmpty(query.getRecord())){
|
|
|
+
|
|
|
+ }
|
|
|
+ return R.success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getPermissionPrefix() {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public StpLogic getStpLogin() {
|
|
|
+ return SecurityUtil.getStpLogic();
|
|
|
+ }
|
|
|
}
|