当前位置: 首页 > news >正文

消息推送问题梳理-团队管理

 管理用户界面:

新增加用户列表:这些用有资格收到推送消户息

当删除一个医生的时候,重新添加这个人的时候 发现团队中没有这个人了 ,这个时候 需要重新添加这个人。

处理这个问题遵循的原则:

  • 删除这个用户的时候,应该先检查这个用户是否在一个团队当中,如果在,则应该先删除该用户与团队的关联后,再删除用户。
  • 或者删除这个用户的时候,级联删除该用户与团队的关联。

当停用这个用户的时候,是否应该在用户与团队的关联表中增加一个状态字段?

如果已经删除的用户,应该提供一个再把用户与团队关联的功能,否则 则需要重新管理机构的问题!如果这样就不太合理啊。

(这个界面要细化,做得更精细一些)

取消团队与组织结构关联的时候报错:

在尝试更新数据库时,遇到了以下详细错误信息:

错误类型java.sql.SQLIntegrityConstraintViolationException,表明数据完整性约束被违反。

具体错误:尝试将重复的主键值 '1818518351819870209-45' 插入到 sys_team_doctor 表中。由于该表的主键约束,不允许存在重复值,因此插入操作失败。

涉及的代码:错误可能源自 com/edwin/java/biz/mapper/TeamDoctorMapper.java 文件中的相关代码。

SQL 语句:出错的 SQL 语句为 INSERT INTO sys_team_doctor ( team_id, doct_id ) VALUES ( ?, ? )

解决方案

  1. 检查数据:在插入数据前,确保 team_id 和 doct_id 的组合是唯一的。
  2. 审查数据库约束:确认 sys_team_doctor 表的主键约束设置正确,避免重复值。
  3. 优化代码逻辑:在 TeamDoctorMapper.java 文件中,增加数据存在性检查,防止重复插入。

小程序端进入专家团队页面的时候:

1  首先要列出当前登录用户所在的团队,  切换团队列表的时候,下面成员列表也要跟随变动

2  团队成员应该有某种排序(如按团队所在医院 等)

3、应该有个检索(按医院   名字 职称三要素) 

4  如果后端改变,前端应该提供立即查询后台数据刷新的功能

5、bug:当前是刷新一次会把上次的名单追加一次!

 (上面人员应该提供排序功能!)

http://127.0.0.1:7877/chat/wechat/client/getTeamList/350

首先查找团队医生关系表,再根据这个关系表获得的团队 去查询团队信息 

    public List<Team> getTeamList(Integer doctorId) {List<TeamDoctor> teamDocts = teamDoctorMapper.selectList(Wrappers.<TeamDoctor>lambdaQuery().eq(TeamDoctor::getDoctId, doctorId));if (CollUtil.isEmpty(teamDocts)) {return Collections.emptyList();}return teamMapper.selectBatchIds(teamDocts.stream().map(TeamDoctor::getTeamId).collect(Collectors.toList()));}

 试着解决第4个问题 :

....      <div class="patient-select"><uni-data-select v-model="teamId" :localdata="teamList"placeholder="请选择团队" @change="querySearch"></uni-data-select></div></view><view class="homyz-content"><div class="patient-list-box"><div class="patient-list-content"><block v-for="(itemDemo,indexDemo) in dataList" :key="indexDemo"><div class="item" v-for="(item,index) in itemDemo.doctorsList" :index="index" :key="index"@click="changeSelect($event,item)"><div class="img-box"><div class="tag">{{ item.patientCount }}</div><img class="img" :src="item.imgUrl"></div><div class="item-cont"><div class="title"><div class="name">{{ item.userName }}</div><div class="sub">{{ postList.find(o => o.value === item.positionName).text }}</div></div><div class="desc">{{ item.remark }}</div></div><div class="type">{{ itemDemo.name }}</div></div></block></div></div></view>...querySearch() {this.getDoctorList(this.teamId)// this.closeDrawer('showLeft')},getDoctorList(teamId) {// 获取 团队的医生信息uni.request({url: loginRequest.baseURL + 'teamDoctorList/' + this.teamId,header: {'auth-token': wx.getStorageSync("token")},success: res => {if (res.data.code === 200) {this.showRight = truethis.dataList = res.data.dataif (res.data.data.length == 0) {uni.showToast({title: '暂无数据',icon: 'none'})}}}})},

无效!

进一步检查 还有个问题

进一步检查发现,

SELECT doct_id 
FROM `sys_team_doctor`
WHERE team_id = 4
  AND doct_id NOT IN (SELECT id FROM sys_doctors);

竟然有2条记录  说明 当初删掉用户的时候 这个表有记录没有删除!

先手动清理掉多的2条记录,后面再检查删除用户的时候 是否删除了这个关系表

DELETE from sys_team_doctor WHERE doct_id in (317,326)

1 先检查后端是否有多的数据查询出来!

2 然后检查前端是否重复追加数据了   前端没有追加数据啊 后端的问题!

后端有个类:DoctorInfoVO  描述团队 及其团队中的医生信息

@Data
@AllArgsConstructor
@NoArgsConstructor
public class DoctorInfoVO implements Serializable {private static final long serialVersionUID = 1880890718591700580L;@ApiModelProperty(value = "部门名称")private String name;   //团队名称private String id;  //团队idprivate List<Doctors> doctorsList;  //医生列表
}

查询的时候,代码逻辑有问题 ,重新写了一下:

  public List<DoctorInfoVO> teamDoctorList(Long teamId) {List<TeamDoctor> teamDocts = teamDoctorMapper.selectList(Wrappers.<TeamDoctor>lambdaQuery().eq(TeamDoctor::getTeamId, teamId));if (CollUtil.isEmpty(teamDocts)) {return Collections.emptyList();};//teamIdlong team_Id = teamDocts.get(0).getTeamId();Team team = teamMapper.selectById(team_Id);List<Doctors> doctors = listByIds(teamDocts.stream().map(TeamDoctor::getDoctId).collect(Collectors.toList()));DoctorInfoVO vo = new DoctorInfoVO();vo.setId(String.valueOf(team_Id));if (team != null) {vo.setName(team.getName());}vo.setDoctorsList(doctors);return Collections.singletonList(vo);}

现在正常了:

相关文章:

消息推送问题梳理-团队管理

管理用户界面&#xff1a; 新增加用户列表&#xff1a;这些用有资格收到推送消户息 当删除一个医生的时候&#xff0c;重新添加这个人的时候 发现团队中没有这个人了 &#xff0c;这个时候 需要重新添加这个人。 处理这个问题遵循的原则&#xff1a; 删除这个用户的时候&…...

如何在 Ubuntu 上使用 Docker 部署 LibreOffice Online

简介 LibreOffice Online&#xff08;也称为Collabora Online&#xff09;是一个开源的在线办公套件&#xff0c;它提供了与LibreOffice桌面版相似的功能&#xff0c;但完全在云端运行。这意味着用户可以通过浏览器访问和编辑文档&#xff0c;而无需在本地计算机上安装任何软件…...

MongoDB数据备份与恢复(内含工具下载、数据处理以及常见问题解决方法)

一、工具准备 对MongoDB进行导入导出、备份恢复等操作时需要用到命令工具&#xff0c;我们要先检查一下MongoDB安装目录下是否有这些工具&#xff0c;正常情况下是没有的:)&#xff0c;因为新版本的MongoDB安装时不包含这些工具&#xff0c;需要我们手动下载安装。下载成功之后…...

代码随想录第三十一天| 56. 合并区间 738.单调递增的数字

56. 合并区间 题目描述 给定一个区间的集合 intervals&#xff0c;请合并所有重叠的区间。 解题思路 排序区间 按照每个区间的起点 start 升序排序&#xff0c;便于后续合并。 合并区间 使用两个变量 start 和 right 分别记录当前区间的起点和终点。遍历排序后的区间&#x…...

C语言基本知识 2.2void 函数

在C语言中&#xff0c; void 是一个重要的关键字&#xff0c;具有多种用途&#xff0c;以下是详细介绍&#xff1a; 函数返回值类型声明 - 当函数不需要返回任何值时&#xff0c;可以将函数的返回值类型声明为 void 。例如&#xff1a; void printMessage() { printf(…...

Spring 框架中哪些接口可以创建对象

Spring 框架中哪些接口可以创建对象 在 Spring 框架中&#xff0c;向 IOC 容器中添加 Bean 主要有以下几种接口和方式。Spring 提供了不同的手段来实现对象的创建和管理&#xff0c;涵盖了不同的需求和场景。以下是几种常用的接口和方式&#xff1a; 1. BeanFactory 接口 Be…...

豆瓣书摘 | 爬虫 | Python

获取豆瓣书摘&#xff0c;存入MongoDB中。 import logging import timeimport requests from bs4 import BeautifulSoup from pymongo import MongoClientheaders {accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,…...

Oracle数据库物理存储结构管理

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; 安装和配置Oracle数据库是一个涉及多个步骤的任务&#xff0c;通常包括环境准备、软件安装、数据库创建和基本配置等。以下是详细的安装与配置流程。 一、环境准备 1. 系统要求 操作系统&#xff1a;Wind…...

java——Map接口

Java的Map接口是一种键值对的数据结构&#xff0c;用于存储和操作键值对的集合。它是Java集合框架中的一部分&#xff0c;提供了一种以键值对形式组织数据的方法。 Map接口有多个实现类&#xff0c;常用的有HashMap、TreeMap和LinkedHashMap。每种实现类都有不同的特点和适用场…...

量子计算机全面解析:技术、应用与未来

标题&#xff1a;量子计算机全面解析&#xff1a;技术、应用与未来 一、什么是量子计算机&#xff1f; 量子计算机是一种利用量子力学原理&#xff08;如叠加、纠缠和干涉&#xff09;进行计算的新型计算设备。与传统计算机基于比特&#xff08;0 和 1&#xff09;的运算方式不…...

IDEA相关(包括但不限于快捷键,使用技巧)成长笔记

1.IDEA创建及命名规范 IDEA创建是&#xff1a;项目、模块、包、类 命名规范&#xff1a; 1.项目名全部小写 2.包名全部小写 3.类名首字母大写&#xff0c;一般都是使用驼峰式命名。 如&#xff1a;public class MyFirstClass{} 4.同上&#xff1a; 变量名、方法名首字母小…...

【再谈设计模式】适配器模式 ~接口兼容的桥梁

一、引言 在软件开发的复杂世界里&#xff0c;不同的组件、类或者系统往往有着各自独立的设计和接口定义。当需要将这些原本不兼容的部分整合在一起协同工作时&#xff0c;就像尝试将方形的榫头插入圆形的卯眼一样困难。适配器设计模式就如同一位神奇的工匠&#xff0c;能够巧妙…...

使用Cursor和Claude AI打造你的第一个App

大家好&#xff0c;使用Cursor和Claude AI打造应用程序是一个结合智能代码辅助和人工智能对话的创新过程。Cursor是一个编程辅助工具&#xff0c;它通过智能代码补全、聊天式AI对话和代码生成等功能&#xff0c;帮助开发者提高编程效率。Claude AI则是一个强大的人工智能平台&a…...

粗读Apache Paimon 的基本概念及其组成结构

文章目录 一、Paimon的基本概念&#xff08;一&#xff09;快照&#xff08;二&#xff09;分区&#xff08;三&#xff09;分桶&#xff08;四&#xff09;一致性保证 二、Paimon的组成结构&#xff08;一&#xff09;文件布局&#xff08;二&#xff09;存储结构&#xff08;…...

c++调用 c# dll 通过 P/Invoke (详细避坑)

项目场景&#xff1a; VS2022 .NET8 &#xff0c; 项目应用的库需要支持AOT&#xff0c;不支持AOT的库看这里 我的c项目很奇怪&#xff0c;如果使用 clr 调用c# dll,会有很多报错&#xff0c;所以使用 P/Invoke方法&#xff0c;这个方法不会有任何奇怪的报错 解决方案 示例…...

李春葆《数据结构》——图相关代码

邻接矩阵结构体&#xff1a; #define MAX<最大结点个数> #define INF 32765 //定义无穷 typedef struct{int no;//顶点的编号&#xff1b;InfoType info;//顶点的其他信息 }vertexType;//顶点的类型 typedef struct{int edges[MAX][Max];//邻接矩阵数组 int vertexTy…...

Linux驱动开发第2步_“物理内存”和“虚拟内存”的映射

“新字符设备的GPIO驱动”和“设备树下的GPIO驱动”都要用到寄存器地址&#xff0c;使用“物理内存”和“虚拟内存”映射时&#xff0c;非常不方便&#xff0c;而pinctrl和gpio子系统的GPIO驱动&#xff0c;非常简化。因此&#xff0c;要重点学习pinctrl和gpio子系统下的GPIO驱…...

告别多品牌乱战,吉利开始觉醒

科技新知 原创作者丨思原 编辑丨蕨影 2007年&#xff0c;是国内自主品牌汽车萌芽的一年&#xff0c;当时行业普遍奉行“多生孩子好打架”战略&#xff0c;吉利也是在这样的背景下发布了《宁波宣言》&#xff0c;奠定了之后十多年的发展主导思想。 然而&#xff0c;新能源的快…...

Target-absent Human Attention

Abstract 预测人类注视行为对于构建能够预测用户注意力的人机交互系统非常重要。已经开发出计算机视觉模型来预测人们在搜索目标物体时的注视点。但当目标不存在于图像中时,又该如何处理呢?同样重要的是要了解当人们找不到目标时,他们如何进行搜索,以及何时停止搜索。在本文…...

<QNAP 453D QTS-5.x> 日志记录:在 Docker 中运行的 Flask 应用安装 自签名 SSL 证书 解决 Chrome 等浏览器证书安全

原因&#xff1a;Chrome 不信任 ssc 证书 使启用了 HTTPS&#xff0c;即使有使用 自签名证书 (self-signed certificate 非由可信的证书颁发机构 【CA&#xff0c;Certificate Authority】签发的&#xff09;。浏览器 Chrome 默认不信任自签名证书&#xff0c;也会报 NET::ERR_…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...