黑猫绩效平台

我要开发同款
proginn09592970492022年10月09日
166阅读

作品详情

同步客户的考勤打卡机数据,服务于客户KPI考核,薪资管理,财务考核,人力权限管理系统.后端采用springcloud+Mybatis+shiro+docker搭建,实现了按钮级的权限控制,和数据权限的实现。
一,责任描述
工作流,审批流,绩效考核的开发
负责菜单权限管理,用户管理,角色管理java后端开发
负责redis相关需求开发
二,技术亮点:
1.通过配置ShiroFilterFactoryBean和自定义实现 ShiroRealm,实现认证和授权两大模块,用redis保存授权信息。
2.实现了登录接口和验证码的限流操作。(60秒内10次点击).通过自定义@Limit注解,和AOP框架,获取方法的key值 ,通过redis+lua脚本实现限流,调用的时候不超过阈值,则直接返回并执行计算器自加。
3.通过AOP实现了controller层的操作日志输出,如果无异常则保存至数据库,有异常则抛出。
4.Spring Boot 中的异步实现了权限刷新,日志保存等任务,提高后台吞吐量。通过@bean实例化线程池,通过@Async实现异步调用。
5.通过mybatis中Interceptor实现数据权限过滤,核心设计为重写intercept方法,获取执行sql的类型,如果是select并且需要过滤,则获取当前用户的部门id,再在where后面根据dept_id过滤。
6.通过shrio配置 rememberMe cookie ,重开浏览器后无需重新登录。通过shiroDialect配置Thymeleaf 中的 shiro 标签,实现页面按钮显示或隐藏,通过shrio的SimpleHash方法实现密码加盐加密。

三,遇到的问题以及如何解决
1.redis和mysql中数据不一致的问题
后经排查是在redis写数据过程中 先删除redis中数据,再更新mysql。应该先更新mysql,再删除redis中的key。
2.float精度丢失问题,后项目float全部改为BigDecimal。
3.重启docker容器后图片丢失问题,后续通过docker -v挂在到宿主机地址解决
mybatis中使用了事务注解失效问题,无法识别新增mapper的问题,后通过配置解决。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论