# greenSource **Repository Path**: liaoj/greenSource ## Basic Information - **Project Name**: greenSource - **Description**: 发芽项目 -- 子项目 碧叶之源,国家公务员职务管理系统 目标: 可以提供各种和政府相关或者企业组织机构存在权限管理的项目进行功能整合 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2018-11-12 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # greenSource #### 项目介绍 ​ 发芽(基于shiro的组织机构管理) 碧叶之源,国家公务员职务管理系统 做这个项目的缘由还是想研究下shiro框架,不知不觉越写越大,索性订一个目标。 ![输入图片说明](https://images.gitee.com/uploads/images/2018/1112/145324_488d8b73_670093.gif "login2.gif") ![输入图片说明](https://images.gitee.com/uploads/images/2018/1112/145337_98806d71_670093.gif "main3.gif") ![输入图片说明](https://images.gitee.com/uploads/images/2018/1112/145402_7caa7550_670093.png "index.png") ![输入图片说明](https://images.gitee.com/uploads/images/2018/1112/145630_86027c49_670093.png "imgUser.png") ![输入图片说明](https://images.gitee.com/uploads/images/2018/1112/145642_90e13550_670093.png "user.png") ![输入图片说明](https://images.gitee.com/uploads/images/2018/1112/145712_2cf78e28_670093.png "addPost.png") #### 目标: ​ 可以提供各种和政府相关或者企业组织机构存在权限管理的项目进行功能整合。 #### 待解决的问题 2018年11月11日18:42:51 整个项目的功能基本实现差不多,初步实现了基于shiro的权限控制。因为时间关系,暂时将此项目告一段落,但遗留的问题还是颇多。这里罗列一下,如果后续开发,还可以在此基础上继续进行。 - 虽然做了注册用户的功能,但这一块设计有问题,登录的用户需要审核,按照设想,是用户注册之后,自动转移到指定的部门,由这个部门的有审核权限的人进行审核,并同时做相应的授权操作。可直接将全部的根机构暴露是不现实的,而且不安全,同时,用户对应的级别不应该可以随便注册。后续考虑生成一个推荐码,根据这个码来进行用户的自注册,而且这个码是有时限,这样解决注册的问题。就不需要靠administrator来添加了。 - 界面的样式有点丑,特别是添加用户那里,以及展示的时候,层次不够分明,还有机构树的显示也不够友好,界面的宽度等等都不是最理想的。 - 待办(处理审核权限等事情)、内部信等功能还未实现。各种权限虽然已经搭好框架,只要填充,但相关的业务还未全部做完,比如查看机构树,保密机构不应该展示给无相关权限的人,保密机构,非特定权限的人不能访问。有保密机构访问权限和无权限的人看到的应该是不一样的,不同部门的人,无相关权限最多只能看自己本部门的数据等等······· - 头像文件的前端处理不够漂亮,因为不太懂前端,后端又对图片进行压缩过,导致处理后的图片有点丑。 - 按照设计是可以支持多数据库的,只要切换下sql文件的路径即可,但相关的sql还没去写,不过应该和sqlite的相差不大。个人单机玩的话用sqlite够了,如果实际使用,还是要mysql这些数据库才行,sqlite是单线程的,在并发情况下,会导致数据库锁住,比如批量添加用户图片处,因为这个问题会导致一些图片无法添加进去。 - 还想加进来的,实现内部实时通信,用websocket做。以及T出重复登录、单点登录等功能还未去实现。另外包括搜索等功能都暂时没去做。 - 全局的防重复提交还没处理,审核自我注册进来的用户未实现 - 政府业务中,还存在一个用户可能担任多个职务,人员的迁移等问题暂时还没考虑,需要后续去实现。还有存在某用户担任临时职务等等操作 - 全局保密等限制未实现 - 权限方面,还有一些修改了权限或者删除权限、删除角色、修改角色等,对缓存清理没有全部做完。可以参考已实现的例子补充即可。 - 全局错误也要进行改造,虽然已经实现功能,但因为时间问题,并没有按照设置的去做,无权限的页面直接返回无权限页面,而不是根据请求,返回json或者无权限提示页面。 - 总结:基本上大功能上已经完成,其他的还需要重新设计一下,再进行改造一番即可。 #### 软件架构 使用的技术: - 框架:springBoot 1.5.9.RELEASE - 项目管理:git - 连接池:druid - 数据库 SQLite - 模板:freemarker - orm:mybatis - 权限框架:shiro - 页面模板框架:Amaze UI - 弹层组件:layer (layui 已经包含了layer,layui 集合多个组件,例如:layer laypage laydate) - 时间组件:laydate - 树插件:ztree_v3 - 批量图片上传:webUploader - 省市县三级地图:百度地图 #### 安装教程 1. 下载项目 2. IDEA导入项目 3. 配置`resources` 下的 `config` 下的文件 config.properties,配置相关的系统路径 4. 点击GreenApplication直接运行 5. 打开浏览器,用administrator账户,密码 123 进行登录。 #### 项目结构 ``` abnormal 异常处理相关 common 自定义的一些公共的东西 config 相关的配置,主要是springboot整合其他的东西的时候的配置 druid 连接池相关配置 freemarker freemarker模板文件的配置 mybatis orm框架配置 shiro 权限框架配置 controller 所有的controller层 main 主要到controller test 测试用到的controller user 用户相关controller BaseController 基础controller,解决时间映射等问题 customize 自定义的一些东西,shiro的自定义realm dao 和数据库交互层 authority 权限相关 sys 系统相关 test 测试相关 user 用户相关 enumeration 枚举相关,一些常量设置 model 数据模型 test 测试相关 web 与前端有交互的model,不是用于数据库的对应 service 业务层 utils 工具类 resources 资源文件 config 各种配置文件 db 数据库脚本 数据库 等 mapper mapper文件 sqlite sqlite数据库类型的mapper mysql mysql的mapper文件 templates 之前的web页面 ftl ftl模板文件 branch 分支 common 公共页面 login 登录页面 main 主要功能 test 临时测试 static 静态文件 css css文件 ztree 树相关的css,自定义的 img 图片 common 公共的图片 tree 树相关图片 js js文件 common 公共的JS base.js 最常用的JS initPage.js 自己写的分页 jquery.min.js 外部的jQuery插件 jquery-form.js 外部的可以用来同时上传文件和信息的插件 user 用户相关的JS,对应用户不同模块 ztree 和树相关的JS plugin 各种外部的整合库 amaze 妹子UI的组件 laydate 时间组件 layer-v3.1.1 弹出层组件 map 地图相关的组件,自己写的 orgchart 组织架构和族谱类图 attach 附加的文件,并不是必须的,为了增加某些功能才引入的 webUploader 百度的上传插件,实现批量上传 ztree_v3 树组件 ```