编辑 | blame | 历史 | 原始文档

积分管理系统后端

项目简介

积分管理系统后端,基于Spring Boot 2.6.10 + MyBatis Plus + PostgreSQL开发,支持积分规则设置、个人积分看板、单位积分看板等功能。

技术栈

  • 框架: Spring Boot 2.6.10
  • ORM: MyBatis Plus 3.5.1
  • 数据库: PostgreSQL 42.3.3
  • 连接池: Druid 1.2.8
  • 缓存: Redis
  • 文件存储: MinIO 8.4.3
  • API文档: Knife4j 3.0.3
  • 工具库: Hutool 5.8.0, FastJSON 2.0.7

功能模块

1. 积分规则设置

  • 积分获取规则配置
  • 积分消耗规则配置
  • 积分转换规则配置
  • 支持每日积分上限设置

2. 个人积分看板

  • 个人积分统计(余额、累计获取、累计消耗、累计转换)
  • 个人积分流水明细
  • 支持按时间、数据类目、数据类型筛选

3. 单位积分看板

  • 单位积分统计
  • 单位积分流水明细
  • 支持按年、月、日、自定义时间筛选
  • 积分分类统计(获取、消耗、转换)

数据库设计

主要表结构

  1. points_rule - 积分规则表
  2. points_flow - 积分流水表
  3. user_points - 用户积分表

数据库兼容性

  • 支持PostgreSQL数据库
  • 兼容达梦数据库(使用通用SQL语法)

快速开始

环境要求

  • JDK 1.8+
  • Maven 3.6+
  • PostgreSQL 12+
  • Redis 6+
  • MinIO

安装步骤

  1. 克隆项目
    bash git clone <project-url> cd WEB-MANAGE-BACK

  2. 配置数据库
    ```bash

    创建数据库

    psql -U postgres -c "CREATE DATABASE web_manage;"

执行初始化脚本

psql -U postgres -d web_manage -f src/main/resources/sql/init.sql
```

  1. 修改配置
    编辑 src/main/resources/application.yml,修改数据库、Redis、MinIO配置

  2. 启动项目
    bash mvn spring-boot:run

  3. 访问API文档
    http://localhost:8080/admin/doc.html

已实现的模块

1. 产品定价管理模块 ✅

  • 产品定价的增删改查
  • 价格策略管理
  • 批量操作支持

2. 订单管理模块 ✅

  • 订单创建、查询、详情查看
  • 订单状态管理
  • 订单附件上传
  • 订单评价管理
  • 交易确认流程
  • 雪花算法生成唯一订单编号

3. 审批管理模块 ✅

  • 订单审批流程
  • 审批记录管理
  • 授权审批机制
  • 审批状态跟踪

4. 积分管理模块 ✅

  • 积分规则配置
  • 个人/单位积分流水
  • 积分统计查询
  • 根据规则自动计算积分
  • 每日积分上限校验

5. 购物车模块 ✅

  • Redis缓存 + 数据库持久化
  • 购物车商品增删改查
  • 数据同步与一致性检查
  • 批量操作支持
  • 自动过期管理

技术特性

  • 双重存储: Redis提供高性能缓存,数据库保证数据持久化
  • 数据同步: 实时同步Redis与数据库数据,确保一致性
  • 容错机制: Redis故障时自动降级到数据库查询
  • 过期管理: 购物车数据30天自动过期,节省存储空间
  • 事务支持: 关键操作使用事务保证数据完整性

API接口

产品定价管理

  • POST /api/pricing/page - 分页查询产品定价
  • POST /api/pricing/add - 新增产品定价
  • POST /api/pricing/update - 修改产品定价
  • DELETE /api/pricing/{id} - 删除产品定价
  • GET /api/pricing/product/{productId} - 根据产品ID查询定价

订单管理

  • POST /api/order/buyer/page - 分页查询买家订单列表
  • POST /api/order/seller/page - 分页查询卖家订单列表
  • POST /api/order/approval/page - 分页查询待审批订单列表
  • GET /api/order/detail/{orderId} - 获取订单详情
  • POST /api/order/attachment/upload - 上传订单附件
  • POST /api/order/evaluation/add - 添加订单评价
  • POST /api/order/transaction/confirm - 确认交易
  • POST /api/order/evaluation/reply - 回复评价

审批管理

  • POST /api/approval/page - 分页查询审批记录
  • POST /api/approval/pending/page - 分页查询待审批订单
  • GET /api/approval/order/{orderId} - 根据订单ID查询审批记录
  • POST /api/approval/approve - 审批订单
  • POST /api/approval/authorize/{approvalId} - 授权审批
  • GET /api/approval/status/{orderId} - 获取订单当前审批状态

积分管理

  • POST /api/points/rule/page - 分页查询积分规则
  • POST /api/points/rule/add - 新增积分规则
  • POST /api/points/rule/update - 修改积分规则
  • DELETE /api/points/rule/{id} - 删除积分规则
  • POST /api/points/rule/toggle/{id} - 启用/禁用积分规则
  • GET /api/points/rule/type/{ruleType} - 根据规则类型查询启用的规则
  • POST /api/points/flow/personal/page - 分页查询个人积分流水
  • POST /api/points/flow/unit/page - 分页查询单位积分流水
  • GET /api/points/flow/user/{userId} - 根据用户ID查询积分流水
  • GET /api/points/flow/unit/{unitId} - 根据单位ID查询积分流水
  • POST /api/points/flow/add - 新增积分流水(根据规则自动计算)
  • POST /api/points/flow/add/personal - 新增个人积分流水
  • POST /api/points/flow/add/unit - 新增单位积分流水
  • GET /api/points/total/user/{userId} - 获取用户积分统计
  • GET /api/points/total/unit/{unitId} - 获取单位积分统计

文件管理

  • POST /api/file/upload - 文件上传
  • GET /api/file/download/{fileName} - 文件下载
  • GET /api/file/preview/{fileName} - 文件预览
  • DELETE /api/file/{fileName} - 文件删除

购物车管理

  • POST /api/cart/add - 添加商品到购物车
  • DELETE /api/cart/remove - 从购物车移除商品
  • PUT /api/cart/update - 更新购物车商品数量
  • DELETE /api/cart/clear - 清空购物车
  • GET /api/cart/info - 获取购物车信息
  • GET /api/cart/items - 获取购物车商品列表
  • DELETE /api/cart/batch-remove - 批量删除购物车商品
  • GET /api/cart/count - 获取购物车商品数量
  • POST /api/cart/sync-to-db - 同步Redis数据到数据库
  • POST /api/cart/load-from-db - 从数据库加载数据到Redis
  • GET /api/cart/consistency - 检查数据一致性

订单编号

  • 采用雪花算法生成唯一订单号
  • GET /api/order/no/new - 生成唯一订单号(调试/前置占号可用)

配置项(application.yml)

snowflake:
  worker-id: 1          # 0-31
  datacenter-id: 1      # 0-31
  twepoch-ms: 1577808000000  # 2020-01-01 00:00:00,勿随意变更

如不配置,默认使用上述值。

项目结构

src/main/java/com/webmanage/
├── WebManageApplication.java          # 主启动类
├── common/                           # 公共组件
│   ├── Result.java                   # 统一响应结果
│   ├── PageResult.java               # 分页响应结果
│   ├── BusinessException.java        # 业务异常
│   ├── FileUploadException.java      # 文件上传异常
│   └── GlobalExceptionHandler.java   # 全局异常处理器
├── config/                           # 配置类
│   ├── MinioConfig.java              # MinIO配置
│   └── MybatisPlusConfig.java       # MyBatis Plus配置
├── entity/                           # 实体类
│   ├── ProductPricing.java           # 产品定价实体
│   ├── OrderInfo.java                # 订单信息实体
│   ├── OrderDetail.java              # 订单详情实体
│   ├── OrderAttachment.java          # 订单附件实体
│   ├── OrderEvaluation.java          # 订单评价实体
│   ├── ApprovalRecord.java           # 审批记录实体
│   ├── PointsRule.java               # 积分规则实体
│   ├── PointsFlow.java               # 积分流水实体
│   └── UserPoints.java               # 用户积分实体
├── dto/                              # 数据传输对象
│   ├── OrderQueryDTO.java            # 订单查询条件
│   ├── ApprovalQueryDTO.java         # 审批查询条件
│   ├── ApprovalActionDTO.java        # 审批操作
│   ├── PointsRuleDTO.java            # 积分规则
│   ├── PointsFlowQueryDTO.java       # 积分流水查询条件
│   ├── AddPointsFlowDTO.java         # 新增积分流水
│   ├── CartItemDTO.java              # 购物车商品项
│   └── CartQueryDTO.java             # 购物车查询条件
├── vo/                               # 视图对象
│   ├── OrderDetailVO.java            # 订单详情视图
│   ├── OrderDetailItemVO.java        # 订单详情项视图
│   ├── OrderAttachmentVO.java        # 订单附件视图
│   ├── OrderEvaluationVO.java        # 订单评价视图
│   ├── CartVO.java                   # 购物车视图
│   └── CartItemVO.java               # 购物车商品项视图
├── mapper/                           # 数据访问层
│   ├── ProductPricingMapper.java     # 产品定价Mapper
│   ├── OrderInfoMapper.java          # 订单信息Mapper
│   ├── OrderDetailMapper.java        # 订单详情Mapper
│   ├── OrderAttachmentMapper.java    # 订单附件Mapper
│   ├── OrderEvaluationMapper.java    # 订单评价Mapper
│   ├── ApprovalRecordMapper.java     # 审批记录Mapper
│   ├── PointsRuleMapper.java         # 积分规则Mapper
│   ├── PointsFlowMapper.java         # 积分流水Mapper
│   └── UserPointsMapper.java         # 用户积分Mapper
├── service/                          # 业务逻辑层
│   ├── MinioService.java             # MinIO服务
│   ├── ProductPricingService.java    # 产品定价服务
│   ├── OrderInfoService.java         # 订单信息服务
│   ├── ApprovalRecordService.java    # 审批记录服务
│   ├── PointsRuleService.java        # 积分规则服务
│   ├── PointsFlowService.java        # 积分流水服务
│   └── CartService.java              # 购物车服务
├── service/impl/                     # 业务逻辑实现
│   ├── ProductPricingServiceImpl.java # 产品定价服务实现
│   ├── OrderInfoServiceImpl.java     # 订单信息服务实现
│   ├── ApprovalRecordServiceImpl.java # 审批记录服务实现
│   ├── PointsRuleServiceImpl.java    # 积分规则服务实现
│   ├── PointsFlowServiceImpl.java    # 积分流水服务实现
│   └── CartServiceImpl.java          # 购物车服务实现
└── controller/                       # 控制器层
    ├── ProductPricingController.java # 产品定价控制器
    ├── OrderController.java          # 订单管理控制器
    ├── ApprovalController.java       # 审批管理控制器
    ├── PointsController.java         # 积分管理控制器
    ├── CartController.java           # 购物车管理控制器
    └── FileController.java           # 文件管理控制器

数据库表结构

核心业务表

  • product_pricing - 产品定价表
  • order_info - 订单信息表
  • order_detail - 订单详情表
  • order_attachment - 订单附件表
  • order_evaluation - 订单评价表
  • approval_record - 审批记录表

积分管理表

  • points_rule - 积分规则表
  • points_flow - 积分流水表
  • user_points - 用户积分表

系统配置表

  • points_rule - 积分规则配置表

配置说明

数据库配置

spring:
  datasource:
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql://localhost:5432/web_manage
    username: postgres
    password: 123456

Redis配置

spring:
  redis:
    host: localhost
    port: 6379
    password: 
    database: 0

MinIO配置

spring:
  minio:
    endpoint: http://localhost:9000
    access-key: minioadmin
    secret-key: minioadmin
    bucket-name: web-manage

部署说明

开发环境

mvn spring-boot:run

生产环境

mvn clean package
java -jar target/web-manage-back-1.0.0.jar

注意事项

  1. 数据库初始化脚本需要根据实际环境调整
  2. 用户认证和权限控制需要根据实际业务需求实现
  3. 积分计算逻辑需要根据实际业务规则调整
  4. 建议在生产环境中配置适当的日志级别

联系方式

如有问题,请联系开发团队。

待开发功能

已完成功能 ✅

  • [x] 产品定价管理模块
  • [x] 交易管理模块(买家中心)
  • [x] 交易管理模块(卖家中心)
  • [x] 审批管理模块
  • [x] 积分管理模块
  • [x] 购物车管理模块

待完善功能 🔄

  • [ ] 产品定价管理的前端页面
  • [ ] 订单管理的前端页面
  • [ ] 审批管理的前端页面
  • [ ] 积分管理的前端页面
  • [ ] 购物车管理的前端页面
  • [ ] 用户认证和权限管理
  • [ ] 工作流引擎集成
  • [ ] 消息通知系统
  • [ ] 数据统计和报表
  • [ ] 系统监控和日志
  • [ ] 单元测试和集成测试