基于SSM的儿童众筹救助捐赠系统-老师满意

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA项目实战持续更新中~

🔎百套小程序APP项目实战持续更新中~

🔎百套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

 

3系统设计

    系统设计要提出具体的软件功能及要求,是系统分析后进行的流程。它的主要目的是提供软件开发的思路和具体流程,是系统运行的根本保障。它要确定软件各个模块的功能,并形成相应的流程图,方便设计者思考。同时要将每个模块需要完成的任务详细的表达出来,并对每个模块进行具体化的设计分析,提供相当数量的设计方案,再通过设计者的详细分析和比对,选择出最佳的方案进行设计开发。并对相应的方案进行验证和拓展。

3.1系统功能结构

3.1.1系统结构图

系统结构图可以把杂乱无章的模块按照设计者的思维方式进行调整排序,可以让设计者在之后的添加,修改程序内容的过程中有一个很明显的思维方向。同时结构图还可以让设计者以外的其他人更直观的看出整个系统的设计理论和设计过程。让系统的设计变的更直观。该系统的功能架构图如图3-1所示:

       图3-1 儿童众筹救助系统功能结构图

3.2数据库设计

3.2.1 数据库概念设计

从系统运行完整的角度出发,设置相应的实体,明确各实体之间的联系。下面列举整个系统中涉及核心功能的实体:

3.2.2数据逻辑结构

在综合了以上对系统的设计,和对数据库的分析,同时结合了以往对数据库的使用经验后,构建了以下几张表,以下为每张表的内容:

表4-1:救助申请

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jijinmingcheng

varchar

200

基金名称

xiangmuleixing

varchar

200

项目类型

shenqingzijin

varchar

200

申请资金

faqizhanghao

varchar

200

发起账号

faqiren

varchar

200

发起人

jiatingdizhi

varchar

200

家庭地址

lianxifangshi

varchar

200

联系方式

shenqingziliao

longtext

4294967295

申请资料

shenqingshijian

datetime

申请时间

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-2:救助基金

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jijinmingcheng

varchar

200

基金名称

xiangmuleixing

varchar

200

项目类型

xiangmutupian

longtext

4294967295

项目图片

zizhufanwei

longtext

4294967295

资助范围

fabushijian

datetime

发布时间

jijinshuoming

longtext

4294967295

基金说明

表4-3:结算通知

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

faqizhanghao

varchar

200

发起账号

faqiren

varchar

200

发起人

ertongxingming

varchar

200

儿童姓名

jibingmingcheng

varchar

200

疾病名称

suochoujine

varchar

200

所筹金额

jiesuanshijian

datetime

结算时间

表4-4:社区交流

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

帖子标题

content

longtext

4294967295

帖子内容

parentid

bigint

父节点id

userid

bigint

用户id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

isdone

varchar

200

状态

表4-5:发起人

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

faqizhanghao

varchar

200

发起账号

faqiren

varchar

200

发起人

mima

varchar

200

密码

xingbie

varchar

200

性别

lianxifangshi

varchar

200

联系方式

jiatingrenshu

varchar

200

家庭人数

nonghushuxing

varchar

200

农户属性

gongzuo

varchar

200

工作

jiatingdizhi

varchar

200

家庭地址

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-6众筹项目

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

tupian

longtext

4294967295

图片

ertongxingming

varchar

200

儿童姓名

ertongxingbie

varchar

200

儿童性别

jibingmingcheng

varchar

200

疾病名称

xianzhuzhi

varchar

200

现住址

zhongchoujine

varchar

200

众筹金额

xiangguanzhengming

longtext

4294967295

相关证明

faqizhanghao

varchar

200

发起账号

faqiren

varchar

200

发起人

shenqingshijian

date

申请时间

qingkuangmiaoshu

longtext

4294967295

情况描述

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-7:众筹项目评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-8:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuming

varchar

200

用户名

xingming

varchar

200

姓名

mima

varchar

200

密码

xingbie

varchar

200

性别

lianxidianhua

varchar

200

联系电话

touxiang

longtext

4294967295

头像

表4-9:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-10:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-11:救助基金评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-12:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-13:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-14:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-15:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-16:系统公告

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-17:捐赠信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

ertongxingming

varchar

200

儿童姓名

jibingmingcheng

varchar

200

疾病名称

xianzhuzhi

varchar

200

现住址

faqizhanghao

varchar

200

发起账号

faqiren

varchar

200

发起人

juanzengjine

float

捐赠金额/元

yonghuming

varchar

200

用户名

juanzengshijian

date

捐赠时间

beizhu

varchar

200

备注

shhf

longtext

4294967295

回复内容

ispay

varchar

200

是否支付

未支付

4系统详细设计

4.1登录模块设计

这个功能模块用来让工作人员进行后端登录。管理人员通过网站。在输入自己的用户名和密码、角色进行登录,登录后管理人员就可以对后台的信息相关的操作。

首先,设计后端管理的登陆页面。对页面的各个板块进行详细的设计,规划它们的字体大小,背景颜色,字体颜色和板块大小等。还要加上图片,让页面被设计的更加美观。以便让以后需要登陆的管理员可以直观的使用。

4.2 前台系统功能模块

当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到儿童众筹救助系统的导航条显示首页、救助基金、众筹项目、社区交流、系统公告、个人中心、后台管理。系统首页界面如图4-1所示:

图4-1系统首页界面

在系统首页点击中间注册/登录按钮,然后页面跳转到注册/登录界面,后来输入信息完成后,单击注册/登录操作,如图4-2所示:

图4-2用户注册/登录界面

用户点击救助基金,在救助基金页面的输入栏填写基金名称、项目类型,进行搜索,然后查看基金名称、项目类型、项目图片、资助范围、发布时间,如有需要可以点击申请救助、收藏或者评论等操作;如图4-3所示:

图4-3救助基金页面

用户点击众筹项目,在众筹项目页面的输入栏填写标题、儿童姓名、发起账号,进行搜索,然后查看标题、儿童姓名、儿童性别、疾病名称、现住址、众筹金额、相关证明、发起账号、发起人、申请时间、是否审核、审核回复,还可以进行捐赠信息、收藏或者评论等操作;如图4-4所示:

图4-4众筹项目页面

JAVA后端代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

 🔎千套JAVA项目实战持续更新中~

🔎百套小程序APP项目实战持续更新中~

🔎百套Python实战项目持续更新中~

👇下方有我的微信名片👇

  • 55
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在基于SSM实现的图书管理系统-JAVA的选题中,我们可以依据以下几点来确定我们的选题:1、需要满足用户的需求;2、要有良好的设计思路;3、要确保系统的可扩展性和可维护性;4、要考虑到安全性问题;5、要考虑到数据库的设计。 ### 回答2: 首先,基于SSM实现的图书管理系统是一个涵盖了多个模块和功能的综合性项目,适用于图书馆、图书店等机构管理图书的需求。 其选题依据主要有以下几点: 1. 系统功能完善:图书管理系统通过SSM框架实现,可以提供图书的入库、借阅、归还、销售等基本功能,同时还可以实现图书信息的查询、统计、排序等高级功能,使得管理员可以更加方便地管理图书馆或图书店的日常工作。 2. 数据库支持:SSM框架中的Mybatis技术可以方便地操作数据库,将图书的相关信息存储在数据库中,并通过数据库查询实现各种功能,如根据图书名称查询、根据作者查询等。同时,数据库的支持还可以实现数据的备份、恢复等重要功能。 3. 用户友好性:基于SSM的图书管理系统可以通过网页前端界面展示,界面美观、简洁,操作简单直观,提供了良好的用户体验。管理员可以通过界面快速地进行各种操作,如入库、借阅、归还、销售等,同时用户也可以通过界面方便地查询图书信息、借阅记录等。 4. 扩展性:基于SSM的图书管理系统具有较高的扩展性。通过使用Spring框架,可以方便地对系统进行模块的拓展和功能的增加,如增加图书推荐、用户评价等功能。同时,也可以方便地对系统进行优化和升级。 综上所述,基于SSM实现的图书管理系统具有功能完善、数据库支持、用户友好性和较高的扩展性等特点,能够满足图书馆、图书店等机构对图书管理的需求。 ### 回答3: 基于SSMSpring+SpringMVC+MyBatis)实现的图书管理系统是一款完善且高效的Java项目选题。以下是几个选题依据的解释: 首先,图书管理系统作为一种常见的信息管理系统,在学校、图书馆、企业等多种场景中都有广泛的应用。通过该系统,管理员可以方便地对图书进行管理,包括图书目录的录入、借阅还书的管理、图书信息查询等。因此,该选题具有较高的实用性和需求性。 其次,使用SSM框架进行开发可以提高系统的开发效率和性能。Spring框架提供了非常丰富的功能模块,包括依赖注入、AOP切面、事务管理等,可以简化开发过程并提高代码的可维护性。SpringMVC框架是一种基于Model-View-Controller设计模式的Web框架,可以实现请求的分发和处理,并提供了RESTful风格的URL映射和统一异常处理等特性。MyBatis框架则可以方便地进行数据库操作,提供了灵活的SQL映射和对象关系映射的能力。因此,选择SSM框架可以使图书管理系统的开发更加高效和稳定。 最后,Java作为一种广泛应用于企业级开发的编程语言,具有跨平台性和兼容性,并拥有强大的生态系统,提供了大量的开发工具和框架。通过使用Java的相关技术,可以实现图书管理系统的功能完善、界面友好、性能稳定。并且,Java有丰富的开源社区,可以获取大量的学习资源和问题解决方案。 综上所述,基于SSM实现的图书管理系统-JAVA作为选题,具有实用性、开发效率高、性能稳定以及丰富的学习资源等优势,是一款非常值得选择和开发的项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值