基于javaweb的SSM网上书城系统(java+ssm+jsp+js+jquery+layui+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

001424000701

011424000701

531324590701

541324590701

551324590701

561324590701

581324590701

591324590701

基于javaweb的SSM网上书城系统(java+ssm+jsp+js+jquery+layui+mysql)

项目介绍

主要功能包括:

系统功能如下:用户管理、商品书籍管理、购物车管理、订单管理、收货地址管理、会员信息管理等等。系统的用户角色和权限分配如下:

(1)游客: 商品书籍浏览:游客可以在线上浏览书籍信息,并且可以阅读书籍;

(2)顾客: 商品书籍浏览:顾客可对商品进行浏览; 商品书籍购买:顾客可购买自己想要书籍; 会员注册:顾客可进行会员注册; 顾客个人信息管理:顾客可对自己个人注册信息的增删改查的操作; 商品书籍管理:顾客可把书籍加入购物车或删除; 订单管理:顾客可对订单的进行增删改查的操作; 购物车管理:顾客对购物车增删改查的等操作; 收货地址管理:顾客对收货地址的增删改查的操作;

(3)管理员: 用户管理:管理员可以对注册的用户进行管理; 商家管理:管理员可以对商家的发布的商品进行审核操作; 违规管理:管理商店书城的违规用户账号; 图书审核管理:可对商家发布的书籍进行审核; 会员信息管理:可对用户的注册信息进行增删改查等操作;

(4)商家: 商品书籍发布:商家可发布书籍商品; 商品上下架书籍管理:商家可以对书籍进行上下架管理; 商品书籍管理:商家可以对书籍进行添加、查看、修改、删除等操作; 订单管理:商家可对顾客订单信息的添加、查看、修改、删除等操作;

环境需要

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.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目; 6.数据库:MySql 5.7/8.0等版本均可;

技术栈

后端:SSM(Spring+SpringMVC+Mybatis)

前端:JSP+CSS+JS+JQUERY+Layui

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目; 3. 将项目中db.xml配置文件中的数据库配置改为自己的配置,然后运行;

主页管理控制层: 

@Controller

@RequestMapping(“/shop/“)

public class ShopControll {

@Autowired

public shopService shopService=null;

@Autowired

public typeService typeService;

//主页

@RequestMapping(“index”)

public String gotoIndex(HttpServletRequest request){

List HotSnackList = shopService.getHotSnack();

List newSnackList = shopService.getNewSnack();

List typeList = typeService.getall();

request.setAttribute(“HotSnackList”,HotSnackList);

request.setAttribute(“newSnackList”,newSnackList);

request.getSession().setAttribute(“type”, typeList);

System.out.println(“00”);

return “user/index”;

//登录

@RequestMapping(“userLoginGet”)

public String gotoUserLogin(){

return “user/userLogin”;

@RequestMapping(“userLoginPost”)

public String gotoUserLogin(Userinfo userinfo,HttpServletRequest request){

Userinfo exituser = shopService.userLogin(userinfo);

if(exituser ==null){

request.setAttribute(“msg”,”用户名或密码错误”);

return “user/userLogin”;

request.getSession().setAttribute(“exituser”, exituser);

request.getSession().setAttribute(“frontuser”, exituser.getuUsername());

request.getSession().setAttribute(“frontuserId”, exituser.getuId());

request.getSession().setAttribute(“money”, exituser.getuMoney());

return “redirect:index”;

//退出登录

@RequestMapping(“userlogout”)

public String showlogin(HttpServletRequest request){

HttpSession session = request.getSession();

session.removeAttribute(“frontuser”);

session.removeAttribute(“frontuserId”);

return “redirect:userLoginGet”;

//商品详情

@RequestMapping(“proDatail”)

public String gotoProDatail(HttpServletRequest request,Snackinfo snack){

Snackinfo sck = shopService.selectById(snack);

request.setAttribute(“sck”, sck);

return “product/proDetail”;

//查询订单

@RequestMapping(“selectOrderSnack”)

@ResponseBody

public DataTables selectOrderSnack(String oId,int start,int length){

Map<Object,Object> map=new HashMap<Object, Object>();

map.put(“oId”, oId);

map.put(“pageStart”,start);

map.put(“pageSize”,length);

PageHelp pageHelp = shopService.selectOrderSnack(map);

DataTables datatable=new DataTables();

datatable.setData(pageHelp.getList());

datatable.setRecordsFiltered(pageHelp.getRecord());

datatable.setRecordsTotal(pageHelp.getRecord());

return datatable;

//type页面

@RequestMapping(“puffingType”)

public String puffing(HttpServletRequest request,DoSnackType doSnackType){

List TypeSnackList=shopService.selectPuffing(doSnackType.getType(),doSnackType.getSnackName());

Type type = typeService.getOne(doSnackType.getType());

request.setAttribute(“TypeSnackTitle”,type.getName());

request.setAttribute(“TypeNum”,doSnackType.getType());

request.setAttribute(“TypeSnackList”,TypeSnackList);

return “user/typePage”;

订单管理控制层: 

@Controller

@RequestMapping(“/sorder”)

public class SorderController {

@Autowired

private sorderService sorderService=null;

@Autowired

private userService userService;

@RequestMapping(value=”/add”,method=RequestMethod.POST)

public String addSorder(Snackinfo snackinfo,HttpSession session) {

System.out.println(“——-addCar()——“+snackinfo.getsNumber());

// 1:通过 product.id获取当前的商品数据

Snackinfo findSnackinfo = sorderService.snackfindById(snackinfo.getsId());

findSnackinfo.setsNumber(snackinfo.getsNumber());

//2:判断当前session是否有购物车,如果没有则创建

if (session.getAttribute(“receiptinfo”)==null) {

//创建购物车,存到session中

session.setAttribute(“receiptinfo”, new Receiptinfo(new HashSet()));

Receiptinfo receiptinfo = (Receiptinfo)session.getAttribute(“receiptinfo”);

//3:把商品信息转化为sorder,并且添加到购物车中(判断购物车是否重复)

receiptinfo = sorderService.addSorder(receiptinfo, findSnackinfo);

receiptinfo.setoPhone(cluTotal(receiptinfo));

return “redirect:gotocar”;

@RequestMapping(“gotocar”)

public String gotocar() {

return “product/car”;

//计算总金额

public String cluTotal(Receiptinfo receiptinfo) {

double tal=0.0;

for(Orderdetail temp : receiptinfo.getOrderdetailSet()){

tal+=temp.getoMoney()*temp.getoNum();

return String.valueOf(tal);

@RequestMapping(value=”/delete”,method=RequestMethod.GET)

public String deleteSorder(Snackinfo snackinfo,HttpSession session) {

Receiptinfo receiptinfo = (Receiptinfo)session.getAttribute(“receiptinfo”);

Set set = receiptinfo.getOrderdetailSet();

Iterator iterator = set.iterator();

while(iterator.hasNext()){

Orderdetail orderdetail = iterator.next();

if(orderdetail.getSnackinfo().getsId()==snackinfo.getsId()){

iterator.remove();

receiptinfo.setoPhone(String.valueOf((Double.parseDouble(receiptinfo.getoPhone())-orderdetail.getoMoney()*orderdetail.getoNum())));

if( set.size() <= 0){

session.removeAttribute(“receiptinfo”);

return “redirect:gotocar”;

@RequestMapping(value=”/clear”,method=RequestMethod.GET)

public String clearSorder(Snackinfo snackinfo,HttpSession session) {

Receiptinfo receiptinfo = (Receiptinfo)session.getAttribute(“receiptinfo”);

if(receiptinfo!=null){

Set set = receiptinfo.getOrderdetailSet();

set.clear();

receiptinfo.setoPhone(String.valueOf(0d));

session.removeAttribute(“receiptinfo”);

return “redirect:gotocar”;

//下订单

@RequestMapping(“setOrder”)

@ResponseBody

public String setOrder(HttpServletRequest request,HttpSession session,Receiptinfo receiptinfo) {

DoMoneyFK dfk=new DoMoneyFK();

Receiptinfo receiptinfoSession = (Receiptinfo)session.getAttribute(“receiptinfo”);

Date day=new Date();

SimpleDateFormat df = new SimpleDateFormat(“yyyyMMdd”);

String oId=df.format(day).toString()+String.valueOf((int)(Math.random()*9000+1000));

receiptinfo.setoId(oId);

receiptinfo.setOrderdetailSet(receiptinfoSession.getOrderdetailSet());

sorderService.addReceiptinfo(receiptinfo);

Order order=new Order();

order.setoId(oId);

order.setuId((int)session.getAttribute(“frontuserId”));

order.setoTime(DateUtil.getCurrentTime());

order.setoType(-1);

sorderService.addOrder(order);

Orderdetail orderdetail=new Orderdetail();

orderdetail.setoId(oId);

for (Orderdetail orderdetailSession : receiptinfoSession.getOrderdetailSet()) {

orderdetail.setoNum(orderdetailSession.getoNum());

orderdetail.setoMoney(orderdetailSession.getoMoney());

orderdetail.setsId(orderdetailSession.getsId());

sorderService.addOrderdetail(orderdetail);

Userinfo selectUserinfoMoney = userService.selectUserinfoMoney((int)request.getSession().getAttribute(“frontuserId”));

Double selectOrderdetailPayMoney = sorderService.selectOrderdetailPayMoney(oId);

dfk.setoId(oId);

dfk.setPayMoney(selectOrderdetailPayMoney.toString());

dfk.setuMoney(selectUserinfoMoney.getuMoney());

session.removeAttribute(“receiptinfo”);

return ResponseUtil.successToClientStr(dfk);

用户管理控制层:

@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 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 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 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 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));


项目链接:
https://javayms.github.io?id=141524190701201jy
https://javayms.pages.dev?id=141524190701201jy