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

news/2025/2/11 19:52:35/

作者主页:源码空间站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 {@Autowiredprivate userService userService;@Autowiredprivate sorderService sorderService;@Autowiredprivate adminOrderService adminOrderService;//跳转注册@RequestMapping("userRegisterGet")public String gotoRegister(){return "user/register";}	//注册判断用户名存在@RequestMapping("selectUserOne")@ResponseBodypublic AjaxResult getUserOne(Userinfo userinfo){AjaxResult aj=new AjaxResult();Userinfo rs = userService.selectUserOne(userinfo);aj.setTag(rs);return aj;}//注册@RequestMapping("addUserRegister")@ResponseBodypublic AjaxResult addUserOne(Userinfo userinfo){AjaxResult aj=new AjaxResult();int rs = userService.addUserOne(userinfo);aj.setTag(rs);return aj;}//查登陆的用户@RequestMapping("readUserinfo")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic Object getMoneyAcount(HttpServletRequest request){return request.getSession().getAttribute("money");}//查看当前订单@RequestMapping("userOrderLimit")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic String deleteAdminOrder(String oId){return ResponseUtil.successToClient(adminOrderService.deleteAdminOrder(oId));} //跳转管理员信息@RequestMapping("mainToAdminuser")public String mainToAdminuser(){return "admin/persionInfo/adminInfo";}//加载管理员信息@RequestMapping("mainSelectAdminuser")@ResponseBodypublic String mainSelectAdminuser(HttpServletRequest request){int adId =(int)request.getSession().getAttribute("adminId");return ResponseUtil.successToClient(userService.selectAdminInfo(adId));}//更新管理员信息@RequestMapping("mainUpdateAdminuser")@ResponseBodypublic String mainUpdateAdminuser(DoAdminInfo admin){return ResponseUtil.successToClient(userService.updateAdminInfo(admin));}
}

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


http://www.ppmy.cn/news/4738.html

相关文章

非零基础自学Golang 第11章 文件操作 11.1 目录基本操作 11.1.2 创建目录 11.1.3 删除目录

非零基础自学Golang 文章目录非零基础自学Golang第11章 文件操作11.1 目录基本操作11.1.2 创建目录11.1.3 删除目录第11章 文件操作 11.1 目录基本操作 11.1.2 创建目录 Go标准库中的os库提供了平台无关性的操作系统功能接口。 创建目录时可以使用os库的如下接口&#xff1…

【Linux】shell命令以及运行原理

shell命令1.用户不能直接使用操作系统2.Linux是一个操作系统3.在软件层面操作Linux系统4.shell运行原理1.用户不能直接使用操作系统 首先在讲shell命令之前&#xff0c;我们要知道 “用户是不能直接在操作系统上操作的&#xff0c;只能在操作系统之上&#xff0c;也就是软件层面…

工程复现 -- SiamMOT

工程复现 – SiamMOT 先赞后看&#xff0c;养成好习惯&#xff0c;感谢您的理解与支持&#xff01; 参考&#xff1a; 1. siam-mot源码地址 2. SiamMOT 论文地址 3. SiamMOT 论文解析 简单介绍 SiamMOT&#xff08;SiamMOT: Siamese Multi-Object Tracking&#xff09;是…

juc-3-volatile

目录 1 多线程下变量的不可见性及解决方案 2 不可见性解决方案 2.1 加锁方式解决 2.2 使用volatile关键字 2.3 while(true)速度快调用本地线程内存&#xff0c;加延时即可访问主内存的共享变量 3 volatile不保证原子性以及解决方案 3.1 案例 volatile 验证不是原子性 3.…

Sentinel-1产品定义与产品格式(CSDN_0001_20220904)

&#xff08;文章编号&#xff1a;CSDN_0001_20220904&#xff09; 目录 1. 概述 1.1 地球物理测量 1.2 极化 1.3 干涉 2. 产品级别和产品类型 2.1 Level-0 2.2 Level-1 2.1.1 SLC 2.1.2 GRD 2.2 Level-2 3. 产品文件 3.1 组织结构 3.1.1 Annotation measuremen…

区块链入门的几个基本问题

目录前言比特币区块链区块链大揭秘抛砖引玉故事一故事二总结引人入胜侃侃而谈去中心化开放性不可篡改性相关技术共识机制共识机制的两大核心达成共识的主要过程&#xff08;产生新区块的过程&#xff09;工作量如何理解&#xff1f;Hash计算Bits和目标Hash值Merkle Root双花问题…

JAVA成神之路-基础篇——常用jvm命令(二)

常用jvm命令&#xff08;二&#xff09;jpsjinfojstackjstatjps jps 该命令是用来获取java中当前运行的进程&#xff0c;可以使用该命令获取进程Id&#xff0c;根据pid从而进行一些列的其他相关操作。 usage: jps [--help]jps [-q] [-mlvV] [<hostid>]Definitions:<…

(附源码)springboo计算机专业大学生就业指南网 毕业设计 061355

计算机专业大学生就业指南网 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对学生就业管理等…