95cbff0faa9468391f7e79210d5a0c0785098c56
场外交易管理系统 (YLErp TRS)
一个基于 ASP.NET Core 的场外衍生品交易管理系统,支持场外期权、权益互换(TRS)、利率互换等多种场外衍生品业务的全生命周期管理。
项目简介
本项目是一个完整的金融场外交易管理系统(OTC - Over The Counter),主要用于金融机构管理场外衍生品交易,包括客户管理、交易录入、风险管理、结算对账、资金监控等核心功能。系统支持多公司配置,可适配不同券商和期货公司的业务需求。
核心功能
- 客户管理:完整的客户信息管理,包括客户基本信息、适当性评估、KYC 合规、资质管理等
- 交易管理:支持场外期权、权益互换、利率互换等多种衍生品交易的全流程管理
- 风险管理:实时风险监控、保证金管理、限额控制、风险预警
- 结算对账:日终结算、交易确认书生成、结算报告、外部对账
- 资金管理:出入金管理、资金监控、预付金管理、授信管理
- 报表分析:多维度统计分析、监管报表、数据导出
技术栈
- 后端框架:ASP.NET Core 6.0
- 前端技术:Razor Views + jQuery + jqGrid + SignalR
- ORM:Entity Framework Core 6.0
- 数据库:Oracle / MySQL
- 缓存:Redis
- 消息队列:Kafka
- 依赖注入:Autofac
- 日志:NLog
- 验证码:Lazy.Captcha.Core
- Excel/Word:YLErp.Office, EPPlus, NPOI
环境要求
开发环境
- 操作系统:Windows 10/11 或 Linux (CentOS/Ubuntu)
- .NET SDK:.NET 6.0 SDK
- IDE:Visual Studio 2022 (推荐) 或 VS Code
- 数据库:
- Oracle Database 11g 或更高版本(主数据库)
- MySQL 5.7 或更高版本(辅助数据库)
- 缓存:Redis 5.0 或更高版本
- 消息队列:Kafka 2.0 或更高版本
运行时环境
- 操作系统:Windows Server 2016+ 或 Linux (CentOS 7+/Ubuntu 18.04+)
- 运行时:ASP.NET Core 6.0 Runtime
- 内存:建议 4GB 以上
- 磁盘:建议 50GB 以上可用空间
安装步骤
1. 克隆代码
git clone http://infra.yiliantech.com/gitlab/otc-dev/otcdms.git
cd zszq-trs
2. 配置数据库
Oracle 数据库配置
- 安装 Oracle Database
- 创建数据库用户并授权
-- 示例 SQL
CREATE USER ylclient IDENTIFIED BY password;
GRANT CONNECT, RESOURCE TO ylclient;
- 执行数据库初始化脚本
# 数据库脚本位于 Framework/YLErp.Core/DBScripts/
sqlplus ylclient/password @Framework/YLErp.Core/DBScripts/init.sql
MySQL 数据库配置
- 安装 MySQL Server
- 创建数据库
CREATE DATABASE yldb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'yluser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON yldb.* TO 'yluser'@'%';
FLUSH PRIVILEGES;
3. 配置应用设置
- 复制并修改配置文件
cd YLErpWeb
cp appsettings.json appsettings.local.json
- 编辑
appsettings.local.json,添加数据库连接字符串等配置
{
"ConnectionStrings": {
"ylclient": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=ylclient;Password=yourpassword;",
"yldb": "Server=localhost;Port=3306;Database=yldb;User=yluser;Password=yourpassword;"
},
"RedisConfig": {
"ConnectionString": "localhost:6379,password=,defaultDatabase=0"
},
"KafkaConfig": {
"BootstrapServers": "localhost:9092",
"GroupId": "ylerp-group"
}
}
4. 安装依赖
# 使用 dotnet restore 恢复 NuGet 包
dotnet restore YLerpbase.sln
# 或使用 Visual Studio 打开解决方案,IDE 会自动恢复
5. 编译项目
方式一:使用 Visual Studio
- 打开
YLerpbase.sln - 选择配置为
Release - 右键解决方案 → "生成解决方案"
方式二:使用命令行
# 编译整个解决方案
dotnet build YLerpbase.sln --configuration Release
# 或使用提供的编译脚本
.\Publish.bat
6. 配置第三方依赖
- 第三方定价库:将
ThirdPartyLibs/目录下的 DLL 文件复制到编译输出目录 - Excel 模板:确保
YLErpWeb/App_Docs/目录下的导入/导出模板文件完整
7. 运行项目
开发环境运行
cd YLErpWeb
dotnet run
或在 Visual Studio 中按 F5 启动调试
生产环境部署
Windows:
# 发布项目
dotnet publish YLErpWeb/YLErpWeb.csproj --configuration Release --output ./publish
# 运行发布的应用程序
cd publish
dotnet YLErpWeb.dll
Linux:
# 使用 MSBuild 发布(参考 Publish.bat 中的配置)
dotnet publish YLErpWeb/YLErpWeb.csproj --configuration Release --runtime linux-x64 --self-contained false
# 使用启动脚本
cp YLErpWeb/start.prod.sh ./publish/
cd publish
chmod +x start.prod.sh
./start.prod.sh
使用示例
启动应用
应用启动后,默认监听端口 5000(开发环境),访问:
Getting started
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
不同公司的配置会影响:
- 界面显示字段
- 业务流程
- 报表模板
- 接口对接
权限配置
权限通过 Authorization 属性控制,主要权限标识:
// 示例:控制器权限控制
[Authorize(Policy = "客户管理-客户查看")]
public class ClientController : Controller
{
// ...
}
常见问题
编译错误
问题:找不到引用的 DLL 文件
解决:
- 确保
ThirdPartyLibs/目录存在且包含所有必需的 DLL - 检查项目文件中的
<HintPath>路径是否正确 - 执行
dotnet restore重新恢复依赖
数据库连接失败
问题:无法连接到 Oracle 数据库
解决:
- 检查 Oracle 服务是否启动
- 验证连接字符串格式
- 确保已安装 Oracle.ManagedDataAccess.Core 包
- 检查防火墙设置
NPE 空指针异常
问题:运行时出现 NullReferenceException
解决:
- 检查配置文件是否完整
- 确保数据库表结构正确
- 查看日志文件定位具体错误位置
缓存连接失败
问题:Redis 连接超时
解决:
- 检查 Redis 服务是否运行
- 验证 Redis 连接字符串
- 检查 Redis 防火墙配置
- 确认 Redis 密码是否正确
开发指南
代码规范
- 遵循 C# 编码规范
- 使用 XML 文档注释
- Controller 方法添加权限注释
- 新增功能编写单元测试
提交规范
提交信息格式:
<类型>: <简短描述>
详细描述(可选)
类型:
- feat: 新功能
- fix: Bug 修复
- docs: 文档更新
- style: 代码格式
- refactor: 重构
- test: 测试相关
- chore: 构建/工具相关
分支策略
master:主分支,生产环境代码develop:开发分支feature/*:功能分支hotfix/*:紧急修复分支
测试
运行单元测试:
dotnet test UnitTestProject/UnitTestProject.csproj
贡献指南
欢迎提交 Issue 和 Pull Request!
贡献流程
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
代码审查
- 确保 CI 测试通过
- 代码符合项目规范
- 添加必要的单元测试
- 更新相关文档
报告 Bug
提交 Issue 时请提供:
- 环境信息(操作系统、.NET 版本)
- 复现步骤
- 错误日志
- 预期行为
许可证
本项目为内部项目,版权归公司所有。
联系方式
- 项目负责人:[请填写]
- 技术支持:[请填写]
- GitLab:http://infra.yiliantech.com/gitlab/otc-dev/otcdms
附录
相关文档
- 客户列表功能分析文档
- 出入金和资金记录详细需求文档
- 项目文档/ - 更多技术文档
外部依赖
- EF Core 文档:https://docs.microsoft.com/ef/core/
- ASP.NET Core 文档:https://docs.microsoft.com/aspnet/core/
- Kafka 文档:https://kafka.apache.org/documentation/
- Redis 文档:https://redis.io/documentation
更新日志
请查看项目文档目录下的更新日志文件。
最后更新:2026-03-20
Languages
C#
48%
JavaScript
38.9%
HTML
10.8%
CSS
2.2%