From 8fd3291345e0c163e03f9fcea3c0bee3c69163c0 Mon Sep 17 00:00:00 2001 From: lxd <1004405501@qq.com> Date: Tue, 2 Sep 2025 22:34:36 +0800 Subject: [PATCH] =?UTF-8?q?ViewOrgUserMapper=20=E6=96=B0=E5=A2=9E=E7=9A=84?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E6=9F=A5=E8=AF=A2mapper=20=20=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E9=80=9A=E7=9F=A5=20=E5=92=8C=E7=95=99=E8=A8=80?= =?UTF-8?q?=E6=9D=BF=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E8=BF=9B=E8=A1=8C=20=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/DoctornoticePageReqVO.java | 4 +++- .../admin/feedback/vo/FeedbackPageReqVO.java | 9 ++++++++ .../admin/feedback/vo/FeedbackRespVO.java | 6 ++++++ .../admin/feedback/vo/FeedbackSaveReqVO.java | 5 +++++ .../system/dal/ViewOrgUser/ViewOrgUserDO.java | 10 +++++++++ .../dal/dataobject/feedback/FeedbackDO.java | 5 +++++ .../mysql/ViewOrgUser/ViewOrgUserMapper.java | 16 ++++++++++++++ .../doctornotice/DoctornoticeMapper.java | 19 ++++++++++++----- .../dal/mysql/feedback/FeedbackMapper.java | 21 ++++++++++++++++--- .../doctornotice/DoctornoticeServiceImpl.java | 15 +++++++++++++ .../service/feedback/FeedbackServiceImpl.java | 15 ++++++++++++- 11 files changed, 115 insertions(+), 10 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/ViewOrgUser/ViewOrgUserDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ViewOrgUser/ViewOrgUserMapper.java diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticePageReqVO.java index 8dbbb0e04e..c98d1935dd 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticePageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticePageReqVO.java @@ -69,5 +69,7 @@ public class DoctornoticePageReqVO extends PageParam { @Schema(description = "机构ID") private Integer orgid; - + // 新增字段用于处理 orgid 查询 + @Schema(description = "用户ID列表") + private List userIds; } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackPageReqVO.java index 7ccb856313..fb03d9f1ec 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackPageReqVO.java @@ -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 userIds; + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackRespVO.java index 1e1f3a65fc..7820f4a011 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackRespVO.java @@ -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; + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackSaveReqVO.java index b70c29704e..acc9aa50c6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/feedback/vo/FeedbackSaveReqVO.java @@ -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; } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/ViewOrgUser/ViewOrgUserDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/ViewOrgUser/ViewOrgUserDO.java new file mode 100644 index 0000000000..2bddf187c3 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/ViewOrgUser/ViewOrgUserDO.java @@ -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; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/feedback/FeedbackDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/feedback/FeedbackDO.java index b1a5793665..abae003cca 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/feedback/FeedbackDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/feedback/FeedbackDO.java @@ -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 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ViewOrgUser/ViewOrgUserMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ViewOrgUser/ViewOrgUserMapper.java new file mode 100644 index 0000000000..e0c80facd7 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ViewOrgUser/ViewOrgUserMapper.java @@ -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 { + + @Select("SELECT userid FROM view_org_user WHERE orgid = #{orgId}") + List selectUserIdsByOrgId(Integer orgId); +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/doctornotice/DoctornoticeMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/doctornotice/DoctornoticeMapper.java index 4267a32330..44857d3a4f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/doctornotice/DoctornoticeMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/doctornotice/DoctornoticeMapper.java @@ -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 { default PageResult selectPage(DoctornoticePageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() + LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX() .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 { .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); } /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/feedback/FeedbackMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/feedback/FeedbackMapper.java index 7a9a3dce47..2571d1171e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/feedback/FeedbackMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/feedback/FeedbackMapper.java @@ -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 { .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 { 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); } + + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/doctornotice/DoctornoticeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/doctornotice/DoctornoticeServiceImpl.java index 72641e0148..2e1427dcda 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/doctornotice/DoctornoticeServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/doctornotice/DoctornoticeServiceImpl.java @@ -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 getDoctornoticePage(DoctornoticePageReqVO pageReqVO) { + // 如果提供了 orgid,则根据 view_org_user 查询对应的 userids + if (pageReqVO.getOrgid() != null) { + List userIds = viewOrgUserMapper.selectUserIdsByOrgId(pageReqVO.getOrgid()); + // 将 userIds 设置到 reqVO 中,供 mapper 使用 + pageReqVO.setUserIds(userIds); + // 如果没有找到任何 userid,可以直接返回空结果 + if (userIds.isEmpty()) { + return PageResult.empty(0L); + } + } + return doctornoticeMapper.selectPage(pageReqVO); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/feedback/FeedbackServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/feedback/FeedbackServiceImpl.java index 4c1e73c563..acd47c27ce 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/feedback/FeedbackServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/feedback/FeedbackServiceImpl.java @@ -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 getFeedbackPage(FeedbackPageReqVO pageReqVO) { + // 如果提供了 orgid,则根据 view_org_user 查询对应的 userids + if (pageReqVO.getOrgid() != null) { + List userIds = viewOrgUserMapper.selectUserIdsByOrgId(pageReqVO.getOrgid()); + // 将 userIds 设置到 reqVO 中,供 mapper 使用 + pageReqVO.setUserIds(userIds); + // 如果没有找到任何 userid,可以直接返回空结果 + if (userIds.isEmpty()) { + return PageResult.empty(0L); + } + } + return feedbackMapper.selectPage(pageReqVO); }