inleft
2022-02-15 d734432a8bbbf863dc3de305f56e831c56ac767a
commit | author | age
9bcb19 1 <div align="center">
I 2     <p align="center">
3         <img src="./_web/public/logo.png" height="150" alt="logo"/>
4     </p>
5 </div>
6e7a9d 6
9bcb19 7 ### 框架介绍
6e7a9d 8
9bcb19 9 <div><h5>Snowy是一款基于国产密码算法后台权限管理系统,其中采用了SM2、SM3、SM4及签名验签,软件层面完全符合等保测评要求,让更多的人认识密码,使用密码。技术框架与密码结合,让前后分离“密”不可分。</h5></div>
I 10 <div><h4>结合SpringBoot+AntDesignVue开发,注释丰富,代码简洁。适配国产数据库(金仓、达梦)、主流数据库Mysql、Oracle、Mssql、Postgresql,小诺的产品一致追求简洁干净,一套代码搞定!同时支持国产中间件部署、麒麟操作系统、Windows、Linux部署使用。</h4></div>
11 <div align="center"><h5 align="center">Snowy谐音“小诺”,恰应小诺团队名称;意思为”下雪的、纯洁的“,寓意框架追求简洁至上,大道至简。</h5></div>
12
13 <p align="center">     
14     <p align="center">
15         <a href="https://gitee.com/xiaonuobase/snowy">
16             <img src="https://gitee.com/xiaonuobase/snowy/badge/star.svg?theme=dark" alt="Gitee star">
17         </a>
18         <a href="https://gitee.com/xiaonuobase/snowy">
19             <img src="https://gitee.com/xiaonuobase/snowy/badge/fork.svg?theme=dark" alt="Gitee fork">
20         </a>
21         <a href="https://www.antdv.com/docs/vue/introduce-cn/">
22             <img src="https://img.shields.io/badge/vue-2.x-blue.svg" alt="bootstrap">
23         </a> 
24         <a href="https://www.antdv.com/docs/vue/introduce-cn/">
25             <img src="https://img.shields.io/badge/vue--ant--design-1.5.6-blue.svg" alt="bootstrap">
26         </a> 
27         <a href="http://spring.io/projects/spring-boot">
28             <img src="https://img.shields.io/badge/spring--boot-2.3.1-green.svg" alt="spring-boot">
29         </a>
30         <a href="http://mp.baomidou.com">
31             <img src="https://img.shields.io/badge/mybatis--plus-3.3.2-blue.svg" alt="mybatis-plus">
32         </a>  
33         <a href="./LICENSE">
34             <img src="https://img.shields.io/badge/license-Apache%202-red" alt="license Apache 2.0">
35         </a>
36     </p>
37 </p>
38
39 ### 快速启动
40
41 您的开发电脑需要安装:NodeJs(14.x)、npm或yarn(最新版)建议使用yarn、Mysql5.7、Jdk1.8、Maven3.6.3(最新版)、开发工具推荐idea
42
43 * 启动前端:打开_web文件夹,进行依赖下载,运行npm install或yarn命令,再运行npm run serve或 yarn run serve
44 * 启动后端:打开application-local中配置数据库信息,运行SnowyApplication类即可启动
45 * 浏览器访问:http://localhost:81 (默认前端端口为:81,后端端口为:82)
46
47 ### 快速链接
48 * 演示地址(superAdmin/123456):https://snowy.xiaonuo.vip
49 * 在线文档:https://doc.xiaonuo.vip
50 * layui单体版本:https://gitee.com/xiaonuobase/snowy-layui
51 * vue前后分离版本:https://gitee.com/xiaonuobase/snowy
52 * cloud微服务前后分离版本:https://gitee.com/xiaonuobase/snowy-cloud
53 * 我们的其他产品线同样开源,如需关注最新动态可加入QQ群聊探讨:[732230670](https://wpa.qq.com/msgrd?v=3&uin=732230670&_blank)
54 * 如果我们的产品能满足您的需求,很期待您给我们右上角点个 star
55
56 <img src="https://pan.xiaonuo.vip/?explorer/share/fileOut&shareID=7qwJHENw&path=%7BshareItemLink%3A7qwJHENw%7D%2F"/>
57
58 ### 密码分步:fire:
59
60 | 功能                        | 算法类型          |
61 | ----------------------      | ------------- |
62 | 登录        | SM2前端加密,后端解密 |
63 | 登录登出日志        | SM2对登录登出日志做签名完整性保护存储    |
64 | 操作日志        | SM2对操作日志做签名完整性保护存储    |
65 | Token        | SM4(cbc模式)加密,Token不再曝光暴露    |
66 | 用户密码        | SM3完整性保护存储,登录时做完整性校验    |
67 | 用户手机号        | SM4(cbc模式)加解密使用字段脱敏    |
68
69 ### 视频教程:fire:
70
71 | 序号                        | 链接地址          |
72 | ----------------------      | ------------- |
73 | 1        | [小诺开源技术团队及框架介绍](https://www.bilibili.com/video/BV1Yf4y1N7YU?from=search&seid=16730766915542181758)    |
74 | 2        | [小诺框架Snowy基础环境介绍](https://www.bilibili.com/video/BV1yA411c7d3)    |
75 | 3        | [Snowy代码下载及启动](https://www.bilibili.com/video/BV1SP4y1p7M8)    |
76 | 4        | [Snowy生成一个完整的前后端模块](https://www.bilibili.com/video/BV1Ry4y1G7er)    |
77
78 更新中。。。
79
80  ### 升级计划:fire:
81
82 2.0版本正在全力打造中
83
84
85 ### 架构原理图
86 * 业务架构
87 <p align="center">
88     <img src="https://pan.xiaonuo.vip/?explorer/share/fileOut&shareID=7qwKTmEw&path=%7BshareItemLink%3A7qwKTmEw%7D%2F"/>
89 </p>
90
91 * 应用架构
92 <p align="center">
93     <img src="https://pan.xiaonuo.vip/?explorer/share/fileOut&shareID=7qwKfxFw&path=%7BshareItemLink%3A7qwKfxFw%7D%2F"/>
94 </p>
95
96 * 数据架构
97 <p align="center">
98     <img src="https://pan.xiaonuo.vip/?explorer/share/fileOut&shareID=7qwKrjRw&path=%7BshareItemLink%3A7qwKrjRw%7D%2F"/>
99 </p>
100
101 * 技术架构
102 <p align="center">
103     <img src="https://pan.xiaonuo.vip/?explorer/share/fileOut&shareID=7qwK4RoA&path=%7BshareItemLink%3A7qwK4RoA%7D%2F"/>
104 </p>
105
106 * 部署架构
107 <p align="center">
108     <img src="https://pan.xiaonuo.vip/?explorer/share/fileOut&shareID=7qwLD35w&path=%7BshareItemLink%3A7qwLD35w%7D%2F"/>
109 </p>
110
111 ### 效果图
112
113 <table>
114     <tr>
115         <td><img src="https://images.gitee.com/uploads/images/2021/0413/111529_02708b11_1980003.png"/></td>
116         <td><img src="https://images.gitee.com/uploads/images/2021/0413/111909_5957b35a_1980003.png"/></td>
117     </tr>
118     <tr>
119         <td><img src="https://images.gitee.com/uploads/images/2021/0413/112254_5e8a3a0b_1980003.png"/></td>
120         <td><img src="https://images.gitee.com/uploads/images/2021/0413/112510_90191be8_1980003.png"/></td>
121     </tr>
122     <tr>
123         <td><img src="https://images.gitee.com/uploads/images/2021/0413/112640_73ea49e9_1980003.png"/></td>
124         <td><img src="https://images.gitee.com/uploads/images/2021/0413/112804_a21e5aef_1980003.png"/></td>
125     </tr>
126 </table>
127
128 ### 框架亮点及优势
129
130 1. 模块化架构设计,层次清晰,业务层推荐写到单独模块,框架升级不影响业务。
131 ```
132 模块树
133 ├─snowy                    ->项目工程
134 │  ├─snowy-base            ->框架基础模块
135 │       ├─snowy-core       ->核心模块
136 │       ├─snowy-gen        ->代码生成
137 │       ├─snowy-system     ->基础业务
138 │  ├─snowy-main            ->业务开始模块
139 │       ├─业务             ->您的业务
140 ```
141 2、独创前端字典翻译
142
143 全部字典数据储存前端store,后端接口数据统一过滤器翻译
144
145 下拉框,多选框等取值只需1行代码:('dictData'为过滤器名称,'sex'为字典类型code)返回数组字典
146 ```
147 this.$options.filters['dictData']('sex')
148 或直接给值
149 {{ code | dictData }}
150 ```
151
152 列表数据中字典翻译:('code'为字典类型唯一code,'value'为待翻译的值)返回name
153 ```
154 {{ code | dictType(value) }}
155 ```
156
157 3、独创的数据权限范围机制
158
159 数据范围的分配也来自于给用户单独分配的数据范围,最终决定用户有几个公司的数据范围的是,用户拥有的角色的数据范围 + 用户直接分配的数据范围
160
161 若一个用户有多个角色,系统最终判定用户有哪些数据范围是以多个角色和用户数据范围的 并集 为准。
162
163 仅通过注解就可以获取当前用户的数据范围,不强制联查sql可根据业务需求极其灵活的使用
164 ```
165 @DataScope
166 ```
167 param类继承baseparam,使用param.getDadaScope即可获取到数据权限列表
168
169 ```
170 @EqualsAndHashCode(callSuper = true)
171 @Data
172 public class SysUserParam extends BaseParam {
173 ```
174
175 4、独创的文件预览系统
176
177 支持txt.doc.docx.ppt.pptx.xls.xlsx.pdf.png.jpg.jpeg.bmp.gif等
178
179 预览速度快,兼容性好,支持常见文本格式.只需在运行环境一键安装libreoffice即可,运行简单,操作方便。
180
181 ```
182 #libreoffice文档在线预览配置
183 # CentOS 下安装 libreoffice:
184 # 安装:yum -y install libreoffice
185 # Linux 中文字体乱码解决:
186 # 1、上传 C:\Windows\Fonts 下的字体到 /usr/share/fonts/windows 目录
187 # 2、执行命令: chmod 644 /usr/share/fonts/windows/* && fc-cache -fv
188 jodconverter:
189   local:
190     #暂时关闭预览,启动时会有点慢
191     enabled: false
192     #设置libreoffice主目录 linux地址如:/usr/lib64/libreoffice
193     office-home: C:\Program Files\LibreOffice
194     #开启多个libreoffice进程,每个端口对应一个进程
195     port-numbers: 8100
196     #libreoffice进程重启前的最大进程数
197     max-tasks-per-process: 100
198 ```
199 5、其他优势
200
201 前后端分离架构,分离开发,分离部署,前后端互不影响。
202
203 前端技术采用vue + antdvPro + axios。
204
205 后端采用spring boot + mybatis-plus + hutool等,开源可靠。
206
207 基于spring security(jwt) + 用户UUID双重认证。
208
209 基于AOP实现的接口粒度的鉴权,最细粒度过滤权限资源。
210
211 基于hibernate validator实现的校验框架,支持自定义校验注解。
212
213 提供Request-No的响应header快速定位线上异常问题。
214
215 在线用户可查,可在线踢人,同账号登录可同时在线,可单独在线(通过系统参数配置)。
216
217 支持前端 + 后端在线代码生成。
218
219 文件,短信,缓存,邮件等,利用接口封装,方便拓展。
220
221 短信默认使用阿里云sms,缓存默认使用内存缓存。
222
223 ### 框架说明及后续补充
224
225 * 纯手研发搭建框架脚手架,在自己用的时候,也为各位小伙伴打下坚固的接私活利器。
226 * 后续我们会行发多个版本,将适配多个数据库环境,国产化环境,并且根据多年经验会出相关系统中用到的案例,提供给大家使用!
227 * 如需了解我们更多,请移步官网:https://xiaonuo.vip
228 * 当然,有问题讨论的小伙伴还可以加入我们的QQ技术群:[732230670](https://wpa.qq.com/msgrd?v=3&uin=732230670&_blank),一起学习讨论。
229
230 ### 详细功能
231
232 1. 主控面板、控制台页面,可进行工作台,分析页,统计等功能的展示。
233 2. 用户管理、对企业用户和系统管理员用户的维护,可绑定用户职务,机构,角色,数据权限等。
234 3. 应用管理、通过应用来控制不同维度的菜单展示。
235 4. 机构管理、公司组织架构维护,支持多层级结构的树形结构。
236 5. 职位管理、用户职务管理,职务可作为用户的一个标签,职务目前没有和权限等其他功能挂钩。
237 6. 菜单管理、菜单目录,菜单,和按钮的维护是权限控制的基本单位。
238 7. 角色管理、角色绑定菜单后,可限制相关角色的人员登录系统的功能范围。角色也可以绑定数据授权范围。
239 8. 字典管理、系统内各种枚举类型的维护。
240 9. 访问日志、用户的登录和退出日志的查看和管理。
241 10. 操作日志、用户的操作业务的日志的查看和管理。
242 11. 服务监控、服务器的运行状态,Java虚拟机信息,jvm等数据的查看。
243 12. 在线用户、当前系统在线用户的查看。
244 13. 数据监控、druid控制台功能,可查看sql的运行信息。
245 14. 公告管理、系统的公告的管理。
246 15. 文件管理、文件的上传下载查看等操作,文件可使用本地存储,阿里云oss,腾讯cos接入,支持拓展。
247 16. 定时任务、定时任务的维护,通过cron表达式控制任务的执行频率。
248 17. 系统配置、系统运行的参数的维护,参数的配置与系统运行机制息息相关。
249 18. 邮件发送、发送邮件功能。
250 19. 短信发送、短信发送功能,可使用阿里云sms,腾讯云sms,支持拓展。
251
252 ### 官方微信群
253
254 ##### 因群达到200人以上,需加微信拉群
255
256 <table>
257     <tr>
258         <td>微信群</td>
259         <td><img src="https://pan.xiaonuo.vip/?explorer/share/fileOut&shareID=7qwFVcdA&path=%7BshareItemLink%3A7qwFVcdA%7D%2F" width="120"/></td>
260     </tr>
261 </table>
262
263 ### 参与贡献
264
265 - 欢迎各路英雄好汉参与Snowy全系版本代码贡献,期待您的加入!
266 - 1.  Fork 本仓库
267 - 2.  新建 Feat_xxx 分支
268 - 3.  提交代码
269 - 4.  新建 Pull Request
270
271 ### 更新日志:
272
273 更新日志:https://doc.xiaonuo.vip/snowy_vue/#%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97
274
275 ### 版权说明
276
277 - Snowy生态技术框架全系版本采用 Apache License2.0协议
278 - 代码可用于个人项目等接私活或企业项目脚手架使用,Snowy全系开源版完全免费
279 - 二次开发如用于商业性质或开源竞品请先联系群主审核。
280 - 请不要删除和修改Snowy源码头部的版权与作者声明及出处。
281
282 ### 小诺技术团队荣誉作品
283
284 | 成员组成 | 负责内容 |
285 | :---: | :---: |
286 | 俞宝山 | 全栈 |
287 | 徐玉祥 | 全栈 | 
288 | 董夏雨 | 全栈 |