飞讯管理员端群组部分完整版实现

群组概括信息页面:

/GroupBrief

需要展示有关群组的概括信息,包括群组的组成占比,群组数量,不同群组的数量,均可视化展示

群组有六个种类

Public
Work
Meeting
AVChatRoom
Community
Private

使用一个一维数组存储其每一个的数量

数据库中有关表为创建群组表create与注销群组表destroyed

每个表都包含以下信息

CallbackCommandString回调命令
GroupIdString操作的群 ID
Operator_AccountString发起创建群组请求的操作者 UserID
Owner_AccountString请求创建的群的群主 UserID
TypeString请求创建的 群组类型介绍,例如 Public
NameString请求创建的群组的名称
MemberListArray请求创建的群组的初始化成员列表

所以需要查询在create表中而不在destroy表中的记录

select a.type,count(*) count from
(select distinct callbackaftercreategroup.groupId,callbackaftercreategroup.type from
callbackaftercreategroup left join callbackaftergroupdestroyed
on callbackaftercreategroup.groupId=callbackaftergroupdestroyed.groupId
where callbackaftergroupdestroyed.groupId is null)a
group by a.type

执行后使用数组存储

int[] type= new int[6];//0-Public,1-Work,2-Meeting,3-AVChatRoom,4-Community,5-Privatewhile (rs.next()){switch (rs.getString("type")){case "Public" :type[0]=rs.getInt("count");break;case "Work" :type[1]=rs.getInt("count");break;case "Meeting" :type[2]=rs.getInt("count");break;case "AVChatRoom" :type[3]=rs.getInt("count");break;case "Community" :type[4]=rs.getInt("count");break;case "Private" :type[5]=rs.getInt("count");break;}}

前端通过Highlights渲染图表

html与js

 <div class="layui-col-md4"><div id="container2" style="height: 400px"></div></div><div class="layui-col-md4"><div id="container" style="height: 400px"></div><script>var chart = Highcharts.chart('container',{chart: {type: 'column'},title: {text: '群组数量'},subtitle: {text: ''},xAxis: {categories: ['陌生人社交群','好友工作群','临时会议群','直播群','社群','私有群'],crosshair: true},yAxis: {min: 0,title: {text: '数量'}},plotOptions: {column: {borderWidth: 0}},series: [{name:"群组数量",data: [${publicNum},${workNum},${meetingNum},${AVChatRoomNum},${communityNum},${privateNum}]}]});var chart = Highcharts.chart('container2', {chart: {type: 'pie',plotBackgroundColor: null,plotBorderWidth: null,plotShadow: false,},title: {text: '群组占比数量'},subtitle: {text: ''},tooltip: {pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'},plotOptions: {pie: {allowPointSelect: true,cursor: 'pointer',dataLabels: {enabled: false},showInLegend: true}},series: [{name: '占比',colorByPoint: true,data: [{name: '陌生人社交群',y: ${publicNum*100/total},sliced: true,selected: true}, {name: '好友工作群',y: ${workNum*100/total}}, {name: '临时会议群',y: ${meetingNum*100/total}}, {name: '直播群',y: ${AVChatRoomNum*100/total}}, {name: '社群',y: ${communityNum*100/total}}, {name: '私有群',y: ${privateNum*100/total}}]}]});</script></div>

呈现结果

 页面整体效果

 群组表格页面

获取每个群组与上述数据库相同,获取在create表而不在destroy表中的数据

而搜索功能需要根据对应的列进行搜索,通过获取find数据确定搜索类型,搜索和data有关的数据

var url="${group.groupId}";
var res=encodeURIComponent(url);
document.getElementById("${group.groupId}").innerHTML="<a href=/GroupDetail?groupId="+res+">查看</a>"
switch (find){case "groupId":glist= dao.GroupListById(data);break;case "operator_Account":glist=dao.GroupListByOperator(data);break;case "owner_Account":glist=dao.GroupListByOwner(data);break;case "name":glist=dao.GroupListByName(data);break;default:break;}

以groupId为例进行搜索,支持模糊搜索,sql为

"select * from callbackaftercreategroup\n" +"where callbackaftercreategroup.groupId\n" +"          not in (select groupId from callbackaftergroupdestroyed)\n" +"    and callbackaftercreategroup.groupId like \'%"+Id+"%\'\n" +"group by callbackaftercreategroup.groupId"

页面展示

 群组详细信息页面

需要获取群组内的成员,群组内成员活跃度,群组内最近发送的消息

对于成员,需要包含creat表中包含的成员、join表的成员与不在exit表中的成员

以@TGS#1INCWHDIF为例

select * from user
where user.userid in(select a.member_Account from callbackaftercreategroup a where groupId='@TGS#1INCWHDIF'unionselect b.member_Account from callbackafternewmemberjoin b where groupId='@TGS#1INCWHDIF')and user.userid not in(select callbackaftermemberexit.member_Account from callbackaftermemberexit where groupId='@TGS#1INCWHDIF')

获取最近的消息,包括发言人,时间,文本信息

需要在text表中查询,用一维数组msg[4]存储

 String sql = "select * from(select * from callbackaftersendmsggrouptext where\n" +"        groupId=\'"+groupId+"\'\n" +"order by msgTime desc limit 9999\n" +") a\n" +"group by a.from_Account";
String[] type= new String[4];//0-recent speaker nums,1-last msg time,2-las meg text,3-last speakerint nums = 0;if(rs.next()) {nums++;Timestamp time = rs.getTimestamp("msgTime");type[1] = time.toString();type[2] = rs.getString("text");type[3] = rs.getString("from_Account");}while (rs.next()){nums++;}type[0]=""+nums;return type;

活跃度为群内最近发言人数与总人数比,总人数用获取到userList.length()

前端展示

 <div class="layui-col-md4"><ul class="layui-timeline"><li class="layui-timeline-item"><i class="layui-icon layui-timeline-axis">&#xe63f;</i><div class="layui-timeline-content layui-text"><h1 style="color: #009688" class="layui-timeline-title">最近发言时间</h1><p>${lastMsgTime}</p></div></li><li class="layui-timeline-item"><i class="layui-icon layui-timeline-axis">&#xe63f;</i><div class="layui-timeline-content layui-text"><h1 style="color: #009688" class="layui-timeline-title">最近发言人</h1><p>${lastSpeaker}</p></div></li><li class="layui-timeline-item"><i class="layui-icon layui-timeline-axis">&#xe63f;</i><div class="layui-timeline-content layui-text"><h1 style="color: #009688" class="layui-timeline-title">最近发言内容</h1><p>${lastMsgText}</p></div></li></ul></div>

页面展示

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41847.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速开发智能硬件,阿里云AIoT首期云端一体训练营开麦了

6月10号&#xff0c;阿里云AIoT面向智能硬件开发者发起首期云端一体物联网开发训练营&#xff0c;免费报名火热开启&#xff0c;为期5天干货详解&#xff0c;内容覆盖阿里云Cloud AIoT Native架构中多个核心产品&#xff0c;包括物联网平台、IoT Studio、HaaS开发板&#xff0c…

微信小程序+云函数+腾讯云对话机器人API(ChatBot)

文章目录 前言 一、小程序云开发是什么&#xff1f; 二、步骤 1. 在app.js中绑定好云环境id&#xff0c;并且选好当前环境以及选好云文件夹 2. 去到腾讯云API Explorer中选好Region地区和Query这个必填参数&#xff0c;然后进行代码生成 3. 在上面的API Explorer网站点击前往获…

001,Python微信接龙脚本与腾讯会议定时挂网课脚本

目录 前言: 微信接龙: 腾讯会议: 前言: 这是我的第一篇博客,看到一个视频,推荐写写博客来验证所学,觉得很有道理,就来写一个. 这两个脚本是我的处女作,还有很多不完善的地方,但重点是能跑..... 系统是win11 微信接龙: 我使用的wxauto库,pip install wxauto就行,不过需要…

如何用网易邮箱大师登录QQ邮箱账号

非常无语&#xff0c;非常不理解为什么QQ邮箱整这么多幺蛾子&#xff1f; 问题描述&#xff1a; 登陆的时候&#xff0c;问你是否有授权码&#xff0c;如果有用授权码登录&#xff08;注意不是QQ密码&#xff09;&#xff1b;如果没有&#xff0c;就需要获取授权码。 获取授权…

利用masigpro包进行时间序列分析

这边文章的代码主要源于网上已有的精品推文&#xff0c;根据自身数据和作图时出现的报错“Error in plot.new() : figure margins too large”进行了个性化修改 值得注意的是&#xff1a;maSigPro软件包主要用于差异基因分析&#xff0c;因此其内置的函数和方法都是基于差异基…

文末赠书 | 基于python的《AI医学图像处理》

关注我们丨文末赠书 说到生成型人工智能ChatGPT&#xff0c;恐怕没人不知道吧&#xff1f; 毫无意外&#xff0c;它也对医疗界产生了不小震撼。不仅能够书写医疗论文、提供问诊服务&#xff0c;甚至连影像医生的饭碗都要抢—— 有网友把OpenAI的GPT3.0系统接入了自家服务器&…

GPT免费好用,国内手机用户人人可玩!

使用ChatGPT已经成为我生活中不可或缺的一部分&#xff0c;它太好用了&#xff01;无论是写作、编程还是日常咨询搜索&#xff0c;我都可以全部交给它处理。但是&#xff0c;很少有人知道如何在手机上使用GPT。对于大多数普通用户来说&#xff0c;想要在手机上使用GPT&#xff…

阿里发布免费的全新可变字体;Stability AI CEO:5年内,人类程序员将不复存在;Perl 5.38发布|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

抖音多闪背后的AI和社交

https://www.toutiao.com/a6646710308825989636/ 2019-01-16 08:16:00 通过多闪发布会现场可知字节跳动创始人张一鸣并没有出场&#xff0c;而是给了95年颜值正义的小姑娘徐璐冉一个靠前的产品经理的位子。我们姑且不去猜这门安排的意义。 本文主要讨论抖音多闪产品背后都用到…

Python音视频开发:消除抖音短视频Logo的图形化工具实现

☞ ░ 前往老猿Python博文目录 ░ 一、引言 在《Python音视频开发&#xff1a;消除抖音短视频Logo和去电视台标的实现详解》节介绍了怎么通过PythonMoviepyOpenCV实现消除视频Logo的四种方法&#xff0c;并提供了详细的实现思路和实现代码&#xff0c;但这种原生态的应用不适…

元宇宙系列--用AI数字人物进行抖音直播

目前抖音无人直播比较普及&#xff0c;从起初的挤火车&#xff0c;云蹦迪&#xff0c;冲马桶&#xff0c;随后比较火的广场舞、过马路等等一系列的抖音互动游戏直播。 以上都是一个软件可以完成&#xff0c;非常容易被抖音禁播。近期已经有不少直播互动游戏被禁播了。 现在来介…

每秒最高1w+使用量,「AI绘画」成抖音年度爆款,背后技术秘籍现已公开

允中 发自 凹非寺来源 | 量子位 QbitAI 「AI绘画」是2022年抖音上最火的一款特效玩法&#xff0c;用户只要输入一张图片&#xff0c;AI就会根据图片生成一张动漫风格的图片。 由于生成的图片效果带有一定的“盲盒”属性 &#xff0c;画风精致唯美中又带着些许的蠢萌和无厘头&am…

用AI人脸识别技术实现抖音特效

♚ 李远君 &#xff0c;Web和云计算开发人员。Java&#xff0c;Python&#xff0c;Golang爱好者。 个人网址&#xff1a;https://tomoncle.com 本文作者已加入Python中文社区专栏作者计划 导言 为什么会写这个人脸例子&#xff1f; 浏览博客的过程&#xff0c;无意发现了一篇名…

Github 热度飙升,一键生成最近抖音超火的 AI 人物绘图

点击关注公众号&#xff0c;利用碎片时间学习 Paper2GUI 是一款面向普通人的 AI 桌面 APP 工具箱&#xff0c;免安装即开即用&#xff0c;已支持20AI 模型&#xff0c;内容涵盖语音合成、视频补帧、视频超分、目标检测、图片风格化、OCR 识别等领域。支持 Windows、Mac、Linux …

抖音一键生成的AI绘画火了,网友惊呼:有点东西

在各大AI绘画软件争奇斗艳的时候&#xff0c;近期最火的AI绘画莫过于抖音一键生成的AI绘画特效&#xff0c;网友惊呼&#xff1a;有点东西。 就连最近话题度超高的“汪小菲”&#xff0c;也用AI绘画来“秀”恩爱了。 AI绘画识别度还挺高&#xff0c;特别是关于大白志愿者的生成…

讯飞语音的中的bug用户校验失败

用户校验失败&#xff1a;原因是目录没有复制粘贴正确. 下面是刚刚下载的SDK目录: 下面的是自己Android工程中的目录&#xff1a;注意复制粘贴的文件路径要正确 转载于:https://www.cnblogs.com/Oldz/p/9620359.html

Android端科大讯飞语音应用开发

创建语音应用及sdk集成 讯飞开放平台网址 网址&#xff1a;http://www.xfyun.cn/ 1.注册讯飞账号,我以前注册过就直接登录了,创建应用(注:创建过的应用不能被删除)2.创建应用名称规范: 名称_平台类型3.这里显示你的APPID,应用的唯一标示4.创建完成之后现在并没什么卵用,还需要…

python3讯飞语音识别

#!/usr/bin/python # -*- coding: UTF-8 -*- import urllib.parse, urllib.request #这是python3&#xff0c;原先py2里的urllib2或者其他都包含在了py3的urllib里了&#xff0c; # py3里的urllib里的parse和request一定要这么导入&#xff0c;直接import urllib # 是不行的imp…

移动开发-语音识别-调用讯飞平台提供的API

1 登录讯飞平台&#xff0c;申请账号&#xff0c;创建一个应用 具体步骤可以百度查找 2 进入“我的应用”&#xff0c;下载相应的SDK文件 选择语音听写&#xff08;流式版&#xff09;-> Android MSC 3 打开安卓&#xff0c;新建项目 创建一个EditText和一个Button &…

UNIAPP调用讯飞语音评测API

1、历经千辛万苦&#xff0c;UNIAPP调用评测API终于完成&#xff0c;在此做下总结下&#xff1a;首先看效果&#xff01; 2、实现第1步&#xff0c;首先是鉴权&#xff0c;用到的CryptoJS等工具都可以从讯飞和uniapp官方获取 import * as base64 from "base-64" impo…