基于springboot的社区积分商城系统-开题免费【论文、源码】

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

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

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

🔎​百套Python实战项目持续更新中~​
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,帮你完成文档

⚠️文末联系方式获取完整资料⚠️

4章 系统设计

系统设计是将被设计对象划分为单个模块进行构建,各个模块相互支持,相互制约,它们的组合是一个完整的系统。通过系统设计,可以最大限度地满足系统的预期目标,明确软件开发的目的。

4.1 系统基本结构设计

本次系统采用springboot框架集进行开发,springboot框架是一款企业界主流的软件开发框架,其简化了开发流程,大大缩减了软件开发所需的时间提高了软件的响应速度。系统总体结构图如图4-1所示。

图4-1 系统总体结构图

4.2 数据库设计

数据库结构设计的好坏直接影响到社区积分商城系统的效率和实现的效果。本系统的数据库采用MySQL数据库,MySQL是一种开放源代码的关系型数据库系统,使用最常见的数据库管理语言SQL进行数据库管理。

4.2.1 数据库E-R图设计

E-R图也可称为实体-联系图,其可以清楚的显示实体与实体之间的关系,是描述概念模型的有效方式,通过各实体间的关系方便数据库结构的设计。以下是本系统主要的实体属性图如下所示。

社区活动管理实体如图4-2所示。

图4-2社区活动管理实体属性图

活动报名管理实体如图4-3所示。

图4-3活动报名管理实体属性图

热门商品管理实体如图4-4所示。

图4-4热门商品管理实体属性图

兑换信息管理实体如图4-5所示。

图4-5兑换信息管理实体属性图

留言反馈实体如图4-6所示。

图4-6留言反馈实体属性图

4.2.2 数据库表设计

数据表是用来保存多种数据的表,它是所有数据库的核心对象,且对于软件开发有着不可替代的作用。其相关数据表如下:

表4-1 aboutus表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

title

varchar

50

default NULL

subtitle

varchar

50

default NULL

content

varchar

50

default NULL

picture1

varchar

50

default NULL

picture2

varchar

50

default NULL

picture3

varchar

50

default NULL

表4-2:config表

列名

数据类型

长度

约束

id

int

11

NOT NULL

name

varchar

50

default NULL

value

varchar

50

default NULL

表4-3:discussremenshangpin表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

refid

varchar

50

default NULL

userid

varchar

50

default NULL

avatarurl

varchar

50

default NULL

nickname

varchar

50

default NULL

content

varchar

50

default NULL

reply

varchar

50

default NULL

表4-4:discussshequhuodong表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

refid

varchar

50

default NULL

userid

varchar

50

default NULL

avatarurl

varchar

50

default NULL

nickname

varchar

50

default NULL

content

varchar

50

default NULL

reply

varchar

50

default NULL

表4-5:duihuanxinxi表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

dingdanbianhao

varchar

50

default NULL

shangpinmingcheng

varchar

50

default NULL

fengmian

varchar

50

default NULL

shangpinfenlei

varchar

50

default NULL

duihuanjifen

varchar

50

default NULL

shuliang

varchar

50

default NULL

jifen

varchar

50

default NULL

shengyujifen

varchar

50

default NULL

duihuanshijian

varchar

50

default NULL

juminzhanghao

varchar

50

default NULL

juminxingming

varchar

50

default NULL

lianxifangshi

varchar

50

default NULL

表4-6:huodongbaoming表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

huodongbianhao

varchar

2

default NULL

huodongmingcheng

varchar

50

default NULL

huodongtupian

varchar

50

default NULL

huodongleixing

varchar

50

default NULL

jifen

varchar

50

default NULL

baomingyuanyin

varchar

50

default NULL

baomingshijian

varchar

50

default NULL

juminzhanghao

varchar

50

default NULL

juminxingming

varchar

50

default NULL

lianxifangshi

varchar

50

default NULL

crossuserid

varchar

50

default NULL

crossrefid

varchar

50

default NULL

sfsh

varchar

50

default NULL

表4-7:jifenjianshao表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

jianshaoyuanyin

varchar

50

default NULL

dingdanbianhao

varchar

50

default NULL

shangpinmingcheng

varchar

50

default NULL

jifen

varchar

50

default NULL

juminzhanghao

varchar

50

default NULL

juminxingming

varchar

50

default NULL

jianshaoshijian

varchar

50

default NULL

表4-8:jifenzengjia表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

huodongbianhao

varchar

50

default NULL

huodongmingcheng

varchar

50

default NULL

jifen

varchar

50

default NULL

zengjiabeizhu

varchar

50

default NULL

juminzhanghao

varchar

50

default NULL

juminxingming

varchar

50

default NULL

zengjiashijian

varchar

50

default NULL

表4-9:jumin表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

juminzhanghao

varchar

50

default NULL

mima

varchar

50

default NULL

juminxingming

varchar

50

default NULL

touxiang

varchar

50

default NULL

xingbie

varchar

50

default NULL

xiaoqumingcheng

varchar

50

default NULL

danyuan

varchar

50

default NULL

fanghao

varchar

50

default NULL

lianxifangshi

varchar

50

default NULL

jifen

varchar

50

default NULL

表4-10:remenshangpin表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

shangpinbianhao

varchar

50

default NULL

shangpinmingcheng

varchar

50

default NULL

fengmian

varchar

50

default NULL

shangpinfenlei

varchar

50

default NULL

pinpai

varchar

50

default NULL

guige

varchar

50

default NULL

duihuanjifen

varchar

50

default NULL

shuliang

varchar

50

default NULL

shangpinxiangqing

varchar

50

default NULL

表4-11:shequhuodong表

列名

数据类型

长度

约束

id

int

11

NOT NULL

addtime

varchar

50

default NULL

huodongbianhao

varchar

50

default NULL

huodongmingcheng

varchar

50

default NULL

huodongtupian

varchar

50

default NULL

huodongleixing

varchar

50

default NULL

huodongdidian

varchar

50

default NULL

kaishishijian

varchar

50

default NULL

jieshushijian

varchar

50

default NULL

jifen

varchar

50

default NULL

huodongxiangqing

varchar

50

default NULL

clicktime

varchar

50

default NULL

clicknum

varchar

50

default NULL

表4-12:users表

列名

数据类型

长度

约束

id

int

11

NOT NULL

username

varchar

50

default NULL

password

varchar

50

default NULL

role

varchar

50

default NULL

addtime

varchar

50

default NULL

4.3 本章小结

通过本章针对社区积分商城系统功能的总体结构、E-R属性图和数据表的大概介绍,对在开发系统时所要涉及到的数据库进行简单设计,为下一章系统的实现做好铺垫。

5章 系统实现

系统实现章节的主要内容主要是将系统分析和系统设计方案进行实现,按照各个系统角色进行功能介绍,系统实现就是一个真正开始编写的阶段,将前面的分析结果以及设计方案进行实现,最终做出一个符合用户需求的软件系统。

5.1系统功能实现

当人们打开系统的网址后,首先看到的就是首页界面在这里,人们能够看到社区积分商城系统的导航条和社区活动等。系统首页界面如图5-1所示

图5-1 系统首页界面

在居民注册页面的输入居民注册信息进行注册操作,居民注册页面如图5-2所示:

图5-2居民注册页面

在社区活动页面的输入栏中输入活动名称,活动地点,开始时间进行查询,进入社区活动页面可以查看社区活动详细信息,并进行立即报名,评论和收藏操作;社区活动页面如图5-3所示:

图5-3社区活动详细页面

在热门商品页面的输入栏中输入商品名称,品牌,兑换积分进行查询,进入热门商品页面可以查看到热门商品详细信息,并进行立即兑换,评论或收藏操作,热门商品页面如图5-4所示:

图5-4热门商品页面

在个人中心页面输入个人信息可以进行更新信息或退出登录等操作,并对我的收藏进行详细操作;如图5-5所示:

图5-5 个人中心界面

5.2后台模块实现

后台用户登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入操作系统进行操作;如图5-6所示。                               

图5-6 后台登录界面

5.2.1管理员模块实现

管理员进入主页面,主要功能包括对首页,个人中心,居民管理,活动类型管理,社区活动管理,活动报名管理,商品分类管理,热门商品管理,兑换信息管理,积分增加管理,积分减少管理,留言反馈,系统管理等进行操作。管理员主页面如图5-7所示:

图5-7 管理员主界面

管理员点击居民管理。进入居民页面输入居民姓名,小区名称,单位,房号可以查询,新增或删除居民信息,并进行详情,增加积分,减少积分,修改和删除等操作。如图5-8所示:

图5-8居民管理界面

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();
    }
}

源码获取

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

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

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

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

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

👇下方有我的微信名片👇

  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值