作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
该毕业设计使用了当前较为流行的spring boot,spring,spring mvc,mybatis,shiro框架分页处理使用了pagehelper进行操作,前台使用了模板语言thymeleaf,界面较为炫酷,适合年轻朋友。开发工具采用的是IDEA。该系统主要解决了理财中的一些问题,包含功能:权限管理,用户信息管理,理财产品管理等内容。
主要分为管理员和普通用户两种用户;
1.管理员模块主要包括:
用户信息管理:用户信息、银行卡、个人征信;
理财产品管理:零钱理财、工资理财、期限理财、基金理财、精选银行;
权限管理:用户权限、管理员权限
网贷管理:网贷审核、网贷信息;
2.普通用户模块主要包括
个人理财:零钱理财、工资理财、期限理财、基金理财、银行推荐;
金融工具:资金记录、安全网贷;
个人中心:我的理财、我的借贷、银行卡管理、账户安全;
技术选型
springboot+bootstrap+mysql8.0
运行
项目访问路径:
http://localhost:8080/
管理员登录: admin 123456
普通用户登录: lisi 123456
运行截图
相关代码
银行卡控制器
@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";
}
}
银行控制器
@Controller
public class BankController {
@Autowired
BankService bankService;
/**
* 跳转用户银行推荐界面
* @param model
* @return
*/
@RequestMapping("/user/finance/toBank.html")
public String toBank(Model model){
List<Bank> list = bankService.selectAllBank();
model.addAttribute("bankList",list);
model.addAttribute("pageTopBarInfo","银行推荐界面");
model.addAttribute("activeUrl1","financeActive");
model.addAttribute("activeUrl2","bankActive");
return "user/finance/bank";
}
/**
* 跳转到推荐银行管理界面(管理员)
* @param pageNum
* @param pageSize
* @param model
* @param session
* @return
*/
@GetMapping("/admin/finance/toBank.html")
public String toBank(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
Model model, HttpSession session) {
PageHelper.startPage(pageNum, pageSize);
List<Bank> list = bankService.selectAllBank();
PageInfo<Bank> pageInfo = new PageInfo<Bank>(list, 5);
model.addAttribute("finacnePageInfo",pageInfo);
model.addAttribute("financeList",list);
model.addAttribute("activeUrl1", "financeActive");
model.addAttribute("activeUrl2", "bankctive");
model.addAttribute("pageTopBarInfo", "推荐银行管理界面");
return "/admin/finance/bank";
}
/**
* 新增推荐银行
*
* @return
*/
@PostMapping("/admin/addBank")
@ResponseBody
public Msg addBank(Bank bank){
Integer result = bankService.insertBank(bank);
if (result==1){
return Msg.success();
}
return Msg.fail();
}
/**
* 更新时回显信息
* @param id
* @return
*/
@GetMapping("/admin/getBankInfoById/{id}")
@ResponseBody
public Msg getBankInfoById(@PathVariable("id") Integer id){
Bank bank = bankService.selectBankById(id);
return Msg.success().add("bank",bank);
}
/**
* 更新
* @param id
*
* @return
*/
@PutMapping("/admin/updateBank/{id}")
@ResponseBody
public Msg updateBank(@PathVariable("id") Integer id,Bank bank){
bank.setId(id);
Integer result = bankService.updateBank(bank);
if (result==1){
return Msg.success();
}
return Msg.fail();
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/admin/deleteBankById/{id}")
@ResponseBody
public Msg deleteBankById(@PathVariable("id") Integer id){
Integer result = bankService.deleteBankById(id);
if (result==1){
return Msg.success();
}
return Msg.fail();
}
}
零钱修改
@Controller
public class ChangeMoneyController {
@Autowired
ChangeMoneyService changeMoneyService;
@Autowired
UserChangeMoneyService userChangeMoneyService;
@Autowired
FlowOfFundsService flowOfFundsService;
/**
* 跳转到零钱理财界面(用户)
* @param model
* @return
*/
@RequestMapping("/user/finance/toChangeMoney.html")
public String toChangemoney(Model model){
List<ChangeMoney> list = changeMoneyService.selectAllChangeMoney();
model.addAttribute("changeMoneyList",list);
model.addAttribute("pageTopBarInfo","零钱理财界面");
model.addAttribute("activeUrl1","financeActive");
model.addAttribute("activeUrl2","changeMoneyActive");
return "/user/finance/changemoney";
}
/**
* 买入工资理财产品
* @param changeMoneyId
* @param userId
* @return
*/
@PostMapping("/user/buyChangeMoney")
@ResponseBody
public Msg buyChangeMoney(@RequestParam("changeMoneyId")Integer changeMoneyId,
@RequestParam("userId") Integer userId ){
ChangeMoney cm = changeMoneyService.selectChangeMoneyById(changeMoneyId);
UserChangeMoney ucm = new UserChangeMoney();
ucm.setUserid(userId);
ucm.setChangeid(changeMoneyId);
ucm.setStarttime(new Date());
ucm.setAveryield(cm.getAnnualincome());
ucm.setProfit(cm.getAnnualincome().multiply(cm.getInvesmoney()));
ucm.setStatus(1);
Integer result = userChangeMoneyService.insertUserChangeMoney(ucm);
if (result==1){
FlowOfFunds fof = new FlowOfFunds();
fof.setUserid(userId);
fof.setFlowmoney(cm.getInvesmoney());
fof.setType(1);
fof.setSource(cm.getName());
fof.setCreatetime(new Date());
fof.setFunddesc("无");
flowOfFundsService.insertFlowOfFunds(fof);
return Msg.success();
}else {
return Msg.fail();
}
}
/**
* 跳转到零钱理财管理界面(管理员)
* @param pageNum
* @param pageSize
* @param model
* @param session
* @return
*/
@GetMapping("/admin/finance/toChangeMoney.html")
public String toUserInfo(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
Model model, HttpSession session) {
PageHelper.startPage(pageNum, pageSize);
List<ChangeMoney> list = changeMoneyService.selectAllChangeMoney();
PageInfo<ChangeMoney> pageInfo = new PageInfo<ChangeMoney>(list, 5);
model.addAttribute("finacnePageInfo",pageInfo);
model.addAttribute("financeList",list);
model.addAttribute("activeUrl1", "financeActive");
model.addAttribute("activeUrl2", "changemoneyActive");
model.addAttribute("pageTopBarInfo", "零钱理财管理界面");
return "/admin/finance/changemoney";
}
/**
* 新增零钱理财产品
* @param changeMoney
* @return
*/
@PostMapping("/admin/addChangeMoney")
@ResponseBody
public Msg addChangeMoney(ChangeMoney changeMoney){
Integer result = changeMoneyService.insertChangeMoney(changeMoney);
if (result==1){
return Msg.success();
}
return Msg.fail();
}
/**
* 更新时回显信息
* @param id
* @return
*/
@GetMapping("/admin/getChangeMoneyInfoById/{id}")
@ResponseBody
public Msg getChangeMoneyInfoById(@PathVariable("id") Integer id){
ChangeMoney changeMoney = changeMoneyService.selectChangeMoneyById(id);
return Msg.success().add("changeMoney",changeMoney);
}
/**
* 更新
* @param id
* @param changeMoney
* @return
*/
@PutMapping("/admin/updateChangeMoney/{id}")
@ResponseBody
public Msg updateChangeMoney(@PathVariable("id") Integer id,ChangeMoney changeMoney){
changeMoney.setId(id);
Integer result = changeMoneyService.updateChangeMoney(changeMoney);
if (result==1){
return Msg.success();
}
return Msg.fail();
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/admin/deleteChangeMoneyById/{id}")
@ResponseBody
public Msg deleteChangeMoneyById(@PathVariable("id") Integer id){
Integer result = changeMoneyService.deleteChangeMoneyById(id);
if (result==1){
return Msg.success();
}
return Msg.fail();
}
}
贷款控制器
@Controller
public class LoanController {
@Autowired
LoanService loanService;
@Autowired
InfoService infoService;
/**
* 跳转到网贷申请界面
*
* @param model
* @return
*/
@RequestMapping("/user/tools/toApplyLoan.html")
public String toApplyLoan(Model model) {
model.addAttribute("pageTopBarInfo", "网贷申请界面");
model.addAttribute("activeUrl1", "toolsActive");
model.addAttribute("activeUrl2", "applyLoanActive");
return "/user/tools/applyloan";
}
/**
* 跳转到我的借贷界面
*
* @param model
* @return
*/
@RequestMapping("/user/personal/toMyLoan.html")
public String toMyLoan(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
Model model, HttpSession session) {
User loginUser = (User) session.getAttribute("loginUser");
PageHelper.startPage(pageNum, pageSize);
List<Loan> list = loanService.selectLoanByLoanId(loginUser.getId());
PageInfo<Loan> pageInfo = new PageInfo<Loan>(list, 5);
model.addAttribute("myLoansPageInfo", pageInfo);
model.addAttribute("loansList", list);
model.addAttribute("pageTopBarInfo", "我的借贷界面");
model.addAttribute("activeUrl1", "personalActive");
model.addAttribute("activeUrl2", "myLoanActive");
return "/user/personal/myloan";
}
/**
* 新增网贷申请
*
* @param amout
* @param term
* @param rate
* @param session
* @return
*/
@PostMapping("/user/applyLoan")
@ResponseBody
public Msg applyLoan(@RequestParam("amout") BigDecimal amout,
@RequestParam("term") Integer term,
@RequestParam("rate") BigDecimal rate, HttpSession session) {
User loginUser = (User) session.getAttribute("loginUser");
Loan loan = new Loan();
loan.setLoanid(loginUser.getId());
loan.setLoantime(new Date());
loan.setAmount(amout);
loan.setTerm(term);
loan.setRate(rate);
loan.setApplystatus(0);
loan.setLoanstatus(0);
Integer result = loanService.insertLoan(loan);
if (result == 1) {
return Msg.success();
}
return Msg.fail();
}
/**
* 还款
*
* @param id
* @return
*/
@PutMapping("/user/repayment/{id}")
@ResponseBody
public Msg repayment(@PathVariable("id") Integer id) {
Loan loan = loanService.selectLoanById(id);
loan.setLoanstatus(2);
Integer result = loanService.updateLoan(loan);
if (result == 1) {
return Msg.success();
}
return Msg.fail();
}
/**
* 跳转到网贷审核(管理员)
*
* @param pageNum
* @param pageSize
* @param model
* @param session
* @return
*/
@GetMapping("/admin/loan/toLoanexam.html")
public String toLoanexam(@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<Loan> list = loanService.selectAllLoanByApplyStatusAsc();
// 使用PageInfo包装查询后的结果,并交给页面处理
// PageInfo封装了详细的分页信息,包括我们查询出来的数据,还可以传入连续显示的页数(5)
PageInfo<Loan> pageInfo = new PageInfo<Loan>(list, 5);
model.addAttribute("loanPageInfo", pageInfo);
model.addAttribute("loanList", list);
model.addAttribute("activeUrl1", "loanActive");
model.addAttribute("activeUrl2", "loanexamActive");
model.addAttribute("pageTopBarInfo", "网贷审核界面");
return "admin/loan/loanexam";
}
/**
* 审核通过
*
* @param id
* @return
*/
@PutMapping("/loan/passApplyStatus/{id}")
@ResponseBody
public Msg passApplyStatus(@PathVariable("id") Integer id, HttpSession session) {
Admin admin = (Admin) session.getAttribute("loginAdmin");
Loan loan = loanService.selectLoanById(id);
loan.setExamineid(admin.getId());
loan.setApplystatus(2);
Integer result = loanService.updateLoan(loan);
if (result == 1) {
Info info = new Info();
info.setSendid(admin.getId());
info.setReceiveid(loan.getLoanid());
info.setCreatetime(new Date());
info.setTitle("网贷审核通过");
info.setInfodesc("用户" + loan.getUser().getUsername() + "的" + loan.getAmount() + "元网贷申请审核通过!审核人为:" + admin.getUsername());
info.setStatus(0);
infoService.insertInfo(info);
return Msg.success();
}
return Msg.fail();
}
/**
* 审核不通过
*
* @param id
* @return
*/
@PutMapping("/loan/notPassApplyStatus/{id}")
@ResponseBody
public Msg notPassApplyStatus(@PathVariable("id") Integer id, HttpSession session) {
Admin admin = (Admin) session.getAttribute("loginAdmin");
Loan loan = loanService.selectLoanById(id);
loan.setExamineid(admin.getId());
loan.setApplystatus(1);
Integer result = loanService.updateLoan(loan);
if (result == 1) {
Info info = new Info();
info.setSendid(admin.getId());
info.setReceiveid(loan.getUser().getId());
info.setCreatetime(new Date());
info.setTitle("网贷审核未通过");
info.setInfodesc("用户" + loan.getUser().getUsername() + "的" + loan.getAmount() + "元网贷申请审核未通过!审核人为:" + admin.getUsername());
info.setStatus(0);
infoService.insertInfo(info);
return Msg.success();
}
return Msg.fail();
}
/**
* 跳转到网贷信息界面(管理员)
*
* @param pageNum
* @param pageSize
* @param model
* @param session
* @return
*/
@GetMapping("/admin/loan/toLoaninfo.html")
public String toLoaninfo(@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<Loan> list = loanService.selectAllExamedLoan();
// 使用PageInfo包装查询后的结果,并交给页面处理
// PageInfo封装了详细的分页信息,包括我们查询出来的数据,还可以传入连续显示的页数(5)
PageInfo<Loan> pageInfo = new PageInfo<Loan>(list, 5);
model.addAttribute("loanPageInfo", pageInfo);
model.addAttribute("loanList", list);
model.addAttribute("activeUrl1", "loanActive");
model.addAttribute("activeUrl2", "loaninfoActive");
model.addAttribute("pageTopBarInfo", "网贷信息界面");
return "admin/loan/loaninfo";
}
@PutMapping("/loan/remindPay/{id}")
@ResponseBody
public Msg remindPay(@PathVariable("id") Integer id, HttpSession session) {
Admin admin = (Admin) session.getAttribute("loginAdmin");
Loan loan = loanService.selectLoanById(id);
Info info = new Info();
info.setSendid(admin.getId());
info.setReceiveid(loan.getUser().getId());
info.setCreatetime(new Date());
info.setTitle("还款通知");
info.setInfodesc("用户" + loan.getUser().getUsername() + "申请的" + loan.getAmount() + "元网贷该还款了!该提醒发送人为:" + admin.getUsername());
info.setStatus(0);
Integer result = infoService.insertInfo(info);
if (result == 1) {
return Msg.success();
}
return Msg.fail();
}
}
如果也想学习本系统,下面领取。回复:013springboot