- three.js 低代码, 组态,封装编辑器实现降本增效
2201_75964656
编辑器智慧城市低代码javascript前端
学习基础three.js案例预览地址:https://z2586300277.github.io/three-cesium-examples国内站点预览:http://threehub.cngithub地址:https://github.com/z2586300277/three-cesium-examples开发历程预览查看https://z2586300277.github.io/three-
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(7)
harmonyos-next
1.问题描述:推送通知到手机,怎么配置拉起应用指定的页面?解决方案:1、如果点击通知栏打开默认Ability的话,actionType可以设置为0,同时可以在.clickAction.data中,指定待跳转的page页面,命名为pageUri。2、然后在UIAbility的onNewWant或者onCreate方法中解析配置的pageUri;3、如果应用进程不存在将会触发onCreate方法,可以
- 【JavaScript fetch API】简介和使用
williamdsy
前端javascript开发语言ecmascriptfetchapi简单使用
fetch是一个现代的JavaScriptAPI,用于获取资源,例如从网络服务器获取数据。它提供了一种比传统的XMLHttpRequest更简洁、更易于使用的机制来进行网络请求。fetch基于Promise,这使得异步操作更容易处理。核心概念:fetch(url,[options]):这是fetchAPI的核心函数。它接受一个URL作为第一个参数,可选地接受一个包含请求配置的options对象作为
- unity编辑器报错Microsoft Visual C# Compiler version
LIGHTINEYES
unityC#microsoftunityc#编辑器
Microsoft®VisualC#Compilerversion2.9.1.65535(9d34608e)Copyright©MicrosoftCorporation.unity中设置的api版本问题,修改设置就可以了
- Django视图与URLs路由详解
m0_74824802
面试学习路线阿里巴巴django数据库sqlite
在DjangoWeb框架中,视图(Views)和URLs路由(URLrouting)是Web应用开发的核心概念。它们共同负责将用户的请求映射到相应的Python函数,并返回适当的响应。本篇博客将深入探讨Django的视图和URLs路由系统,提供实际的代码示例和操作指导,确保读者能够具体而实际地了解如何使用这些功能来构建健壮的Web应用。目录Django视图与URLs路由详解一、理解Django视图
- Unity编辑器扩展C#遍历文件夹以及子目录下的所有图片
charlsdm
C#Unityunity编辑器c#
下边是我自己写的编辑器扩展关于遍历文件夹下边以及子目录下的所有图片,仅提供参考[MenuItem("编辑器扩展关于图集/C#遍历文件夹以及子目录下的所有图片")]staticvoidRefreshAllPicture(){string[]DebugAllImage=newstring[]{};DebugAllImage=KnowAllPicture(
- 2024.1.2版本Android Studio gradle下载超时问题处理
粤M温同学
Androidandroidstudioandroid
一、问题背景在项目的根build.gradle里面配置了以下地址后,依旧下载gradle包失败,平常如果出现第三方库或者gradle下载失败,配置以下地址,一般可以下载成功maven{url'https://maven.aliyun.com/repository/public'}maven{url'https://maven.aliyun.com/nexus/content/groups/publ
- React(6)
一路向前的月光
react.jsjavascript前端
useEffect的基础使用useEffect是一个ReactHook函数,用于在React组件中创建不是由事件引起而是由渲染本身引起的操作,比如发送AJAX请求,更改DOM等等import{useEffect,useState}from"react";//是用于组件创建不是由时间引起而是渲染本身引起的操作比如发送请求//页面加载完成获取数据constURL='http://geek.itheim
- 国产编辑器EverEdit - 光标位置跳转
彩虹小黑馬
妙用编辑器编辑器EverEditEmEditorNotepad
1光标位置跳转1.1应用场景 某些场景下,用户从当前编辑位置跳转到别的位置查阅信息,如果要快速跳转回之前编辑位置,则可以使用光标跳转相关功能。1.2使用方法1.2.1上一个编辑位置跳转到上一个编辑位置,即文本修改过的位置。选择主菜单查找->光标位置->上一个编辑位置。1.2.2下一个编辑位置跳转到下一个编辑位置。选择主菜单查找->光标位置->下一个编辑位置。1.2.3上一个光标位置跳转到上一个光
- 【Apache Paimon】-- 16 -- 利用 paimon-flink-action 同步 kafka 数据到 hive paimon 表中
oo寻梦in记
ApachePaimonapacheflinkkafkaapachepaimonpaimon
目录引言CDC技术概述2.1什么是CDC2.2CDC的应用场景Kafka作为CDC数据源的原理与优势3.1Kafka的基本架构3.2Kafka在CDC中的角色
- Visual Studio 中的键盘快捷方式大全
一岁就可帅-
经验分享visualstudio计算机外设c语言开发语言经验分享笔记
VisualStudio中的键盘快捷方式大全官方版VisualStudio中的键盘快捷方式大全官方版生成:常用快捷方式调试:常用快捷方式编辑:常用快捷方式文件:常用快捷方式项目:常用快捷方式重构:常用快捷方式工具:常用快捷方式视图:常用快捷方式窗口:常用快捷方式生成:常用快捷方式命令键盘快捷键命令ID生成解决方案Ctrl+Shift+B生成.生成解决方案取消Ctrl+Break生成.取消编译Ctr
- 【ElasticSearch】踩坑 对terms的buckets进行bucket_sort排序
Musecho
javaelasticsearch数据分析数据结构es
【ElasticSearch】踩坑对terms的buckets进行bucket_sort排序1.需求和实现选出可用性最高的前15个数据展示:先按照key_id.keyword进行url分组,然后子聚合算出可用性,再用bucket_sort对avail_perc排序,size取15。然后我觉得反正只要15个,terms的size也取了15。以下是实现的es语句GET/aaa/_search{"que
- Python环境搭建与量化交易开发入门指南
量化投资技术
量化科普Python量化miniQMTQMT量化交易量化投资
Python环境搭建与量化交易开发入门指南在量化交易领域,Python因其强大的数据处理能力和丰富的库支持而成为首选编程语言。本文将指导您如何在本地搭建一个适合量化交易的Python环境,并介绍一些常用的代码编辑器和工具。《QMT开通规则分享》更多内容,知识星球搜索:数据与交易Python安装方式一:官网安装(推荐)首先,访问Python官网下载适合的版本。由于xtquant库目前最高支持到Pyt
- QT模型/视图结构之概述
华衣在盛
Qt5学习笔记qt开发语言
引言Qt的模型视图结构分为三部分,模型(model)、视图(view)、代理(Delegate)。其中,模型与数据源通信,并为其他不见提供接口;而视图从模型中获得用来引用数据条目的模型索引(ModelIndex)。在视图中,代理负责绘制绘制数据条目,当编辑条目时,代理和模型直接进行通信。模型/视图/代理之间通过信号和槽进行通信。它们之间的关系如下:数据发生变化时,模型发出信号通知视图。用户对界面进
- Stream的peek和map的区别
embelfe_segge
javajava后端
JDK对两者介绍:Streampeek(Consumeraction)返回由该流的元素组成的流,另外在从生成的流中消耗元素时对每个元素执行提供的操作。Streammap(Functionmapper)返回由给定函数应用于此流的元素的结果组成的流。1.接收的参数不同。peek接收的参数类型为Consumer,而map接收的参数类型为Function。@FunctionalInterfacepubli
- 面试官:工作中,你有遇到过Spring事务失效的时候吗?
孙悟饭Z
springjava数据库
在日常开发中,Spring事务管理是保证数据一致性的重要手段,但你是否遇到过明明加了@Transactional注解,事务却“神秘失效”的情况?这种问题不仅让新手抓狂,连老司机也偶尔翻车。本文总结了12种常见的Spring事务失效场景,结合代码示例和解决方案,帮你彻底避开这些坑!目录一、访问权限问题二、final或static方法三、方法内部调用1.使用AOP的AopContext2.注入自身四、
- curl 命令行 url 中传递中文参数的方法
curl中文乱码
当我们在命令行中使用curl请求某些url时,如果参数中包含了中文,则需要对其进行urlencode编码,才能正常的传递到服务端,之前一直先转码再curl,后来发现其自带了编码选项--data-urlencode,如下:curl\-Ghttps://www.yoursite.com/search\--data-urlencode'wd=我的'即可正常发送中文参数至服务端。
- CTFHub |文件上传 (无验证, 前端验证, .haccess绕过, MIME绕过, 00截断, 双写后缀, 文件头检查)
Coding Happily
CTF网络安全安全
CTFHub|文件上传无验证使用工具:中国剑蚁(D:\AntSword_Loader\AntSword-Loader-v4.0.3-win32-x64\AntSword.exe)在下载这个工具的时候,浏览器拦截说有病毒。使用gitclone下载。十分丝滑。先上传文件a.php页面回显文件被放在:/load/a.php中打开中国剑蚁,右键添加数据,输入url(http://xxx.com/load/
- 2.7 ContextLoader详解
不听话的小耳朵
springtestspringjunit
ContextLoader详解与示例ContextLoader是SpringTest中用于加载ApplicationContext的核心接口,通过自定义ContextLoader,开发者可以完全控制Spring上下文的创建过程。它在以下场景中尤为重要:动态生成配置(如根据环境变量调整Bean定义)。集成外部工具(如Testcontainers动态获取数据库URL)。替代默认配置加载方式(如混合XM
- 科普:“URL”与“URI”(及URN)
人工干智能
应用架构网络
“URL”与“URI”是两个在Web开发中经常提到的概念,它们之间存在一定的联系和区别。一、定义URL(UniformResourceLocator):统一资源定位符,用于在互联网上完整地描述网页和其他资源的位置。它提供了访问资源所需的全部信息,包括协议、主机名、端口号(可选)、路径、查询字符串(可选)和片段标识符(可选)。URI(UniformResourceIdentifier):统一资源标识
- Python调用NVIDIA的Deepseek-r1接口
ljz2016
pythonandroidjavascript
importosimportjsonfromopenaiimportOpenAIfromopenaiimportOpenAIErrorclient=OpenAI(base_url="https://integrate.api.nvidia.com/v1",api_key=os.getenv("NVIDIA_API_KEY"))#初始化对话历史#定义存储对话历史的JSON文件路径HISTORY_FI
- qt+ffmpeg 实现音视频播放(二)之音频播放
码农客栈_V13427279549
ffmpeg音视频Qtqtffmpeg音视频
一、音频播放流程1、打开音频文件通过avformat_open_input()打开媒体文件并分配和初始化AVFormatContext结构体。函数原型如下:intavformat_open_input(AVFormatContext**ps,constchar*url,AVInputFormat*fmt,AVDictionary**options);参数说明:-`ps`:指向`AVFormatCo
- Spring事务注解配置
anyeoo
一天一点点Spring事务注解配置
一,spring基于注解式的事务配置方法:@Transactional1.xml配置2.常用事物注解:2.1readOnly主要用于查询中:@Transactional(readOnly=true)用于客户代码只读但不修改数据的情形,只读事务用于特定情景下的优化,比如使用Hibernate的时候。默认为读写事务2.2rollbackFor对于增删改查时的回滚,默认情况下checked except
- 2.3 事务控制注解
不听话的小耳朵
springtestjunitspringjava
事务控制注解详解SpringTest通过事务管理确保测试数据的隔离性,避免测试间的数据污染。以下是与事务控制相关的核心注解及其使用场景,结合代码示例说明其工作机制。1.@Transactional作用在测试方法或类上启用事务管理:所有数据库操作在事务内执行,默认在方法结束后回滚。隔离测试数据:确保每个测试方法的数据变更不会影响其他测试或持久化到数据库。使用场景测试数据库增删改操作(如save、up
- Win11华硕笔记本打不开edge浏览器怎么办?
xhp618
笔记1edge前端
win11是微软新推出的系统,还不是很稳定,很多用户在使用过程中都有遇到一些小问题,如华硕笔记本用户安装win11后打不开edge浏览器了,这该怎么办?下面我们就来看看详细的解决方法。具体步骤如下:1、首先按下快捷键“win+r”进入windows设置界面。编辑2、然后在搜索框中输入“用户账户控制”。编辑3、点击进入之后,将下方的滑块划动至上半部分。编辑4、然后点击“确定”,并重启计算机,打开ed
- 如何利用github issue写个人博文
spruceatmc
jsongithubjavascript
如何利用githubissue写个人博文spruce2022/06/15不用消耗gitee仓库空间啦我的博客地址:我的博客,请在原地址查看文档,禁止转载javascript竟然能获取api信息!!!以下是如何用javascriptgetjson的请求注:githubapi:api.github.comvarurl="index.json";//json链接varrequest=newXMLHttp
- Kivy 模块使用python语言编译android可用的apk——开篇
静候光阴
Kivy编译apk技术全面解析androidpythonkivyubntulinuxbuildozer
本专栏目标,是将使用kivy库编辑的python语言文件,通过编译可以直接在android环境下执行的apk(亲测鸿蒙可用)。学习本专栏前,请学习kivy的基本操作,可以参考我之前的免费专栏内容:《Python+Kivy(App开发)从入门到实践》自学笔记:Python文件+.kv文件实现“Helloworld”_kivykv文件_静候光阴的博客-CSDN博客由于编译过程中依赖安装和配置问题会造成
- Android网络技术——HttpUrlConnection和OkHttp
penghc_xhs
Android第一行代码android
Android网络技术——HttpUrlConnection和OkHttpHttpURLConnection是一个abstract类,可用于发起网络请求OkHttp不仅在接口封装上做得简单易用,就连在底层实现上也是自成一派,比起原生的HttpURLConnection,可以说是有过之而无不及,现在已经成了广大Android开发者首选的网络通信库一、布局设置注:ScrollView容器用于滚动内部的
- web安全HTTP协议基础
飞飞鱼_
web安全web安全
1、HTTP方法请求方法描述GET请求获取URL资源POST执行操作,请求URL资源后附加新的数据HEAD只获取资源响应消息的报头PUT请求服务器存储一个资源DELETE请求服务器删除资源TRACE请求服务器回送到的信息OPTIONS查询服务器的支持选项2、URL常见URL格式:protocol://[user[:password]@]hostname[:post]/[path]/file[?pa
- Hive数据库及表操作
亦576
hive数据库hadoop
数仓原理以及Hive入门:数仓原理:数仓(DataWarehouse)是用于支持企业决策的数据存储和分析系统。数仓原理包括以下几个方面:1.数据抽取(Extraction):从各个业务系统中抽取数据,并进行清洗和转换,以适应数仓的数据模型。2.数据存储(Storage):将清洗和转换后的数据存储到数仓中,通常使用关系型数据库或大数据存储技术来存储大量的数据。3.数据整合(Integration):
- 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