项目背景

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,玩具销售商城当然也不能排除在外。玩具销售商城是以实际运用为开发背景,运用软件工程原理和开发方法,采用springboot框架构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。这种个性化的网上管理系统特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对玩具销售商城而言非常有利。
本玩具销售商城采用的数据库是Mysql,使用springboot框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

功能设计

功能模块图

功能截图

管理员登录,通过填写用户名、密码、角色进行登录

管理员登录进入玩具销售商城可以查看首页、个人中心、用户管理、商品分类管理、商品信息管理、订单评价管理、系统管理、订单管理等信息。
个人中心,在个人中心页面中可以通过填写原密码、新密码、确认密码等信息进行添加、修改。还可以根据需要对个人信息进行添加,修改或删除等详细操作。


用户管理,在用户管理页面中可以查看用户名、姓名、性别、头像、联系电话等信息,并可根据需要对用户管理进行详情、修改或删除等操作

商品分类管理,在商品分类管理页面中可以查看商品分类等信息,并可根据需要对商品分类管理进行详情、修改或删除等详细操作

商品信息管理,在商品信息管理页面中可以查看商品名称、商品分类、图片、品牌、规格、价格等内容,并且根据需要对商品信息管理进行详情,修改或删除等详细操作

轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作

订单管理,在订单管理页面中可以查看订单编号、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、状态、地址等内容,并且根据需要对订单管理进行详情、修改或删除等详细操作

订单评价管理,在订单评价管理页面中可以查看订单编号、商品名称、商品分类、品牌、规格、评分、添加图片、评价内容、评价日期、用户名、审核回复、审核状态、审核等内容,并且根据需要对订单评价管理进行详情、修改或删除等详细操作

用户登录进入玩具销售商城可以查看首页、个人中心、订单评价管理、我的收藏管理、订单管理等内容。
订单评价管理,在订单评价管理页面中通过查看订单编号、商品名称、商品分类、品牌、规格、评分、添加图片、评价内容、评价日期、用户名、审核回复、审核状态等信息还可以根据需要对订单评价管理进行修改

我的收藏管理,在我的收藏管理页面中可以查看收藏名称、收藏图片等信息内容,并且根据需要对我的收藏管理进行详情或删除等其他详细操作。

订单管理,在订单管理页面中通过查看订单编号、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、状态、地址等内容进行详情。

玩具销售商城,在玩具销售商城可以查看首页、商品信息、商品资讯、个人中心、后台管理、购物车、在线客服等内容

用户登录、用户注册,通过注册获取用户名、密码、姓名、联系电话等信息进行注册、登录


商品信息,在商品信息页面可以查看商品名称、商品分类、图片、品牌、规格、价格等信息进行添加到购物车、立即购买

个人中心,在个人中心页面可以查看用户名、姓名、性别、头像、联系电话等进行更新信息、退出登录

相关代码

数据库配置

# Tomcat
server:tomcat:uri-encoding: UTF-8port: 8080servlet:context-path: /springbootr1tjfspring:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/springbootr1tjf?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8username: rootpassword: 123456#        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootr1tjf
#        username: sa
#        password: 123456servlet:multipart:max-file-size: 10MBmax-request-size: 10MBresources:static-locations: classpath:static/,file:static/#mybatis
mybatis-plus:mapper-locations: classpath*:mapper/*.xml#实体扫描,多个package用逗号或者分号分隔typeAliasesPackage: com.entityglobal-config:#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";id-type: 1#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"field-strategy: 2#驼峰下划线转换db-column-underline: true#刷新mapper 调试神器refresh-mapper: true#逻辑删除配置logic-delete-value: -1logic-not-delete-value: 0#自定义SQL注入器sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjectorconfiguration:map-underscore-to-camel-case: truecache-enabled: falsecall-setters-on-nulls: true#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)jdbc-type-for-null: 'null' 

控制层(controller)

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.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate 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();}
}

业务层(Service)


package com.service;import java.util.List;
import java.util.Map;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.entity.UserEntity;
import com.utils.PageUtils;/*** 系统用户*/
public interface UserService extends IService<UserEntity> {PageUtils queryPage(Map<String, Object> params);List<UserEntity> selectListView(Wrapper<UserEntity> wrapper);PageUtils queryPage(Map<String, Object> params,Wrapper<UserEntity> wrapper);}

数据访问层(Dao)

package com.dao;import java.util.List;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.entity.UserEntity;/*** 用户*/
public interface UserDao extends BaseMapper<UserEntity> {List<UserEntity> selectListView(@Param("ew") Wrapper<UserEntity> wrapper);List<UserEntity> selectListView(Pagination page,@Param("ew") Wrapper<UserEntity> wrapper);}

基于SPringBoot的玩具销售商城管理系统相关推荐

  1. 基于springboot+mybatis+jsp日用品商城管理系统

    基于springboot+mybatis+jsp日用品商城管理系统 一.系统介绍 二.功能展示 1.主页(客户) 2.登陆.注册(客户) 3.我的购物车(客户) 4.我的订单(客户) 5.我的商铺(商 ...

  2. 基于java+SpringBoot框架蛋糕销售商城管理系统详细设计

    研究背景 随着计算机技术的飞速发展,供应商可以利用计算机技术来完成我们以前手工完成的一些工作,这可以大大提高工作效率,节省更多的人力资源.此外,电脑还可以对相关数据进行统计,帮助卖家根据销售情况制定销 ...

  3. 基于springboot的茶叶销售商城网站

    本茶叶销售商城采用的数据库是Mysql,使用springboot框架开发.在设计过程中,充分保证了系统代码的良好可读性.实用性.易扩展性.通用性.便于后期维护.操作方便以及页面简洁等特点. 关键词:茶 ...

  4. 计算机毕业设计-基于SSM的生鲜食品销售商城管理系统

    文末获取源码 项目背景 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 生鲜食品o2o商城系统,主要的模块包括查看管理员:首页.个人中心.用 ...

  5. 农产品销售|助农惠农|基于Springboot实现农产品销售管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...

  6. 图片管理系统源码_「程序员分享」基于SpringBoot开发的天猫商城源码

    前言 大家好,我是程序员it分享师,应粉丝的要求,今天给大家带来一个基于Springboot开发的天猫商城的源码! 使用技术 天猫商城系统使用的是Spring,SpringMvc,SpringBoot ...

  7. 基于JAVA的珠宝首饰商城管理系统

    随着计算机通讯技术和数据库技术的不断发展,电子商务已经成为社会发展的潮流,通过电子商务系统商品信息交流变的更加方便.面对高速发展的电子商务,电商系统如雨后春笋不断的涌现.利用电商系统,珠宝首饰销售可以 ...

  8. 基于springboot thymeleaf的服装商城系统

    基于springboot thymeleaf的服装商城系统 基于springboot thymeleaf的服装商城系统 开发黄i环境 idea 或者eclipse导入 maven项目管理 3.jdk ...

  9. 基于Springboot实现医院HIS信息管理系统

    基于Springboot实现医院HIS信息管理系统 项目编号:BS-YL-012 开发工具:IDEA .ECLIPSE 数据库:MYSQL5.7 JAVA: JDK1.8 MAVEN环境 系统主要实现 ...

最新文章

  1. Datawahle文化衫来了!
  2. Python爬虫图形界面封装版本
  3. 开源的恶果,程序员正在「自掘坟墓」
  4. spring boot+mybatis整合
  5. 互联网架构设计漫谈 (3)
  6. JMX configuration for Tomcat
  7. (转载)ARM的字对齐问题总结
  8. JAVA-JCreator的配置、使用以及常见错误
  9. 第二章 软件项目立项与规划
  10. FinalData 数据恢复工具[绿色版]
  11. 深度学习教程(5) | 深度学习的实用层面(吴恩达·完整版)
  12. wallpaper动态壁纸软件
  13. 达人评测 小米笔记本pro14和联想yoga14s 选哪个好
  14. 工作站属于通用计算机吗,我们常说的工作站到底和普通电脑有什么不一样?工作站好在哪?...
  15. 360度全景标定方法_一种用于360°全景泊车辅助系统的标定布及标定场地_2015209958302_说明书_专利查询_专利网_钻瓜专利网...
  16. 从小市值因子策略入手,带你入门量化投资 (附年化收益率77.83%策略)
  17. 红旗7linux安装教程,红旗Linux7.0硬盘安装简明教程
  18. N76E003 驱动 ST7567 (SPI串口)
  19. 试题 B: 既约分数
  20. ExpandableListView 模拟QQ好友分组 小实例

热门文章

  1. SCADS简介及应用
  2. SQL SERVER | 错误处理 INSERT 语句与 FOREIGN KEY SAME TABLE 约束“FK__Course__Cpno__276EDEB3“冲突。(补充)
  3. 超详细CloudCone使用指南
  4. Spring Catching 实战
  5. JavaScript + CSS/CSS3 + HTML 网页登陆 + 注册界面设计
  6. 14: PYCURL ERROR 6 - Couldn't resolve host 'mirro
  7. 极路由设置虚拟服务器,HiWiFi极路由手机设置教程
  8. 计算机培训word,最新计算机培训word.pptx
  9. ceph cluster client(RBD)
  10. 华为交换机测试吞吐量软件,华为选择Spirent验证最新数据中心交换机的性能