# GS MES 服务 ## 项目概览 GS MES Service 基于 ASP.NET Core 8.0 构建,`Gs.HostIIS` 负责托管 Web API、加载配置并暴露分组化 Swagger 文档。各业务模块(BaseInfo、Sales、Warehouse 等)以 `Gs.` 项目存在,控制器放在 `Services/`,数据模型位于 `Models/`,共享实体和 DTO 集中在 `Gs.Entity`。通用组件(授权、Excel、HTTP、依赖注入扩展等)统一封装在 `Gs.Toolbox`。 ## 目录结构 - `GsMesSolution.sln`:解决方案入口,统一执行构建、测试。 - `Gs.HostIIS/`:宿主项目,包含 `Program.cs`、`appsettings*.json`、Swagger 配置以及 `/down`、`/upload` 静态资源映射。 - `Gs./`:业务模块(如 `Gs.BaseInfo`、`Gs.Sales`、`Gs.Warehouse`),遵循 `Models/` + `Services/` 文件夹布局。 - `Gs.Entity/`:SqlSugar 实体与跨模块共享的 DTO。 - `Gs.Toolbox/`:依赖注入扩展、API 约定、日志、Excel 工具等基础设施能力。 - `Gs.HostIIS/.config/`:部署阶段使用的环境配置转换文件。 ## 快速开始 1. 安装 .NET SDK 8.0,确认数据库连接信息与 `appsettings.json` 对应。 2. 恢复依赖: ```bash dotnet restore GsMesSolution.sln ``` 3. 构建项目: ```bash dotnet build GsMesSolution.sln -c Release ``` 4. 启动 API: ```bash dotnet run --project Gs.HostIIS/Gs.HostIIS.csproj ``` 启动后访问 `http://localhost:<端口>/swagger` 查看分组 API 文档。静态下载目录映射 `/down`,上传目录映射 `/upload`,路径由配置中的 `DownPath`、`UploadPath` 控制。 ## 测试说明 仓库暂未引入自动化测试。新增功能时请在相应模块旁创建 xUnit 项目(示例:`Gs.Sales.Tests`),测试文件统一命名为 `*Tests.cs`。Mock SqlSugar 依赖保持测试可重复,并在解决方案根目录执行: ```bash dotnet test ``` 提交变更前记录手工冒烟结果(Swagger 可用性、核心接口、关键存储过程)并写入 PR。 ## 配置与安全 - 禁止提交任何硬编码的连接字符串或密码,开发阶段通过 User Secrets 或环境变量注入。 - 环境差异配置放入 `.config` 目录,发布时执行转换,不直接修改基础配置。 - 调整 SqlSugar 数据结构前务必在预发布环境验证,并在公开部署前检查 Swagger 暴露范围。 ## 贡献指南 - 遵循四空格缩进、类型 `PascalCase`、局部变量 `camelCase`、常量 `ALL_CAPS` 的命名规范,保持可空引用启用。 - 新增服务通过 `Gs.Toolbox` 的扩展方法注册,确保 `builder.AddCustomInject()` 流程定义统一。 - 提交信息沿用历史风格:简洁的中文单行说明,例如 `Baobiao: 修复导出异常`。 - PR 中需列出受影响模块、配置或数据库变更、自动化测试与手工冒烟结果,并附上示例请求或截图。