- 计算机毕业设计springboot教务管理系统 0k1c1源码+系统+程序+lw文档+部署
呦呦网络
springbootjavamysql
计算机毕业设计springboot教务管理系统0k1c1源码+系统+程序+lw文档+部署计算机毕业设计springboot教务管理系统0k1c1源码+系统+程序+lw文档+部署本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQL5
- 从零到精通:用go+vue语言打造高效多语言博客系统的完整指南
程序员爱钓鱼
golangvue.js开发语言
后端部分(Go)首先创建文章相关的数据模型packagemodelimport(“gorm.io/gorm”)//Article文章主表typeArticlestruct{gorm.ModelStatusuint8json:"status"gorm:"default:1"//状态:0-禁用1-启用Sortintjson:"sort"gorm:"default:0"//排序AuthorIduintj
- 实现拖动无标题栏 CEF的方法三 :创建蒙版层窗口拖动
清水迎朝阳
CEF应用c++CEF无标题栏CEF蒙版WM_MOVE
目录一、蒙版层窗口1、蒙版层窗口类2、在创建CEF窗口后,同时创建蒙版窗口3、蒙版显示时机1)注入JS监听点击触摸事件2)点击或触摸时显示蒙版4、蒙版初始位置5、拖动蒙版时,动态调整CEF窗口位置1)蒙版移动消息2)根据蒙版位置,调整父窗口思路:在CEF窗口之上,创建其子窗口,背景半透明,通过拖动这个子窗口,动态调整CEF窗口位置,从而实现拖动无标题栏CEF窗口的目的。一、蒙版层窗口1、蒙版层窗口
- vue3:request.js中请求方法,api封装请求,方法请求
25号底片~
javascript前端vue.js
方法一request.js//封装GET请求exportconstget=(url,params={})=>{returnrequest.get(url,{params});};//封装POST请求exportconstpost=(url,data={})=>{returnrequest.post(url,data);};api封装import{post}from'@/utils/request'
- c# Xml 和 Json 转换方法记录
Greyscarf
linux运维服务器
c#xml转json在C#中,可以使用下面几种方法将XML转换为JSON:使用Newtonsoft.Json库:usingNewtonsoft.Json;usingNewtonsoft.Json.Converters;usingNewtonsoft.Json.Linq;usingSystem.Xml;//从XML字符串转换为JSON字符串stringxmlString="John30";XmlDo
- C++前缀和神技:区间问题瞬杀模板
三流搬砖艺术家
算法算法数据结构c++
目录前缀和核心价值一维前缀和模板1.预处理公式2.代码实现3.动态图示二维前缀和模板1.预处理公式2.代码实现3.二维示意图六大避坑指南复杂度分析LeetCode实战前缀和核心价值暴力法的痛点://计算区间和,时间复杂度O(n)intsum=0;for(inti=l;iarr={3,1,4,2,5};intn=arr.size();//前缀和数组(从1开始存储)vectorprefix(n+1,0
- 面试求助:接口测试用例设计主要考虑哪些方面?
海姐软件测试
lua开发语言
一、基础功能验证1.正常场景覆盖关键点:验证接口在合法输入下的正确响应(状态码、数据结构、业务逻辑)。案例:json复制//用户登录接口输入:{"username":"合法用户","password":"正确密码"}预期:200OK+token返回+数据库登录记录更新2.异常场景覆盖关键点:触发错误码(4xx/5xx)的边界条件。测试维度:参数缺失/类型错误(如整型传字符串)非法参数值(如手机号格
- Vue 3 vs Vue 2:深入解析从性能优化到源码层面的进化
银之夏雪
vue.js性能优化前端
Vue.js是当今前端开发中最受欢迎的框架之一。随着Vue3的发布,它在性能优化、开发体验、响应式系统、构建工具和热更新等多个方面都带来了巨大提升。本文将深入剖析Vue3的进化,包括其源码实现方面的优化,如diff算法、静态标记、编译优化,以及Vue3在热更新、构建工具上的改进。1.性能提升:底层优化的革命1.1响应式系统的改进:从Object.defineProperty到ProxyVue2的响
- Android wifi的开关Settings值异常分析
峥嵘life
androidAndroid系统Android网络androidpython开发语言
Androidwifi的开关Settings值异常分析文章目录Androidwifi的开关Settings值异常分析一、前言二、异常分析1、adb或者串口获取Settings的wifi开关值2、代码获取wifi开关值3、根据日志分析代码(1)logcat对应的wifi开启日志的代码①WifiServiceImpl.java②WifiSettingsStore.java3、wifi_on不同的具体原
- java实现卷积神经网络CNN(附带源码)
Katie。
Java实战项目java
Java实现卷积神经网络(CNN)项目详解目录项目概述1.1项目背景与意义1.2什么是卷积神经网络(CNN)1.3卷积神经网络的应用场景相关知识与理论基础2.1神经网络与深度学习概述2.2卷积操作与卷积层原理2.3激活函数与池化层2.4全连接层与损失函数2.5前向传播、反向传播与梯度下降项目需求与分析3.1项目目标3.2功能需求分析3.3性能与扩展性要求3.4异常处理与鲁棒性考虑系统设计与实现思路
- mysql创建新表,同步数据
hitsz_syl
mysql数据库
importosimportargparseimportglobimportcv2importnumpyasnpimportonnxruntimeimporttqdmimportpymysqlimporttimeimportjsonfromdatetimeimportdatetimeos.environ[“CUDA_VISIBLE_DEVICES”]=“0”#使用GPU0defget_connec
- 数据读取错误:RuntimeError: The size of tensor a (3) must match the size of tensor b (4) at non-singleton
hitsz_syl
单例模式计算机视觉opencv
去除4通道图像:importcv2importosimportshutilfolder_path=R'F:\bounding_box_test\bounding_box_train'#更改为存储图片文件夹的路径image_files=os.listdir(folder_path)count=0forfile_nameinimage_files:iffile_name.endswith('.jpg'
- Next.js博客项目-快速起步
Ktovoz
nextjsjavascript开发语言react前端
作者:KTO原文:Next.js博客项目-快速起步简介:从nextjs博客模板开始,快速配置搭建自己的博客项目。部署出来的网站样式可以参考原文的网站。Next.js博客项目-快速起步使用的模板我们使用的模板是:tailwind-nextjs-starter-blog该模板有1.0版本和2.0版本。本文以1.0版本为例进行介绍。1.环境配置安装Node.js首先,确保你的机器上已安装Node.js。
- 解决U盘提示“使用驱动器H:中的光盘之前需要将其格式化”问题(附详细图文)
川星弦
windows
问题描述当插入U盘或移动硬盘时,系统弹出提示“使用驱动器H:中的光盘之前需要将其格式化”(如下图所示),要求用户格式化磁盘才能继续使用。此问题通常由文件系统错误、分区表损坏或存储设备异常导致。直接格式化会丢失数据,因此需要通过修复文件系统来解决。解决方法:使用chkdsk命令修复文件系统步骤1:以管理员身份打开终端按下Win+X组合键,选择“终端(管理员)”或“WindowsPowerShell(
- 车载Android音频系统 CarAudioService
Code_onepage
android
CarAudioService是车载音频系统的核心服务,负责管理多音源协调、音频路由、音量策略、硬件控制等关键功能,处理车载环境下特有的音频场景(如倒车提示音、车门状态联动等)。一、核心功能模块1.音频焦点管理焦点栈机制(mFocusStack)使用Stack管理不同音源的优先级处理导航/USB/蓝牙等音源的抢占逻辑//示例:焦点切换时的音频路由switchSource(null,AudioAtt
- kafka生成者发送消息失败报错:RecordTooLargeException
青椒1013
kafka分布式
kafka生成者发送消息典型案例生产者发送消息失败:Failedtosend;nestedexceptionisorg.apache.kafka.common.errors.RecordTooLargeException:Themessageis1053512byteswhenserializedwhichislargerthanthemaximumrequestsizeyouhaveconfig
- 82.HarmonyOS NEXT 性能优化指南:从理论到实践
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT性能优化指南:从理论到实践1.性能优化概述1.1性能指标指标类型关键指标目标值启动时间首屏渲染=[];privatepageSize:number=20;//2.使用虚拟列表build(){List(){LazyForEach(this
- 新手村:数据预处理-异常值检测方法
嘉羽很烦
机器学习机器学习
机器学习中异常值检测方法一、前置条件知识领域要求编程基础Python基础(变量、循环、函数)、JupyterNotebook或PyCharm使用。统计学基础理解均值、中位数、标准差、四分位数、正态分布、Z-score等概念。机器学习基础熟悉监督/无监督学习、分类、聚类、回归等基本概念。数据预处理数据清洗、特征缩放(标准化/归一化)、数据可视化(Matplotlib/Seaborn)。二、渐进式学习
- Selenium时间等待_显示等待
Mr_Python2024
seleniumpython
特点:针对具体元素进行时间等待可以自定义等待时长和间隔时间按照设定的时间,不断定位元素,定位到了直接执行下一步操作如在设定时间内没定位到元素,则报错(TimeOutException)显示等待概念:设置一个等待时间和一个条件,在规定时间内,每隔一段时间查看下条件是否成立,如果成立那么程序就继续执行,否则就提示一个超时异常(TimeoutException)。在使用显示等待时;需要结合Seleniu
- C++ list
azaz_plus
C++c++STLlist
1.std::list基本概念定义:std::list是C++标准库提供的带头(哨兵位)双向循环链表容器,支持高效的元素插入和删除。头文件:#include2.构造函数(1)默认构造函数listlist1;//创建一个空list,size=0(2)指定初始大小和默认值listlist2(5);//5个元素,默认初始化(int为0)listlist3(5,3.14);//5个元素,每个值为3.14(
- python 装饰器
每天减 1/5kg
python
装饰器装饰器本质上是一个返回函数的高阶函数,可以接收函数作为参数,并返回一个新的函数。它允许你在不修改原函数代码的情况下,动态地给函数或方法添加额外的功能在我们的日常使用中,装饰器一般用于:日志记录、权限认证、性能分析、缓存等场景。简单示例defmy_decorator(func):defwrapper(*args,**kwargs):print("Beforecallingthefunction
- 京准电钟:关于NTP网络时间同步系统应用方案
北京华人开创公司
北斗卫星授时NTP时间同步卫星同步时钟网络大数据时间同步NTP网络授时授时服务卫星授时服务
京准电钟:关于NTP网络时间同步系统应用方案京准电钟:关于NTP网络时间同步系统应用方案一、背景与需求分析在现代信息化系统中,网络设备、服务器、终端设备的时间同步是保障业务连续性、数据一致性和安全审计的核心基础。时间不同步可能导致以下问题:日志记录时间混乱,影响故障排查;分布式系统事务冲突或数据不一致;安全证书验证失败或攻击行为难以追溯;工业控制、金融交易等高精度场景的时间敏感操作异常。需求目标:
- Python爬虫 -- re正则+csv存储
小鞠..
Python爬虫python爬虫开发语言
爬取Boss上有关Python的工作。网址链接https://www.zhipin.com/wapi/zpgeek/search/joblist.json?scene=1&query=python&city=100010000&experience=&payType=&partTime=°ree=&industry=&scale=&stage=&position=&jobType=&sala
- python调用数据库存储过程_python连接mysql调用存储过程示例
weixin_39806948
python调用数据库存储过程
复制代码代码如下:#!/usr/bin/envpython#-*-coding:utf8-*-importMySQLdbimporttimeimportos,sys,stringdefCallProc(id,onlinetime):'''调用存储过程,输入参数:编号,在线时间,输出:帐号,密码;使用输出参数方式'''accname=''accpwd=''conn=MySQLdb.connect(h
- Vue CLI 构建移动端购物商城实战
凌莫凡
本文还有配套的精品资源,点击获取简介:本项目通过VueCLI创建一个针对移动端的电商应用,目的是帮助开发者快速构建一个功能齐全、性能优良的在线购物平台。文章详细解析了Vue.js基础、VueCLI3的项目配置、组件化开发、Vuex状态管理、VueRouter路由管理、移动端适配、热重载与开发服务器配置,以及生产环境优化等关键知识点,对于提升Vue.js技能和项目实战经验具有重要价值。1.Vue.j
- Python调用mysql存储过程
Up_梅子酒
mysqlpython
Python调用mysql存储过程importpymysqlconn=pymysql.connect(host='127.0.0.1',port=3306,user='root',password='root',database='test',charset='utf8')cur=conn.cursor()cur.callproc('T1')#调用存储过程conn.commit()result=c
- vue3 vite打包后页面控制台报错Access to script at ‘file:///E:/vueProject/vue3-project/Vue3-big-event-admin/dist
Dinosaur啊呜
vue.jsjavascript前端
vue3vite打包后页面白屏控制台报错Accesstoscriptat'file:///E:/vueProject/vue3-project/Vue3-big-event-admin/dist1安装兼容插件@vitejs/plugin-legacynpmi@vitejs/plugin-legacy-D2在vite.config.ts中进行配置//引入@vitejs/plugin-legacyim
- kubernetes集群监控 Kube-Prometheus-Stack
xiaojinran
k8sprometheusdocker运维kubernetesprometheus容器grafana
kubernetes集群监控概述Kubernetes(K8s)集群监控是指对Kubernetes集群中的各个组件和资源进行实时监测和数据收集,以获取对集群健康状态、性能指标和事件的可视化和告警。Kubernetes集群监控的内容通常包括以下几个方面:基础设施监控:监控物理服务器、虚拟机或云实例的资源使用情况,包括CPU、内存、磁盘和网络等指标。这可以帮助确保集群的底层基础设施正常运行,并及时发现资
- kube-prometheus-stack部署prometheus全栈监控k8s
时空无限
Kuberneteskubernetes
添加源helmrepoaddprometheus-communityhttps://prometheus-community.github.io/helm-charts更新源helmrepoupdate成功输出Hangtightwhilewegrabthelatestfromyourchartrepositories......Successfullygotanupdatefromthe"prom
- k8s-06-prometheus-stack
多懂一些
kubernetes实战nginxlinuxcentosprometheus
安装#下载yaml#[下载](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack)#镜像下载dockerlogin--username=xxxx registry.cn-shanghai.aliyuncs.comdockerpullregistry.cn-shangha
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D