Java怎么实现财务预算管理系统
短信预约 -IT技能 免费直播动态提醒
这篇文章主要介绍Java怎么实现财务预算管理系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一、项目简述
功能包括:实现公司对项目的管理。
二、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等
用户信息控制层:
@Controllerpublic class UserInfoController { @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"); } 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){ 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 userInfo = setSessionUserInfo(userInfo,request.getSession()); //将当前用户信息存入cookie setCookieUser(request,response); return ResultUtil.success("登录成功", userInfo); } } @RequestMapping("/users/getUsersByWhere/{pageNo}/{pageSize}") public @ResponseBody Result getUsersByWhere(UserInfo userInfo, @PathVariable int pageNo, @PathVariable int pageSize, HttpSession session){ if ("".equals(userInfo.getHouseid())){ userInfo.setHouseid(null); } if (userInfo.getRoleid() == -1){ userInfo.setRoleid(Config.getSessionUser(session).getRoleid()); } Utils.log(userInfo.toString()); PageModel model = new PageModel<>(pageNo,userInfo); model.setPageSize(pageSize); return userInfoService.getUsersByWhere(model); } @RequestMapping("/user/add") public @ResponseBody Result addUser(UserInfo userInfo){ System.out.println(userInfo); try { int num = userInfoService.add(userInfo); if(num>0){ return ResultUtil.success(); }else { return ResultUtil.unSuccess(); } }catch (Exception e){ return ResultUtil.error(e); } } @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}") public @ResponseBody Result deleteUser(@PathVariable String id){ try { int num = userInfoService.delete(id); if(num>0){ return ResultUtil.success(); }else { return ResultUtil.unSuccess(); } }catch (Exception e){ return ResultUtil.error(e); } } @RequestMapping("/getSessionUser") @ResponseBody public UserInfo getSessionUser(HttpSession session){ UserInfo sessionUser = (UserInfo) session.getAttribute(Config.CURRENT_USERNAME); sessionUser.setPassword(null); return sessionUser; } @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 { return ResultUtil.unSuccess(); } }catch (Exception e){ return ResultUtil.error(e); } } @RequestMapping("/role/add") 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") public @ResponseBody Result updateRole(Role role){ 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 { privilegeService.delPrivilegesWenDelRole(roleid); int num = userInfoService.deleteRole(roleid); if(num>0){ return ResultUtil.success(); }else { privilegeService.addDefaultPrivilegesWhenAddRole(roleid); return ResultUtil.unSuccess(); } }catch (Exception e){ return ResultUtil.error(e); } } @RequestMapping("/getRole/{id}") public @ResponseBody Result getRoleById(@PathVariable String id){ try { Role role = userInfoService.getRoleById(id); if(role != null){ return ResultUtil.success(role); }else { return ResultUtil.unSuccess(); } }catch (Exception e){ return ResultUtil.error(e); } } 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); } private void delCookieUser(HttpServletRequest request, HttpServletResponse response){ UserInfo user = getSessionUser(request.getSession()); Cookie cookie = new Cookie(Config.CURRENT_USERNAME,user.getUsername()+"_"+user.getId()); cookie.setMaxAge(-1); response.addCookie(cookie); } public UserInfo setSessionUserInfo(UserInfo userInfo, HttpSession session){ List<Privilege> privileges = privilegeService.getPrivilegeByRoleid(userInfo.getRoleid()); userInfo.setPrivileges(privileges); session.setAttribute(Config.CURRENT_USERNAME,userInfo); return userInfo; } public UserInfo getUserInfo(UserInfo userInfo){ return userInfoService.getUserInfo(userInfo); }}
数据图形展示:
@RestController@RequestMapping("/bills")public class BillController { @Resource private BillService billService; @RequestMapping("/getBillsToChart") public Result<Bill> findByWhereNoPage(Bill bill, HttpSession session){ bill = getHouseBill(bill,session); return billService.findByWhereNoPage(bill); } @RequestMapping("/getBillsByWhere/{type}/{pageNo}/{pageSize}") public Result<Bill> getBillsByWhere(Bill bill,@PathVariable String type, @PathVariable int pageNo, @PathVariable int pageSize, HttpSession session){ 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){ 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)); } catch (ParseException e) { e.printStackTrace(); } PageModel model = new PageModel<>(pageNo,bill); model.setPageSize(pageSize); Result result = billService.findByWhere(model); List<Map<String,String>> r = billService.getMonthlyInfo(model); Map<String,String> map = new HashMap<>(); 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){ bill.setUserid(currentUser.getId()); } return bill; } @RequestMapping(value = "/addBill",method = RequestMethod.POST) public Result add(Bill bill, HttpSession session){ if (Config.getSessionUser(session)!=null){ bill.setUserid(Config.getSessionUser(session).getId()); } Utils.log(bill.toString()); try { int num = billService.add(bill); if(num>0){ int billid = bill.getId(); bill = new Bill(); bill.setId(billid); return ResultUtil.success("记账成功!",billService.findByWhereNoPage(bill));// return ResultUtil.success("记账成功!",bill); }else { return ResultUtil.unSuccess(); } }catch (Exception e){ return ResultUtil.error(e); } } @RequestMapping("/updateBill") public Result update(Bill bill, HttpSession session){ if (Config.getSessionUser(session)!=null){ bill.setUserid(Config.getSessionUser(session).getId()); } Utils.log(bill.toString()); try { int num = billService.update(bill); if(num>0){ return ResultUtil.success("修改成功!",null); }else { return ResultUtil.unSuccess(); } }catch (Exception e){ return ResultUtil.error(e); } } @RequestMapping("/delBill") public Result del(int id){ try { int num = billService.del(id); if(num>0){ return ResultUtil.success("删除成功!",null); }else { return ResultUtil.unSuccess(); } }catch (Exception e){ return ResultUtil.error(e); } } @RequestMapping("/getPayways") public Result<Payway> getAllPayways(){ try { List<Payway> payways = billService.getAllPayways(); if (payways!=null && payways.size()>0){ return ResultUtil.success(payways); }else { return ResultUtil.unSuccess(); } } catch (Exception e) { return ResultUtil.error(e); } } }
用户信息mapper类:
@Repositorypublic interface UserInfoMapper { UserInfo getUserInfo(UserInfo userInfo); int addUser(UserInfo userInfo); int userIsExisted(UserInfo userInfo); List<UserInfo> getUsersByWhere(PageModel<UserInfo> model); int getToatlByWhere(PageModel<UserInfo> model); int add(UserInfo userInfo); int update(UserInfo userInfo); int delete(String id); List<Role> getAllRoles(); int addRole(Role role); int updateRole(Role role); int deleteRole(String id); Role getRoleById(String id); int addHouseId(House house);}
以上是“Java怎么实现财务预算管理系统”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341