今天给大家介绍一个电子发票管理系统,适合电子发票的管理,用户等级关系明确,功能丰富。

功能介绍

这个电子发票管理系统分为三级关系,系统管理员,租户管理员,用户。 三者关系,系统管理员管理全部,租户管理员比如为市教育局,租户为学校,用户为老师。租户的授权期限到了,租户下的所有用户都不能登录。 每个租户管理员只能管理本租户内的租户和用户,用户只能管理本租户内的电子发票。该系统只针对电子发票管理,不开电子发票。

开发环境

开发工具:IDEA、Jdk1.8、SpringBoot2.0.6版本项目

数据库:MySQL5.7

所用技术

前端:BootStrap、EasyUI、JQuery、HTML5+CSS3、Ajax

后端:SpringBoot+spring-data-jpa

安全控件:SpringSecurity

页面采用:Thymeleaf

演示视频如下

springboot电子发票管理系统票据管理毕业设计

登录逻辑代码

@Controller
public class LoginController {@Autowiredprivate UserUtils userUtils;@Autowiredprivate SysUserService userDAO;@Autowiredprivate RoleService roleDAO;@Autowiredprivate LesseeAdminService lesseeAdminDAO;@Autowiredprivate JournalService journalDAO;@Autowiredprivate UserService userDAO1;@Autowiredprivate AccreditService accreditDAO;//发送者的邮箱账号@Value("${spring.mail.username}")private String mailusername;@AutowiredJavaMailSender jms;@RequestMapping(value="/login",method=RequestMethod.GET)public String login() {List<SysUser> list = userDAO.findAll();if(list.size() == 0) {test();}return "index";}@RequestMapping(value="/zhmm")public String zhmm() {return "zhmm";}//修改密码@RequestMapping(value="/xg")public String xg(String pad) {SysUser user = userUtils.getUser();BCryptPasswordEncoder encoder=new BCryptPasswordEncoder();user.setPassword(encoder.encode(pad));userDAO.save(user);return "redirect:logout";}@RequestMapping(value="/username")@ResponseBodypublic Boolean username(String username) {SysUser user = userDAO.findByUsername(username);if(user == null) {return false;}else {return true;}}@RequestMapping(value="/yx")@ResponseBodypublic String yx(String username, HttpSession session) {//建立邮件消息SimpleMailMessage mainMessage = new SimpleMailMessage();//发送者mainMessage.setFrom(mailusername);//接收者mainMessage.setTo(username);//发送的标题mainMessage.setSubject("电子发票管理系统");String code = VerifyCodeUtils.generateVerifyCode(6);//发送的内容mainMessage.setText("请记住验证码:"+code);jms.send(mainMessage);System.out.println(code);session.setAttribute("yzm", code);return "ok";}@RequestMapping(value="/yz")@ResponseBodypublic Boolean yz(String code, HttpSession session) {String code1 = (String) session.getAttribute("yzm");if(code.equals(code1)) {return true;}else {return false;}}@RequestMapping(value="/zhmm1")@ResponseBodypublic String zhmm1(String username, String password, HttpSession session) {SysUser user = userDAO.findByUsername(username);BCryptPasswordEncoder encoder=new BCryptPasswordEncoder();user.setPassword(encoder.encode(password));userDAO.save(user);session.removeAttribute("yzm");return "密码找回成功!";}//判断原密码是否正确@RequestMapping(value="/pwd")@ResponseBodypublic Boolean pwd(String password) {SysUser user = userUtils.getUser();BCryptPasswordEncoder encoder=new BCryptPasswordEncoder();boolean f = encoder.matches(password,user.getPassword());return f;}//跳转到登录页面@RequestMapping(value="login1")public String login1() {return "login";}//登录成功跳转日志@RequestMapping(value="/main")public String main() {SysUser user = userUtils.getUser();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式String data = df.format(new Date());Journal journal = new Journal();journal.setDate(data);journal.setUsername(user.getUsername());journal.setOperationName("登入");System.out.println(journal.getOperationName());journalDAO.save(journal);/*JournalUtil.log(user.getUsername(), "登入");*/return "redirect:main1";}//登录成功跳转的欢迎页面@RequestMapping(value="/main1")public String main1(HttpSession session) {SysUser user = userUtils.getUser();if(user.getSf() == null) {return "main";}else {User user1 = userDAO1.findById(user.getId());Accredit accredit = accreditDAO.findByLesseeId(user1.getLessee().getId());String data = accredit.getOverDate();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");String data1 = df.format(new Date());try {Date bt=df.parse(data); Date et=df.parse(data1);if (bt.before(et)){ session.setAttribute("str", "租户授权已到期");return "redirect:logout";}else {session.removeAttribute("str");return "index";}} catch (ParseException e) {e.printStackTrace();} return null;}}@RequestMapping(value="/str")@ResponseBodypublic String str(HttpSession session) {session.removeAttribute("str");return "ok";}@RequestMapping(value="/logout2")public String logout2(HttpSession session) {String str = (String) session.getAttribute("str");if(str == null) {return "index";}else {return "redirect:login1";}}//退出日志@RequestMapping(value="/logout1")public String logout1() {SysUser user = userUtils.getUser();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式String data = df.format(new Date());Journal journal = new Journal();journal.setDate(data);journal.setUsername(user.getUsername());journal.setOperationName("登出");System.out.println(journal.getOperationName());journalDAO.save(journal);/*JournalUtil.log(user.getUsername(), "登出");*/return "redirect:logout";}//数据库中没有数据,先添加数据private void test() {BCryptPasswordEncoder encoder=new BCryptPasswordEncoder();   //密码加密类SysRole role = new SysRole();       role.setName("系统管理员");role.setCode("ROLE_SYSTEM");roleDAO.save(role);SysRole role2 = new SysRole();role2.setName("租户管理员");role2.setCode("ROLE_ADMIN");roleDAO.save(role2);SysRole role3 = new SysRole();role3.setName("用户");role3.setCode("ROLE_USER");roleDAO.save(role3);SysUser user = new SysUser();user.setUsername("system");user.setPassword(encoder.encode("system"));   //encode密码加密方法user.getRoles().add(role);userDAO.save(user);LesseeAdmin lesseeAdmin = new LesseeAdmin();lesseeAdmin.setUsername("3027333811@qq.com");lesseeAdmin.setPhone("123456");lesseeAdmin.setUnit("宜昌");lesseeAdmin.setName("管理员");lesseeAdmin.setPassword(encoder.encode("admin"));lesseeAdmin.getRoles().add(role2);lesseeAdminDAO.save(lesseeAdmin);}}

基于java springboot框架的电子发票管理系统相关推荐

  1. 基于java+SpringBoot框架蛋糕销售商城管理系统详细设计

    研究背景 随着计算机技术的飞速发展,供应商可以利用计算机技术来完成我们以前手工完成的一些工作,这可以大大提高工作效率,节省更多的人力资源.此外,电脑还可以对相关数据进行统计,帮助卖家根据销售情况制定销 ...

  2. 基于JAVA springboot + MYSQL +VUE的项目管理系统(含数据库),包括工时统计、原型预览、效果图管理等

    平台介绍 无鱼工时管理系统,是一款轻量级工时记录和管理工具,包括项目管理,工时上报,工时日报,工时统计等功能. 无鱼工时管理系统可通过员工工时上报的方式,来记录项目所花费的工时,帮助企业进行项目工时统 ...

  3. 基于java+SpringBoot+HTML+Mysql学生宿舍管理系统

    源码+原文获取方式: 私信获取源码+原文 目  录 摘    要 Abstract 1  绪论 1.1  课题背景 1.2  目的与意义 1.3  论文研究主要内容 2  关键技术介绍 2.1  Ja ...

  4. 基于JAVA+SpringBoot+Mybatis+MYSQL的图书管理系统

    项目功能: 一个基于SpringBoot+Thymeleaf渲染的图书管理系统 功能: 用户: a.预约图书 b.查看预约记录 c.还书 管理员: a.添加图书 b.处理预约(借书) c.查看借阅记录 ...

  5. 基于java springboot和vue的酒店管理系统

    项目描述: 实现了用户注册.登录.预订.订单管理和个人信息的修改等功能,角色分为用户.酒店管理工作人员和管理员: 技术范围: 后端springboot+mybatis 前端vue+antdv 运行环境 ...

  6. 【开源】基于Java+SpringBoot+Vue+ElementUI的超市管理系统

    目录 系统背景 系统总体设计 运行环境 技术选型 系统架构 系统用例 系统详细设计 系统功能截图 首页统计 RBAC权限管理 商品管理 订单管理 销量统计 售后订单 收银系统 商品采购 供应商管理 采 ...

  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的电影院管理系统

    项目技术: springboot + mybatis + maven + thymeleaf 页面效果:

  8. 基于JAVA+SpringBoot+Mybatis+MYSQL的疫情信息管理系统

    项目功能: 疫情信息管理系统应当具备两种对象,疫情管理员对象可以对确诊患者.密切接触者.死亡患者.治愈患者的信息进行管理操作,系统管理员对象在疫情管理员对象的功能基础上可以对系统登录用户进行增删改查. ...

  9. 基于java springboot框架开发机动车驾驶员计时培训监管系统平台

    机动车驾驶员计时培训监管系统平台说明书 1 范围 本规范规定了全国机动车驾驶员培训计时管理与监管服务系统的体系架构,以及驾驶培训机构计时培训应用平台和管理部门驾驶培训监管服务平台的功能要求.平台接口技 ...

  10. 基于java+springboot+mysql的家电销售管理系统

    系统介绍: 本课题要求实现一套家电销售管理系统,主要包括前后台,前台用户功能:登录注册.浏览资讯.个人信息管理.购物车管理.提交订单等.后台管理员功能:用户管理.家电分类管理.家电品牌管理.家电管理. ...

最新文章

  1. c# lock (obj) 与 lock (this) 区别
  2. “智源论坛Live”报名 | 清华大学游凯超:领域适配前沿研究--场景、方法与模型选择...
  3. python 中五种常用的数据类型
  4. Time to First Byte(TTFB)与Web性能优化
  5. .mmp怎么打开查看?
  6. OpenGL编程轻松入门之二次几何体
  7. 大家放松下,仿《大腕》经典对白
  8. FZU - 2042 The Mad Mathematician 数位dp + 算贡献
  9. URAL 1876 Centipede's Morning (机智)
  10. html 文件域变滑块,小巧的jQuery区域范围滑块插件noUiSlider
  11. k2p 登录路由器shell失败_斐讯p.to打不开_p.to进不去怎么办?-192路由网
  12. 条码打印软件如何设置双排标签纸尺寸
  13. alienware Win8 系统安装
  14. python requests详解
  15. 【机器人学】牛顿-欧拉动力学方程迭代形式
  16. Win10配置adb环境
  17. MIPS指令集处理器设计(支持64条汇编指令)
  18. 【C语言】#和##的作用
  19. 爬取腾讯新闻中省份疫情数据到Mysql数据库
  20. 圆桌问题(数据结构作业+数组和链表)(1024程序员不容易,这次给源码)

热门文章

  1. clover config_【兵哥小课堂】不借助任何工具将CLOVER引导添加进UEFI的正确姿势
  2. Padavan路由器无法启用FRP的解决方法(固件版本3.4.3.9-099_11-23)
  3. Thinkpad X230 黑苹果macOS 10.14 和10. 15驱动AR9285网卡
  4. 《对比Excel,轻松学python数据分析》学习笔记
  5. Java文件File类型转BASE64
  6. java财务对账系统设计_对账系统设计
  7. android电视机清理内存,电视盒子总是内存不足?五大清理方法释放更多内存
  8. cmd命令卸载sql server_Sql server 卸载方法
  9. 如何使用RDP报表工具预览页面可以出现完整数据而不是只显示一条
  10. 编译原理(王生源第三版)第一章学习笔记(含第一章习题)