Java项目之java+springboot+ssm实现理财管理系统设计

 更新时间:2022年03月02日 10:00:39   作者:qq1334611189  
这篇文章主要介绍了Java项目java+springboot+ssm实现理财管理系统设计,使用了当前较为流行的spring boot,spring,spring mvc,mybatis,shiro框架分页处理使用了pagehelper进行操作,需要的朋友可以参考一下

理财系统:

设计使用了当前较为流行的spring bootspring,spring mvcmybatisshiro框架分页处理使用了pagehelper进行操作,
前台使用了模板语言thymeleaf,界面较为炫酷,适合年轻朋友。开发工具采用的是IDEA。
该系统主要解决了理财中的一些问题

包含功能:权限管理,用户信息管理,理财产品管理等内容。

登陆控制层: 

@Controller
@RequestMapping("/login")
public class LoginController {
    @Autowired
    UserService userService;
 
    @Autowired
    AdminService adminService;
 
    //public static final Map<String, HttpSession> USR_SESSION = new HashMap<>();
    public static String last_login = "";
 
    @GetMapping("/loginVerifyUsername/{username}")
    @ResponseBody
    public Msg loginVerifyUsername(@PathVariable("username") String username) {
        User user = userService.selectUserByTerms(username, null);
        if (user != null) {
            return Msg.success();
        }
        Admin admin = adminService.selectAdminByTerms(username, null);
        if (admin != null) {
            return Msg.success();
        }
        return Msg.fail();
    }
 
    @GetMapping("/verifyLogin")
    @ResponseBody
    public Msg verifyLogin(@RequestParam("username") String username, @RequestParam("password") String password,
                           HttpSession session) {
 
        User loginUser = userService.selectUserByTerms(username, password);
        if (loginUser != null) {
            //获取当前用户
            Subject subject = SecurityUtils.getSubject();
            //封装用户登录数据
            UsernamePasswordToken token = new UsernamePasswordToken(username, password);
            try {
                subject.login(token);
                return Msg.success().add("url", "/user/index.html");
            } catch (UnknownAccountException | IncorrectCredentialsException e) {
                return Msg.fail();
            }
        }
 
        Admin admin = adminService.selectAdminByTerms(username, password);
        if (admin != null) {
            //获取当前用户
            Subject subject = SecurityUtils.getSubject();
            //封装用户登录数据
            UsernamePasswordToken token = new UsernamePasswordToken(username, password);
            try {
                subject.login(token);
                return Msg.success().add("url", "/admin/index.html");
            } catch (UnknownAccountException | IncorrectCredentialsException e) {
                //model.addAttribute("msg","密码错误");
                return Msg.fail();
            }
        }
        return Msg.fail();
    }
 
    @PostMapping("/register")
    @ResponseBody
    public Msg register(@RequestParam("username") String username, @RequestParam("password") String password) {
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        user.setStatus(0);
        user.setReputation("良好");
        userService.insertUser(user);
        return Msg.success().add("url", "/");
    }
 
 
}

用户信息控制层:

@Controller
public class UserController {
 
    @Autowired
    UserService userService;
 
    /**
     * 跳转到账户安全界面(用户)(修改密码)
     *
     * @param model
     * @return
     */
    @RequestMapping("/user/personal/toSecurity.html")
    public String toSecurity(Model model) {
        model.addAttribute("pageTopBarInfo", "账户安全界面");
        model.addAttribute("activeUrl1", "personalActive");
        model.addAttribute("activeUrl2", "securityActive");
        return "/user/personal/security";
    }
 
    /**
     * 跳转到个人信息界面(用户)
     *
     * @param model
     * @param session
     * @return
     */
    @RequestMapping("/user/personal/toProfile.html")
    public String toProfile(Model model, HttpSession session) {
        User loginUser = (User) session.getAttribute("loginUser");
        User user = userService.selectUserById(loginUser.getId());
        model.addAttribute("user", user);
 
        model.addAttribute("pageTopBarInfo", "个人信息界面");
        return "/user/personal/profile";
    }
 
    /**
     * 判断并更新密码(用户)
     *
     * @param request
     * @return
     */
    @PutMapping("/user/updatePwd")
    @ResponseBody
    public Msg updatePwd(HttpServletRequest request, HttpSession session) {
 
        String id = request.getParameter("id");
        User user = userService.selectUserById(Integer.valueOf(id));
        String oldpwd = request.getParameter("oldpwd");
        String newpwd = request.getParameter("newpwd");
        User verifyExistUser = userService.selectUserByTerms(user.getUsername(), oldpwd);
        if (verifyExistUser != null) {
            user.setPassword(newpwd);
 
            // 当前登录用户信息改变时session里面存储的用户信息也应该同时改变
            User loginUser = (User) session.getAttribute("loginUser");
            if (Integer.valueOf(id) == (loginUser.getId())) {
                session.setAttribute("loginUser", user);
            }
            userService.updateUser(user);
            return Msg.success();
        }
        return Msg.fail();
    }
 
    /**
     * 更新用户信息(用户更改自己信息)
     *
     * @param id
     * @param user
     * @param session
     * @return
     */
    @PutMapping("/user/updateUserProfile/{userId}")
    @ResponseBody
    public Msg updateUserProfile(@PathVariable("userId") Integer id, User user, HttpSession session) {
        user.setId(id);
        Integer result = userService.updateUser(user);
        if (result == 1) {
            // 当前登录用户信息改变时session里面存储的用户信息也应该同时改变
            User loginUser = (User) session.getAttribute("loginUser");
            if (loginUser!=null){
                if (id == (loginUser.getId())) {
                    session.setAttribute("loginUser", userService.selectUserById(id));
                }
            }
            return Msg.success();
        }
        return Msg.fail();
    }
 
    /**
     * 用户强制下线(管理员更改用户信息)
     *
     * @param id
     * @param session
     * @return
     */
    @PutMapping("/user/updateUserStatus/{id}")
    @ResponseBody
    public Msg updateUserStatus(@PathVariable("id") Integer id, HttpSession session) {
        User user = userService.selectUserById(id);
        user.setStatus(0);
        Integer result = userService.updateUser(user);
        if (result == 1) {
            // 当前登录用户强制下线
            session.removeAttribute("loginUser");
            return Msg.success();
        }
        return Msg.fail();
    }
 
    /**
     * 跳转到用户信息界面(管理员)
     * @param pageNum
     * @param pageSize
     * @param model
     * @param session
     * @return
     */
    @GetMapping("/admin/userinfo/toUserInfo.html")
    public String toUserInfo(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
                             @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
                             Model model, HttpSession session) {
        // 引入PageHelper插件,在查询之前调用startPage方法,传入页码以及每页大小
        PageHelper.startPage(pageNum, pageSize);
        List<User> list = userService.selectAllUser();
        // 使用PageInfo包装查询后的结果,并交给页面处理
        // PageInfo封装了详细的分页信息,包括我们查询出来的数据,还可以传入连续显示的页数(5)
        PageInfo<User> pageInfo = new PageInfo<User>(list, 5);
        model.addAttribute("userPageInfo",pageInfo);
        model.addAttribute("userList",list);
 
        model.addAttribute("activeUrl1", "userInfoActive");
        model.addAttribute("activeUrl2", "userInfoActive");
        model.addAttribute("pageTopBarInfo", "用户信息界面");
        return "/admin/userinfo/userinfo";
    }
 
    /**
     * 添加用户(管理员)
     * @param user
     * @return
     */
    @PostMapping("/user/addUser")
    @ResponseBody
    public Msg addUser(User user){
        user.setStatus(0);
        user.setReputation("良好");
        Integer result = userService.insertUser(user);
        if (result==1){
            return Msg.success();
        }
        return Msg.fail();
    }
 
    /**
     * 更新用户信息时回显用户信息(管理员)
     * @param id
     * @return
     */
    @GetMapping("/user/getUserById/{id}")
    @ResponseBody
    public Msg getUserInfoById(@PathVariable("id")Integer id){
        User user = userService.selectUserById(id);
        return Msg.success().add("user",user);
    }
 
    /**
     * 删除用户(管理员)
     * @param id
     * @param session
     * @return
     */
    @DeleteMapping("/user/deleteUserById/{id}")
    @ResponseBody
    public Msg deleteUserById(@PathVariable("id")Integer id,HttpSession session){
        Integer result = userService.deleteUserById(id);
        if (result==1){
            // 删除用户时应先判断这个用户是否在线
            User loginUser = (User) session.getAttribute("loginUser");
            if (loginUser!=null){
                if (id == (loginUser.getId())) {
                    session.removeAttribute("loginUser");
                }
            }
            return Msg.success();
        }
        return Msg.fail();
    }
 
    /**
     * 跳转到用户信誉管理界面(管理员)
     * @param pageNum
     * @param pageSize
     * @param model
     * @param session
     * @return
     */
    @GetMapping("/admin/userinfo/toReputation.html")
    public String toUserReputation(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
                             @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
                             Model model, HttpSession session) {
        PageHelper.startPage(pageNum, pageSize);
        List<User> list = userService.selectAllUser();
        PageInfo<User> pageInfo = new PageInfo<User>(list, 5);
        model.addAttribute("userPageInfo",pageInfo);
        model.addAttribute("userList",list);
 
        model.addAttribute("activeUrl1", "userInfoActive");
        model.addAttribute("activeUrl2", "reputationActive");
        model.addAttribute("pageTopBarInfo", "用户信誉界面");
        return "/admin/userinfo/reputation";
    }
 
}

银行卡管理界面:
@Controller
public class BankCardController {
 
    @Autowired
    BankCardService bankCardService;
 
    /**
     * 跳转到银行卡管理界面(用户)
     *
     * @param model
     * @param session
     * @return
     */
    @GetMapping("/user/personal/toBankCard.html")
    public String toBankCard(Model model, HttpSession session) {
        User loginUser = (User) session.getAttribute("loginUser");
        List<Bankcard> list = bankCardService.selectBankCardByUserId(loginUser.getId());
        model.addAttribute("bankCardList", list);
 
        model.addAttribute("pageTopBarInfo", "银行卡管理界面");
        model.addAttribute("activeUrl1", "personalActive");
        model.addAttribute("activeUrl2", "bankCardActive");
        return "/user/personal/bankcard";
    }
 
    /**
     * 新增银行卡
     *
     * @param bankcard
     * @param session
     * @return
     */
    @PostMapping("/user/addBankCard")
    @ResponseBody
    public Msg addBankCard(Bankcard bankcard, HttpSession session) {
        //System.out.println(bankcard.getCardbank());
        User loginUser = (User) session.getAttribute("loginUser");
        bankcard.setUserid(loginUser.getId());
        Integer result = bankCardService.insertBankCard(bankcard);
        if (result == 1) {
            return Msg.success();
        }
        return Msg.fail();
    }
 
    /**
     * 修改银行卡时回显银行卡信息
     *
     * @param id
     * @return
     */
    @GetMapping("/user/getBankCardById/{id}")
    @ResponseBody
    public Msg getBankCardById(@PathVariable("id") Integer id) {
        Bankcard bankcard = bankCardService.selectBankCardById(id);
        return Msg.success().add("bankcard", bankcard);
    }
 
    /**
     * 修改银行卡信息
     *
     * @param id
     * @param bankcard
     * @return
     */
    @PutMapping("/user/updateBankCard/{update-id}")
    @ResponseBody
    public Msg updateBankCard(@PathVariable("update-id") Integer id, Bankcard bankcard) {
        bankcard.setId(id);
        Integer result = bankCardService.updateBankCard(bankcard);
        if (result == 1) {
            return Msg.success();
        }
        return Msg.fail();
    }
 
    /**
     * 删除银行卡
     *
     * @param id
     * @return
     */
    @DeleteMapping("/user/deleteBankCard/{id}")
    @ResponseBody
    public Msg deleteBankCard(@PathVariable("id") Integer id) {
        Integer result = bankCardService.deleteBankCardById(id);
        if (result == 1) {
            return Msg.success();
        }
        return Msg.fail();
    }
 
    /**
     * 跳转到银行卡管理界面(管理员)
     * @param pageNum
     * @param pageSize
     * @param model
     * @param session
     * @return
     */
    @GetMapping("/admin/userinfo/toBankCard.html")
    public String toBankCard1(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
                              @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
                              Model model, HttpSession session) {
        PageHelper.startPage(pageNum, pageSize);
        List<Bankcard> list = bankCardService.selectAllBankCard();
        PageInfo<Bankcard> pageInfo = new PageInfo<Bankcard>(list, 5);
        model.addAttribute("bankcardPageInfo",pageInfo);
        model.addAttribute("bankcardList",list);
 
        model.addAttribute("pageTopBarInfo", "银行卡管理界面");
        model.addAttribute("activeUrl1", "userInfoActive");
        model.addAttribute("activeUrl2", "bankcardActive");
        return "/admin/userinfo/bankcard";
    }
}

到此这篇关于Java项目java+springboot+ssm实现理财管理系统设计的文章就介绍到这了,更多相关java+springboot+ssm实现理财管理系统设计内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一小时迅速入门Mybatis之Prepared Statement与符号的使用

    一小时迅速入门Mybatis之Prepared Statement与符号的使用

    这篇文章主要介绍了一小时迅速入门Mybatis之Prepared Statement与符号的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • MyBatis之传入参数为list、数组、map的写法

    MyBatis之传入参数为list、数组、map的写法

    这篇文章主要介绍了MyBatis之传入参数为list、数组、map的写法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • SpringBoot中@ConfigurationProperties注解的使用与源码详解

    SpringBoot中@ConfigurationProperties注解的使用与源码详解

    这篇文章主要介绍了SpringBoot中@ConfigurationProperties注解的使用与源码详解,@ConfigurationProperties注解用于自动配置绑定,可以将application.properties配置中的值注入到bean对象上,需要的朋友可以参考下
    2023-11-11
  • mybatis中insert主键ID获取和多参数传递的示例代码

    mybatis中insert主键ID获取和多参数传递的示例代码

    这篇文章主要介绍了mybatis中insert主键ID获取和多参数传递的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • java查找文件夹下最新生成的文件的方法

    java查找文件夹下最新生成的文件的方法

    在本篇文章中我们给大家分享了关于java怎么查找文件夹下最新生成的文件的相关方法和知识点,有需要的朋友们参考下。
    2019-07-07
  • java随机数生成具体实现代码

    java随机数生成具体实现代码

    这篇文章主要为大家分享了java随机数生成具体实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Java实现中国象棋游戏

    Java实现中国象棋游戏

    这篇文章主要为大家详细介绍了Java实现中国象棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • IDEA删除的文件怎么找回更新的方法

    IDEA删除的文件怎么找回更新的方法

    查找本地历史记录IDEA在进行代码版本管理时,会自动创建本地历史记录,如果我们误删了文件,可以通过查找本地历史记录来找回文件,本文就来介绍一下
    2023-11-11
  • SparkSQL开窗函数分析使用示例

    SparkSQL开窗函数分析使用示例

    开窗函数的引入是为了既显示聚集前的数据,又显示聚集后的数据。即在每一行的最后一列添加聚合函数的结果。开窗用于为行定义一个窗口,它对一组值进行操作,不需要使用 GROUP BY 子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列
    2023-01-01
  • SpringBoot实现单点登录(SSO)的四种方案

    SpringBoot实现单点登录(SSO)的四种方案

    单点登录(Single Sign-On,SSO)是企业应用系统中常见的用户认证方案,它允许用户使用一组凭证访问多个相关但独立的系统,无需重复登录,本文给大家介绍了SpringBoot实现单点登录(SSO)的四种方案,需要的朋友可以参考下
    2025-04-04

最新评论