# TopskyHotelManagementSystem-WebApi **Repository Path**: java-and-net/topsky-hotel-management-system-web-api ## Basic Information - **Project Name**: TopskyHotelManagementSystem-WebApi - **Description**: 基于.Net8搭配SQLSugar框架构建的TS酒店管理系统后端API项目,主要服务于WinForm Client和Vue3 Web端,欢迎Start&Fork - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: https://www.oscode.top - **GVP Project**: No ## Statistics - **Stars**: 17 - **Forks**: 13 - **Created**: 2021-07-28 - **Last Updated**: 2025-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: Csharp, API, Web, Net8, Docker ## README

组织logo.png

TopskyHotelManagementSystem-WebApi

star fork

中文文档 | English Document

### :pray: 感谢以下开源项目: 1. ##### Autofac——An addictive .NET IoC container。[Autofac, MIT开源协议](https://github.com/autofac/Autofac) 2. ##### SqlSugar——国内最受欢迎ORM框架。 [SQLSugar,Apache-2.0开源协议](https://gitee.com/dotnetchina/SqlSugar) 3. ##### Mailkit——A cross-platform .NET library for IMAP, POP3, and SMTP。[Mailkit,MIT开源协议](https://github.com/jstedfast/MailKit) 4. ##### Swashbuckle.AspNetCore——Swagger tools for documenting API's built on ASP.NET Core。[SwaggerUI,MIT开源协议](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) 5. ##### Newtonsoft.Json——Json.NET is a popular high-performance JSON framework for .NET。[Newtonsoft.Json,MIT开源协议](https://github.com/JamesNK/Newtonsoft.Json) ### :exclamation: 本项目介绍: 本项目是基于.Net8构建的TS酒店管理系统后端API项目,主要用于2.0升级所用,欢迎Start&Fork 1、一切开发请遵照MIT开源协议进行。 2、有bug欢迎提出issue! 3、本项目当前已支持多数据库以及一键建库建表,具体代码可以参考Startup.cs中的InitializeDatabase方法。 4、本项目已基于SQL Sugar框架支持多数据库(主流),以下是目前已通过测试的数据库表格: | 数据库 | 版本 | 支持建库建表(Y/N) | 通过(Y/N) | | ---------- | ---------------- | ----------------- | ---------------------------------------------------- | | MariaDB | 10.11.10-MariaDB | Y | Y | | PostgreSQL | 130020 | Y | Y | | MySQL | 5.7+ | Y | Y | | SQL Server | 2022 | Y | Y | | Oracle | Unknown | N | 请参照SQLSugar文档([果糖网](https://www.donet5.com)) | | SQLite | Unknown | N | N | ### :thought_balloon: 开发目的: 主要用于现有的C/S项目酒店管理系统升级2.0后实现前后端分离的WebAPI接口,本项目不包含任何UI界面。 ### :mag_right: 系统开发环境: 操作系统:Windows 11(x64) 开发工具:Microsoft Visual Studio 2022(系统最新版本) 数据库:MariaDB/PostgreSQL/MySQL/SQL Server 数据库管理工具:DbGate 开发语言:C#语言、LINQ语言 开发平台:.Net 开发框架:.Net 8 开发技术:.NET 8 WebAPI ### :open_file_folder: 系统结构: ``` EOM.TSHotelManagement.Web ├─ .git ├─ .gitignore ├─ EOM.TSHotelManagement.Application │ ├─ EOM.TSHotelManagement.Application.csproj │ ├─ BaseDto │ ├─ Business │ ├─ Employee │ ├─ Sys │ ├─ SystemManagement │ ├─ Util ├─ EOM.TSHotelManagement.Common.Contract │ ├─ EOM.TSHotelManagement.Common.Contract.csproj │ ├─ Business │ ├─ Employee │ ├─ Sys │ ├─ SystemManagement │ ├─ Util ├─ EOM.TSHotelManagement.Common.Core │ ├─ EOM.TSHotelManagement.Core.csproj │ ├─ BaseEntity.cs │ ├─ Business │ ├─ Employee │ ├─ Sys │ ├─ SystemManagement │ ├─ Util ├─ EOM.TSHotelManagement.EntityFramework │ ├─ EOM.TSHotelManagement.EntityFramework.csproj │ ├─ Repository │ │ └─ GenericRepository.cs ├─ EOM.TSHotelManagement.Migration │ ├─ EOM.TSHotelManagement.Migration.csproj │ ├─ EntityBuilder.cs ├─ EOM.TSHotelManagement.Web.sln ├─ EOM.TSHotelManagement.Share │ ├─ EOM.TSHotelManagement.Share.csproj │ ├─ Interface ├─ EOM.TSHotelManagement.WebApi │ ├─ Controllers │ │ ├─ Business │ │ ├─ Sys │ │ ├─ Employee │ │ └─ SystemManagement │ │ └─ Util │ ├─ EOM.TSHotelManagement.WebApi.csproj │ ├─ EOM.TSHotelManagement.WebApi.csproj.user │ ├─ EOM.TSHotelManagement.WebApi.xml │ ├─ Program.cs │ ├─ Startup.cs │ ├─ appsettings.Development.json │ ├─ appsettings.json ├─ LICENSE ├─ README.en.md └─ README.md ``` ### :chart_with_upwards_trend: 系统数据库关系图(由PDMAN软件生成) :loudspeaker: [数据库关系图](https://oscode.top/project/tshotel/db_design.html) ### :exclamation: 项目作者: **Jackson(即本账号,项目组长,核心代码编写和后期项目整合)** **Benjamin(开发,项目代码编写)** **Bin(数据库,提供数据库管理支持)** **易开元(后期维护和开发)** ### :computer: 项目运行部署(执行下面步骤前需先安装.NET 8 SDK和Runtime): **下载并安装Microsoft Visual Studio Professional 2022及以上版本,并通过下载Zip包解压,打开.sln后缀格式文件运行。** ### :inbox_tray: Docker运行部署(以Ubuntu为例): ``` docker run -d \ --name tshotel-api \ -v /app/config:/app/config \ -v /app/keys:/app/keys \ -e DefaultDatabase=MariaDB \ -e ASPNETCORE_ENVIRONMENT=docker \ -e DOCKER_ENV=true \ -e "MariaDBConnectStr=Server=host;User=tshoteldb;Password=password;Database=tshoteldb" \ -e Jwt__Issuer=Easy-Open-Meta \ -e Jwt__Audience=EOM.TSHotelManagement.WebApi \ -e Jwt__Key=Easy-Open-Meta-EfH@u4poHh544a53Sq77T \ -e Jwt__ExpiryMinutes=20 \ -e Lsky__BaseAddress=https://lsky.demo.top/api/v1 \ -e Lsky__Email=demo@demo.top \ -e Lsky__Password=demo \ -e Lsky__UploadApi=/upload \ -e Lsky__GetTokenApi=/tokens \ -e Mail__Host=smtp.demo.top \ -e Mail__UserName=demo@demo.top \ -e Mail__Password=demo \ -e Mail__Port=465 \ -e Mail__EnableSsl=true \ -e Mail__DisplayName=TSHotel-Administrator \ -p 63001:8080 \ yjj6731/tshotel-management-system-api:latest ``` | 参数名称 | 参数说明 | 必填(Y/N) | 默认值 | 可选值 | |------|------|---------|-----|-----| |name|容器名称|Y|N/A|N/A| |DefaultDatabase|默认数据库|Y|N/A|MariaDB/MySql/SqlServer/PgSql| |ASPNETCORE_ENVIRONMENT|系统环境(决定Dataprotection Key的生成位置)|Y|docker|docker| |DOCKER_ENV|是否为docker环境|Y|true|true| |{默认数据库(e.g:MariaDB/MySql/SqlServer/PgSql)}ConnectStr|对应数据库链接字符串|Y|N/A|N/A| |Jwt__Issuer|签发者标识|Y|N/A|N/A| |Jwt__Audience|目标接收方标识|Y|N/A|N/A| |Jwt__Key|JWT Key|Y|N/A|N/A| |Jwt__ExpiryMinutes|token有效时间/分钟|Y|20|N/A| |Lsky__BaseAddress|兰空图床基础地址|Y|N/A|N/A| |Lsky__Email|兰空图床账户邮箱|Y|N/A|N/A| |Lsky__Password|兰空图床账户密码|Y|N/A|N/A| |Lsky__UploadApi|兰空图床上传图片接口|Y|N/A|N/A| |Lsky__GetTokenApi|兰空图床获取tokens接口|Y|N/A|N/A| |Mail__Host|邮箱smtp协议地址|Y|N/A|N/A| |Mail__UserName|邮箱smtp协议地址|Y|N/A|N/A| |Mail__Port|邮箱smtp端口|Y|465|N/A| |Mail__Password|邮箱密码|Y|N/A|N/A| |Mail__EnableSsl|是否启用SSL|Y|true|true/false| |Mail__DisplayName|发送邮件人显示名称|Y|N/A|N/A| ### :inbox_tray: 数据库运行部署(本地): **强烈推荐,以下第一种方式进行数据库部署** 1.自动建库建表 在appsettings.json填写对应的DefaultDatabase参数和对应的数据库链接字符串,然后保存运行项目即可一键自动建表建库(前提本地安装了对应的数据库和开启服务) 2.手动建库建表(注意:文件夹内的数据库脚本可能非最新版本,因此推荐以上第一种方式!!!) 通过可视化管理工具打开/数据库脚本/xxx版本,依次执行tshotel-backstage-dbscript-table.sql文件进行数据库与数据表建立。 随后打开tshotel-backstage-dbscript-data.sql文件进行数据导入。 ​ [![咖啡与网络/TopskyHotelManagementSystem-WebApi](https://gitee.com/java-and-net/topsky-hotel-management-system-web-api/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/java-and-net/topsky-hotel-manager-system-web-api)