# 系统安装说明

## 1. 安装环境

1.  操作系统:Windows 10 或以上版本

2.  数据库:MySQL 8.0 或以上版本(我开发使用的是Windows版本,Linux版本没有测试)

3.  .NET 6.0

4.  Yarn:1.22 或以上版本

## 2. 拉取项目代码

### 2.1 命令行拉取项目代码

1.  打开命令行工具(如 PowerShell 或 cmd)。

2.  导航到要存储项目代码的目录。

3.  运行以下命令来克隆项目仓库:

    ```

    git clone https://gitee.com/Jesai/platform.git

    ```

### 2.2 可视化工具拉取项目代码

1.  打开可视化工具(如 GitKraken、SourceTree 等)。

2.  点击“克隆仓库”或类似按钮。

3.  输入项目仓库的 URL(如 https://gitee.com/Jesai/platform.git)。

4.  选择要存储项目代码的目录。

5.  点击“克隆”或类似按钮来拉取项目代码。

## 3. 数据库配置

1.  打开 MySQL 数据库管理工具(如 MySQL Workbench、Navicat 等)。

2.  连接到本地 MySQL 数据库服务器。

3.  运行以下 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;

    ```

4.  运行以下 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;

    ```

5.  运行以下 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 文件:

    ``` PowerShell

    @echo off

    set MYSQL_USER=root

    set MYSQL_PASS=yourpassword

    set MYSQL_HOST=localhost

    set DATABASE=your_database

    set SQL_DIR=d:\sql_files

    for %%f in (%SQL_DIR%\*.sql) do (

        echo 执行SQL文件: %%f

        mysql -u%MYSQL_USER% -p%MYSQL_PASS% -h%MYSQL_HOST% %DATABASE% < "%%f"

    )

    echo 所有SQL文件执行完成!

    ```

## 4. 项目配置

1.  打开项目目录中的 `appsettings.json` 文件。

2.  配置所有数据库连接字符串:

    ```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

        }

    }

    }

    ```

3.  保存 `appsettings.json` 文件。

## 5. 运行项目

1.  打开项目目录。

2.  运行以下命令来构建项目:

    ```

    dotnet build

    ```

3.  运行以下命令来运行项目:

    ```

    dotnet run

    ```

## 6.运行前端项目

1.  打开项目目录中的 `Platform\UI\web` 子目录。

2.  运行以下命令来安装前端依赖:

    ```

    yarn install

    ```

3.  运行以下命令来启动前端项目:

    ```

    yarn run dev

    ```

## 7. 访问项目

1.  打开浏览器。

2.  输入以下 URL 来访问项目:

    ```

    http://localhost:3000

    ```

3.  使用以下默认管理员账号登录:

    - 用户名:admin

    - 密码:123456

## 8. 常见问题

1.  问题:登录后页面显示空白。

    解决方法:检查前端项目是否成功启动,确保端口号为 3000。

2.  问题:数据库连接失败。

    解决方法:检查数据库连接字符串是否正确配置,确保数据库服务已启动。

3. 运行程序各种数据库报错

    解决方法:检查是否表名大小写问题,作者开发默认用的mysql是window系统,大小写不敏感,但是在linux系统中是敏感的。

开源地址:https://gitee.com/Jesai/platform.git

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐