# 代码生成工具
**Repository Path**: starry123/ruovea-codegen
## Basic Information
- **Project Name**: 代码生成工具
- **Description**: RuoVea.CodeGen 是一个基于 .NET Core 6.0 的代码生成工具,旨在帮助开发者快速构建应用程序的基础代码结构。它支持数据库连接配置、表结构管理、字段管理以及模板管理等功能,从而简化开发流程并提高效率。
- **Primary Language**: C#
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-16
- **Last Updated**: 2025-09-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# RuoVea.CodeGen
## 介绍
RuoVea.CodeGen 是一个基于 .NET Core 6.0 的代码生成工具,旨在帮助开发者快速构建应用程序的基础代码结构。它支持数据库连接配置、表结构管理、字段管理以及模板管理等功能,从而简化开发流程并提高效率。
## 功能特点
- **数据库连接管理**:支持配置多个数据库连接信息。
- **表结构管理**:可导入数据库表结构并生成对应的实体类。
- **字段管理**:支持对表字段进行详细配置,包括字段类型、长度、是否为主键等。
- **模板管理**:提供多种代码模板,支持自定义模板,可基于模板生成代码。
- **代码生成**:根据模板和配置快速生成实体类、控制器、服务等代码文件。
- **用户权限管理**:内置管理员账号,支持用户权限配置和日志管理。
## 软件架构
- **后端**:.NET Core 6.0
- **前端**:基于 Vue.js 和 Element UI
- **数据库**:支持 SQL Server、MySQL、PostgreSQL 等多种数据库
- **模板引擎**:使用自定义模板引擎,支持动态渲染代码模板
## 安装部署
### 本地开发环境搭建
1. 安装 [.NET Core 6.0 SDK](https://dotnet.microsoft.com/download/dotnet/6.0)
2. 安装 Node.js 和 npm(用于前端资源管理)
3. 克隆项目:
```bash
git clone https://gitee.com/starry123/ruovea-codegen.git
```
4. 进入项目目录并运行:
```bash
dotnet run
```
5. 打开浏览器访问:`http://localhost:5000`
### IIS 部署
1. 发布项目:
```bash
dotnet publish -c Release -o ./publish
```
2. 将 `publish` 文件夹内容部署到 IIS
3. 配置 `appsettings.json` 和数据库连接字符串
4. 确保 IIS 支持 ASP.NET Core 模块
## 使用说明
### 登录系统
默认管理员账号:
- **账号**:`admin`
- **密码**:`123456`
### 主要功能模块
- **数据库连接管理**:配置数据库连接信息
- **表结构管理**:导入数据库表结构,生成实体类
- **字段管理**:对每个字段进行详细配置
- **模板管理**:支持多种代码模板,可自定义模板
- **代码生成**:一键生成实体类、控制器、服务等代码
- **系统设置**:配置系统信息、用户权限、日志等
### 模板语法说明
模板中使用以下变量来动态生成代码:
- `@Model.name_space`:命名空间
- `@Model.ClassName`:类名
- `@Model.TableName`:表名
- `@Model.Description`:表描述
- `@Model.PropertyGens`:字段集合(建议循环使用)
字段循环示例:
```csharp
@foreach (var item in Model.PropertyGens)
{
var isPrimaryKey = item.IsPrimaryKey ? ",IsPrimaryKey = true" : "";
var isIdentity = item.IsIdentity ? ",IsIdentity = true" : "";
var isIgnore = item.IsIgnore ? ",IsIgnore = true" : "";
var isJson = item.IsJson ? ",IsJson = true" : "";
var stringValue = item.PropertyType == "string" ? "= null!;" : "";
///
/// 备注:@item.Description
/// 默认值:@item.DefaultValue
///
[SugarColumn(ColumnName="@item.DbColumnName" @isPrimaryKey@isIdentity@isIgnore@isJson)]
public @item.PropertyType @item.PropertyName { get; set; } @stringValue
}
```
## 示例代码
```csharp
using System;
using System.Collections.Generic;
using SqlSugar;
namespace Models
{
///
/// {{Model.Description}}
///
[SugarTable("{{Model.TableName}}")]
public class {{Model.ClassName}}
{
<% foreach (var item in Model.PropertyGens) {
var isPrimaryKey = item.IsPrimaryKey ? ",IsPrimaryKey = true" : "";
var isIdentity = item.IsIdentity ? ",IsIdentity = true" : "";
var isIgnore = item.IsIgnore ? ",IsIgnore = true" : "";
var isJson = item.IsJson ? ",IsJson = true" : "";
var stringValue = item.PropertyType == "string" ? "= null!;" : "";
%>
///
/// 备注:@item.Description
/// 默认值:@item.DefaultValue
///
[SugarColumn(ColumnName="@item.DbColumnName" @isPrimaryKey@isIdentity@isIgnore@isJson)]
public @item.PropertyType @item.PropertyName { get; set; } @stringValue
<%} %>
}
}
```
## 系统截图
### **登录界面**

**操作说明**:输入正确的账号和密码,点击“登录”按钮进入系统。如果忘记密码,可以点击“找回密码”进行重置。
### **管理员登录首页**

**功能描述**:管理员首页提供系统概览,包括模板数量、用户数量、最近操作等信息。通过顶部导航栏,可以快速访问各个功能模块。
---
### **用户管理**

**功能描述**:在用户管理界面,可以查看所有用户的基本信息,包括用户名、注册日期、最后登录时间等。支持用户搜索、筛选和批量操作。
### **用户添加**

**操作说明**:点击“添加用户”按钮,填写用户的基本信息,如用户名、密码、邮箱等,然后点击“创建”完成新用户添加。
---
### **系统设置**

**功能描述**:系统设置界面允许管理员配置软件的各项参数,如数据备份路径、邮件服务器设置、通知模板等。
### **系统设置-编辑**

**操作说明**:选择需要修改的设置项,点击“编辑”按钮,修改参数后点击“保存”应用更改。
---
### **系统日志**
- **差异日志**

**描述**:记录系统中数据的变更历史,帮助管理员追踪数据修改情况。
- **访问日志**

**描述**:记录用户的登录和访问行为,提供详细的访问时间、IP地址等信息。
- **操作日志**

**描述**:记录管理员和用户的操作行为,如添加、编辑、删除数据等。
- **异常日志**

**描述**:记录系统运行中的错误和异常情况,帮助开发者快速定位和解决问题。
---
### **系统设置后-登录界面**

**说明**:完成系统设置后,登录界面会根据新的配置进行更新,确保用户体验的一致性。
### 项目特点
- 培训文档完善,适合快速上手
- 支持多数据库连接配置
- 提供详细的日志系统,包含操作日志、访问日志、异常日志
- 前端使用 Avue 框架,支持响应式布局
- 支持国际化,提供 I18n.xlsx 配置
- 提供 SeedData 初始化资产类型和存放位置数据
## 许可证
本项目采用 MIT 许可证,请查看 [LICENSE](LICENSE) 文件以获取详细信息。
---
**RuoVea.CodeGen - 快速构建你的 .NET Core 项目**