返回作品

RuoYi 开发实践项目

创建于 2025 年 7 月 17 日

标签
  • Java
  • Spring Boot 2.5
  • Shiro
  • Thymeleaf
  • MyBatis
  • MySQL 8
  • Druid
  • ECharts
  • Apache POI

项目介绍

本项目是一个以若依 RuoYi 4.8.0 单体版为底座、面向旅行社获客场景二次开发的「抖音客资管理」后台。业务背景是旅游公司通过抖音、视频号等渠道投放获取客户线索(即”客资”),需要一条完整的跟进链路:剪辑(editor)负责把各渠道来的客户资源登记入库 → 系统自动把客资指派给销售(salesman)→ 销售接收后跟进并反馈成交、无效、退款、是否出行等结果 → 经理(manager)跨组查看数据并监控团队转化情况。

核心功能

角色化数据权限。 客资列表按角色过滤:经理(manager)可看部门内全部客资,销售只能看指派给自己的(customer.setSalesmanId(userId)),剪辑只能看自己录入的(customer.setEditorId(userId));服务层再叠加 @DataScope 注解按部门数据权限二次过滤,导出接口同样复刻该过滤逻辑,避免越权导出。新增客资的剪辑下拉会自动排除离职人员(status='0'),销售/剪辑下拉均按部门分组并带”离职”折叠组。

Excel 批量导入导出。 基于若依 ExcelUtil 实现:支持下载导入模板(/importTemplate)、/importData 批量导入,导入时先查”同一剪辑最近三个月已录入过的客资”(selectExistCustomer),用 Collectors.groupingBy 将数据流拆分为新增/更新两组,新增走批量 insertCustomers,更新走 MySQL with upd as (...) update 的 CTE 批量更新;列表页支持按客资、渠道、地区、成交状态、上传/成交时间区间等多条件组合筛选并导出 Excel(/export)。

销售转化率统计看板。 统计页(templates/dy/statistics/statistics.html + DyStatisticsController.getStatisticsData)按销售聚合生成 CVR 数据:findCusDataCOUNT(c.effective = 2 OR NULL)COUNT(c.deal = 3 OR NULL) 等条件计数技巧统计客资总数、有效数、退款数、成交数、未成交数与未反馈数,成交率与有效成交率保留两位小数,后端按成交数倒序排序后以 9 组序列返回给 ECharts(macarons 主题)渲染分组柱状图;支持按剪辑(多选)、销售(多选)、渠道、地区、录入时间区间等条件钻取统计。

功能截图

暂无运行截图。