同步操作将从 杜子麟/Lin 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Lin基于SpringBoot,目标是实现自动办公,现阶段整合springmvc + shiro + mybatis + Thymeleaf等常见框架,包含用户管理、部门管理、通知管理、日志管理、便签、角色管理、菜单配置、请假、请假审核、代码生成 模块。
1.用户管理 2.部门管理模块 3.通知管理 4.修改密码 5.登陆日志 6.操作日志 7.便签 8.角色管理 9.请假 10.假期审核 11.代码生成
★添加用户后,密码默认为111111
★用户密码重置后,密码默认为111111
★部门解散后,此部门用户自动设置部门为 未分配
★删除角色后,之前此角色用户自动配置为 用户
★可通过角色来配置要显示的菜单
1.项目基于SpringBoot,简化了大量的配置和Maven依赖。
2.日志记录系统,记录用户的登陆、登出,用户执行的操作,通过@BizLog注解以及Spring中的AOP功能,记录了具体到用户的业务操作、登入登出,并且可以下载excel格式,方便查看。
3.利用Thymeleaf使得前端html代码看起来更加清晰。
4.通过角色管理来配置菜单,达到菜单为不同部门显示的目的,间接实现了权限的管理。
5.创建表后,通过LinGenerater类可生成包括html、js、Dao、Service、Controller等代码,复制进项目可直接使用。
Lin中摒弃了传统的xml配置文件,使得配置文件更加清晰、简洁,下列为Shrio配置文件中的片段
@Configuration
public class ShiroConfig {
/**
* 安全管理器
* @param rememberMeManager
* @return
*/
@Bean
public DefaultWebSecurityManager securityManager(CookieRememberMeManager rememberMeManager){
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRememberMeManager(rememberMeManager);
securityManager.setRealm(this.shiroDbRealm());
return securityManager;
}
@Bean
public ShiroDbRealm shiroDbRealm(){
return new ShiroDbRealm();
}
项目借助Mybatis Plus代码生成器生成Bean以及Dao,通过Velocity生成Controller、Service、ServiceImpl、html、js文件。在数据库中创建新表后,代码生成文件即可根据此表生成上述文件,实现了基本的表格展示、增删改查功能,可直接复制进项目中直接使用,添加菜单数据到数据库,即可在项目中看到此菜单页面。
public static void main(String[] args) throws IOException {
// 参数为表名
LinGenerater lg = new LinGenerater("thing");
// 此方法可以生成代码
lg.execute();
// 此方法可以插入菜单数据
lg.insertMenu("thing", "测试生成", "globe");
}
日志记录通过aop(LogAop类)方式对所有包含@BizLog注解的方法进行aop切入,通过@Bizlog注解中的value属性来获取用户所做的操作,封装为日志类,异步存入数据库中(通过ScheduledThreadPoolExecutor类)。
@Pointcut("@annotation(com.du.lin.annotation.BizLog)")
public void logCut() {
}
下面是便签功能实现的部分片段。 后端:
List<Memo> list = service.getUserMemoList();
request.setAttribute("memolist", list);
前端html:
<li th:each="memo,memoStat:${memolist}">
<div>
<small th:text="${memo.time}"></small>
<small th:text="${memo.time}"></small>
<h4 th:text="${memo.title}"></h4>
<p th:text="${memo.text}"></p>
<a th:id="${memo.id}" onclick="deletememodialog(this)">
<i class="fa fa-trash-o "></i></a>
</div>
</li>
登陆界面 用户管理界面 通知管理 登陆日志界面 修改密码 便签界面 角色管理 }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。