Java程序员周末时间搞锭银行信息管理系统毕业设计(java+springboot+mybatis+mysql+vue+elementui)等实现
?博主介紹:?公司項(xiàng)目主程、全網(wǎng)粉絲10W+,csdn特邀作者、博客專家、CSDN新星計(jì)劃導(dǎo)師、java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,CSDN博客之星TOP100、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)設(shè)計(jì)?
公眾號(hào):java李楊勇 簡歷模板、學(xué)習(xí)資料、面試題庫等都給你💪
🍅文末獲取源碼聯(lián)系🍅
🍅CSDN官方推薦10W+JAVA技術(shù)人文章發(fā)布打卡社區(qū)🍅
前言介紹:
?????????在社會(huì)快速發(fā)展的影響下,銀行繼續(xù)發(fā)展,大大增加了存取款和貸款的數(shù)量、多樣性、質(zhì)量等等的要求,使小型銀行的管理和運(yùn)營比過去十年更加困難。依照這一現(xiàn)實(shí)為基礎(chǔ),設(shè)計(jì)一個(gè)快捷而又方便的小型銀行管理系統(tǒng)是一項(xiàng)十分重要并且有價(jià)值的事情。對(duì)于傳統(tǒng)的在銀行管理制模型來說,銀行管理系統(tǒng)具有許多不可比擬的優(yōu)勢(shì),首先是快速更新訂單信息,其次是大量信息的管理,最后是高度安全,以及使用簡單等特性,這使得小型銀行管理系統(tǒng)的管理和運(yùn)營非常方便。現(xiàn)代社會(huì)的網(wǎng)絡(luò)和信息技術(shù)不斷提高,人們的生活水平達(dá)到一個(gè)新的水平。發(fā)展小型銀行管理系統(tǒng)正是我們所需要的。這篇文章研究了相關(guān)管理系統(tǒng)的開發(fā)和實(shí)現(xiàn),從需求分析、總體設(shè)計(jì)到具體實(shí)現(xiàn),最終完成了整個(gè)銀行管理系統(tǒng),從而方便了用戶和提高了銀行的管理水平。
系統(tǒng)設(shè)計(jì):
主要實(shí)現(xiàn):
首頁、個(gè)人中心、通知公告管理、用戶管理、員工管理、網(wǎng)點(diǎn)信息管理、賬戶信息管理、賬戶存款管理、賬戶取款管理、賬戶轉(zhuǎn)賬管理、在線咨詢管理、銷戶信息管理、貸款產(chǎn)品管理、貸款信息管理、還款信息管理、離職申請(qǐng)管理、系統(tǒng)管理等功能,其具有簡單的接口,方便的應(yīng)用,強(qiáng)大的互動(dòng),完全基于互聯(lián)網(wǎng)的特點(diǎn)。?
整個(gè)系統(tǒng)是由多個(gè)功能模塊組合而成的,要將所有的功能模塊都一一列舉出來,然后進(jìn)行逐個(gè)的功能設(shè)計(jì),使得每一個(gè)模塊都有相對(duì)應(yīng)的功能設(shè)計(jì),然后進(jìn)行系統(tǒng)整體的設(shè)計(jì)。
系統(tǒng)結(jié)構(gòu)圖
?
主要用到以下技術(shù):
Eclipse
本系統(tǒng)使用的是Eclipse, Eclipse是一個(gè)集成開發(fā)環(huán)境,可以用于Java或者移動(dòng)應(yīng)用等方面的程序開發(fā)。它有許多強(qiáng)大功能如:編譯、調(diào)試、test和發(fā)布等。同時(shí)支持一些其他語言如:HTML腳本,SQL,SPRING BOOT,CSS樣式,Spring,Hibernate,Javascript等。
?MySQL
MMySQL數(shù)據(jù)庫是較為出名的關(guān)系形數(shù)據(jù)庫,它使用大量的二維表來進(jìn)行存儲(chǔ)數(shù)據(jù)而不是把數(shù)據(jù)封裝存儲(chǔ)早同一個(gè)“倉庫”中,十分有利于提高速度和數(shù)據(jù)應(yīng)用的靈活性。
中小企業(yè)網(wǎng)站開發(fā)商的首選數(shù)據(jù)庫一般也是MySQL。SQL語言是它的標(biāo)準(zhǔn)語言。由于該數(shù)據(jù)庫在體積、速度和運(yùn)營成本方面的優(yōu)勢(shì),特別是開放源代碼的技術(shù)特點(diǎn),因此深受開發(fā)者的喜愛。
Spring Boot框架
Spring框架是Java平臺(tái)上的一種開源應(yīng)用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對(duì)編程模型沒有限制,但其在Java應(yīng)用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補(bǔ)充,甚至是替補(bǔ)。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過依賴注入實(shí)現(xiàn)控制反轉(zhuǎn)來實(shí)現(xiàn)管理對(duì)象生命周期容器化,利用面向切面編程進(jìn)行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問,提供大量優(yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項(xiàng)目維護(hù)和測(cè)試,它提供了一種通過Java的反射機(jī)制對(duì)Java對(duì)象進(jìn)行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對(duì)象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對(duì)象,開發(fā)者可以通過依賴查找或依賴注入來獲得對(duì)象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時(shí)運(yùn)行時(shí)可配置;AOP框架主要針對(duì)模塊之間的交叉關(guān)注點(diǎn)進(jìn)行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問等功能均可以通過使用SpringAOP技術(shù)實(shí)現(xiàn)。Spring的事務(wù)管理框架為Java平臺(tái)帶來了一種抽象機(jī)制,使本地和全局事務(wù)以及嵌套事務(wù)能夠與保存點(diǎn)一起工作,并且?guī)缀蹩梢栽贘ava平臺(tái)的任何環(huán)境中工作。
功能截圖:
?登錄模塊:
?
用戶前臺(tái)管理:
系統(tǒng)首頁:在系統(tǒng)首頁可以查看首頁、網(wǎng)點(diǎn)信息、貸款產(chǎn)品、銀行資訊、個(gè)人中心、后臺(tái)管理等內(nèi)容進(jìn)行詳細(xì)操作
?
網(wǎng)點(diǎn)信息:在網(wǎng)點(diǎn)信息頁面中可以查看網(wǎng)點(diǎn)名稱、網(wǎng)點(diǎn)介紹、網(wǎng)點(diǎn)圖片、電話、地址等內(nèi)容進(jìn)行評(píng)論或收藏操作
?
貸款產(chǎn)品:在貸款產(chǎn)品頁面中可以查看產(chǎn)品編號(hào)、產(chǎn)品名稱、圖片、標(biāo)簽、額度范圍、月利率、貸款期限、發(fā)布日期、產(chǎn)品介紹等內(nèi)容進(jìn)行申請(qǐng)貸款、評(píng)論或收藏操作?
?
個(gè)人中心:?在個(gè)人中心頁面通過填寫用戶名、密碼、姓名、圖片、性別、聯(lián)系電話、身份證等內(nèi)容,進(jìn)行信息更新操作,還可以根據(jù)需要對(duì)我的收藏進(jìn)行詳細(xì)操作?
用戶后臺(tái)管理:
管理員登錄進(jìn)入小型銀行管理系統(tǒng)可以查看首頁、個(gè)人中心、通知公告管理、用戶管理、員工管理、網(wǎng)點(diǎn)信息管理、賬戶信息管理、賬戶存款管理、賬戶取款管理、賬戶轉(zhuǎn)賬管理、在線咨詢管理、銷戶信息管理、貸款產(chǎn)品管理、貸款信息管理、還款信息管理、離職申請(qǐng)管理、系統(tǒng)管理等功能進(jìn)行詳細(xì)操作
通知公告管理:在通知公告管理頁面中可以查看索引、公告標(biāo)題、圖片、發(fā)布日期等內(nèi)容,進(jìn)行詳情,修改或刪除等操作
用戶信息管理:在網(wǎng)點(diǎn)信息管理頁面中可以對(duì)索引、網(wǎng)點(diǎn)名稱、圖片、網(wǎng)點(diǎn)介紹、電話、地址等內(nèi)容,進(jìn)行詳情、修改、查看評(píng)論或刪除等操作
員工信息管理:
員工檔案管理:
網(wǎng)點(diǎn)信息管理:
用戶存款管理:在賬戶信息管理頁面中可以對(duì)索引、用戶名、姓名、聯(lián)系電話、身份證、卡號(hào)、密碼、金額、開卡日期等內(nèi)容進(jìn)行詳情、存款、取款、轉(zhuǎn)賬、修改或刪除等操作
用戶取款管理:
用戶轉(zhuǎn)賬管理:在賬戶轉(zhuǎn)賬管理頁面中可以對(duì)索引、用戶名、姓名、聯(lián)系電話、身份證、卡號(hào)、金額、對(duì)方卡號(hào)、開戶名、轉(zhuǎn)賬說明、轉(zhuǎn)賬日期、員工工號(hào)、員工姓名等內(nèi)容,進(jìn)行詳情、修改或刪除等操作
貸款產(chǎn)品管理:在貸款產(chǎn)品管理頁面中可以對(duì)索引、產(chǎn)品編號(hào)、產(chǎn)品名稱、封面圖、標(biāo)簽、額度范圍、月利率、貸款期限、發(fā)布日期等內(nèi)容,進(jìn)行詳情、修改、查看評(píng)論或刪除等操作
還款信息管理:在還款信息管理頁面中可以對(duì)索引、產(chǎn)品編號(hào)、產(chǎn)品名稱、金額、備注、還款日期、用戶名、姓名、聯(lián)系電話、身份證、審核回復(fù)、審核狀態(tài)、審核等內(nèi)容,進(jìn)行詳情、修改或刪除等操作
員工離職管理:
系統(tǒng)設(shè)置管理:?
代碼實(shí)現(xiàn):
/*** 用戶* 后端接口* @author * @email * @date 2022-04-08 18:18:08*/ @RestController @RequestMapping("/yonghu") public class YonghuController {@Autowiredprivate YonghuService yonghuService;@Autowiredprivate TokenService tokenService;/*** 登錄*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", username));if(user==null || !user.getMima().equals(password)) {return R.error("賬號(hào)或密碼不正確");}String token = tokenService.generateToken(user.getId(), username,"yonghu", "用戶" );return R.ok().put("token", token);}/*** 注冊(cè)*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody YonghuEntity yonghu){//ValidatorUtils.validateEntity(yonghu);YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", yonghu.getYonghuming()));if(user!=null) {return R.error("注冊(cè)用戶已存在");}Long uId = new Date().getTime();yonghu.setId(uId);yonghuService.insert(yonghu);return R.ok();}/*** 退出*/@RequestMapping("/logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 獲取用戶的session用戶信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");YonghuEntity user = yonghuService.selectById(id);return R.ok().put("data", user);}/*** 密碼重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", username));if(user==null) {return R.error("賬號(hào)不存在");}user.setMima("123456");yonghuService.updateById(user);return R.ok("密碼已重置為:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,YonghuEntity yonghu,HttpServletRequest request){EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,YonghuEntity yonghu, HttpServletRequest request){EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( YonghuEntity yonghu){EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu")); return R.ok().put("data", yonghuService.selectListView(ew));}/*** 查詢*/@RequestMapping("/query")public R query(YonghuEntity yonghu){EntityWrapper< YonghuEntity> ew = new EntityWrapper< YonghuEntity>();ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu")); YonghuView yonghuView = yonghuService.selectView(ew);return R.ok("查詢用戶成功").put("data", yonghuView);}/*** 后端詳情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){YonghuEntity yonghu = yonghuService.selectById(id);return R.ok().put("data", yonghu);}/*** 前端詳情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){YonghuEntity yonghu = yonghuService.selectById(id);return R.ok().put("data", yonghu);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){yonghu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yonghu);YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", yonghu.getYonghuming()));if(user!=null) {return R.error("用戶已存在");}yonghu.setId(new Date().getTime());yonghuService.insert(yonghu);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody YonghuEntity yonghu, HttpServletRequest request){yonghu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yonghu);YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", yonghu.getYonghuming()));if(user!=null) {return R.error("用戶已存在");}yonghu.setId(new Date().getTime());yonghuService.insert(yonghu);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){//ValidatorUtils.validateEntity(yonghu);yonghuService.updateById(yonghu);//全部更新return R.ok();}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){yonghuService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<YonghuEntity> wrapper = new EntityWrapper<YonghuEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = yonghuService.selectCount(wrapper);return R.ok().put("count", count);}} /*** 銷戶信息* 后端接口* @author * @email * @date 2022-04-08 18:18:08*/ @RestController @RequestMapping("/xiaohuxinxi") public class XiaohuxinxiController {@Autowiredprivate XiaohuxinxiService xiaohuxinxiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,XiaohuxinxiEntity xiaohuxinxi,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {xiaohuxinxi.setYonghuming((String)request.getSession().getAttribute("username"));}EntityWrapper<XiaohuxinxiEntity> ew = new EntityWrapper<XiaohuxinxiEntity>();PageUtils page = xiaohuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiaohuxinxi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,XiaohuxinxiEntity xiaohuxinxi, HttpServletRequest request){EntityWrapper<XiaohuxinxiEntity> ew = new EntityWrapper<XiaohuxinxiEntity>();PageUtils page = xiaohuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiaohuxinxi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( XiaohuxinxiEntity xiaohuxinxi){EntityWrapper<XiaohuxinxiEntity> ew = new EntityWrapper<XiaohuxinxiEntity>();ew.allEq(MPUtil.allEQMapPre( xiaohuxinxi, "xiaohuxinxi")); return R.ok().put("data", xiaohuxinxiService.selectListView(ew));}/*** 查詢*/@RequestMapping("/query")public R query(XiaohuxinxiEntity xiaohuxinxi){EntityWrapper< XiaohuxinxiEntity> ew = new EntityWrapper< XiaohuxinxiEntity>();ew.allEq(MPUtil.allEQMapPre( xiaohuxinxi, "xiaohuxinxi")); XiaohuxinxiView xiaohuxinxiView = xiaohuxinxiService.selectView(ew);return R.ok("查詢銷戶信息成功").put("data", xiaohuxinxiView);}/*** 后端詳情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){XiaohuxinxiEntity xiaohuxinxi = xiaohuxinxiService.selectById(id);return R.ok().put("data", xiaohuxinxi);}/*** 前端詳情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){XiaohuxinxiEntity xiaohuxinxi = xiaohuxinxiService.selectById(id);return R.ok().put("data", xiaohuxinxi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody XiaohuxinxiEntity xiaohuxinxi, HttpServletRequest request){xiaohuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(xiaohuxinxi);xiaohuxinxiService.insert(xiaohuxinxi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody XiaohuxinxiEntity xiaohuxinxi, HttpServletRequest request){xiaohuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(xiaohuxinxi);xiaohuxinxiService.insert(xiaohuxinxi);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody XiaohuxinxiEntity xiaohuxinxi, HttpServletRequest request){//ValidatorUtils.validateEntity(xiaohuxinxi);xiaohuxinxiService.updateById(xiaohuxinxi);//全部更新return R.ok();}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){xiaohuxinxiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<XiaohuxinxiEntity> wrapper = new EntityWrapper<XiaohuxinxiEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));}int count = xiaohuxinxiService.selectCount(wrapper);return R.ok().put("count", count);}}論文參考:
源碼獲取:
大家點(diǎn)贊、收藏、關(guān)注、評(píng)論啦 、查看👇🏻👇🏻👇🏻微信公眾號(hào)獲取聯(lián)系方式👇🏻👇🏻👇🏻
打卡 文章 更新?257/? 365天
?精彩專欄推薦訂閱:在下方專欄👇🏻👇🏻👇🏻👇🏻
Java項(xiàng)目精品實(shí)戰(zhàn)案例《100套》
web前端期末大作業(yè)網(wǎng)頁實(shí)戰(zhàn)《100套》
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Java程序员周末时间搞锭银行信息管理系统毕业设计(java+springboot+mybatis+mysql+vue+elementui)等实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java final 变量只读_java
- 下一篇: SpringBoot配置图片虚拟映射