基于Java超市管理系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000+、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌
🍅 文末获取源码联系 🍅
👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到

Java项目精品实战专区icon-default.png?t=N7T8https://blog.csdn.net/java18343246781/category_12537229.htmlJava各种开发工具资源包网站icon-default.png?t=N7T8http://62.234.13.119:9000/html/visitor/softwareResourceList.html

软件安装+项目部署专区icon-default.png?t=N7T8https://blog.csdn.net/java18343246781/category_12539864.htmlv


系列文章目录

前言

一、运行环境

二、代码示例

三、系统展示


前言

1) 登录首页:输入电话号码与密码进行登录。
2) 销售主页:可快速跳转购物结账、积分兑换、销售记录、兑换记录等页面。
3) 购物结账:选择支付方式、顾客类型、选择好商品输入商品数量后,点击结账。库存实时减少,选错商品支持删除。
4) 销售记录:销售记录可查询所有销售的订单,可查看客户类型、支付方式、支付金额等信息。同时可查看明细与删除。
5) 积分兑换:选择会员账号与商品进行兑换。
6) 积分兑换记录:查询所有积分兑换记录,支持删除功能。
7) 员工管理:可查询所有员工,新建员工支持上传头像和部门绑定、支持详情查看、修改、删除、职务、重置密码等操作。
8) 仓库管理:可维护多个仓库。
9) 出库明细:查看所有出库记录,支持删除功能。商品出库选择商品和数量进行出库。
10) 入库明细:查看所有入库记录,支持删除功能。商品入库选择商品和数量进行入库。
11) 供应商管理:可维护供应商信息。支持新增、删除、修改功能。
12) 库存明细:查看当前库存明细,可查看商品数量和库存占比。
13) 会员管理:可查询会员信息、支持新增、修改、删除、积分兑换等功能。
14) 角色管理:可以自定义系统角色。支持创建、修改、停用、授权等功能。
15) 授权:管理员可以自定义给角色分配菜单权限。
16) 分类管理:维护商品分类,支持新建、修改、停用功能。
17) 商品管理:可查询所有商品信息、支持修改、退还、下架等功能。支持图片上传。
18) 积分商品:积分商品可新增积分商品用于会员积分兑换,支持修改、删除、新建功能。
19) 销售统计:对超市销售的所有商品进行统计。

一、运行环境

1) 运行工具:idea
2) 数据库:mysql
3) 缓存:redis
4) 依赖管理:maven
5) 前端框架:vueCli
6) 前端运行环境:node
7) 后端运行环境:JDK1.8

二、代码示例

代码如下(示例):

import com.rabbiter.market.common.sercurity.annotation.NoRequireLogin;
import com.rabbiter.market.common.util.PathUtils;
import com.rabbiter.market.common.web.response.JsonResult;
import com.rabbiter.market.domain.goods_management.goods.Goods;
import com.rabbiter.market.domain.inventory_management.detail_store_goods.DetailStoreGoods;
import com.rabbiter.market.qo.goods_management.goods.QueryGoods;
import com.rabbiter.market.service.goods_management.goods.IGoodsService;
import com.rabbiter.market.vo.goods.GoodsListVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotNull;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@Validated
@RequestMapping("/goods_management/goods")
public class GoodsController {
    @Autowired
    private IGoodsService goodsService;
    /*查询信息*/
    @PostMapping("/queryPageByQo")
    public JsonResult queryPageByQo(QueryGoods qo) {
        Page<GoodsListVo> page = goodsService.queryPageByQo(qo);
        return JsonResult.success(page);
    }
    /**
     * 上传图片到阿里云oss
     * 返回网络图片地址,uploaded:1:成功 0:失败
     *
     * @param upload
     * @return
     */
    @NoRequireLogin
    @PostMapping("/uploadImg")
    public Map<String, Object> uploadImg(@RequestParam("file") MultipartFile upload) {
        Map<String, Object> map = new HashMap<>();
        if (upload != null && upload.getSize() > 0) {
            String path = "";
            try {
                path = PathUtils.upload(upload);
                map.put("uploaded", 1);  //成功
                map.put("url", path);  //成功
            } catch (Exception e) {
                e.printStackTrace();
                map.put("uploaded", 0);  //失败
                Map<String, Object> errorMap = new HashMap<>();
                errorMap.put("message", e.getMessage());
                map.put("error", errorMap);
            }
        } else {
            map.put("uploaded", 0);  //失败
            Map<String, Object> errorMap = new HashMap<>();
            errorMap.put("message", "上传失败,图片文件异常");
            map.put("error", errorMap);
        }
        return map;
    }
    /*保存*/
    @PostMapping("/save")
    public JsonResult saveGoods(Goods goods, HttpServletRequest request){
        goodsService.saveGoods(goods,(String) request.getHeader("token"));
        return JsonResult.success();
    }
    /*上/下架*/

    @PostMapping("/upOrdown")
    public JsonResult upOrdown(@NotNull(message = "商品编号不能为空") Long gid, String state,HttpServletRequest request){
        goodsService.upOrdown(gid,state,(String) request.getHeader("token"));
        return JsonResult.success();
    }
    @GetMapping("/queryGoodsById")
    public JsonResult queryGoodsById(@NotNull(message = "商品编号不能为空") Long id){
        return JsonResult.success(goodsService.getById(id));
    }

    @PostMapping("/update")
    public JsonResult update(Goods goods, HttpServletRequest request){
        goodsService.updateGoods(goods,(String)request.getHeader("token"));
        return JsonResult.success();
    }

    @GetMapping("/selected_goodsAll")
    public JsonResult selected_goodsAll(){
        List<Map<String,Object>> list=goodsService.selected_goodsAll();
        return JsonResult.success(list);
    }

    @GetMapping("/selected_storeAll")
    public JsonResult selected_storeAll(){
        List<Map<String,Object>> list=goodsService.selected_storeAll();
        return JsonResult.success(list);
    }


    /*退还商品入库*/
    @PostMapping("/returnGoods")
    public JsonResult returnGoods(DetailStoreGoods detailStoreGoods, HttpServletRequest request){
        goodsService.returnGoods(detailStoreGoods,(String) request.getHeader("token"));
        return JsonResult.success();
    }


}

三、系统展示

登录首页:输入电话号码与密码进行登录。

销售主页:可快速跳转购物结账、积分兑换、销售记录、兑换记录等页面。

购物结账:选择支付方式、顾客类型、选择好商品输入商品数量后,点击结账。库存实时减少,选错商品支持删除。

销售记录:销售记录可查询所有销售的订单,可查看客户类型、支付方式、支付金额等信息。同时可查看明细与删除。

积分兑换:选择会员账号与商品进行兑换。

积分兑换记录:查询所有积分兑换记录,支持删除功能。

员工管理:可查询所有员工,新建员工支持上传头像和部门绑定、支持详情查看、修改、删除、职务、重置密码等操作。

仓库管理:可维护多个仓库。

出库明细:查看所有出库记录,支持删除功能。商品出库选择商品和数量进行出库。

入库明细:查看所有入库记录,支持删除功能。商品入库选择商品和数量进行入库。

供应商管理:可维护供应商信息。支持新增、删除、修改功能。

库存明细:查看当前库存明细,可查看商品数量和库存占比。

会员管理:可查询会员信息、支持新增、修改、删除、积分兑换等功能。

角色管理:可以自定义系统角色。支持创建、修改、停用、授权等功能。

授权:管理员可以自定义给角色分配菜单权限。

分类管理:维护商品分类,支持新建、修改、停用功能。

商品管理:可查询所有商品信息、支持修改、退还、下架等功能。支持图片上传。

积分商品:积分商品可新增积分商品用于会员积分兑换,支持修改、删除、新建功能。

销售统计:对超市销售的所有商品进行统计。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++入门学习④——对象的初始化和清理

目录 对象的初始化和清理&#xff1a; why? 如何进行初始化和清理呢&#xff1f; 使用构造函数和析构函数​编辑 构造函数语法: 析构函数语法: 构造函数的分类&#xff1a; 两种分类方式&#xff1a; 三种调用方法&#xff1a; 括号法&#xff08;默认构造函数调用&…

sql非查询知识点(增删改-crud没有r)

1.建库 create database database_name 2.使用该数据库 use database_name 3.建表 3.1普通建表 create table if not exists actor(actor_id smallint(5) not null primary key comment "主键id",first_name varchar(45) not null comment "名字",last…

Python中的while循环,知其然知其所以然

文章目录 while循环结构1.用循环打印1 ~ 100步骤解析2. 1 ~ 100的累加和3.死循环1. 用死循环的方法实现 1 ~ 100累加和 4. 单向循环(1)打印 一行十个小星星*(2)通过打印一个变量的形式,展现一行十个小星星(3)一行十个换色的星星 ★☆★☆★☆★☆★☆(4)用一个循环,打印十行十列…

重写Sylar基于协程的服务器(7、TcpServer HttpServer的设计与实现)

重写Sylar基于协程的服务器&#xff08;7、TcpServer & HttpServer的设计与实现&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务…

『运维备忘录』之 Vim 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是&#xff0c;甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作&#xff0c;持续给大家更新运维工作所需要接触到的知识点&#xff0c;希望大…

杨中科 ASP.NETCORE 高级14 SignalR

1、什么是websocket、SignalR 服务器向客户端发送数据 1、需求&#xff1a;Web聊天;站内沟通。 2、传统HTTP&#xff1a;只能客户端主动发送请求 3、传统方案&#xff1a;长轮询&#xff08;Long Polling&#xff09;。缺点是&#xff1f;&#xff08;1.客户端发送请求后&…

如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏

文章目录 1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 本教程主要介…

1802907-91-0,Methyltetrazine-PEG4-COOH,可以与多种不同的化学基团反应

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Methyltetrazine-PEG4-COOH&#xff0c;Methyltetrazine-PEG4-acid&#xff0c;甲基四嗪-四聚乙二醇-羧基&#xff0c;甲基四嗪-四聚乙二醇-羧酸&#xff0c;甲基四嗪PEG4羧酸&#xff0c;甲基四嗪-PEG4-羧酸 一、基…

基于Java医院管理系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

爱快安装和双宽带叠加

文章目录 一、爱快安装二、爱快使用1. 配置WAN12. 配置WAN23. 配置LAN14. 配置DHCP5. DNS设置6. 多线负载7. 基础设置 三、通过交换机拨号1. 交换机设置2. 配置WAN1 一、爱快安装 &#xff08;1&#xff09;下载爱快路由ISO版本 爱快路由系统下载 &#xff08;2&#xff09;IS…

群晖NAS开启FTP服务结合内网穿透实现公网远程访问本地服务

⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 文章目录 ⛳️ 推荐1. 群晖安装Cpolar2. 创建FTP公网地址3. 开启群晖FTP服务4. 群晖FTP远程连接5. 固定FTP公网地址6. 固定FTP…

请问CTF是什么?请介绍一下关于隐水印的知识特点技术原理应用领域技术挑战

目录 请问CTF是什么&#xff1f; 请介绍一下关于隐水印的知识 特点 技术原理 应用领域 技术挑战 请问CTF是什么&#xff1f; CTF&#xff08;Capture The Flag&#xff0c;夺旗比赛&#xff09;是一种信息安全竞赛&#xff0c;常见于计算机安全领域。这种比赛模拟各种信…

Python中的HTTP代理服务器和客户端的区别与联系

在Python编程中&#xff0c;当我们涉及到网络通信&#xff0c;尤其是HTTP请求时&#xff0c;经常会听到“HTTP代理服务器”和“客户端”这两个词。它们在网络世界中扮演着不同的角色&#xff0c;但又有着紧密的联系。 区别 首先&#xff0c;我们来谈谈它们的区别。 HTTP代理…

Multisim14.0仿真(五十一)74LS42D应用设计

一、74LS42D简介&#xff1a; 74LS42D是4 线 BCD 至 10 线十进制解码器&#xff0c;用在数字电路与单片机控制系统中&#xff0c;以达到通过译码来扩展ip端口的功能。 二、74LS42D逻辑框图&#xff1a; 三、74LS42D功能表&#xff1a; 四、仿真原理图&#xff1a; 五、运行效果…

Rust 本地文档的使用:rustup doc

Rust 是一种系统级编程语言&#xff0c;以其安全性、速度和内存控制能力而闻名。为了方便开发者更好地了解并利用 Rust 标准库和工具链中的功能&#xff0c;Rust 提供了一种内置的文档浏览方式——通过 rustup doc 命令。 安装 rustup 在查阅 Rust 文档之前&#xff0c;确保你…

GCC编译器的使用以及使用Makefile语法进行操控

Makefile 这里使用的Makefile操控编译器 gcc 常见的组成部分 c&#xff1a; gcc 的一个版本&#xff0c;默认语言设置为 C&#xff0c;而且在链接的时候自动包含标准 C 库。这和 g 一样configure&#xff1a; GCC 源代码树根目录中的一个脚本。用于设置配置值和创建 GCC 编…

FPS游戏穿模最强解决方案!开发一款FPS游戏射击游戏真的太简单!

FPS游戏穿模最强解决方案&#xff01;开发一款FPS游戏射击游戏真的太简单&#xff01; 2001年&#xff0c;FPS游戏老大哥《CS》横空出世&#xff0c;迅速在国内外掀起了一波FPS游戏的热潮&#xff0c;随后《CF穿越火线》在国内上线&#xff0c;一举拿下“玩家最喜爱的十大网络…

Java设计模式大全:23种常见的设计模式详解(二)

本系列文章简介&#xff1a; 设计模式是在软件开发过程中&#xff0c;经过实践和总结得到的一套解决特定问题的可复用的模板。它是一种在特定情境中经过验证的经验和技巧的集合&#xff0c;可以帮助开发人员设计出高效、可维护、可扩展和可复用的软件系统。设计模式提供了一种在…

Ubuntu使用Docker部署Nginx并结合内网穿透实现公网远程访问

文章目录 1. 安装Docker2. 使用Docker拉取Nginx镜像3. 创建并启动Nginx容器4. 本地连接测试5. 公网远程访问本地Nginx5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 在开发人员的工作中&#xff0c;公网远程访问内网是其必备的技术需求之一。对于…

鸿蒙内核框架

1 内核概述 内核简介 用户最常见到并与之交互的操作系统界面&#xff0c;其实只是操作系统最外面的一层。操作系统最重要的任务&#xff0c;包括管理硬件设备&#xff0c;分配系统资源等&#xff0c;我们称之为操作系统内在最重要的核心功能。而实现这些核心功能的操作系统模…