SpringBoot+Vue+Element-UI实现家庭理财记账管理系统

家电修理 2023-07-16 19:17www.caominkang.com电器维修

文末获取源码

开发语言Java

框架springboot

JDK版本JDK1.8

服务器tomcat7

数据库mysql 5.7/8.0

数据库工具Navicat11

开发软件eclipse/myeclipse/idea

Maven包Maven3.3.9

浏览器谷歌浏览器

前言介绍 

家庭理财记账系统主要是为了提高用户的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对家庭理财记账系统的各个模块是通过许多今天的发达家庭理财记账系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

家庭理财记账系统所要实现的功能分析,对于现在网络方便,家庭理财记账系统要实现管理员、用户可以直接在平台上进行查看自己所需数据信息,这样既能节省管理的时间,不用再像传统的方式,如果用户想要进行交流信息,必须双方见面进行沟通交流所需的信息,由于很多人时间的原因,没有方法进行见面沟通交流,真的很难满足用户的各种需求。所以家庭理财记账系统的开发不仅仅是能满足用户的需求,还能提高用户的使用率。所以系统管理必须要更快捷、有效、长期地为用户或潜在用户传递信息。建立一个家庭理财记账系统更好的交流平台,提高系统对用户交流后的信息服务的效率。此系统可以满足大多数用户所提出的问题,用户可以根据自身的需求获取相应的服务,为系统管理提供了快捷的途径。

家庭理财记账系统用户端要求在浏览器上可以运行,主要实现了管理端;首页、个人中心、用户管理、家庭账户管理、收入分类管理、支出分类信息管理、家庭收入管理、家庭支出管理、银行储蓄管理、系统管理、投资理财管理,用户端;首页、家庭账户管理、收入分类管理、银行储蓄管理、投资理财管理等主要功能模块的操作和管理。

系统结构图

数据库设计表

此系统需要后台数据库,下面介绍数据库中的各个表的详细信息。

表1gonggao表

列名

数据类型

长度

约束

id

bigint

19

NOT NULL

addtime

varchar

2000

 NULL DEFAULT

gonggaobianhao

tinyint

2

 NULL DEFAULT

biaoti

varchar

2

NOT NULL

xiangguantupian

varchar

2

NOT NULL

gonggaoneirong

varchar

2

NOT NULL

faburiqi

varchar

2

NOT NULL

表2licai表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

255

NOT NULL

licaihaoma

varchar

255

NOT NULL

licaimingcheng

varchar

2

NOT NULL

licaijianjie

varchar

2

NOT NULL

xiangguantupian

varchar

2

NOT NULL

licaileixing

varchar

2

NOT NULL

fuzeren

varchar

2

NOT NULL

suoshugongsi

varchar

2

NOT NULL

yujinianshouyi

varchar

2

NOT NULL

faburiqi

varchar

2

NOT NULL

表3liushuixinxi表

列名

数据类型

长度

约束

id

 int

9

NOT NULL

addtime

char

5

NOT NULL

xiangmubianhao

char

5

NOT NULL

xiaofeimingcheng

char

5

NOT NULL

xiaofeijine

char

5

NOT NULL

xiaofeiriqi

char

5

NOT NULL

gerenzhanghao

char

5

NOT NULL

xingming

char

5

NOT NULL

xiangpian

char

5

NOT NULL

表4mubiaojihua表

列名

数据类型

长度

约束

id

 int

9

NOT NULL

addtime

char

5

NOT NULL

jihuabianhao

char

5

NOT NULL

jihuamingcheng

char

5

NOT NULL

shouyifenlei

char

5

NOT NULL

shouyijine

char

5

NOT NULL

gerenzhanghao

char

5

NOT NULL

xingming

char

5

NOT NULL

xiangpian

char

5

NOT NULL

dengjiriqi

char

5

NOT NULL

系统详细设计 

本系统使用了java和mysql结合的结构开发了家庭理财记账系统应用,系统中所有和数据库有关系的操作都通过一个通用类来实现,大大提高了代码的耦合性,当数据库类型等信息变化后直接修改类文件就可以了,不再需要每个页面都修改。本系统解决了中文的问题,也是在配置文件中添加了编码方式的形式解决的,本系统一个大的特点是系统对数据库的操作都单独的写在了一个类里,这样对系统的所有数据库操作都只访问这个类就可以了,不要每个页面都去写数据库的操作,提高了系统的集成性。

用户端功能模块 用户注册

在用户注册页面可以填写个人账号、姓名、身份证号码、手机号码等信息,进行注册如图

用户登录

在用户登录页面填写账号、密码进行登录如图

用户登录到家庭理财记账系统可以查看首页、家庭账户管理、收入分类管理、银行储蓄管理等内容,如图 

家庭账户

在家庭账户页面可以查看家庭账户号码、家庭账户名称、家庭账户简介、相关图片、家庭账户类型、负责人、所属公司、预计年收益、发布日期、价格等信息,如图

在用户信息页面可以填写个人账号、姓名、性别、年龄、身份证号码、手机号码、头像等信息,并可根据需要进行保存、退出登录,如图

管理端功能界面 用户管理

通过填写个人账号、姓名、性别、年龄、身份证号码、手机号码、头像等信息进行详情、修改、删除操作,如图

家庭账户管理

通过填写用户名,账户号,用户姓名,金额等信息进行修改、删除操作,如图

 

收入分类管理

通过填写收入分类名等信息进行详情、修改、删除操作,如图

 

支出分类信息管理

通过填写支出分类名等信息进行详情、修改、删除操作,如图 

家庭收入管理

通过填写用户名,用户姓名,账户号,收入分类,金额,日期,备注等信息进行详情、修改、删除操作,如图 

家庭支出管理

通过填写用户名,用户姓名,账户号,支出分类,金额,日期,备注等信息进行详情、修改操作,如图 

部分核心代码  上传文件
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","ratypes"})
public class FileController{
	@Autoired
 private ConfigService configService;
	
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) thros Exception {
		if (file.isEmpty()) {
			thro ne EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = ne File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
		 path = ne File("");
		}
		File upload = ne File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
		 upload.mkdirs();
		}
		String fileName = ne Date().getTime()+"."+fileExt;
		File dest = ne File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(ne EntityWrapper().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = ne ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	
	@IgnoreAuth
	@RequestMapping("/donload")
	public ResponseEntity donload(@RequestParam String fileName) {
		try {
			File path = ne File(ResourceUtils.getURL("classpath:static").getPath());
			if(!path.exists()) {
			 path = ne File("");
			}
			File upload = ne File(path.getAbsolutePath(),"/upload/");
			if(!upload.exists()) {
			 upload.mkdirs();
			}
			File file = ne File(upload.getAbsolutePath()+"/"+fileName);
			if(file.exists()){
				
				HttpHeaders headers = ne HttpHeaders();
			 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 
			 headers.setContentDispositionFormData("attachment", fileName); 
			 return ne ResponseEntity(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return ne ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}
家庭收入
@RestController
@RequestMapping("/jiatingshouru")
public class JiatingshouruController {
 @Autoired
 private JiatingshouruService jiatingshouruService;
 


 
 @RequestMapping("/page")
 public R page(@RequestParam Map params,JiatingshouruEntity jiatingshouru,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			jiatingshouru.setYonghuming((String)request.getSession().getAttribute("username"));
		}
  EntityWrapper e = ne EntityWrapper();
		PageUtils page = jiatingshouruService.queryPage(params, MPUtil.sort(MPUtil.beteen(MPUtil.likeOrEq(e, jiatingshouru), params), params));

  return R.ok().put("data", page);
 }
 
 
 @RequestMapping("/list")
 public R list(@RequestParam Map params,JiatingshouruEntity jiatingshouru, HttpServletRequest request){
  EntityWrapper e = ne EntityWrapper();
		PageUtils page = jiatingshouruService.queryPage(params, MPUtil.sort(MPUtil.beteen(MPUtil.likeOrEq(e, jiatingshouru), params), params));
  return R.ok().put("data", page);
 }

	
 @RequestMapping("/lists")
 public R list( JiatingshouruEntity jiatingshouru){
    	EntityWrapper e = ne EntityWrapper();
   	e.allEq(MPUtil.allEQMapPre( jiatingshouru, "jiatingshouru")); 
  return R.ok().put("data", jiatingshouruService.selectListVie(e));
 }

	 
 @RequestMapping("/query")
 public R query(JiatingshouruEntity jiatingshouru){
  EntityWrapper< JiatingshouruEntity> e = ne EntityWrapper< JiatingshouruEntity>();
 		e.allEq(MPUtil.allEQMapPre( jiatingshouru, "jiatingshouru")); 
		JiatingshouruVie jiatingshouruVie =  jiatingshouruService.selectVie(e);
		return R.ok("查询家庭收入成功").put("data", jiatingshouruVie);
 }
	
 
 @RequestMapping("/info/{id}")
 public R info(@PathVariable("id") Long id){
  JiatingshouruEntity jiatingshouru = jiatingshouruService.selectById(id);
  return R.ok().put("data", jiatingshouru);
 }

 
 @RequestMapping("/detail/{id}")
 public R detail(@PathVariable("id") Long id){
  JiatingshouruEntity jiatingshouru = jiatingshouruService.selectById(id);
  return R.ok().put("data", jiatingshouru);
 }
 
 
 @RequestMapping("/save")
 public R save(@RequestBody JiatingshouruEntity jiatingshouru, HttpServletRequest request){
 	jiatingshouru.setId(ne Date().getTime()+ne Double(Math.floor(Math.random()1000)).longValue());
 	//ValidatorUtils.validateEntity(jiatingshouru);
  jiatingshouruService.insert(jiatingshouru);
  return R.ok();
 }
 
 
 @RequestMapping("/add")
 public R add(@RequestBody JiatingshouruEntity jiatingshouru, HttpServletRequest request){
 	jiatingshouru.setId(ne Date().getTime()+ne Double(Math.floor(Math.random()1000)).longValue());
 	//ValidatorUtils.validateEntity(jiatingshouru);
  jiatingshouruService.insert(jiatingshouru);
  return R.ok();
 }

 
 @RequestMapping("/update")
 public R update(@RequestBody JiatingshouruEntity jiatingshouru, HttpServletRequest request){
  //ValidatorUtils.validateEntity(jiatingshouru);
  jiatingshouruService.updateById(jiatingshouru);//全部更新
  return R.ok();
 }
 

 
 @RequestMapping("/delete")
 public R delete(@RequestBody Long[] ids){
  jiatingshouruService.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 map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = ne 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(ne 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(ne Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper rapper = ne EntityWrapper();
		if(map.get("remindstart")!=null) {
			rapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			rapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			rapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
		}

		int count = jiatingshouruService.selectCount(rapper);
		return R.ok().put("count", count);
	}
	


}

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by