|
@@ -1,196 +1,217 @@
|
|
|
-<p align="center">
|
|
|
- <a href="https://midwayjs.org/" target="blank"><img src="https://cool-show.oss-cn-shanghai.aliyuncs.com/admin/logo.png" width="200" alt="Midway Logo" /></a>
|
|
|
-</p>
|
|
|
+# 墨石记服务端 (Moshiji Service)
|
|
|
|
|
|
-<p align="center">cool-admin(nodejs版)一个很酷的后台权限管理系统,开源免费,Ai编码、流程编排、模块化、插件化、极速开发CRUD,方便快速构建迭代后台管理系统,支持原生、docker、普通服务器等多种方式部署
|
|
|
-到 <a href="https://cool-js.com" target="_blank">官网</a> 进一步了解。
|
|
|
-<p align="center">
|
|
|
- <a href="https://github.com/cool-team-official/cool-admin-midway/blob/master/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="GitHub license" />
|
|
|
- <a href=""><img src="https://img.shields.io/github/package-json/v/cool-team-official/cool-admin-midway?style=flat-square" alt="GitHub tag"></a>
|
|
|
- <img src="https://img.shields.io/github/last-commit/cool-team-official/cool-admin-midway?style=flat-square" alt="GitHub tag"></a>
|
|
|
-</p>
|
|
|
+一个基于 Cool Admin Midway 框架开发的现代化后端服务系统,提供完整的权限管理、用户管理、任务调度等功能。
|
|
|
|
|
|
-## 特性
|
|
|
+## 🚀 技术栈
|
|
|
|
|
|
-Ai 时代,很多老旧的框架已经无法满足现代化的开发需求,Cool-Admin 开发了一系列的功能,让开发变得更简单、更快速、更高效。
|
|
|
+- **框架**: [Midway.js](https://midwayjs.org/) + [Koa.js](https://koajs.com/)
|
|
|
+- **数据库**: MySQL + TypeORM (0.3.20版本)
|
|
|
+- **语言**: TypeScript + JavaScript
|
|
|
+- **权限管理**: Cool Admin 权限系统
|
|
|
+- **任务调度**: Cron + Bull Queue
|
|
|
+- **文件上传**: Midway Upload
|
|
|
+- **API文档**: Swagger
|
|
|
+- **缓存**: Cache Manager
|
|
|
|
|
|
-- **Ai 编码**:通过微调大模型学习框架特有写法,实现简单功能从 Api 接口到前端页面的一键生成[详情](https://node.cool-admin.com/src/guide/ai.html)
|
|
|
-- **流程编排**:通过拖拽编排方式,即可实现类似像智能客服这样的功能[详情](https://node.cool-admin.com/src/guide/flow.html)
|
|
|
-- **多租户**:支持多租户,采用全局动态注入查询条件[详情](https://node.cool-admin.com/src/guide/core/tenant.html)
|
|
|
-- **多语言**:基于大模型自动翻译,无需更改原有代码[详情](https://node.cool-admin.com/src/guide/core/i18n.html)
|
|
|
-- **原生打包**:打包成 exe 等安装包,打包完可以直接运行在 windows、mac、linux 等操作系统上[详情](https://node.cool-admin.com/src/guide/core/pkg.html)
|
|
|
-- **模块化**:代码是模块化的,清晰明了,方便维护
|
|
|
-- **插件化**:插件化的设计,可以通过安装插件的方式扩展如:支付、短信、邮件等功能
|
|
|
-- ......
|
|
|
+## 📋 系统要求
|
|
|
|
|
|
-
|
|
|
+- Node.js >= 18.0.0
|
|
|
+- MySQL 5.7+
|
|
|
+- TypeScript 5.8+
|
|
|
|
|
|
-## 技术栈
|
|
|
+## 🏗️ 项目结构
|
|
|
|
|
|
-- 后端:**`node.js` `typescript`**
|
|
|
-- 前端:**`vue.js` `element-plus` `jsx` `pinia` `vue-router`**
|
|
|
-- 数据库:**`mysql` `postgresql` `sqlite`**
|
|
|
-
|
|
|
-如果你是前端,后端的这些技术选型对你是特别友好的,前端开发者可以较快速地上手。
|
|
|
-如果你是后端,Typescript 的语法又跟 java、php 等特别类似,一切看起来也是那么得熟悉。
|
|
|
-
|
|
|
-如果你想使用 java 版本后端,请移步[cool-admin-java](https://cool-js.com/admin/java/introduce.html)
|
|
|
-
|
|
|
-#### 官网
|
|
|
-
|
|
|
-[https://cool-js.com](https://cool-js.com)
|
|
|
-
|
|
|
-## 视频教程
|
|
|
-
|
|
|
-[官方 B 站视频教程](https://www.bilibili.com/video/BV1j1421R7aB)
|
|
|
-
|
|
|
-<!-- 在此次添加使用文档 -->
|
|
|
-
|
|
|
-## 演示
|
|
|
-
|
|
|
-[AI 极速编码](https://node.cool-admin.com/src/guide/ai.html)
|
|
|
-
|
|
|
-[https://show.cool-admin.com](https://show.cool-admin.com)
|
|
|
-
|
|
|
-- 账户:admin
|
|
|
-- 密码:123456
|
|
|
-
|
|
|
-<img src="https://cool-show.oss-cn-shanghai.aliyuncs.com/admin/home-mini.png" alt="Admin Home"></a>
|
|
|
-
|
|
|
-#### 项目前端
|
|
|
-
|
|
|
-[https://github.com/cool-team-official/cool-admin-vue](https://github.com/cool-team-official/cool-admin-vue)
|
|
|
-
|
|
|
-或
|
|
|
+```
|
|
|
+moshiji_service/
|
|
|
+├── src/
|
|
|
+│ ├── comm/ # 通用工具库
|
|
|
+│ ├── config/ # 配置文件
|
|
|
+│ │ ├── config.default.ts # 默认配置
|
|
|
+│ │ ├── config.local.ts # 本地开发配置
|
|
|
+│ │ └── config.prod.ts # 生产环境配置
|
|
|
+│ ├── modules/ # 业务模块
|
|
|
+│ │ ├── base/ # 基础权限管理模块
|
|
|
+│ │ │ ├── controller/ # 控制器
|
|
|
+│ │ │ ├── entity/ # 实体类
|
|
|
+│ │ │ ├── service/ # 服务层
|
|
|
+│ │ │ ├── middleware/ # 中间件
|
|
|
+│ │ │ └── dto/ # 数据传输对象
|
|
|
+│ │ ├── user/ # 用户管理模块
|
|
|
+│ │ ├── dict/ # 字典管理模块
|
|
|
+│ │ ├── task/ # 任务调度模块
|
|
|
+│ │ ├── plugin/ # 插件管理模块
|
|
|
+│ │ ├── space/ # 空间管理模块
|
|
|
+│ │ ├── recycle/ # 回收站模块
|
|
|
+│ │ ├── demo/ # 示例模块
|
|
|
+│ │ └── swagger/ # API文档模块
|
|
|
+│ ├── configuration.ts # Midway配置
|
|
|
+│ └── interface.ts # 类型声明
|
|
|
+├── public/ # 静态资源
|
|
|
+├── test/ # 测试文件
|
|
|
+├── typings/ # 类型定义
|
|
|
+├── bootstrap.js # 生产环境启动文件
|
|
|
+└── package.json # 项目依赖
|
|
|
+```
|
|
|
|
|
|
-[https://gitee.com/cool-team-official/cool-admin-vue](https://gitee.com/cool-team-official/cool-admin-vue)
|
|
|
+## 🛠️ 安装与运行
|
|
|
|
|
|
-或
|
|
|
+### 1. 安装依赖
|
|
|
|
|
|
-[https://gitcode.com/cool_team/cool-admin-vue](https://gitcode.com/cool_team/cool-admin-vue)
|
|
|
+```bash
|
|
|
+npm install
|
|
|
+```
|
|
|
|
|
|
-## 微信群
|
|
|
+### 2. 环境配置
|
|
|
|
|
|
-<img width="260" src="https://cool-show.oss-cn-shanghai.aliyuncs.com/admin/wechat.jpeg?v=1" alt="Admin Wechat"></a>
|
|
|
+复制并修改配置文件:
|
|
|
|
|
|
-## 运行
|
|
|
+```bash
|
|
|
+# 本地开发环境
|
|
|
+cp src/config/config.local.ts.example src/config/config.local.ts
|
|
|
|
|
|
-#### 修改数据库配置,配置文件位于`src/config/config.local.ts`
|
|
|
+# 生产环境
|
|
|
+cp src/config/config.prod.ts.example src/config/config.prod.ts
|
|
|
+```
|
|
|
|
|
|
-以 Mysql 为例,其他数据库请参考[数据库配置文档](https://cool-js.com/admin/node/quick.html#%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE)
|
|
|
+### 3. 数据库配置
|
|
|
|
|
|
-Mysql(`>=5.7版本`),建议 8.0,node 版本(`>=18.x`),首次启动会自动初始化并导入数据
|
|
|
+在配置文件中设置数据库连接信息:
|
|
|
|
|
|
-```ts
|
|
|
-// mysql,驱动已经内置,无需安装
|
|
|
-typeorm: {
|
|
|
+```typescript
|
|
|
+// src/config/config.local.ts
|
|
|
+export default {
|
|
|
+ typeorm: {
|
|
|
dataSource: {
|
|
|
default: {
|
|
|
type: 'mysql',
|
|
|
- host: '127.0.0.1',
|
|
|
+ host: 'localhost',
|
|
|
port: 3306,
|
|
|
username: 'root',
|
|
|
- password: '123456',
|
|
|
- database: 'cool',
|
|
|
- // 自动建表 注意:线上部署的时候不要使用,有可能导致数据丢失
|
|
|
+ password: 'password',
|
|
|
+ database: 'moshiji_service',
|
|
|
synchronize: true,
|
|
|
- // 打印日志
|
|
|
- logging: false,
|
|
|
- // 字符集
|
|
|
- charset: 'utf8mb4',
|
|
|
- // 是否开启缓存
|
|
|
- cache: true,
|
|
|
- // 实体路径
|
|
|
- entities: ['**/modules/*/entity'],
|
|
|
+ logging: true,
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
+};
|
|
|
```
|
|
|
|
|
|
-#### 安装依赖并运行
|
|
|
+### 4. 运行项目
|
|
|
|
|
|
```bash
|
|
|
-$ npm i
|
|
|
-$ npm run dev
|
|
|
+# 开发环境
|
|
|
+npm run dev
|
|
|
+
|
|
|
+# 生产环境
|
|
|
+npm run start
|
|
|
+
|
|
|
+# 构建项目
|
|
|
+npm run build
|
|
|
+
|
|
|
+# 运行测试
|
|
|
+npm run test
|
|
|
```
|
|
|
|
|
|
-启动完成访问:[http://localhost:8001/](http://localhost:8001)
|
|
|
+## 📚 主要功能模块
|
|
|
+
|
|
|
+### 基础权限管理 (base)
|
|
|
+- 用户管理
|
|
|
+- 角色管理
|
|
|
+- 部门管理
|
|
|
+- 菜单管理
|
|
|
+- 权限控制
|
|
|
+- 系统参数配置
|
|
|
+
|
|
|
+### 用户管理 (user)
|
|
|
+- 用户信息管理
|
|
|
+- 地址管理
|
|
|
+- 微信集成
|
|
|
+- 短信服务
|
|
|
+
|
|
|
+### 字典管理 (dict)
|
|
|
+- 字典类型管理
|
|
|
+- 字典数据管理
|
|
|
|
|
|
-注: `npm i`如果安装失败可以尝试使用切换您的镜像源,推荐使用[pnpm](https://pnpm.io/)安装
|
|
|
+### 任务调度 (task)
|
|
|
+- 定时任务管理
|
|
|
+- 任务队列
|
|
|
+- 任务日志
|
|
|
|
|
|
-## CURD(快速增删改查)
|
|
|
+### 插件管理 (plugin)
|
|
|
+- 插件中心
|
|
|
+- 文件上传
|
|
|
+- 插件钩子
|
|
|
|
|
|
-大部分的后台管理系统,或者 API 服务都是对数据进行管理,所以可以看到大量的 CRUD 场景(增删改查),cool-admin 对此进行了大量地封装,让这块的编码量变得极其地少。
|
|
|
+### 空间管理 (space)
|
|
|
+- 空间信息管理
|
|
|
+- 空间类型管理
|
|
|
|
|
|
-#### 新建一个数据表
|
|
|
+## 🔧 开发规范
|
|
|
|
|
|
-`src/modules/demo/entity/goods.ts`,项目启动数据库会自动创建该表,无需手动创建
|
|
|
+### 代码规范
|
|
|
+- 使用 TypeScript 进行开发
|
|
|
+- 遵循 ESLint 代码规范
|
|
|
+- 使用 Prettier 格式化代码
|
|
|
|
|
|
-```ts
|
|
|
-import { BaseEntity } from '../../base/entity/base';
|
|
|
-import { Column, Entity, Index } from 'typeorm';
|
|
|
+### 命名规范
|
|
|
+- 文件名使用下划线命名法:`user_info.entity.ts`
|
|
|
+- 类名使用大驼峰命名法:`UserInfo`
|
|
|
+- 变量和函数使用小驼峰命名法:`userName`
|
|
|
+- API 接口使用驼峰命名法:`/userInfo` 而不是 `/user/info`
|
|
|
|
|
|
-/**
|
|
|
- * 商品
|
|
|
- */
|
|
|
-@Entity('demo_app_goods')
|
|
|
-export class DemoAppGoodsEntity extends BaseEntity {
|
|
|
- @Column({ comment: '标题' })
|
|
|
- title: string;
|
|
|
+### 数据库规范
|
|
|
+- 使用 TypeORM 进行数据库操作
|
|
|
+- 不使用外键关系(@ManyToOne、@OneToMany等)
|
|
|
+- Entity 字段使用驼峰命名
|
|
|
+- 统计查询可考虑使用原生 SQL
|
|
|
|
|
|
- @Column({ comment: '图片' })
|
|
|
- pic: string;
|
|
|
+## 🚀 部署
|
|
|
|
|
|
- @Column({ comment: '价格', type: 'decimal', precision: 5, scale: 2 })
|
|
|
- price: number;
|
|
|
-}
|
|
|
+### Docker 部署
|
|
|
+
|
|
|
+```bash
|
|
|
+# 构建镜像
|
|
|
+docker build -t moshiji-service .
|
|
|
+
|
|
|
+# 运行容器
|
|
|
+docker run -d -p 7001:7001 --name moshiji-service moshiji-service
|
|
|
```
|
|
|
|
|
|
-#### 编写 api 接口
|
|
|
-
|
|
|
-`src/modules/demo/controller/app/goods.ts`,快速编写 6 个 api 接口
|
|
|
-
|
|
|
-```ts
|
|
|
-import { CoolController, BaseController } from '@cool-midway/core';
|
|
|
-import { DemoAppGoodsEntity } from '../../entity/goods';
|
|
|
-
|
|
|
-/**
|
|
|
- * 商品
|
|
|
- */
|
|
|
-@CoolController({
|
|
|
- api: ['add', 'delete', 'update', 'info', 'list', 'page'],
|
|
|
- entity: DemoAppGoodsEntity,
|
|
|
-})
|
|
|
-export class DemoAppGoodsController extends BaseController {
|
|
|
- /**
|
|
|
- * 其他接口
|
|
|
- */
|
|
|
- @Get('/other')
|
|
|
- async other() {
|
|
|
- return this.ok('hello, cool-admin!!!');
|
|
|
- }
|
|
|
-}
|
|
|
+### PM2 部署
|
|
|
+
|
|
|
+```bash
|
|
|
+# 启动服务
|
|
|
+npm run pm2:start
|
|
|
+
|
|
|
+# 停止服务
|
|
|
+npm run pm2:stop
|
|
|
```
|
|
|
|
|
|
-这样我们就完成了 6 个接口的编写,对应的接口如下:
|
|
|
+## 📖 API 文档
|
|
|
+
|
|
|
+启动项目后,访问以下地址查看 API 文档:
|
|
|
+
|
|
|
+- Swagger UI: `http://localhost:7001/swagger-ui/index.html`
|
|
|
+- API 文档: `http://localhost:7001/api-docs`
|
|
|
|
|
|
-- `POST /app/demo/goods/add` 新增
|
|
|
-- `POST /app/demo/goods/delete` 删除
|
|
|
-- `POST /app/demo/goods/update` 更新
|
|
|
-- `GET /app/demo/goods/info` 单个信息
|
|
|
-- `POST /app/demo/goods/list` 列表信息
|
|
|
-- `POST /app/demo/goods/page` 分页查询(包含模糊查询、字段全匹配等)
|
|
|
+## 🤝 贡献指南
|
|
|
|
|
|
-### 部署
|
|
|
+1. Fork 本仓库
|
|
|
+2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
|
|
+3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
|
+4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
|
+5. 打开 Pull Request
|
|
|
|
|
|
-[部署教程](https://node.cool-admin.com/src/guide/deploy.html)
|
|
|
+## 📄 许可证
|
|
|
|
|
|
-### 内置指令
|
|
|
+本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
|
|
|
|
|
|
-- 使用 `npm run lint` 来做代码风格检查。
|
|
|
+## 📞 联系方式
|
|
|
|
|
|
-[midway]: https://midwayjs.org
|
|
|
+- 项目主页: [https://cool-js.com](https://cool-js.com)
|
|
|
+- 问题反馈: [Issues](https://github.com/your-repo/issues)
|
|
|
|
|
|
-### 低价服务器
|
|
|
+---
|
|
|
|
|
|
-[阿里云、腾讯云、华为云低价云服务器,不限新老](https://cool-js.com/service/cloud)
|
|
|
+**注意**: 本项目基于 Cool Admin Midway 框架开发,版本 8.x。请确保按照框架规范进行开发。
|