Java项目:SSM网上零食超市商城

news2024/11/24 7:48:08

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目分为前后台,前台普通用户登录,后台管理员登录;
用户角色包含以下功能:
提交订单,支付页面(模拟的),查看个人订单详情,查看购物车,查看零食详情,注册用户,登录,首页等功能。

管理员角色包含以下功能:
员工管理,商品管理,添加商品,用户管理,管理员登录,订单管理,销售统计等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7/8.0版本均可;

6.是否Maven项目:是;

技术栈

1. 后端:Spring+SpringMVC+Mybatis

2. 前端:JSP+CSS+JavaScript+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,前台地址:http://localhost:8080/snack/shop/index   注:tomcat中配置的路径必须为snack 

后台地址:http://localhost:8080/snack/admin/login/adminLogin

运行截图

前台界面

后台界面

相关代码

用户控制器

package com.snack.web;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.snack.model.Account;
import com.snack.model.Integral;
import com.snack.model.Userinfo;
import com.snack.model.domain.DoAdminInfo;
import com.snack.model.domain.DoMyOrder;
import com.snack.model.domain.DoPayMoney;
import com.snack.service.adminOrderService;
import com.snack.service.sorderService;
import com.snack.service.userService;
import com.snack.utils.AjaxResult;
import com.snack.utils.DataTables;
import com.snack.utils.PageHelp;
import com.snack.utils.ResponseUtil;

@Controller
@RequestMapping("/user/")
public class UserControll {
	
	@Autowired
	private userService userService;
	
	@Autowired
	private sorderService sorderService;
	
	@Autowired
	private adminOrderService adminOrderService;
	
	//跳转注册
	@RequestMapping("userRegisterGet")
	public String gotoRegister(){
		return "user/register";
	}	
	
	//注册判断用户名存在
	@RequestMapping("selectUserOne")
	@ResponseBody
	public AjaxResult getUserOne(Userinfo userinfo){
		AjaxResult aj=new AjaxResult();
		 Userinfo rs = userService.selectUserOne(userinfo);
		 aj.setTag(rs);
		 return aj;
	}
	
	//注册
	@RequestMapping("addUserRegister")
	@ResponseBody
	public AjaxResult addUserOne(Userinfo userinfo){
		 AjaxResult aj=new AjaxResult();
		 int rs = userService.addUserOne(userinfo);
		 aj.setTag(rs);
		 return aj;
	}
	
	//查登陆的用户
	@RequestMapping("readUserinfo")
	@ResponseBody
	public AjaxResult readUserinfo(Userinfo userinfo,HttpServletRequest request){
		 AjaxResult aj=new AjaxResult();
		 Userinfo usr= userService.selectUserinfoById(userinfo);
		 if(usr!=null){
			 aj.setTag(usr);
		 }
		 return aj;
	}
	
	//修改个人信息
	@RequestMapping("editUserinfo")
	@ResponseBody
	public int editUserinfo(Userinfo userinfo){
		 int rs= userService.updateUserinfoById(userinfo);
		 return rs;
	}
	
	//跳转注册
	@RequestMapping("userPersonalInfo")
	public String gotoPersonalInfo(){
		return "user/personalInfo";
	}
	
	//加载个人信息界面
	@RequestMapping("userInfo")
	public String gotoUserInfo(){
		return "user/userInfo";
	}
	
	//跳转个人积分页面
	@RequestMapping("userIntegral")
	public String userIntegral(){
		return "user/integral";
	}
	
	//跳转个人图片
	@RequestMapping("userGerenImg")
	public String userGerenImg(){
		return "user/gerenImg";
	}
	
	//加载个人积分
	@RequestMapping("userIntegralLimit")
	@ResponseBody
	public DataTables userIntegralLimit(HttpServletRequest request,int start,int length){
		Map<Object,Object> map=new HashMap<Object, Object>();
		map.put("uId",request.getSession().getAttribute("frontuserId"));
		map.put("pageStart",start);
		map.put("pageSize",length);
		PageHelp<Integral> pageHelp= userService.selectIntegralLimit(map);
		DataTables datatable=new DataTables();
		datatable.setData(pageHelp.getList());
		datatable.setRecordsFiltered(pageHelp.getRecord());
		datatable.setRecordsTotal(pageHelp.getRecord());
		return datatable;
	}
	
	//跳转个人账户页面
	@RequestMapping("userAccount")
	public String userAccount(){
		return "user/account";
	}
	
	//加载个人积分
	@RequestMapping("userAccountLimit")
	@ResponseBody
	public DataTables userAccountLimit(HttpServletRequest request,int start,int length){
		Map<Object,Object> map=new HashMap<Object, Object>();
		map.put("uId",request.getSession().getAttribute("frontuserId"));
		map.put("pageStart",start);
		map.put("pageSize",length);
		PageHelp<Account> pageHelp= userService.selectAccountLimit(map);
		DataTables datatable=new DataTables();
		datatable.setData(pageHelp.getList());
		datatable.setRecordsFiltered(pageHelp.getRecord());
		datatable.setRecordsTotal(pageHelp.getRecord());
		return datatable;
	}
	
	//获得金额
	@RequestMapping("getMoneyAcount")
	@ResponseBody
	public Object getMoneyAcount(HttpServletRequest request){
		return request.getSession().getAttribute("money");
	}
	
	//查看当前订单
	@RequestMapping("userOrderLimit")
	@ResponseBody
	public DataTables userOrderLimit(HttpServletRequest request,int start,int length){
		Map<Object,Object> map=new HashMap<Object, Object>();
		map.put("uId",request.getSession().getAttribute("frontuserId"));
		map.put("pageStart",start);
		map.put("pageSize",length);
		PageHelp<DoMyOrder> pageHelp= userService.selectOrderLimit(map);
		DataTables datatable=new DataTables();
		datatable.setData(pageHelp.getList());
		datatable.setRecordsFiltered(pageHelp.getRecord());
		datatable.setRecordsTotal(pageHelp.getRecord());
		return datatable;
	}
	
	//跳转订单页面
	@RequestMapping("userGoOrder")
	public String userGoOrder(HttpSession session){
		return "user/myOrder";
	}
	
	//跳转历史订单
	@RequestMapping("userGoSuccessOrder")
	public String userGoSuccessOrder(){
		return "user/myOrderSuccess";
	}
	
	//查看当前订单
	@RequestMapping("userSucOrderLimit")
	@ResponseBody
	public DataTables userSucOrderLimit(HttpServletRequest request,int start,int length){
		Map<Object,Object> map=new HashMap<Object, Object>();
		map.put("uId",request.getSession().getAttribute("frontuserId"));
		map.put("pageStart",start);
		map.put("pageSize",length);
		PageHelp<DoMyOrder> pageHelp= userService.selectMySuccessOrderLimit(map);
		DataTables datatable=new DataTables();
		datatable.setData(pageHelp.getList());
		datatable.setRecordsFiltered(pageHelp.getRecord());
		datatable.setRecordsTotal(pageHelp.getRecord());
		return datatable;
	}
	
	//请确认收货
	@RequestMapping("userOrderConfirm")
	@ResponseBody
	public String userOrderConfirm(HttpServletRequest request,int id,int typeNum){
		int eId;
		if(typeNum==0){
		    eId = (int)request.getSession().getAttribute("adminId");
		}else{
			eId=0;
		}
	return ResponseUtil.successToClient(userService.upDateByorderConfirm(id,typeNum,eId));
	}
	
	//去付款
	@RequestMapping("userOrderPayMoney")
	@ResponseBody
	public String userOrderPayMoney(HttpServletRequest request,String oId){
		DoPayMoney dpm=new DoPayMoney();
		Userinfo selectUserinfoMoney = userService.selectUserinfoMoney((int)request.getSession().getAttribute("frontuserId"));
		Double selectOrderdetailPayMoney = sorderService.selectOrderdetailPayMoney(oId);
		dpm.setPayMoney(selectOrderdetailPayMoney.toString());
		dpm.setuMoney(selectUserinfoMoney.getuMoney());
	return ResponseUtil.successToClient(dpm);
	}
	
	//确认付款
	@RequestMapping("userOrderPayMoneyConfirm")
	@ResponseBody
	public String userOrderPayMoneyConfirm(HttpServletRequest request,Float payNumber,Float uMoney,String uPasword,String oId){
		Userinfo userinfo = (Userinfo)request.getSession().getAttribute("exituser");
		if(userinfo.getuPassword().equals(uPasword)){
			sorderService.updateOrderByoId(oId);
			userService.updateUserinfoBypay(userinfo.getuId(), uMoney-payNumber);
		}else{
			return ResponseUtil.errorToClient();
		}
	   return ResponseUtil.successToClient();
	}
	
	//删除订单
		@RequestMapping("deleteMyOrder")
		@ResponseBody
		public String deleteAdminOrder(String oId){
			return ResponseUtil.successToClient(adminOrderService.deleteAdminOrder(oId));
		} 
	
	//跳转管理员信息
	@RequestMapping("mainToAdminuser")
	public String mainToAdminuser(){
		return "admin/persionInfo/adminInfo";
	}
	//加载管理员信息
	@RequestMapping("mainSelectAdminuser")
	@ResponseBody
	public String mainSelectAdminuser(HttpServletRequest request){
		int adId =(int)request.getSession().getAttribute("adminId");
		return ResponseUtil.successToClient(userService.selectAdminInfo(adId));
	}
	
	//更新管理员信息
	@RequestMapping("mainUpdateAdminuser")
	@ResponseBody
	public String mainUpdateAdminuser(DoAdminInfo admin){
		return ResponseUtil.successToClient(userService.updateAdminInfo(admin));
	}
}

 如果也想学习本系统,下面领取。回复:194ssm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/99643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Axios异步通信

四.Axios异步通信 1 什么是Axios&#xff1f; Axios是一个类库&#xff0c;基于Promise管理的HTTP 库&#xff0c;是前端通信框架&#xff0c;可以用在浏览器和 node.js 中。axios实现了对ajax的封装&#xff0c;常用于Ajax请求。注解&#xff1a;promise是Java Script的一个…

(附源码)Springboot校园健康检测管理系统 毕业设计 151047

Springboot校园健康检测管理系统的设计 摘 要 亚健康低龄化和高职业压力使高校师生健康问题凸显&#xff0c;不及早进行干预和控制将严重影响师生健康。如何理解和应用健康管理的理论和方法&#xff0c;探索高校师生健康管理工作模式&#xff0c;是目前高校医院的重点工作 校园…

Thymeleaf 预处理表达式__${表达式}__使用案例

目录一. 前期准备1.1 国际化项目获取类1.2 国际化配置文件类1.3 项目配置文件1.4 国际化资源文件二. __${表达式}__预处理表达式2.1 在Thymeleaf中使用Spring的Bean2.2 通过#{}获取国际化资源2.3 预处理表达式__${表达式}__的使用三. 效果四. 表格案例一. 前期准备 1.1 国际化…

图神经网络 # GNN基础(干货版)

注意&#xff1a;本篇文章不是系统性的图神经网络或者图深度学习的入门教程&#xff0c;而是介绍如何入门图神经网络的学习指南以及相关的干货笔记&#xff0c;文中会列出一些视频和文章学习资料&#xff0c;并在本文作一些重点的摘要&#xff0c;读者需要自行前往文本超链接的…

【C语言】通讯录《信息写到文件版本》

&#x1f6a9;write in front&#x1f6a9; &#x1f50e;大家好&#xff0c;我是謓泽&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f3c5;2021年度博客之星物联网与嵌入式开发TOP5&#xff5…

非零基础自学Golang 第9章 结构体 9.5 结构体方法

非零基础自学Golang 文章目录非零基础自学Golang第9章 结构体9.5 结构体方法9.5.1 指针类型接收者9.5.2 值类型接收者第9章 结构体 9.5 结构体方法 Go语言中&#xff0c;一个方法就是一个包含了接收者的函数。 对于结构体方法&#xff0c;接收者可以是结构体类型的值或是指针…

【图像融合】对比度增强结合多尺度边缘保持分解红外与可见光图像融合【含Matlab源码 1886期】

⛄一、对比度增强结合多尺度边缘保持分解红外与可见光图像融合简介 1 引言 夜视成像技术在军事与执法领域&#xff0c;如监控&#xff0c;侦查&#xff0c;情报搜集和安保等方面有着重要应用。不同类型的夜视成像传感器在记录同一场景时&#xff0c;在其提供的信息中有部分是冗…

目标检测论文解读复现【NO.21】基于改进YOLOv7的小目标检测

前言 此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0…

Java项目:基于SSM的高校运动会管理系统的设计与实现

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该高校运动会信息管理系统是以B/S架构为设计基础并基于SSM框架开发的系统。系统采用了Java语言和MySQL数据库来实现。 系统按预定的算法完成了创…

数据结构---删去k个数字后的最小值

删去k个数字后的最小值思路贪心算法JAVA实现1JAVA实现2给出一个整数&#xff0c;从该整数中去掉k个数字&#xff0c;要求剩下的数字形成的新整数尽可能小。应该如何选取被去掉的数字&#xff1f; 其中整数的长度大于或等于k&#xff0c;给出的整数的大小可以超过long类型的数字…

计算机毕业设计 基于HTML+CSS+JavaScript 大气的甜品奶茶美食餐饮文化网页设计与实现23页面

&#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计&#x1f469;‍&#x1f393;,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等&#xff0c;用的最多的还是DW&#xff0c;当然不同软件写出的…

Java+SSM房屋租赁系统房屋出租房产(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术实现如下 后台框架&#xff1a;Spring、SpringMVC、MyBatis UI界面&#xff1a;jQuery 、JSP 数据库&#xff1a;MySQL 系统功能 系统分为前台用户界面和后台系统管理&#xff1a; 1.前台用户界面 用户注册、用户登录、用户中心、浏览房源、房源…

代码随想录训练营第54天|休息日 小结

打家劫舍系列 198. 打家劫舍对于当前的房间&#xff0c;无非就两种选择&#xff1a;偷与不偷。如果当前房间偷&#xff0c;那么前一个房间就不偷&#xff0c;即dp[i] dp[i-2] nums[i]&#xff1b;如果当前房间不偷&#xff0c;那么dp[i] dp[i-1]&#xff0c;因此递推公式为…

ch3_1_多进程的概念

1. CPU 的管理 CPU的工作原理&#xff1a; 从内存中取出程序的指令&#xff0c; 执行程序中的指令&#xff1b; 1.1 多道程序 假设A 程序运行时&#xff0c; 遇到 IO 处理时&#xff0c; 为了能够执行A 程序的后续指令&#xff0c; 正常情况下 cpu 需要等待着IO 处理完成&am…

后端快速学习VUE(一):VUE入门

个人博客地址 http://xiaohe-blog.top/ 文章目录1. 简介2. 基本使用2.1 引入Vue2.2 基本使用2.3 总结 &#xff1a;3. v-text、v-html指令的使用4. v-on : 事件绑定4.1 事件的三要素&#xff1a;4.2 v-on的基本使用4.3 v-on获取vue实例this4.4 事件绑定简化写法5. 常用指令5.1 …

useRef 源码解读

文章目录useRef 源码解读mountRefupdateRefref 的生命周期&#xff08;工作流程&#xff09;总结&#xff1a;render 阶段commit 阶段总述具体阐述safelyDetachRefcommitAttachRefuseRef 源码解读 由于 string 类型的 ref 已不推荐使用&#xff0c;所以只针对 function &#…

论文复现-1:bertscore

Bertscore是计算相似度的一种方法。 遗留问题&#xff1a;使用model layer 中的单一层 还是多个层&#xff0c;会对结果造成很大的影响吗&#xff1f; sent_encode函数是使用tokenizer将句子做encode。 tokenizer.encode( sent, add_special_tokensTrue, add_prefix_spaceTrue,…

HTML与CSS基础

2022.12.12 程序员在前端写完代码之后通过浏览器的渲染和解析成为用户看到的网页 浏览器出品的公司不同&#xff0c;内部的渲染引擎也不同。导致解析相同代码时的速度、性能、效果也不同 相同的前端网页在不同浏览器中运行的的结果也可能不同 WEB的三大标准 HTML包含页面内…

Java+MySQL基于SSM的智能办公管理系统

随着时代的发展,人们越来越来希望通过简单方便快捷的方式来进行办公,通过自能办公系统可以实现在线办公,这种办公模式脱离了传统纸质办公很多困扰,在实现现代化的同时提高了办公的效率。 本智能办公管理系统采用JAVA语言来进行开发,用小巧灵活的MySQL数据库做完后台存储解释。本…

痞子衡职场经验与感悟分享 - 索引

大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。本系列痞子衡给大家分享的是职场经验与见闻感悟。 痞子衡在嵌入式行业也摸打滚爬了不少年&#xff0c;有一些个人经验可以给大家参考。所谓他山之石可以攻玉&#xff0c;希望痞子衡的经验对大家的职场之路有所帮…