基于javaweb+mysql的springboot财务管理系统(java+springboot+vue+elementui+layui+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Node.js≥10
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot财务管理系统(java+springboot+vue+elementui+layui+mysql)
项目介绍
基于SpringBoot Vue的财务管理系统
角色:管理员、员工
管理员:管理员登录系统后,可以对首页,个人中心,员工管理,部门管理,员工工资管理,工资调整管理,资产类别管理,固定资产管理,经营信息管理,序时账管理,年度利润管理,系统管理等功能
员工:员工登录进入系统可以对首页,个人中心,员工工资管理,工资调整管理,系统管理等功能
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Vue+ElementUI+Layui+HTML+CSS+JS
使用说明
项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456
if("-1".equals(bill.getPayway())){
bill.setPayway(null);
bill.setType(type);
bill = getHouseBill(bill,session);
System.out.println(bill);
PageModel model = new PageModel<>(pageNo,bill);
model.setPageSize(pageSize);
return billService.findByWhere(model);
@RequestMapping("/getBillsByUserid/{userid}/{pageNo}/{pageSize}/{year}/{month}")
public Result getBillsByUserid(@PathVariable Integer userid, @PathVariable int pageNo, @PathVariable int pageSize, @PathVariable int year, @PathVariable int month){
request.getSession().removeAttribute(Config.CURRENT_USERNAME);
return "login";
@RequestMapping("/getAllRoles")
public @ResponseBody Result<Role> getAllRoles(){
try {
List<Role> roles = userInfoService.getAllRoles();
if (roles.size()>0){
return ResultUtil.success(roles);
}else {
return ResultUtil.unSuccess();
}catch (Exception e){
result.setData(object);
return result;
public static Result error(Exception e){
Result result = new Result();
result.setCode(Config.ERROR);
result.setMsg("操作失败,发生异常");
//如果启用自定义日志,则在控制台打印错误信息
Utils.log(e.getMessage());
return result;
public static Result unSuccess(){
* 登录时将用户信息加入cookie中
* @param response
*/
private void setCookieUser(HttpServletRequest request, HttpServletResponse response){
UserInfo user = getSessionUser(request.getSession());
Cookie cookie = new Cookie(Config.CURRENT_USERNAME,user.getUsername()+"_"+user.getId());
//cookie 保存7天
cookie.setMaxAge(60*60*24*7);
response.addCookie(cookie);
/**
* 注销时删除cookie信息
return userInfoService.getUserInfo(userInfo);
工具类:
/**
* 接口访问返回
*/
public class ResultUtil {
public static Result success(){
Result result = new Result();
result.setCode(Config.SUCCESS);
result.setMsg("操作成功!");
return result;
public static Result success(List list){
Result result = new Result();
PageModel model = new PageModel<>(pageNo,bill);
model.setPageSize(pageSize);
return billService.findByWhere(model);
@RequestMapping("/getBillsByUserid/{userid}/{pageNo}/{pageSize}/{year}/{month}")
public Result getBillsByUserid(@PathVariable Integer userid, @PathVariable int pageNo, @PathVariable int pageSize, @PathVariable int year, @PathVariable int month){
Bill bill = new Bill();
bill.setUserid(userid);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
bill.setStartTime(year+"-0"+month+"-01");
try {
Date date = sdf.parse(year+"-0"+(month+1)+"-01");
date.setDate(date.getDate()-1);
bill.setEndTime(sdf.format(date));
@Resource
private UserInfoService userInfoService;
@Resource
private PrivilegeService privilegeService;
@RequestMapping(value = {"/", "login.html"})
public String toLogin(HttpServletRequest request, HttpServletResponse response){
HttpSession session = request.getSession();
if(session.getAttribute(Config.CURRENT_USERNAME)==null){
return "login";
}else {
try {
response.sendRedirect("/pages/index");
for (Map<String,String> m: r) {
map.put(m.get("typeid"),String.format("%.2f",m.get("sum(money)")));
result.setData(map);
return result;
private Bill getHouseBill(Bill bill, HttpSession session) {
UserInfo currentUser = Config.getSessionUser(session);
//当登录用户为家主时,查询默认查询全家账单情况
//当登录用户为普通用户时,仅查询当前用户的账单
if (currentUser.getRoleid() == 2){
bill.setHouseid(currentUser.getHouseid());
}else if (currentUser.getRoleid() == 3){
public @ResponseBody Result addRole(Role role){
try {
int num = userInfoService.addRole(role);
if(num>0){
privilegeService.addDefaultPrivilegesWhenAddRole(role.getRoleid().toString());
return ResultUtil.success();
}else {
return ResultUtil.unSuccess();
}catch (Exception e){
return ResultUtil.error(e);
@RequestMapping("/role/update")
@RequestMapping("/bills")
public class BillController {
@Resource
private BillService billService;
/**
* 适用于统计图
* @param bill
* @return
*/
@RequestMapping("/getBillsToChart")
@RequestMapping("/logout")
public String logout(HttpServletRequest request, HttpServletResponse response){
delCookieUser(request, response);
request.getSession().removeAttribute(Config.CURRENT_USERNAME);
return "login";
@RequestMapping("/getAllRoles")
public @ResponseBody Result<Role> getAllRoles(){
try {
List<Role> roles = userInfoService.getAllRoles();
if (roles.size()>0){
return ResultUtil.success(roles);
}else {
public UserInfo getUserInfo(UserInfo userInfo){
return userInfoService.getUserInfo(userInfo);
工具类:
/**
* 接口访问返回
*/
public class ResultUtil {
public static Result success(){
Result result = new Result();
result.setCode(Config.SUCCESS);
result.setMsg("操作成功!");
return result;
public static Result success(List list){
return billService.findByWhere(model);
@RequestMapping("/getBillsByUserid/{userid}/{pageNo}/{pageSize}/{year}/{month}")
public Result getBillsByUserid(@PathVariable Integer userid, @PathVariable int pageNo, @PathVariable int pageSize, @PathVariable int year, @PathVariable int month){
Bill bill = new Bill();
bill.setUserid(userid);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
bill.setStartTime(year+"-0"+month+"-01");
try {
Date date = sdf.parse(year+"-0"+(month+1)+"-01");
date.setDate(date.getDate()-1);
@RequestMapping("/user/update")
public @ResponseBody Result updateUser(UserInfo userInfo){
try {
int num = userInfoService.update(userInfo);
if(num>0){
return ResultUtil.success();
}else {
return ResultUtil.unSuccess();
}catch (Exception e){
return ResultUtil.error(e);
@RequestMapping("/user/del/{id}")
HttpSession session = request.getSession();
if(session.getAttribute(Config.CURRENT_USERNAME)==null){
return "login";
}else {
try {
response.sendRedirect("/pages/index");
} catch (IOException e) {
e.printStackTrace();
return "login";
return null;
// @RequestMapping(value = "/login.do",method = RequestMethod.POST)
@RequestMapping(value = "/login.do")
@ResponseBody
public Result getUserInfo(UserInfo userInfo, HttpServletRequest request, HttpServletResponse response){
@ResponseBody
public Result getUserInfo(UserInfo userInfo, HttpServletRequest request, HttpServletResponse response){
boolean userIsExisted = userInfoService.userIsExisted(userInfo);
System.out.println(userIsExisted + " - " + request.getHeader("token"));
userInfo = getUserInfo(userInfo);
if("client".equals(request.getHeader("token")) && !userIsExisted){
//用户不存在
return ResultUtil.success(-1);
if (userIsExisted && userInfo == null){
return ResultUtil.unSuccess("用户名或密码错误!");
}else {
//将用户信息存入session
* 登录时将用户信息加入cookie中
* @param response
*/
private void setCookieUser(HttpServletRequest request, HttpServletResponse response){
UserInfo user = getSessionUser(request.getSession());
Cookie cookie = new Cookie(Config.CURRENT_USERNAME,user.getUsername()+"_"+user.getId());
//cookie 保存7天
cookie.setMaxAge(60*60*24*7);
response.addCookie(cookie);
/**
* 注销时删除cookie信息
* @param request
try {
int num = userInfoService.updateRole(role);
if(num>0){
return ResultUtil.success();
}else {
return ResultUtil.unSuccess();
}catch (Exception e){
return ResultUtil.error(e);
@RequestMapping("/role/del/{roleid}")
public @ResponseBody Result deleteRole(@PathVariable String roleid){
try {