Java项目:02 基于ssm超市订单管理系统

news2025/2/27 9:10:40

项目介绍

基于ssm超市订单管理系统
环境:jdk1.8,mysql5.7,tomcat8.5,maven3.6
软件:IDEA
功能:超市后台管理系统,有订单管理,供应商管理,用户管理,密码修改,退出系统等模块
角色:管理员、经理、普通员工

环境要求

1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat7.x,8.X,9.x版本均可

4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;

5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目

6.数据库:MySql5.7/8.0等版本均可;

技术栈

后台框架:Spring Boot、MyBatis

数据库:MySQL

环境:JDK8、TOMCAT、IDEA

使用说明

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

2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;

运行指导

idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:

http://mtw.so/5MHvZq

源码地址:http://codegym.top。

运行截图

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

代码

UserController

package com.yc.controller;

import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

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.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.yc.po.Role;
import com.yc.po.User;
import com.yc.service.UserService;
import com.yc.util.ResultData;
@RequestMapping("user")
@Controller
public class UserController {

	//业务对象
	@Autowired
	private UserService userService;
	//session域对象
	@Autowired
	private HttpSession session;
	
	/**
	 * 用户登录
	 * @param userCode
	 * @param password
	 * @return
	 */
	@RequestMapping("gologin")
	@ResponseBody
	public String gologin(String userCode,String password){
		ResultData rd = userService.goLogin(userCode, password);
		if(rd.getData() != null){
			//把用户信息存到session域,保存用户的在线状态
			session.setAttribute("user",rd.getData());
		}
		//返回json数据到客户端
		System.out.println(JSONObject.toJSONString(rd));
		return JSONObject.toJSONString(rd);
	}
	
	/**
	 * 退出系统功能
	 * @return
	 */
	@GetMapping("logout")
	public String logout(HttpServletResponse response){
		//删除session域里面用户信息
		session.removeAttribute("user");
		//删除cookie
		Cookie cookie = new Cookie("usercode","-1");
		cookie.setMaxAge(0);
		cookie.setPath("/");
		response.addCookie(cookie);
		return "redirect:/login.html";
	}
	
	/**
	 * 旧密码验证
	 * @param pwd
	 * @param id
	 * @return
	 */
	@PostMapping("isPwd")
	@ResponseBody
	public String isPwd(String pwd,Long id){
		ResultData rd = userService.isPwd(pwd, id);
		return JSONObject.toJSONString(rd);
	}
	
	/**
	 * 密码修改
	 * @param userpassword
	 * @param id
	 * @return
	 */
	@PostMapping("pwdupdate")
	@ResponseBody
	public String pwdupdate(String userpassword,Long id){
		int pwdset = userService.pwdupdate(userpassword, id);
		return JSONObject.toJSONString(pwdset);
	}
	
	/**
	 * 分页展示用户信息
	 * @param username
	 * @param rolename
	 * @param n
	 * @param pageSize
	 * @param map
	 * @return
	 */
	@GetMapping("userlist")
	public String getUserList(
			@RequestParam(value="username",defaultValue="")String username,
			@RequestParam(value="rolename",defaultValue="")String rolename,
			@RequestParam(value="n",defaultValue="1")Integer n,
			@RequestParam(value="pageSize",defaultValue="5")Integer pageSize,
			Map<String,Object> map){
		//获取用户列表信息
		PageInfo pageInfo = userService.getUserListPage(username,rolename,n, pageSize);
		//获取角色名称列表信息
		List<String> roleNames = userService.getRoleNames();
		map.put("pageInfo", pageInfo);
		map.put("roleNames",roleNames);
		map.put("username",username);
		map.put("rolename",rolename);
		return "userlist";
	}
	
	@ModelAttribute
	public void modelAttributeMethod(Long id,String flag,Map<String,Object> map){
		if("update".equals(flag)){
			User user = new User();
			user = userService.getUserById(id);
			
			List<Role> rnids = userService.getRoleNameAndIds();
			map.put("user",user);
			map.put("rnids",rnids);
		}
	}
	
	/**
	 * 跳转到用户更新页面
	 * @return
	 */
	@GetMapping("usermodify")
	public String usermodify(){
		return "usermodify";
	}
	
	/**
	 * 跳转到用户查看页面
	 * @return
	 */
	@GetMapping("userview")
	public String userview(){
		return "userview";
	}
	
	/**
	 * 跳转到用户增加页面
	 * @return
	 */
	@GetMapping("useradd")
	public String useradd(
			@RequestParam(value="rolename",defaultValue="")String rolename,
			Map<String,Object> map){
		//获取角色名称列表信息
		List<Role> roles = userService.getRoleNameAndIds();
		map.put("roles",roles);
		return "useradd";
	}
		
	/**
	 * 查看用户信息
	 * @return
	 */
	@RequestMapping("userselect")
	@ResponseBody
	public String userselect(Long id){			
			User user = userService.getUserById(id);			
			return JSON.toJSONString(user);		
	}
	
	/**
	 * 用户删除操作
	 * @return
	 */
	@RequestMapping("userdel")
	public String userdel(@RequestParam("id") Long id){
		userService.userDelect(id);
		return "redirect:userlist";
	}
		
	/**
	 * 更新用户信息
	 * @return
	 */
	@PostMapping("update")
	public String userupdate(User user,Map<String,Object> map){
		//修改时间
		user.setModifydate(new Date());
		//修改人
		User onlineUser = (User)session.getAttribute("user");
		if(onlineUser != null){
			user.setModifyby(onlineUser.getId());
		}
		userService.userUpdate(user);
		
		List<Role> rnids = userService.getRoleNameAndIds();
		map.put("rnids",rnids);
		return "usermodify";
	}
	
	/**
	 * 增加用户信息
	 * @return
	 */
	@PostMapping("add")
	public String useradd(User user,Map<String,Object> map){
	
		user.setCreationdate(new Date());		
		//修改人
		User onlineUser = (User)session.getAttribute("user");
		if(onlineUser != null){
			user.setCreatedby(onlineUser.getId());
		}
		userService.userAdd(user);
		return "redirect:userlist";
	}
	
	
}

ProviderController

package com.yc.controller;

import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

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.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.github.pagehelper.PageInfo;
import com.yc.po.Provider;
import com.yc.po.Role;
import com.yc.po.User;
import com.yc.service.ProviderService;

@RequestMapping("provider")
@Controller
public class ProviderController {
	
	@Autowired
	private ProviderService providerService;
	
	//session域对象
	@Autowired
	private HttpSession session;
	
	@GetMapping("providerlist")
	public String getProviderList(
			@RequestParam(value="proname",defaultValue="")String proname,
			@RequestParam(value="procontact",defaultValue="")String procontact,
			@RequestParam(value="n",defaultValue="1")Integer n,
			@RequestParam(value="pageSize",defaultValue="5")Integer pageSize,
			Map<String,Object> map){
		//获取用户列表信息
		PageInfo pageInfo = providerService.getProviderListPage(proname, procontact, n, pageSize);
		
		map.put("pageInfo", pageInfo);	
		map.put("proname",proname);
		map.put("procode",procontact);
		return "providerlist";
	}
	
	@ModelAttribute
	public void modelAttributeMethod(Long id,String flag,Map<String,Object> map){
		if("update".equals(flag)){
			Provider provider = new Provider();
			provider = providerService.getProById(id);
		
			map.put("provider",provider);
		}
	}
	
	/**
	 * 更新供应商信息
	 * @return
	 */
	@PostMapping("update")
	public String proupdate(Provider provider,Map<String,Object> map){
		//修改时间
		provider.setModifydate(new Date());
		//修改人
		User onlineUser = (User)session.getAttribute("user");
		if(onlineUser != null){
			provider.setModifyby(onlineUser.getId());
		}
		providerService.proUpdate(provider);
		
		return "redirect:providerlist";
	}
	
	/**
	 * 跳转到供应商更新页面
	 * @return
	 */
	@GetMapping("providermodify")
	public String providermodify(){
		return "providermodify";
	}
	
	/**
	 * 跳转到供应商查看页面
	 * @return
	 */
	@GetMapping("providerview")
	public String providerview(){
		return "providerview";
	}
	
	/**
	 * 跳转到供应商增加页面
	 * @return
	 */
	@GetMapping("provideradd")
	public String provideradd(){
		return "provideradd";
	}
	
	/**
	 * 供应商删除操作
	 * @return
	 */
	@RequestMapping("providerdel")
	public String userdel(@RequestParam("id") Long id){
		providerService.proDelect(id);
		return "redirect:providerlist";
	}
	
	/**
	 * 增加供应商信息
	 * @return
	 */
	@PostMapping("add")
	public String useradd(Provider provider,Map<String,Object> map){
	
		provider.setCreationdate(new Date());		
		//修改人
		User onlineUser = (User)session.getAttribute("user");
		if(onlineUser != null){
			provider.setCreatedby(onlineUser.getId());
		}
		providerService.proAdd(provider);
		return "redirect:providerlist";
	}
		
}

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

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

相关文章

开源了,免费使用GPT4(Windows/Linux/Mac 一键启动脚本)

开源了&#xff0c;免费使用GPT4&#xff08;Windows一键启动脚本&#xff09; 大家好&#xff0c;我打算每日花1小时来写一篇文章&#xff0c;这一小时包括文章主题思考和实现&#xff0c;连续日更几天&#xff0c;看看能不能被官方推荐。&#xff08;帮我点点赞哦&#xff5…

im6ull学习总结(三-4)freetype显示单个字体

矢量字体引入 使用点阵字库显示英文字母、汉字时&#xff0c;大小固定&#xff0c;如果放大缩小则会模糊甚至有锯齿出现&#xff0c;为了解决这个问题&#xff0c;引用矢量字体。 矢量字体形成分三步&#xff1a; 第1步 确定关键点&#xff0c; 第2步 使用数学曲线&#xff08…

Springboot的配置文件详解:从入门到精通,解读配置文件的奇妙世界

目录 1、前言 2、介绍 2.1 Springboot配置文件的作用 2.2 Springboot支持的配置文件类型 2.3 Springboot配置文件的加载顺序 3、YAML配置文件 3.1 YAML基本语法介绍 3.2 YAML中的基本数据类型 3.3 YAML中的复合数据类型 3.4 YAML中的配置属性 3.5 YAML中的多环境配置…

Apache ActiveMQ RCE CNVD-2023-69477 CVE-2023-46604

漏洞简介 Apache ActiveMQ官方发布新版本&#xff0c;修复了一个远程代码执行漏洞&#xff0c;攻击者可构造恶意请求通过Apache ActiveMQ的61616端口发送恶意数据导致远程代码执行&#xff0c;从而完全控制Apache ActiveMQ服务器。 影响版本 Apache ActiveMQ 5.18.0 before …

【从零开始学习微服务 | 第一篇】什么是微服务

目录 前言&#xff1a; 架构风格&#xff1a; 单体架构&#xff1a; 分布式架构&#xff1a; 微服务&#xff1a; 总结&#xff1a; 前言&#xff1a; 在当今快速发展的软件开发领域&#xff0c;构建大型应用程序已经成为一项巨大的挑战。传统的单体应用架构往往难以满足…

蓝桥杯练习题(三)

&#x1f4d1;前言 本文主要是【算法】——蓝桥杯练习题&#xff08;三&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 …

【Scala】——面向对象

1 Scala 包 1.1 包风格 Scala 有两种包的管理风格。 第一种 Java 的包管理风格相同&#xff0c;每个源文件一个包&#xff08;包 名和源文件所在路径不要求必须一致&#xff09;&#xff0c;包名用“.”进行分隔以表示包的层级关系&#xff0c;如 com.atguigu.scala。另一种风…

Laravel 使用rdkafka_laravel详细教程(实操避坑)

一、选择rdkafka 首先要看版本兼容问题&#xff0c;我的是Laravel5.6&#xff0c;PHP是7.3.13&#xff0c;所以需要下载兼容此的rdkafka&#xff0c;去 Packagist 搜索 kafka &#xff0c;我用的是 Packagist选择里面0.10.5版本&#xff0c; 二、安装rdkafka 在 Laravel 项目…

P4学习(一) 环境搭建

系列文章目录 第一章 P4学习入门之虚拟机环境搭建 文章目录 系列文章目录前言一、P4是什么&#xff1f;二、搭建步骤1.下载虚拟机镜像2.虚拟机管理软件载入镜像2.1 找到你镜像的所在位置2.2 打开VMware Workstation2.3 载入镜像 3.检验环境是否配置成功 P4 的真机环境搭建 前言…

计算机基础面试题 |21.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

OCP NVME SSD规范解读-6.标准日志要求-1

4.8 Log Page Requirements章节在NVMe规范中主要涵盖了设备应支持的日志页面&#xff08;Log Pages&#xff09;的要求。日志页面是存储控制器用于报告内部状态、性能统计和其他关键信息的结构化数据区域&#xff0c;它们对系统管理和故障诊断至关重要。 本文&#xff0c;我们…

【LeetCode】组合两个表(mysql)

题目 编写解决方案&#xff0c;报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中&#xff0c;则报告为 null 。 以 任意顺序 返回结果表。 结果格式如下所示。 答 select firstName ,lastName,city,state from Person left join Address …

【JaveWeb教程】(17) MySQL数据库开发之 MySQL简介、安装、数据类型、SQL通用语法 详细代码示例讲解

目录 前言1. MySQL概述1.1 安装1.1.1 版本1.1.2 安装1.1.3 连接1.1.4 企业使用方式(了解) 1.2 数据模型1.3 SQL简介1.3.1 SQL通用语法1.3.2 分类 前言 在我们讲解SpringBootWeb基础知识(请求响应案例)的时候&#xff0c;我们讲到在web开发中&#xff0c;为了应用程序职责单一&…

基于深度学习的老照片修复系统

技术栈 深度学习 pytorch tensorflow python 卷积神经 神经网络 照片修复 vue 老照片修复 扫描褪色 残损照片或胶片 调整暗调/高光以改善面效果 修正曝光斑痕 背景&#xff1a; 随着时间的流逝&#xff0c;许多老照片可能会褪色、损坏或曝光不当。这些老照片记录了宝贵的回忆…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-3Phase Portrait相图,相轨迹

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-3Phase Portrait相图&#xff0c;相轨迹 1. 1-D2. 2-D3. General Form4. Summary 1. 1-D 2. 2-D 3. General Form 4. Summary

牛刀小试 - C++ 实现2048(可存档)

参考文档 借助了这位大佬的开发思路&#xff0c; 开发过程中学到了很多 C语言实现《2048游戏》 技术点&#xff1a; system调整控制台大小的问题 unsigned and 符号位 C对齐输出&#xff08;左对齐和右对齐&#xff09; C goto语句详解 完整代码 /********************…

报错解决方法——http404(Spring MVC)

一.检查静态资源是否加载成功 成功的标志就是在项目跑起来之后再target文件夹中的classes文件夹中可以找到自己写的配置文件。 1.查看resources文件夹是否被识别为资源文件夹 如图所示&#xff0c;文件夹图标右下角有三条杠代表被识别为资源文件 2.在pox.xml文件中插入如下…

打造VR数字乡村文旅新品牌,VR全景技术助力乡村振兴

新年伊始&#xff0c;各地乡村特色产业都在蓬勃发展&#xff0c;让冬日里的乡村重新焕发了新的活力。并且在这个冬季&#xff0c;各地还依托生态资源优势&#xff0c;打造智慧乡村文旅新品牌&#xff0c;激活乡村消费活力&#xff0c;例如有些乡村利用空心村&#xff0c;打造多…

Apache Doris 入门 10 问

基于 Apache Doris 在读写流程、副本一致性机制、 存储机制、高可用机制等方面的常见疑问点进行梳理&#xff0c;并以问答形式进行解答。在开始之前&#xff0c;我们先对本文相关的名词进行解释&#xff1a; FE&#xff1a;Frontend&#xff0c;即 Doris 的前端节点。主要负责接…

KEAZ128中MSCAN的同步时钟初始化失败已解决

文章目录 运行环境&#xff1a;MSCAN初始化成功代码初始化流程图初始化失败分析初始化异常原因 运行环境&#xff1a; MSCAN初始化代码(采用24MHz总线时钟当时不行&#xff0c;于是直接采用了外部晶振时钟16MHz) MSCAN初始化成功代码 void CAN_Init(uint_8 mode,uint_8 open…