news 2026/6/15 17:23:10

【图库分析|第十天】扩展空间图库分析功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【图库分析|第十天】扩展空间图库分析功能

本部分内容主要来源于鱼皮智能协图云图库部分,并在笔者个人项目学习的基础上进行扩展衍生。由于项目开发文档已经足够详细,因此这里只记录要点。

这部分内容后端较为简单,主要是熟悉业务流程,开发思路,以及mybatisplus,stream流的使用(以后一定需要找个时间专门补补)。

方案设计

1、分析类需求的实现流程

对于分析类需求,实现流程几乎都是一致的,包括:

1)数据采集:从数据源(比如 MySQL 数据库或者大数据仓库)获取原始数据。要提前明确涉及的表和字段,必要时采用分页查询处理大数据量。

2)数据预处理:对数据进行清洗、加工和格式化,包括过滤无效数据(比如逻辑删除或审核未通过)、解析复杂字段(比如 JSON 格式的 tags),以及通过字段关联补充上下文信息。

3)数据计算:根据需求进行分组、聚合、排序等,从而计算关键指标,比如计算空间各分类图片的占用比例、用户上传图片的时间趋势。可以根据场景调整计算方案,比如对于大数据量的计算,可以采用 Spark 之类的大数据计算组件做离线计算;对于数据实时性要求较高的实时分析场景,可以用 Flink 做流式处理。

4)数据存储(可选):针对频繁查询的分析结果,可将结果数据存储为单独的表或缓存,减少重复计算,提高查询效率。

5)数据接口设计:为前端提供统一接口,从而支持查询和展示。需要考虑到数据量较大导致前端渲染卡顿的情况,可以按需精简返回的字符串、分页查询等。

6)数据可视化:通过图表直观展示分析结果,前端可以使用 Apache ECharts 等可视化库渲染。当然也可以让后端生成图表图片并返回,但这种实现方法的灵活度有限。

后续还可以根据用户的反馈持续优化分析逻辑、增加指标或改进性能。

具体业务流程为:设计reuqest——>设计vo——>serviceimpl实现——>接口编写

对于serviceimpl实现:校验合法性(包括是否为空,权限校验等)——>编写wrapper——>

进行查询——>stream流处理查询结果

在这个模块开发中,通过分析需求写注释再借助ai就显得至关重要了。

典型样例:空间图片分类分析

开发请求封装类。分类分析只需要传递空间范围相关参数,因此可以直接继承公共的SpaceAnalyzeRequest

@EqualsAndHashCode(callSuper = true) @Data public class SpaceCategoryAnalyzeRequest extends SpaceAnalyzeRequest { }

2)开发响应视图类。分类分析的结果需要返回图片分类、分类图片数量和分类图片总大小:

@Data @AllArgsConstructor @NoArgsConstructor public class SpaceCategoryAnalyzeResponse implements Serializable { private String category; private Long count; private Long totalSize; private static final long serialVersionUID = 1L; }

3)开发 Service 服务。按照分类分组查询图片表的数据,注意查询数据库时只获取需要的字段即可:

@Override public List<SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyze(SpaceCategoryAnalyzeRequest spaceCategoryAnalyzeRequest, User loginUser) { ThrowUtils.throwIf(spaceCategoryAnalyzeRequest == null, ErrorCode.PARAMS_ERROR); checkSpaceAnalyzeAuth(spaceCategoryAnalyzeRequest, loginUser); QueryWrapper<Picture> queryWrapper = new QueryWrapper<>(); fillAnalyzeQueryWrapper(spaceCategoryAnalyzeRequest, queryWrapper); queryWrapper.select("category AS category", "COUNT(*) AS count", "SUM(picSize) AS totalSize") .groupBy("category"); return pictureService.getBaseMapper().selectMaps(queryWrapper) .stream() .map(result -> { String category = result.get("category") != null ? result.get("category").toString() : "未分类"; Long count = ((Number) result.get("count")).longValue(); Long totalSize = ((Number) result.get("totalSize")).longValue(); return new SpaceCategoryAnalyzeResponse(category, count, totalSize); }) .collect(Collectors.toList()); }

💡 建议在编写具体的代码前,先编写示例 SQL 语句,并通过数据库查询客户端来验证。

4)开发接口:

@PostMapping("/category") public BaseResponse<List<SpaceCategoryAnalyzeResponse>> getSpaceCategoryAnalyze(@RequestBody SpaceCategoryAnalyzeRequest spaceCategoryAnalyzeRequest, HttpServletRequest request) { ThrowUtils.throwIf(spaceCategoryAnalyzeRequest == null, ErrorCode.PARAMS_ERROR); User loginUser = userService.getLoginUser(request); List<SpaceCategoryAnalyzeResponse> resultList = spaceAnalyzeService.getSpaceCategoryAnalyze(spaceCategoryAnalyzeRequest, loginUser); return ResultUtils.success(resultList); }

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 15:01:22

计算机等级考试(三级Linux技术)--- 真题综合题集合

目录 一、知识点 一、文件操作核心命令 1. 目录操作:mkdir/rmdir/cd/pwd/ls 2. 文件复制 / 移动 / 删除:cp/mv/rm 3. 权限修改:chmod(最核心) 4. 其他高频文件操作 二、SSH 远程登录与免密配置 1. 基础 SSH 远程登录 2. SSH 免密登录(核心配置,一步到位) 步骤…

作者头像 李华
网站建设 2026/6/15 16:30:22

强化学习研究者的成长之路与技术探索

Alexander Long 原计划追随父亲的脚步&#xff0c;在石油和天然气行业工作。在他的祖国澳大利亚&#xff0c;该行业是电气工程师的主要雇主&#xff0c;因此在他于昆士兰大学获得学士学位后&#xff0c;这似乎是一条自然的道路。 2013年&#xff0c;当 Long 准备毕业时&#xf…

作者头像 李华
网站建设 2026/6/15 19:34:17

选择CDN提升WordPress博客速度

在当今的互联网环境中&#xff0c;网站加载速度不仅直接影响用户体验&#xff0c;还对 SEO 排名有着重要影响。对于使用 WordPress 创建博客的用户而言&#xff0c;利用内容分发网络&#xff08;CDN&#xff09;是提升网站性能的重要方式。值得一提的是&#xff0c;许多服务器提…

作者头像 李华
网站建设 2026/6/15 15:49:30

如何解决Vite打包后静态资源(图片/字体)报404找不到的问题

Vite开发环境下图片、字体、图标等静态资源加载正常&#xff0c;执行vite build打包部署到服务器后&#xff0c;大量静态资源返回404 Not Found&#xff0c;是前端工程化部署中最常见的问题。这类问题与资源本身无关、与代码逻辑无关&#xff0c;核心原因只有一个&#xff1a;V…

作者头像 李华
网站建设 2026/6/15 20:08:57

基于matlab的焊缝边缘检测

基于MATLAB的焊缝边缘检测算法研究与仿真 第一章 绪论 焊缝边缘检测是焊接质量检测的核心环节&#xff0c;精准的边缘提取能够为焊缝尺寸测量、缺陷识别提供基础数据&#xff0c;直接影响焊接质量评估的准确性。传统焊缝边缘检测多依赖人工目视或简易光学仪器&#xff0c;存在主…

作者头像 李华
网站建设 2026/6/14 19:07:13

基于MATLAB的汉字细化识别算法研究与仿真

基于MATLAB的汉字细化识别算法研究与仿真 第一章 绪论 汉字细化识别是字符识别领域的重要分支&#xff0c;广泛应用于手写汉字输入、文档数字化、车牌识别等场景。传统汉字识别方法直接对原始汉字图像进行特征提取&#xff0c;易受笔画粗细、书写风格差异影响&#xff0c;识别精…

作者头像 李华