免费分享一套Springboot+Vue前后端分离的在线图书商城(书城)系统,挺漂亮的

2023-12-18

大家好,我是java1234_小锋老师,看到一个不错的Springboot+Vue前后端分离的在线图书商城(书城)系统,分享下哈。

项目视频演示

【免费】Springboot+Vue在线图书商城(在线书城) 毕业设计 Java毕业设计_哔哩哔哩_bilibili 【免费】Springboot+Vue在线图书商城(在线书城) 毕业设计 Java毕业设计项目来自互联网,免费开源分享,严禁商业。更多毕业设源码:http://www.java1234.com/a/bysj/javaweb/, 视频播放量 271、弹幕量 0、点赞数 16、投硬币枚数 9、收藏人数 11、转发人数 1, 视频作者 java1234官方, 作者简介 公众号:java1234 微信:java9266,相关视频:【免费】javaweb物业管理系统毕业设计,【免费】javaweb企业人事管理系统毕业设计,【免费】javaweb在线考试系统毕业设计,【免费】javaweb进销存或者库存管理系统毕业设计,【免费】javaweb酒店管理系统毕业设计,【免费】javaweb员工工资管理系统毕业设计,Spring boot+vue-element-admin前后端分离权限管理系统【Java项目教程】全套完整 _ 附源码笔记 _ 保姆级教学,【免费】javaweb商城系统毕业设计,【免费】javaweb设备管理系统视频毕业设计,【免费】javaweb学生成绩管理系统毕业设计 icon-default.png?t=N7T8 https://www.bilibili.com/video/BV1Xj411p7PR/

项目介绍

现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本图书商城管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此图书商城管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线选择试题并完成答题,在线查看考核分数。管理员管理收货地址管理、购物车管理、字典管理、图书管理、图书收藏管理、图书评价管理、图书订单管理、用户管理、管理员管理等功能。图书商城管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。

系统展示

部分代码



/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UsersController {
	
	@Autowired
	private UsersService usersService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		R r = R.ok();
		r.put("token", token);
		r.put("role",user.getRole());
		r.put("userId",user.getId());
		return r;
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UsersEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        usersService.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){
    	UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        usersService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UsersEntity user){
        EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
    	PageUtils page = usersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UsersEntity user){
       	EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", usersService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UsersEntity user = usersService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Integer id = (Integer)request.getSession().getAttribute("userId");
        UsersEntity user = usersService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UsersEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
    	user.setPassword("123456");
        usersService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UsersEntity user){
//        ValidatorUtils.validateEntity(user);
        usersService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        usersService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}
<template>
	<el-main>
		<bread-crumbs :title="title" class="bread-crumbs"></bread-crumbs>
		<router-view class="router-view"></router-view>
	</el-main>
</template>
<script>
	import menu from "@/utils/menu";
	export default {
		data() {
			return {
				menuList: [],
				role: "",
				currentIndex: -2,
				itemMenu: [],
				title: ''
			};
		},
		mounted() {
			let menus = menu.list();
			this.menuList = menus;
			this.role = this.$storage.get("role");
		},
		methods: {
			menuHandler(menu) {
				this.$router.push({
					name: menu.tableName
				});
				this.title = menu.menu;
			},
			titleChange(index, menus) {
				this.currentIndex = index
				this.itemMenu = menus;
				console.log(menus);
			},
			homeChange(index) {
				this.itemMenu = [];
				this.title = ""
				this.currentIndex = index
				this.$router.push({
					name: 'home'
				});
			},
			centerChange(index) {
				this.itemMenu = [{
					"buttons": ["新增", "查看", "修改", "删除"],
					"menu": "修改密码",
					"tableName": "updatePassword"
				}, {
					"buttons": ["新增", "查看", "修改", "删除"],
					"menu": "个人信息",
					"tableName": "center"
				}];
				this.title = ""
				this.currentIndex = index
				this.$router.push({
					name: 'home'
				});
			}
		}
	};
</script>
<style lang="scss" scoped>
	a {
		text-decoration: none;
		color: #555;
	}

	a:hover {
		background: #00c292;
	}

	.nav-list {
		width: 100%;
		margin: 0 auto;
		text-align: left;
		margin-top: 20px;

		.nav-title {
			display: inline-block;
			font-size: 15px;
			color: #333;
			padding: 15px 25px;
			border: none;
		}

		.nav-title.active {
			color: #555;
			cursor: default;
			background-color: #fff;
		}
	}

	.nav-item {
		margin-top: 20px;
		background: #FFFFFF;
		padding: 15px 0;

		.menu {
			padding: 15px 25px;
		}
	}

	.el-main {
		background-color: #F6F8FA;
		padding: 0 24px;
		// padding-top: 60px;
	}

	.router-view {
		padding: 10px;
		margin-top: 10px;
		background: #FFFFFF;
		box-sizing: border-box;
	}

	.bread-crumbs {
		width: 100%;
		// border-bottom: 1px solid #e9eef3;
		// border-top: 1px solid #e9eef3;
		margin-top: 10px;
		box-sizing: border-box;
	}
</style>

源码下载

CSDN 1积分下载: https://download.csdn.net/download/caofeng891102/88635022

或者免费领取加小锋老师wx:java9266

热门推荐

免费分享一套Springboot+Vue前后端分离的校园二手交易平台,挺漂亮的-CSDN博客

免费分享一套Springboot+Vue前后端分离的学生网上请假系统,挺漂亮的-CSDN博客

免费分享一套基于springboot的进销存(仓库)管理系统,挺漂亮的-CSDN博客

免费分享一套 SpringBoot + Vue + ElementUI 的人力资源管理系统,挺漂亮的-CSDN博客

免费分享一套基于Springboot+Vue的医院管理系统,挺漂亮的-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

免费分享一套Springboot+Vue前后端分离的在线图书商城(书城)系统,挺漂亮的 的相关文章

随机推荐

  • Windows7系统PushPrinterConnections.exe文件丢失问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个PushPri
  • Windows7系统rasdial.exe文件丢失问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个rasdial
  • BENTLY 350092 电源控制器

    BENTLY 350092 电源控制器 BENTLY 350092 电源控制器 产品详情 Bently Nevada作为一家以工业监测和测量解决方案为主的公司 其产品通常应用于以下领域 振动监测与分析 Bently Nevada的产品常用于
  • Windows7系统raserver.exe文件丢失问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个raserve
  • 0基础学习VR全景平台篇第129篇:认识单反相机和鱼眼镜头

    上课 全体起立 大家好 欢迎观看蛙色官方系列全景摄影课程 一 相机 单反和微单 这里说的相机是指可更换镜头的单反 微单数码相机 那两者有何差异呢 1 取景结构差异 两者最直观的 区别 在于 微单相机
  • 手机电量消耗快?原来是这个开关没关闭,涨知识了

    随着智能手机的普及 我们日常生活中离不开手机 但是很多用户会发现手机电量消耗得很快 电池不耐用 这可能是由于一些设置和开关没有正确关闭导致的 本文将介绍一个容易被忽略的开关 这个开关如果不关闭 可能会导致手机电量消耗过快 一 关闭蓝牙和Wi
  • 面对内卷严重的2023年,测试人员该怎样修炼?

    这几天马上就要双12大促 相信大家都准备花了不少钱吧 其实在每一次大促的背后各大电商平台还在遭受一次又一次的的黑产攻击 拿阿里巴巴去年双十一举例 2684 亿交易额的背后 有一天内 22 亿次的黑产攻击 近几年网络安全事件层出不穷 相信大家
  • 云投集团:打造价值财务,助力高质量发展

    记着 亓坤 来源 新理财 公司理财 杂志2023年11月刊 云南省投资控股集团有限公司 以下简称 云投集团 是1997年成立的大型国有全资企业 是云南省资产规模最大的综合性国有资本投资公司 也是云南首家世界500强企业 截至2021年 云投
  • Windows7系统rdrleakdiag.exe文件丢失问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个rdrleak
  • strongswan相关命令

    重启命令 root WWW strongswan strongswan restart Stopping strongSwan IPsec Starting weakSwan 5 7 2 IPsec starter 查看状态命令 root
  • (附源码)基于Springboot智能垃圾分类管理平台-计算机毕设 63147

    Springboot智能垃圾分类管理平台 摘 要 随着科学技术的飞速发展 社会的方方面面 各行各业都在努力与现代的先进技术接轨 通过科技手段来提高自身的优势 智能垃圾分类当然也不例外 智能垃圾分类管理平台是以实际运用为开发背景 运用软件工程
  • 计算机毕设ssm阳江市旅游网站whquz9【附源码】

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 vue mybatis Ma
  • Pipe转token教程

    打开网站 https www satsx io pipe 选择Transfer 以及pipe 选择转账数量 点击select uxto关键是可以多选 填入买家地址 以及输入对应数量即可
  • 计算机毕设ssm学生综合测评管理系统kl6el9【附源码】

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 vue mybatis Ma
  • 计算机毕设ssm疫情防控物业管理系统o8e9w9【附源码】

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 vue mybatis Ma
  • Windows7系统printui.exe文件丢失问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个printui
  • INDEL AG INFO-4KP-94161定位板

    INDEL AG INFO 4KP 94161定位板 INDEL AG INFO 4KP 94161定位板产品详情 INDEL AG INFO 4KP 94161 定位板可能指的是以下一些产品特点 定位技术 定位板可能是一种包含定位技术的设
  • strongswan的ipsec.conf 配置解析

    config setup uniqueids no conn default keyexchange ikev1 ike aes256 sha1 modp1024 esp aes256 sha1 auto add closeaction c
  • Qt之使用QListView加载相册(富文本ToolTip)

    一 效果 二 实现 include mainwindow h include ui mainwindow h include
  • 免费分享一套Springboot+Vue前后端分离的在线图书商城(书城)系统,挺漂亮的

    大家好 我是java1234 小锋老师 看到一个不错的Springboot Vue前后端分离的在线图书商城 书城 系统 分享下哈 项目视频演示 免费 Springboot Vue在线图书商城 在线书城 毕业设计 Java毕业设计 哔哩哔哩