# youcan-solon **Repository Path**: tzslep/youcan-solon ## Basic Information - **Project Name**: youcan-solon - **Description**: 基于Solon框架,功能类似Ruoyi的WEB脚手架应用。 此应用摒弃Spring臃肿框架,尽量多采用国产开源软件,符合国人习性,为不大会UI编程的后端程序员提供一个相对简单易上手的Web脚手架应用,简单熟悉后就可按自己习惯任意改造使用。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 31 - **Created**: 2023-08-02 - **Last Updated**: 2023-08-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Youcan-Solon ## 简介 ​ 基于Solon框架,功能类似Ruoyi的WEB脚手架应用。 ​ 此应用摒弃Spring臃肿框架,尽量多采用国产开源软件,符合国人习性,为不大会UI编程的后端程序员提供一个相对简单易上手的Web脚手架应用,简单熟悉后就可按自己习惯任意改造使用。 ## 项目说明 ​ 后端基于Solon,前端采用Pear Admin的快速开发框架。 ​ 项目采用了多种经典开源软件(Solon + Sa-Token + MyBatis-Flex + Pear Admin + Enjoy + Hutool),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、通知公告等。可在线定时任务配置。 ​ *(目前文档还在完善中。。。)* ------ ​ 目前还只是演示版本,在1.0正式版本之前还会有效大优化,请谨慎使用。 ## 安装教程 - 数据库 ​ 使用MySql 5.7以上版本,新建名为youcan-solon的数据库,将youcan-solon.sql导入到新数据库即可。 - 配置文件 ​ youcan-solon-admin模块的resources/app.yml中,修改服务端口和数据库密码。 - Hutool ​ 由于采用了未来才发布的Hutool 6(目前是6.0.0-M5版本),所以需要拉取Hutool源码在本地使用Maven构建一次(mvn clean install -Dmaven.test.skip=true)。 - MyBatis-Flex ​ 在项目根文件夹下运行mvn clean install,然后在youcan-solon-system模块和youcan-solon-job模块引入“/target/generated-sources/annotations”下生成好的代码。 - Redis ​ 框架采用了Redis做缓存,启动时需要进行连接,在配置文件中修改Redis地址就好。 - 运行应用 ​ 程序入口在youcan-solon-admin模块的cn.hg.solon.youcan.YoucanSolonApp.java中,直接启动即可。 - Maven打包 ​ 暂不可用,优化中。。。 ## 主要特性 - 完全响应式布局(支持电脑、平板、手机等所有主流设备); - 支持按钮及数据权限,可自定义部门数据权限; - 对常用js插件进行二次封装,使js代码变得简洁,更加易维护; - Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块; - 支持服务监控,数据监控,缓存监控功能; ## 项目结构 ```text youcan-solon ├── common // 通用模块 │ └── annotation // 自定义注解 │ └── constant // 通用常量 │ └── controller // 控制器基类 │ └── enums // 通用枚举 │ └── exception // 通用异常 │ └── util // 通用工具 │ └── vo // VO基类 │ └── web // Web页面相关类 ├── framework // 框架核心 │ └── cache // 缓存实现 │ └── config // 系统配置 │ └── directive // 页面通知指令 │ └── listener // 系统业务监听器 │ └── provider // 系统服务提供者 │ └── satoken // Sa-Token相关 │ └── service // 系统服务接口 │ └── task // 系统任务 │ └── web // 前端控制 ├── generator // 代码生成(规划中) ├── job // 定时任务(不用可移除) ├── system // 系统代码 ├── admin // 后台服务 ``` ## 内置功能 1. **系统用户**:用户是系统操作者,该功能主要完成系统用户配置。 2. **系统角色**:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 3. **系统权限**:配置系统菜单,操作权限,按钮权限标识等。 4. **行政部门**:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 5. **公司岗位**:配置系统用户所属担任职务 6. **数据字典**:对系统中经常使用的一些较为固定的数据进行维护。 7. **系统参数**:对系统动态配置常用参数。 8. **通知公告**:系统通知公告信息发布维护。 9. **在线用户**:当前系统中活跃用户状态监控。 10. **定时任务**:在线(添加、修改、删除)任务调度包含执行结果日志。 11. **服务监控**:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 12. **缓存监控**:对系统的缓存查询,删除、清空等操作。 13. **操作日志**:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 14. **登录日志**:系统登录日志记录查询包含登录异常。 ## 项目示例 - 系统用户 ![image-20230627163622803](./doc/images/app-screenshot/sys-user.png) - 系统角色 ![image-20230627164032408](./doc/images/app-screenshot/sys-role.png) - 系统权限 ![image-20230627164123260](./doc/images/app-screenshot/sys-permission.png) - 行政部门 ![image-20230627164448167](./doc/images/app-screenshot/sys-dept.png) - 公司岗位 ![image-20230627164500971](./doc/images/app-screenshot/sys-position.png) - 数据字典 ![image-20230627164515451](./doc/images/app-screenshot/sys-dict.png) ![image-20230627164530613](./doc/images/app-screenshot/sys-dict-item.png) - 系统参数 ![image-20230627164545384](./doc/images/app-screenshot/sys-config.png) - 通知公告 ![image-20230627164554829](./doc/images/app-screenshot/sys-notice.png) - 在线用户 ![image-20230627164628830](./doc/images/app-screenshot/sys-user-online.png) - 定时任务 ![image-20230627164637010](./doc/images/app-screenshot/sys-job.png) ![image-20230627164848448](./doc/images/app-screenshot/sys-job-log.png) - 服务监控 ![image-20230627164649957](./doc/images/app-screenshot/sys-server.png) - 缓存监控 ![image-20230627164705589](./doc/images/app-screenshot/sys-cache.png) - 操作日志 ![image-20230627164806069](./doc/images/app-screenshot/sys-operate-log.png) - 登录日志 ![image-20230627164824996](./doc/images/app-screenshot/sys-user-login.png)