OpenAuth.Net/docs/core/devnew.md
2025-02-25 11:10:00 +08:00

3.4 KiB
Raw Blame History

添加新模块

前言

OpenAuth.Mvc添加新模块的方式非常简单完全可以参考系统已有的资源管理模块编写相应的代码。参考的资源管理功能对应的代码如下:

如果我们想新加一个仓储管理的模块,模块标识为Stock。那么需要添加的文件如下:

├─OpenAuth.Mvc
│    ├─ Controllers
│    │    └─ StocksController.cs
│    ├─ Views
│    │    └─ Stocks
│    │        └─ index.cshtml
│    ├─ wwwroot
│    │    └─ userJs
│    │        └─ stock.js
├─OpenAuth.App
│    ├─ StockApp.cs
│    ├─ Request
│    │    └─ QueryStockReq.cs
├─ OpenAuth.Repository
│    ├─ OpenAuthDBContext.cs
│    ├─ Domain
│         └─ Stock.cs

当然全部手撸这些代码还是会疯的。用户可以直接使用项目CodeSmith文件夹里面的模板一键生成上述代码。而且CodeSmith模板本身也是全部源码可以根据自己需求调整生成的内容。

工具准备

CodeSmith Generator Studio 8.0或以上

数据库OpenAuthDB中添加仓储表【Stock】本文以该数据表为例

添加实体

如下图使用CodeSmith文件夹中的模板右击【ApiGenerate.cst】--【Execute】选择需要生成的表本文以Stock为例及相关的上下文命名空间点击【Generate】

20240613220037

注意,有两个配置项:

  • WholeDb: 如果选中,则按数据库中所有表生成实体及逻辑;否则,按选择的表生成

  • HeaderModel会生成主、从表结构类似 WmsInboundOrderTbl / WmsInboundOrderDtbl

生成成功后在CodeSmith/Csharp文件夹下面会有Stock实体相关文档如下图

20240613220224

把CSharp\OpenAuth.App覆盖到自己项目对应目录

把CSharp\OpenAuth.Repository\Domain覆盖到自己项目对应目录

把CSharp\OpenAuth.Repository\OpenAuthDBContext.cs中的内容添加到自己项目的文件中千万不要直接覆盖文件

添加界面

如下图使用CodeSmith文件夹中的模板右击【WebGenerate.cst】--【Execute】选择需要生成的表本文以Stock为例及相关的上下文命名空间点击【Generate】

生成成功后在CodeSmith/Csharp文件夹下面会有相关的界面代码如下图

Controllers、Views直接覆盖到OpenAuth.Mvc项目中对应的文件夹即可

userJs直接覆盖到OpenAuth.Mvc/wwwroot中

添加模块

编写完上面代码后运行系统使用System账号登录系统在【模块管理】中添加仓储管理模块,

20240613220434

::: warning 注意 因为生成的Controller名称类似XXXsController所以模块的Url地址应该是XXXs/Index :::

添加模块时系统会自动添加三个默认菜单【添加】【编辑】【删除】。可根据需要调整。这里我再添加一个菜单【btnCancel】如下图

重新登录系统,即可看到新加的仓储管理模块。