销售数据分析系统
> shujufenxi-sales-analysis — 一键可运行的销售数据分析 + 可视化大屏。
功能特点
- 仪表盘
/:总销售额 / 总销量 / 客单价 / 交易笔数,ECharts 月度趋势折线图 + 品类占比饼图,品类汇总表 - 多维筛选:按关键词(产品名/销售员)、品类、地区筛选,图表与表格联动
- 数据管理
/records:新增单条、删除单条、清空全部 - CSV 导入:仪表盘上传 CSV 批量导入,表头
sale_date,product_name,category,region,quantity,unit_price,salesperson,amount自动计算 - 示例数据:内置 16 条数据,开箱即看效果
技术栈
Java 17 / Spring Boot 3.4.5 / Thymeleaf / JdbcTemplate / MySQL 8 / Bootstrap 5 / ECharts 5
安装与运行
1. 数据库
MySQL 创建库(首次启动也会自动创建):
CREATE DATABASE shujufenxi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
src/main/resources/application.properties 已配置 root/root,按需修改。
schema.sql / data.sql 启动时自动执行。
2. 启动
./mvnw spring-boot:run
# 或
./mvnw package -DskipTests && java -jar target/shujufenxi-0.0.1-SNAPSHOT.jar
访问 http://localhost:8080
3. CSV 导入示例
src/main/resources/static/sample.csv 可直接下载导入:
sale_date,product_name,category,region,quantity,unit_price,salesperson
2026-01-05,无线耳机,数码配件,华东,120,199.00,张伟
日期支持 yyyy-MM-dd 和 yyyy/MM/dd。
接口
GET /仪表盘,GET /records数据管理POST /records/addPOST /records/delete/{id}POST /records/clearPOST /importGET /api/monthlyGET /api/categoryJSON 统计(支持同筛选参数)
目录结构
src/main/java/com/shujufenxi/{entity,dto,repository,service,controller}
src/main/resources/{application.properties,schema.sql,data.sql,templates/*.html,static/sample.csv}
示例
# 导入示例数据后查看统计
curl "http://localhost:8080/api/monthly"
curl "http://localhost:8080/api/category?region=华东"