Przeglądaj źródła

add
头像管理

lifang 3 miesięcy temu
rodzic
commit
be371e61be

+ 46 - 0
tr-modules/tr-module-mobile/src/main/java/cn/tr/module/mobile/controller/ImMsgGroupUserController.java

@@ -0,0 +1,46 @@
+package cn.tr.module.mobile.controller;
+
+import cn.tr.core.pojo.CommonResult;
+import cn.tr.core.pojo.TableDataInfo;
+import cn.tr.core.tree.TreeNode;
+import cn.tr.core.utils.TreeUtil;
+import cn.tr.module.mobile.controller.vo.ImMsgReceivedVO;
+import cn.tr.module.mobile.controller.vo.ImUserVO;
+import cn.tr.module.mobile.dto.ImGroupUserQueryDTO;
+import cn.tr.module.mobile.dto.ImMsgReceivedQueryDTO;
+import cn.tr.module.mobile.dto.ImMsgUnreadTotalCountQueryDTO;
+import cn.tr.module.mobile.service.IImGroupUserService;
+import cn.tr.module.mobile.service.IImMsgReceivedService;
+import cn.tr.plugin.mybatis.base.BaseController;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+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;
+import java.util.*;
+/**
+ * 发送消息表,保存某个用户发送了哪些消息,用于复现用户聊天场景(消息漫游功能需要)。控制器
+ *
+ * @author lf
+ * @date  2025/08/20 10:14
+ */
+@Api(tags = "聊天室组用户信息")
+@RestController
+@RequestMapping("/mobile/groupUser")
+@AllArgsConstructor
+public class ImMsgGroupUserController extends BaseController{
+
+    private final IImGroupUserService groupUserService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="查询组群的用户信息",notes = "权限: 无")
+    @PostMapping("/user/list")
+    public CommonResult<List<ImUserVO>> selectUserList(@RequestBody@Validated ImGroupUserQueryDTO query) {
+        startPage();
+        return CommonResult.success(groupUserService.selectUserList(query));
+    }
+}

+ 27 - 0
tr-modules/tr-module-mobile/src/main/java/cn/tr/module/mobile/controller/vo/ImUserVO.java

@@ -0,0 +1,27 @@
+package cn.tr.module.mobile.controller.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+
+/**
+ * 聊天室用户信息
+ */
+@Data
+@ApiModel("消息群组用户")
+@ToString
+public class ImUserVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty("用户昵称")
+    private String nickname;
+
+    @ApiModelProperty(value = "用户头像")
+    private String avatar;
+}

+ 6 - 0
tr-modules/tr-module-mobile/src/main/java/cn/tr/module/mobile/dto/ImGroupUserQueryDTO.java

@@ -4,6 +4,8 @@ import lombok.ToString;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
 import java.util.*;
 /**
  * 群成员表查询参数
@@ -16,4 +18,8 @@ import java.util.*;
 @ToString
 public class ImGroupUserQueryDTO  {
     private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "临床id",required = true)
+    @NotBlank(message = "临床id不能为空")
+    private String clinicId;
 }

+ 27 - 0
tr-modules/tr-module-mobile/src/main/java/cn/tr/module/mobile/repository/ImGroupUserRepository.java

@@ -1,11 +1,17 @@
 package cn.tr.module.mobile.repository;
 
+import cn.tr.module.mobile.controller.vo.ImUserVO;
+import cn.tr.module.mobile.dto.ImGroupUserQueryDTO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Repository;
 import cn.tr.module.mobile.po.ImGroupUserPO;
+
+import java.util.List;
+
 /**
  * 群成员表Mapper接口
  *
@@ -17,4 +23,25 @@ import cn.tr.module.mobile.po.ImGroupUserPO;
 public interface ImGroupUserRepository extends BaseMapper<ImGroupUserPO> {
     @Update("update im_group_user set unread_count = 0 where group_id =#{clinicId} and user_id=#{userId}")
     void readAllMsg(@Param("clinicId") String clinicId, @Param("userId") String userId);
+
+    @Select("select \n" +
+            "bwu.id as userId,\n" +
+            "bwu.nickname as nickname,\n" +
+            "bwu.avatar as avatar\n" +
+            "from \n" +
+            " biz_clinic_room_wx_user as bcrwu \n" +
+            "join biz_wx_user as bwu on bwu.id=bcrwu.wx_user_id\n" +
+            "where bcrwu.clinic_room_id=#{query.clinicId}")
+    List<ImUserVO> selectDoctorUserList(@Param("query") ImGroupUserQueryDTO query);
+
+
+    @Select("select \n" +
+            "su.id as userId,\n" +
+            "su.nickname as nickname,\n" +
+            "su.avatar as avatar\n" +
+            "from \n" +
+            " biz_clinic_room_doctor_user as bcrdu \n" +
+            "join sys_user as su on su.id=bcrdu.user_id\n" +
+            "where bcrdu.clinic_room_id=#{query.clinicId}")
+    List<ImUserVO> selectPatientUserList(@Param("query")ImGroupUserQueryDTO query);
 }

+ 2 - 39
tr-modules/tr-module-mobile/src/main/java/cn/tr/module/mobile/service/IImGroupUserService.java

@@ -1,5 +1,6 @@
 package cn.tr.module.mobile.service;
 
+import cn.tr.module.mobile.controller.vo.ImUserVO;
 import cn.tr.module.mobile.dto.ImGroupUserDTO;
 import cn.tr.module.mobile.dto.ImGroupUserQueryDTO;
 import java.util.*;
@@ -12,43 +13,5 @@ import java.util.*;
  **/
 public interface IImGroupUserService{
 
-    /**
-     * 根据条件查询群成员表
-     * @param    query 查询参数
-     * @author   lf
-     * @date      2025/08/20 10:17
-     */
-    List<ImGroupUserDTO> selectImGroupUserList(ImGroupUserQueryDTO query);
-
-    /**
-     * 根据id查询群成员表
-     * @param    id 主键id
-     * @author   lf
-     * @date      2025/08/20 10:17
-     */
-    ImGroupUserDTO selectImGroupUserById(String id);
-
-    /**
-     * 编辑群成员表
-     * @param   source 编辑实体类
-     * @author  lf
-     * @date     2025/08/20 10:17
-     */
-    boolean updateImGroupUserById(ImGroupUserDTO source);
-
-    /**
-     * 新增群成员表
-     * @param   source 新增实体类
-     * @author lf
-     * @date  2025/08/20 10:17
-     */
-    boolean insertImGroupUser(ImGroupUserDTO source);
-
-    /**
-     * 删除群成员表详情
-     * @param  ids 删除主键集合
-     * @author lf
-     * @date    2025/08/20 10:17
-     */
-    int removeImGroupUserByIds(Collection<String> ids);
+    List<ImUserVO> selectUserList(ImGroupUserQueryDTO query);
 }

+ 16 - 73
tr-modules/tr-module-mobile/src/main/java/cn/tr/module/mobile/service/impl/ImGroupUserServiceImpl.java

@@ -1,19 +1,17 @@
 package cn.tr.module.mobile.service.impl;
 
-import cn.tr.core.exception.TRExcCode;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.tr.module.mobile.controller.vo.ImUserVO;
+import cn.tr.module.mobile.dto.ImGroupUserQueryDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import cn.hutool.core.collection.CollectionUtil;
-import org.springframework.transaction.annotation.Transactional;
-import cn.tr.core.exception.ServiceException;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import cn.tr.module.mobile.repository.ImGroupUserRepository;
-import cn.tr.module.mobile.po.ImGroupUserPO;
-import cn.tr.module.mobile.dto.ImGroupUserDTO;
-import cn.tr.module.mobile.dto.ImGroupUserQueryDTO;
-import java.util.*;
 import cn.tr.module.mobile.service.IImGroupUserService;
-import cn.tr.module.mobile.mapper.ImGroupUserMapper;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 /**
  * 群成员表Service接口实现类
  *
@@ -25,68 +23,13 @@ public class ImGroupUserServiceImpl implements IImGroupUserService {
     @Autowired
     private ImGroupUserRepository baseRepository;
 
-
-    /**
-    * 根据条件查询群成员表
-    * @param    query 查询参数
-    * @author   lf
-    * @date      2025/08/20 10:17
-    */
-    @Override
-    public List<ImGroupUserDTO> selectImGroupUserList(ImGroupUserQueryDTO query){
-        return ImGroupUserMapper.INSTANCE.convertDtoList(
-                baseRepository.selectList(new LambdaQueryWrapper<ImGroupUserPO>()
-                )
-        );
-    };
-
-    /**
-    * 根据id查询群成员表
-    * @param    id 主键id
-    * @author   lf
-    * @date      2025/08/20 10:17
-    */
-    @Override
-    public ImGroupUserDTO selectImGroupUserById(String id){
-        return ImGroupUserMapper.INSTANCE.convertDto(baseRepository.selectById(id));
-    };
-
-    /**
-    * 编辑群成员表
-    * @param   source 编辑实体类
-    * @author  lf
-    * @date     2025/08/20 10:17
-    */
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public boolean updateImGroupUserById(ImGroupUserDTO source){
-            return baseRepository.updateById(ImGroupUserMapper.INSTANCE.convertPO(source))!=0;
-    };
-
-    /**
-    * 新增群成员表
-    * @param   source 新增实体类
-    * @author lf
-    * @date  2025/08/20 10:17
-    */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean insertImGroupUser(ImGroupUserDTO source){
-        return baseRepository.insert(ImGroupUserMapper.INSTANCE.convertPO(source))!=0;
-    };
-
-    /**
-    * 删除群成员表详情
-    * @param  ids 删除主键集合
-    * @author lf
-    * @date    2025/08/20 10:17
-    */
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public int removeImGroupUserByIds(Collection<String> ids){
-        if(CollectionUtil.isEmpty(ids)){
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
-        }
-        return baseRepository.deleteBatchIds(ids);
-    };
+    public List<ImUserVO> selectUserList(ImGroupUserQueryDTO query) {
+        List<ImUserVO> result = new ArrayList<>();
+        List<ImUserVO> doctorUserList=baseRepository.selectDoctorUserList(query);
+        List<ImUserVO> patientUserList=baseRepository.selectPatientUserList(query);
+        result.addAll(doctorUserList);
+        result.addAll(patientUserList);
+        return result;
+    }
 }