/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.