系统安装说明
1. 安装环境
- 操作系统:Windows 10 或以上版本
- 数据库:MySQL 8.0 或以上版本(我开发使用的是Windows版本,Linux版本没有测试)
- .NET 6.0
- Yarn:1.22 或以上版本
2. 拉取项目代码
2.1 命令行拉取项目代码
- 打开命令行工具(如 PowerShell 或 cmd)。
- 导航到要存储项目代码的目录。
- 运行以下命令来克隆项目仓库:
git clone https://gitee.com/Jesai/platform.git
2.2 可视化工具拉取项目代码
- 打开可视化工具(如 GitKraken、SourceTree 等)。
- 点击“克隆仓库”或类似按钮。
- 输入项目仓库的 URL(如 https://gitee.com/Jesai/platform.git)。
- 选择要存储项目代码的目录。
- 点击“克隆”或类似按钮来拉取项目代码。
3. 数据库配置
-
打开 MySQL 数据库管理工具(如 MySQL Workbench、Navicat 等)。
-
连接到本地 MySQL 数据库服务器。
-
运行以下 SQL 命令来创建数据库:
3.1. 创建业务主库Platform
CREATE DATABASE IF NOT EXISTS Platform;3.2. 创建低代码库monacoroslyncomplete(可选,默认自动创建)
CREATE DATABASE IF NOT EXISTS monacoroslyncomplete;3.3. 创建请求监控库httprequestmonitor(可选,默认自动创建)
CREATE DATABASE IF NOT EXISTS httprequestmonitor;3.4 创建工作流引擎库workflow
CREATE DATABASE IF NOT EXISTS workflow; -
运行以下 SQL 命令来创建数据库用户并授权:
创建用户并授权Platform库
CREATE USER IF NOT EXISTS 'jesai'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON Platform.* TO 'jesai'@'localhost'; FLUSH PRIVILEGES;授权工作流引擎库workflow
GRANT ALL PRIVILEGES ON workflow.* TO 'jesai'@'localhost'; FLUSH PRIVILEGES;创建用户并授权httprequestmonitor库(可选,默认自动创建)
CREATE USER IF NOT EXISTS 'jesai'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON httprequestmonitor.* TO 'jesai'@'localhost'; FLUSH PRIVILEGES;创建用户并授权monacoroslyncomplete库(可选,默认自动创建)
CREATE USER IF NOT EXISTS 'jesai'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON monacoroslyncomplete.* TO 'jesai'@'localhost'; FLUSH PRIVILEGES; -
运行以下 SQL 命令来导入数据库表结构:
批量执行Sql/Platform下面的所有dump sql文件USE Platform; SOURCE Sql/Platform/*.sql;批量执行Sql/workflow下面的所有dump sql文件(可选,开启自动创建)
USE workflow; SOURCE Sql/workflow/*.sql;批量执行Sql/httprequestmonitor下面的所有dump sql文件(可选,默认自动创建)
USE httprequestmonitor; SOURCE Sql/httprequestmonitor/*.sql;批量执行Sql/monacoroslyncomplete下面的所有dump sql文件(可选,默认自动创建)
USE monacoroslyncomplete; SOURCE Sql/monacoroslyncomplete/*.sql;如果你的数据库管理工具不支持批量执行 SQL 文件,可以使用以下脚本在 Windows 环境下通过命令行批量执行 SQL 文件:
@echo off set MYSQL_USER=root set MYSQL_PASS=yourpassword set MYSQL_HOST=localhost set DATABASE=your_database set SQL_DIR=d:\sql_filesfor %%f in (%SQL_DIR%\*.sql) do (echo 执行SQL文件: %%fmysql -u%MYSQL_USER% -p%MYSQL_PASS% -h%MYSQL_HOST% %DATABASE% < "%%f" )echo 所有SQL文件执行完成!
4. 项目配置
- 打开项目目录中的
appsettings.json文件。 - 配置所有数据库连接字符串:
{ "Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"} }, "Hangfire": {"Login": "admin","Password": "123456" }, //数据库类型列表 "DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ],"DbConnOptions": {"Url": "server=localhost;port=3306;database=platform;user id=root;password=123456","DbType": "Mysql","EnabledDbSeed": false,"EnabledReadWrite": false,"EnabledCodeFirst": false,"EntityAssembly": null,"ReadUrl": [//"DataSource=[xxxx]", //sqlite"server=localhost;port=3306;database=platform;user id=root;password=123456" //mysql//"Data Source=[xxxx];Initial Catalog=[xxxx];User ID=[xxxx];password=[xxxx]" //sqlserver] }, "JwtAuthorize": {"ProjectName": "MMLT.WebApi","Secret": "hsenwkqimk4mfxt88pc9hbn6fcubcb4u","Issuer": "poc","Audience": "axon","PolicyName": "permission","DefaultScheme": "Bearer","IsHttps": "false","RequireExpirationTime": "true","MySqlConnectionString": "server=localhost;port=3306;database=platform;uid=root;pwd=123456;characterset=utf8","RefreshInteval": 300 }, //"DbConfig": [ // { // "Name": "admin", // "Default": true, // "ConnectionString": "server=localhost;port=3306;database=platform;uid=root;pwd=123456;characterset=utf8", // "DbType": "MySql", // "IsAutoCloseConnection": true // } //], //授权 "JwtTokenOptions": {"Audience": "mlt","Issuer": "localhost:19001","Subject": "mltframwork","ExpSecond": 3600 }, "WorkflowDataSource": {"providerName": "MySql","database": "workflow","connectionString": "server=localhost;database=workflow;uid=root;pwd=123456;Character Set=utf8" }, "AllowedHosts": "*", "BaseUrl": "https://localhost:8989/", "ExternalConnectorUrl": {"MailServiceUrl": "ConfigUtil.Value('BaseUrl') + 'mail/send'","WechatServiceUrl": "ConfigUtil.Value('BaseUrl') + 'wechat/send'","SmsServiceUrl": "ConfigUtil.Value('BaseUrl') + 'sms/send'","WorkflowUrl": "ConfigUtil.Value('BaseUrl')","GetUserByDept": "ConfigUtil.Value('BaseUrl') + 'api/workflowusers'", //获取部门下所有人员 External Web API,"GetUserByUser": "ConfigUtil.Value('BaseUrl') + 'api/workflowusers'", //获取多个人员信息External Web API"GetUser": "ConfigUtil.Value('BaseUrl') + 'api/workflowusers/user'", //获取单个人员信息External Web API"GetUserByDeptLeader": "ConfigUtil.Value('BaseUrl') + 'api/workflowusers'", //获取部门领导 External Web API"GetUserByDirectReporter": "ConfigUtil.Value('BaseUrl') + 'api/workflowusers'", //获取直接汇报人 External Web API"GetUserByDuty": "ConfigUtil.Value('BaseUrl') + 'api/workflowusers'", //获取担当某个岗位角色的人员 External Web API"GetUserByUnderling": "ConfigUtil.Value('BaseUrl') + 'api/workflowusers'" //获取直接下属 External Web API }, "ConfigFile": "activiti.cfg.json", "CacheOptions": {"Type": "Sys.Core.Cache.InMemoryCache,Sys.Bpm.Engine","Options": {//InMemoryCache配置"InMemory": {"SizeLimit": -1, //-1 不限制大小(字节)"AbsoluteExpiration": -1 //-1 永不过期,否则配置使用 天.小时:分钟:秒:毫秒格式设置绝对过期时间}//Redis配置//"ConnectTimeout": 3000, //链接超时//"ClientName": "ApiWorkflow", //客户端id,默认guid//"Password": "123456", //密码//"Endpoints": "192.168.13.180:6379,192.168.13.181:6379", //Redis服务端地址列表,以","分隔,例:"192.168.1.1:6379,192.168.1.2:6379"//"AllowAdmin": false, //是否允许Admin操作,默认false//"Prefix": "WORKFLOW", //缓存前缀,不允许超过20位,填写 application id或其简写,长度建议8位//"KeepAlive": 60, //发送消息以帮助保持套接字活动的时间, 即连接保持时间(默认60s)//"SyncTimeout": 1000, //指定系统允许同步操作的时间(默认为1秒),以毫秒为单位//"AsyncTimeout": 1000, //指定系统允许异步操作的时间(默认为SyncTimeout),以毫秒为单位//"EnableLogCallRecords": false //是否记录调用日志,默认false} }, "MonacoRoslynComplete": {"Storage": {//"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=HttpRequestMonitor;User ID=test;Password=test;charset=utf8;SslMode=none;","ConnectionString": "database=MonacoRoslynComplete;server=localhost;uid=root;pwd=123456;",//"ConnectionString": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpRequestMonitor;",//"ConnectionString": "http://localhost:9200/",//"ConnectionString": "Host=localhost;Port=5432;Username=postgres;Password=123456;Database=HttpRequestMonitor;",//"ConnectionString": "Password=Mm2717965346;User ID=sa;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));","EnableDefer": true,"DeferSecond": 10,"DeferThreshold": 3} } } - 保存
appsettings.json文件。
5. 运行项目
- 打开项目目录。
- 运行以下命令来构建项目:
dotnet build - 运行以下命令来运行项目:
dotnet run
6.运行前端项目
- 打开项目目录中的
Platform\UI\web子目录。 - 运行以下命令来安装前端依赖:
yarn install - 运行以下命令来启动前端项目:
yarn run dev
7. 访问项目
- 打开浏览器。
- 输入以下 URL 来访问项目:
http://localhost:3000 - 使用以下默认管理员账号登录:
- 用户名:admin
- 密码:123456
8. 常见问题
- 问题:登录后页面显示空白。
解决方法:检查前端项目是否成功启动,确保端口号为 3000。 - 问题:数据库连接失败。
解决方法:检查数据库连接字符串是否正确配置,确保数据库服务已启动。 - 运行程序各种数据库报错
解决方法:检查是否表名大小写问题,作者开发默认用的mysql是window系统,大小写不敏感,但是在linux系统中是敏感的。
开源地址:https://gitee.com/Jesai/platform.git