ViewOrgUserMapper 新增的视图查询mapper 医生通知 和留言板修改查询按照视图进行 区分

This commit is contained in:
lxd 2025-09-02 22:34:36 +08:00
parent 68d07ab13e
commit 8fd3291345
11 changed files with 115 additions and 10 deletions

View File

@ -69,5 +69,7 @@ public class DoctornoticePageReqVO extends PageParam {
@Schema(description = "机构ID")
private Integer orgid;
// 新增字段用于处理 orgid 查询
@Schema(description = "用户ID列表")
private List<Integer> userIds;
}

View File

@ -46,4 +46,13 @@ public class FeedbackPageReqVO extends PageParam {
@Schema(description = "回复状态")
private String replyStatus;
@Schema(description = "状态0-提交留言1-回复留言未读2-回复留言已读")
private Integer status;
@Schema(description = "设备Id(设备表的主键)")
private Integer deviceid;
@Schema(description = "用户ID列表")
private List<Integer> userIds;
}

View File

@ -52,4 +52,10 @@ public class FeedbackRespVO {
@ExcelProperty("机构名称")
private String orgname;
@Schema(description = "状态0-提交留言1-回复留言未读2-回复留言已读")
private Integer status;
@Schema(description = "设备Id(设备表的主键)")
private Integer deviceid;
}

View File

@ -36,5 +36,10 @@ public class FeedbackSaveReqVO {
@Schema(description = "机构名称", example = "张三")
private String orgname;
@Schema(description = "状态0-提交留言1-回复留言未读2-回复留言已读")
private Integer status;
@Schema(description = "设备Id(设备表的主键)")
private Integer deviceid;
}

View File

@ -0,0 +1,10 @@
package cn.iocoder.yudao.module.system.dal.ViewOrgUser;
import lombok.Data;
@Data
public class ViewOrgUserDO {
private Integer orgId;
private Integer userId;
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.dal.dataobject.feedback;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
@ -61,7 +62,11 @@ public class FeedbackDO {
@TableField("create_time")
private LocalDateTime createTime;
@TableField("status")
private Integer status;
@TableField("device_id")
private Integer deviceid;
/**
* 机构ID
*/

View File

@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.system.dal.mysql.ViewOrgUser;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.dal.ViewOrgUser.ViewOrgUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface ViewOrgUserMapper extends BaseMapperX<ViewOrgUserDO> {
@Select("SELECT userid FROM view_org_user WHERE orgid = #{orgId}")
List<Integer> selectUserIdsByOrgId(Integer orgId);
}

View File

@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.doctornotice.DoctornoticeDO;
import cn.iocoder.yudao.module.system.dal.dataobject.feedback.FeedbackDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.system.controller.admin.doctornotice.vo.*;
@ -20,9 +21,8 @@ import cn.iocoder.yudao.module.system.controller.admin.doctornotice.vo.*;
public interface DoctornoticeMapper extends BaseMapperX<DoctornoticeDO> {
default PageResult<DoctornoticeDO> selectPage(DoctornoticePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<DoctornoticeDO>()
LambdaQueryWrapperX<DoctornoticeDO> queryWrapper = new LambdaQueryWrapperX<DoctornoticeDO>()
.eqIfPresent(DoctornoticeDO::getDeviceid, reqVO.getDeviceid())
.eqIfPresent(DoctornoticeDO::getUserid, reqVO.getUserid())
.eqIfPresent(DoctornoticeDO::getDoctorid, reqVO.getDoctorid())
.betweenIfPresent(DoctornoticeDO::getDatatime, reqVO.getDatatime())
.eqIfPresent(DoctornoticeDO::getNoticetype, reqVO.getNoticetype())
@ -36,9 +36,18 @@ public interface DoctornoticeMapper extends BaseMapperX<DoctornoticeDO> {
.eqIfPresent(DoctornoticeDO::getCreateby, reqVO.getCreateby())
.eqIfPresent(DoctornoticeDO::getUpdateby, reqVO.getUpdateby())
.eqIfPresent(DoctornoticeDO::getIsdeleted, reqVO.getIsdeleted())
.eqIfPresent(DoctornoticeDO::getOrgid, reqVO.getOrgid())
.eqIfPresent(DoctornoticeDO::getUsername, reqVO.getUsername())
.orderByDesc(DoctornoticeDO::getId));
//.eqIfPresent(DoctornoticeDO::getOrgid, reqVO.getOrgid())
//.eqIfPresent(DoctornoticeDO::getUsername, reqVO.getUsername())
.orderByDesc(DoctornoticeDO::getId);
// 处理 userId 查询条件
if (reqVO.getUserIds() != null) {
queryWrapper.in(DoctornoticeDO::getUserid, reqVO.getUserIds());
} else {
queryWrapper.eqIfPresent(DoctornoticeDO::getUserid, reqVO.getUserid());
}
return selectPage(reqVO, queryWrapper);
}
/**

View File

@ -2,13 +2,19 @@ package cn.iocoder.yudao.module.system.dal.mysql.feedback;
import java.util.*;
import cn.hutool.extra.spring.SpringUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.feedback.FeedbackDO;
import cn.iocoder.yudao.module.system.dal.mysql.ViewOrgUser.ViewOrgUserMapper;
import cn.iocoder.yudao.module.system.service.feedback.FeedbackService;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.system.controller.admin.feedback.vo.*;
import org.apache.ibatis.annotations.Select;
import javax.annotation.Resource;
/**
* 留言板 Mapper
@ -27,9 +33,9 @@ public interface FeedbackMapper extends BaseMapperX<FeedbackDO> {
.likeIfPresent(FeedbackDO::getDoctorName, reqVO.getDoctorName())
.eqIfPresent(FeedbackDO::getDoctorId, reqVO.getDoctorId())
.betweenIfPresent(FeedbackDO::getBackTime, reqVO.getBackTime())
.betweenIfPresent(FeedbackDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(FeedbackDO::getOrgid, reqVO.getOrgid())
.likeIfPresent(FeedbackDO::getOrgname, reqVO.getOrgname());
.betweenIfPresent(FeedbackDO::getCreateTime, reqVO.getCreateTime());
// .eqIfPresent(FeedbackDO::getOrgid, reqVO.getOrgid())
// .likeIfPresent(FeedbackDO::getOrgname, reqVO.getOrgname());
// 根据 ReplyStatus 添加不同的查询条件
if ("replied".equals(reqVO.getReplyStatus())) {
@ -38,9 +44,18 @@ public interface FeedbackMapper extends BaseMapperX<FeedbackDO> {
queryWrapper.isNull(FeedbackDO::getBackTime); // unreplied: getBackTime null
}
// 处理 userId 查询条件
if (reqVO.getUserIds() != null) {
queryWrapper.in(FeedbackDO::getUserId, reqVO.getUserIds());
} else {
queryWrapper.eqIfPresent(FeedbackDO::getUserId, reqVO.getUserId());
}
queryWrapper.orderByDesc(FeedbackDO::getId);
return selectPage(reqVO, queryWrapper);
}
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.service.doctornotice;
import cn.iocoder.yudao.module.system.dal.mysql.ViewOrgUser.ViewOrgUserMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -30,6 +31,9 @@ public class DoctornoticeServiceImpl implements DoctornoticeService {
@Resource
private DoctornoticeMapper doctornoticeMapper;
@Resource
private ViewOrgUserMapper viewOrgUserMapper;
@Override
public Integer createDoctornotice(DoctornoticeSaveReqVO createReqVO) {
// 插入
@ -69,6 +73,17 @@ public class DoctornoticeServiceImpl implements DoctornoticeService {
@Override
public PageResult<DoctornoticeDO> getDoctornoticePage(DoctornoticePageReqVO pageReqVO) {
// 如果提供了 orgid则根据 view_org_user 查询对应的 userids
if (pageReqVO.getOrgid() != null) {
List<Integer> userIds = viewOrgUserMapper.selectUserIdsByOrgId(pageReqVO.getOrgid());
// userIds 设置到 reqVO mapper 使用
pageReqVO.setUserIds(userIds);
// 如果没有找到任何 userid可以直接返回空结果
if (userIds.isEmpty()) {
return PageResult.empty(0L);
}
}
return doctornoticeMapper.selectPage(pageReqVO);
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.service.feedback;
import cn.iocoder.yudao.module.system.dal.mysql.ViewOrgUser.ViewOrgUserMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
@ -29,7 +30,8 @@ public class FeedbackServiceImpl implements FeedbackService {
@Resource
private FeedbackMapper feedbackMapper;
@Resource
private ViewOrgUserMapper viewOrgUserMapper;
@Override
public Integer createFeedback(FeedbackSaveReqVO createReqVO) {
// 插入
@ -69,6 +71,17 @@ public class FeedbackServiceImpl implements FeedbackService {
@Override
public PageResult<FeedbackDO> getFeedbackPage(FeedbackPageReqVO pageReqVO) {
// 如果提供了 orgid则根据 view_org_user 查询对应的 userids
if (pageReqVO.getOrgid() != null) {
List<Integer> userIds = viewOrgUserMapper.selectUserIdsByOrgId(pageReqVO.getOrgid());
// userIds 设置到 reqVO mapper 使用
pageReqVO.setUserIds(userIds);
// 如果没有找到任何 userid可以直接返回空结果
if (userIds.isEmpty()) {
return PageResult.empty(0L);
}
}
return feedbackMapper.selectPage(pageReqVO);
}