DAV--接口

/dashboard/getDatasetList 获取工作表

两个参数: 大屏id 工作表id ------------------ 一般情况下,只需上传一个参数,或者不传参数

1. 获取登录用户  String userId = SecurityUtil.getUserId();

2. 获取某个大屏的用户工作表集合 (有大屏id)

        根据大屏id查询所有的工作表详情

        根据用户进行过滤

              若无其他用户的文件:设置好权限相关参数,将数据转化为前端要求的格式

              若有其他用户的文件:查询数据库中(资源类型为dataset的)分享资源

                                                    根据资源id进行分组,资源权限取最大的

                                                    自己的dataset和别人分享的dataset分别设置权限

    获取工作表详情 (有工作表id)

    获取用户所有的工作表集合 (无参数)

             判断Redis中是否存在缓存:Redis有,计算redisKey(拼接了 user_id 和 resType),判断redis中是否有工作表集合(通过redisTemplate.hasKey(key)来实现),redis有就查询缓存。Redis没有,从数据库中查询拼接VO对象,返回结果并存入缓存。

/dashboard/getCategoryList 获取目录(文件夹?)

两个参数: 目标类别categoryPurpose 用户id(userId 非必须) 

ex.

categoryPurpose=CATEGORY_FOR_BOARDA ------------------我的大屏目录

categoryPurpose=CATEGORY_FOR_DATASET------------------工作表目录

1. 根据参数中的categoryPurpose来设置CategoryType的内容,获取userId

2. 判断config.properties中cache.redis.enable的配置是否为true

    开启了Redis:Redis中是否有符合userId和categoryPurpose的缓存:根据参数情况拼接用于检索Redis的categoryKey,redisTemplate.hasKey(categoryKey)返回true/false。有缓存检索缓存,没有缓存查询数据库并放入缓存。

   未开启Redis:查询数据库

/crossgroup/getNodes 获取节点

节点??

/text/uploadFilesToTextDataset 上传文件至文本数据集

1. ServletFileUpload.isMultipartContent(request)判断是否为文件上传请求

2. 从参数batchInfo里获取batchId、isCompleted等必要信息

3. 为文件上传请求,文件上传服务器,同时更新信息到缓存,返回一次结果

4. 会第二次调用接口,这次为非文件上传请求,判断isCompleted,获取缓存中的上传文件信息,校验上传文件信息是否为空/上传文件数量是否一致,打印文件信息并返回结果

/text/confirmTextDataset 信息确认--选中哪个sheet页等信息

参数:选中的sheet页信息---textDataset

1. json化textDataset,并取一些必要信息

2. 获取文本数据源处理服务(涉及到FileDataProvider和DataProviderManager)

    逻辑比较复杂,我难以理解

3. 

  

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

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

相关文章

laravel系列(二) Dcat admin框架开发工具使用

开发工具可以非常好的帮助我们去快速的开发CURD等操作,但也是有部分框架有些不是太便捷操作,这篇博客主要为大家介绍Dcat admin的开发工具详细使用. 如何创建页面: 在联表我们首先要去.env文件中去找连接数据库方法: APP_NAMELaravel APP_ENVlocal APP_KEYbase64:thO0lOVlzj0…

VR数字工厂,为企业工厂打造竞争新优势

工业经济中大部分行业都是制造业,为了合力助推工业经济提质增效,谋划推进制造业数字化转型就显得尤为重要了。用VR赋能工厂数字升级,打造VR数字工厂,满足各行各业沉浸式营销展示需求。 VR数字工厂是一种全新的工业模式&#xff0c…

【数据结构-队列】双端队列

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

Leangoo领歌scrum敏捷工具全面免费666

​ 转发自:Leangoo.com 尊敬的各位leangoo领歌用户,您好! 非常感谢您一直以来对leangoo领歌的支持,我们本着体验第一,用户至上的精神,为用户提供最敏捷的研发管理工具,至今获得了广大用户的一…

【前端开发】JS Vue React中的通用递归函数

文章目录 前言一、递归函数的由来二、功能实现1.后台数据2.处理数据3.整体代码 总结 前言 大家好,今天和大家分享一下在前端开发中js,vue,react的通用递归方法。 递归是指一个函数在执行过程中调用自身的行为。通过递归,可以将一…

特殊矩阵的压缩存储(对称矩阵,三角矩阵和三对角矩阵)

目录 1.对阵矩阵 2.三角矩阵 3.三对角矩阵(带状矩阵) 均假设数组的下标从0开始 1.对阵矩阵 定义:若对一个n阶矩阵A中的任意一个元素 aᵢ,ⱼ 都有aᵢ,ⱼaⱼ,ᵢ (1≤i,j≤n),则称其为对称矩阵。 存储策略…

Cookie、Session和Token三者区别以及各自应用场景

一、三者区别 存储位置:Session和Cookie分别存储在服务器端和客户端,而Token则是在客户端和服务器端之间传递的。安全性:Session相对于Cookie来说更安全,因为Session存储在服务器端,不容易被恶意攻击者获取。而Cookie…

在C/C++中使用vcpkg

文章目录 介绍vcpkg 入门安装vcpkg为您的项目安装库将 vcpkg 与 CMake 结合使用 介绍 如今,现代语言(例如Go)通常提供集成的包管理来提取库的所有依赖项。然而,许多软件都是用 C/C 创建和维护的,并且没有现成的包管理…

【canal系】canal集群异常Could not find first log file name in binary log index file

这里先说明下这边使用的canal版本号为1.1.5 在描述这个问题之前,首先需要简单对于canal架构有个基本的了解 canal工作原理 canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL master 收到 dum…

【精读Uboot】SPL阶段的board_init_r详细分析

对于i.MX平台上的SPL来说,其不会直接跳转到Uboot,而是在SPL阶段借助BOOTROM跳转到ATF,然后再通过ATF跳转到Uboot。 board_init_f会初始化设备相关的硬件,最后进入board_init_r为镜像跳转做准备。下面是board_init_r调用的核心函数…

C++ 多线程

目录 目录 多线程的创建与执行 多线程的互斥 1. 创建一个mutex对象&#xff0c;lock(),unlock() 2. 借助lock_guard 3. unique_lock: lock_guard的升级加强版 多线程的创建与执行 1. C借助标准库<thread>来实现。将函数名放入线程中即可&#xff0c;如果函数有参数…

Element--生成不定列的表格

1、对于一些场景&#xff0c;前端可能需要展示不定列数的数据&#xff1b;譬如考勤&#xff0c;可能有的人是一天一次上下班打卡&#xff0c;有的人是一天两次上下班打卡。这个时候统计就需要更具人员做不同的展示&#xff0c;不能固定在前端写死列的属性。 2、代码示例 &…

Vue + Element UI 前端篇(五):国际化实现

Vue Element UI 实现权限管理系统 前端篇&#xff08;五&#xff09;&#xff1a;国际化实现 国际化支持 1.安装依赖 执行以下命令&#xff0c;安装 i18n 依赖。 yarn add vue-i18n $ yarn add vue-i18n yarn add v1.9.4 warning package-lock.json found. Your project …

重磅:百度李彦宏、中科院曾毅入选,《时代周刊》AI最有影响力100人!

2023年9月8日&#xff0c;《时代周刊》发布了“2023年AI领域最有影响力100人” 榜单。 榜单权威吗&#xff1f; 有必要介绍下《时代周刊》。 《Time》&#xff08;时代周刊&#xff09;,1923年创刊于纽约&#xff0c;是美国公认的最重要的新闻杂志之一。《时代周刊》以报道精彩…

实例 | Python 实现 RSA 加解密

大家好&#xff0c;欢迎来到编程教室 &#xff01; 前阵子看到一篇英文文章[1]&#xff0c;展示了如何用 Python 来实现 RSA 算法。不太熟悉 RSA 的朋友可以看一下一文搞懂 RSA 算法&#xff0c;里面对什么是 RSA&#xff0c;RSA 的数学原理进行了说明&#xff0c;并举了一个简…

CTreeCtrl自绘

CSWTreeCtrl.h&#xff09; #pragma once#define _OWNER_DRAWN_TREE // 自绘CTreeCtrl&#xff0c;可支持背景图片显示功能class CSWTreeCtrl : public CTreeCtrl {DECLARE_DYNAMIC(CSWTreeCtrl)// 成员私有结构定义// 构造/析构函数 public:CSWTreeCtrl();virtual ~CSWTreeC…

pip和conda的环境管理,二者到底应该如何使用

关于pip与conda是否能混用的问题&#xff0c;Anaconda官方早就给出了回答 先说结论&#xff0c;如果conda和pip在相同环境下掺杂使用&#xff0c;尤其是频繁使用这两个工具进行包的安装&#xff0c;可能会导致环境状态混乱 就像其他包管理器一样&#xff0c;大部分这些问题均…

提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除

文章目录 探索最新AR/VR应用在教育、游戏、医疗等领域的应用教育领域游戏领域医疗领域 深入了解Android内存管理与性能优化的方法与技巧垃圾回收机制内存泄漏使用弱引用避免过度渲染内存优化图像优化延迟加载Android中的调试技术应用程序分析 分享如何提高Android应用的易用性和…

Leetcode算法入门与数组丨1. 数据结构与算法简介

文章目录 前言1 数据结构与算法1.1 数据结构1.2 算法 2 算法复杂度2.1 算法复杂度简介2.2 时间复杂度2.3 空间复杂度 3 总结 前言 Datawhale组队学习丨9月Leetcode算法入门与数组丨打卡笔记 这篇博客以及接下来几篇将会是一个 入门型 的文章&#xff0c;主要是自己学习的一个…

Java FTP按关键字批量下载文件

一、所需jar <dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.8.0</version></dependency> 二、工具类 import java.io.*; import java.net.URLConnection; import java.util.A…