# Elm **Repository Path**: luan-nian_0/Elm ## Basic Information - **Project Name**: Elm - **Description**: 天津大学2023级软件工程中级实践项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-11 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目部署指南 ## 目录 - [环境要求](#环境要求) - [安装步骤](#安装步骤) - [安装相关环境](#安装相关环境) - [运行项目](#运行项目) - [使用现成的脚本](#1-使用现成的脚本) - [分别构建前后端](#2-分别构建前后端) - [文件相关含义介绍](#文件相关含义介绍) - [项目架构介绍](#项目架构介绍) - [使用的技术栈](#使用的技术栈) ## 环境要求 在开始之前,请确保您的系统满足以下要求: - 操作系统:Windows - Node.js:版本 14 或更高 - npm 包管理工具 - Maven:版本 3.6 或更高 - Git:已安装并配置 ## 安装步骤 ### 安装相关环境 1. **安装 Node.js 和 npm** 请从 [Node.js 官方网站](https://nodejs.org/) 下载并安装适合您操作系统的版本。安装完成后,使用以下命令验证安装: ```bash node -v npm -v ``` 2. **确保 Java 版本** 请确保您的系统已安装 Java 且版本大于 13。您可以使用以下命令验证: ```bash java -version ``` 3. **安装 Maven** 请从 [Maven 官方网站](https://maven.apache.org/) 下载并安装 Maven。 将安装好的maven添加到环境变量,并可以使用如下命令验证: ```bash mvn -v ``` 4. **克隆项目代码库** 使用以下命令克隆代码库到本地: ```bash git clone https://gitee.com/luan-nian_0/Elm.git cd Elm ``` ## 运行项目 ### 1. 使用现成的脚本 在项目文件夹中双击ELM.bat文件,等待相关安装部署结束。如果遇到问题,请参考**方法二**手动构建和运行项目。 ### 2. 分别构建前后端 1. **构建后端服务** 使用 Maven 构建后端服务: ```bash cd elm ``` 删除elm/target文件(如有) ```bash mvn package java -jar target/myapp-1.0.jar ``` 2. **构建前端项目** 打开新的命令行窗口 使用以下命令构建前端生产版本: ```bash cd elmclient npm build npm run serve ``` ## 文件相关含义介绍 - `elm/`:后端服务代码目录,包含业务逻辑和数据处理。 - `elmclient/`:前端项目代码目录,基于 Vue 框架开发的用户界面。 - `target/`:后端服务的构建输出目录,包含生成的 `.jar` 文件。 - `doc/`:相关文档。 - `ELM.bat`:一键运行脚本,用于快速安装和启动项目。 - 更多文档相关:[latex项目文档](https://gitee.com/dzq78/elm_tex.git) ## 项目架构简介 本项目采用前后端分离架构: - **后端**:基于 Java 开发,使用 Spring Boot 框架,负责处理业务逻辑、数据存储和接口服务。 - **前端**:基于 Vue.js 开发,提供用户界面和交互功能,通过 API 与后端通信。 ## 使用的技术栈 - **后端**: - 编程语言:Java - 框架:Spring Boot - 构建工具:Maven - **前端**: - 编程语言:JavaScript - 框架:Vue.js - 包管理工具:npm ## 虚拟钱包功能概述 - 新增钱包充血领域模型 `VirtualWallet`,负责余额、奖励、冻结与透支等核心规则。 - 引入双分录交易流水表 `wallet_transaction`,每条流水同时记录入账/出账钱包账号与交易类型。 - 提供策略接口与默认实现:充值奖励策略、提现手续费策略、转账校验策略、透支额度策略,可通过接口动态调整。 - 通过 `WalletApplicationService` 编排充值、提现、转账、冻结解冻等流程,实现 Controller 贫血、Service 充血的 DDD 设计。 - 新增 `/api/wallets` 系列接口用于钱包管理、流水查询与规则配置,详见 Swagger 文档。 ## 积分系统功能概述 - 支持多渠道积分获取:下单完成按规则赠分、每日签到赠分,规则可配置渠道、比例/固定值、有效期与启用状态。 - 积分账户与批次管理:账户汇总总积分/已过期积分;按批次记录余额与到期时间,消费时按到期时间先到先用,过期自动扣除。 - 积分消费与抵扣:结算时可用积分抵扣(100 积分=1 元),消费会按批次扣减并记录流水;支持积分商城兑换优惠券。 - 明细与到期查询:提供余额查询、流水明细、积分批次(即将到期)查询接口,前端可展示获取/消费/过期记录及到期提醒。 - 规则与接口:`/api/points` 系列接口覆盖余额、明细、批次、赚取、消费、签到、规则查询/更新和积分说明,详见 Swagger 文档。