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

news2024/11/15 21:50:13

博主介绍: ✌至今服务客户已经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();
    }


}

三、系统展示

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关文章

牛客网--------------小红统计区间(easy)

题目描述&#xff1a; 本题为easy版本&#xff0c;和hard版本的唯一区别是aia_iai​保证是正整数&#xff01; 小红拿到了一个数组&#xff0c;她想知道&#xff0c;有多少非空区间满足区间所有元素之和不小于kkk&#xff1f; 输入描述: 输出描述: 输出一个整数表示满足条件的非…

Camunda流程引擎数据库架构

&#x1f496;专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据&#xff0c;完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧&#x1f618; &#x1f496;数据库架构…

WINDOWS搭建NFS服务器

下载并安装 Networking Software for Windows 启动配置 找到安装目录&#xff08;如C:\Program Files\nfsd&#xff09;&#xff0c;双击nfsctl.exe&#xff0c;菜单Edit->Preferences 启动后&#xff1a; 配置Export Exports->Edit exports file 其他的几句我都删除…

[Linux] 网络编程套接字

目录 预备知识 网络字节序 网络字节序和主机字节序转换的库函数 socket编程接口 socket常见API sockaddr结构 套接字的种类 预备知识 1.在IP数据包头部中&#xff0c;有两个IP地址&#xff0c;分别叫做源IP地址和目的IP地址。 2.端口号&#xff1a;是传输层协议的内容…

速过计算机二级python——第八讲:基本编程

第八讲:基本编程 基本编程题【15 分】简单应用题【25 分】综合应用题【20 分】**问题一**【5分】问题二【5 分】问题二【10 分】小结基本编程题【15 分】 考生文件夹下存在一个文件 PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:【5 分】键盘输入正整数 n,按要…

EMNLP 2023精选:Text-to-SQL任务的前沿进展(上篇)——正会论文解读

导语 本文记录了今年的自然语言处理国际顶级会议EMNLP 2023中接收的所有与Text-to-SQL相关&#xff08;通过搜索标题关键词查找得到&#xff0c;可能不全&#xff09;的论文&#xff0c;共计12篇&#xff0c;包含5篇正会论文和7篇Findings论文&#xff0c;以下是对这些论文的略…

国图公考:公务员面试资格复审需要准备什么?

参加国考面试的考生在资格审核阶段需要准备以下材料&#xff1a; 1、本人身份证、学生证或工作证复印件。 2、公共科目笔试准考证复印件。 3、考试报名登记表。 4、本(专)科、研究生各阶段学历、学位证书(应届毕业生没有可以暂时不提供)。 5、报名资料上填写的各类证书材料…

Debezium发布历史103

原文地址&#xff1a; https://debezium.io/blog/2021/03/18/understanding-non-key-joins-with-quarkus-extension-for-kafka-streams/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 了解 Kafka Streams 的 Q…

文心一言用户规模破亿 /微软宣布:支付费用延长旧版Windows 10使用寿命|魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件&#x1f525;&#xff0c;更新AIGC的最新动态&#xff0c;生成相应的魔法简报&#xff0c;节省阅读时间&#x1f47b; &#x1f525;资讯预览 百度大模型重要突破&#xff0c;文心一言用户规模破亿&#xff0c;飞桨开发者…

LeetCode、198. 打家劫舍【中等,一维线性DP】

文章目录 前言LeetCode、198. 打家劫舍【中等&#xff0c;一维线性DP】题目及分类思路线性DP&#xff08;一维&#xff09; 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注…

Netty源码 之 bind绑定流程

1.Netty框架总览 Netty是一个基于NIO异步通信框架 Netty框架是由许多组件&#xff0c;优化的数据结构所构建成。 正是通过灵活的组件构建&#xff0c;优化后的数据结构&#xff0c;进而才能保证Netty框架面对高并发场景具有一定的能力 1.1 Netty相关组件 Netty重要的组件有…

SpringBoot中使用Spring自带线程池ThreadPoolTaskExecutor与Java8CompletableFuture实现异步任务示例

场景 关于线程池的使用&#xff1a; Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)&#xff1a; Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)_executorservice executorservice executors.newfix-CSDN博客 Java中创建线程的方式…

Unity_ShaderGraph节点问题

Unity_ShaderGraph节点问题 Unity版本&#xff1a;Unity2023.1.19 为什么在Unity2023.1.19的Shader Graph中找不见PBR Master节点&#xff1f; 以下这个PBR Maste从何而来&#xff1f;

Arthas使用教程—— 阿里开源线上监控诊断产品

文章目录 1 简介2背景3 图形界面工具 arthas 阿里开源3.1 &#xff1a;启动 arthas3.2 help :查看arthas所有命令3.3 查看 dashboard3.4 thread 列出当前进程所有线程占用CPU和内存情况3.5 jvm 查看该进程的各项参数 &#xff08;类比 jinfo&#xff09;3.6 通过 jad 来反编译 …

【Chrono Engine学习总结】1-安装配置与程序运行

本文仅用于个人安装记录。 官方安装教程 https://api.projectchrono.org/8.0.0/tutorial_install_chrono.html Windows下安装 windows下安装就按照教程好了。采用cmake-gui进行配置&#xff0c;建议首次安装只安装核心模块。然后依此configure下irrlicht&#xff0c;sensor…

JVM 性能调优 - 参数调优(3)

查看 JVM 内存的占用情况 编写代码 package com.test;public class PrintMemoryDemo {public static void main(String[] args) {// 堆内存总量long totalMemory Runtime.getRuntime().totalMemory();// jvm 试图使用的最大堆内存long maxMemory Runtime.getRuntime().maxM…

国内游戏服务器价格表

游戏服务器租用多少钱一年&#xff1f;1个月游戏服务器费用多少&#xff1f;阿里云游戏服务器26元1个月、腾讯云游戏服务器32元&#xff0c;游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选&#xff0c;可以选择轻量应用服务器和云服务器&#xff0c;阿腾云atengyu…

PHP客服系统-vue客服聊天系统

PHP-Vue客服聊天系统是一款高效、灵活的客户服务解决方案&#xff0c;基于ThinkPHP6、Vue3和Workerman(Gateworker)框架开发&#xff0c;专为单商户场景打造。 系统亮点&#xff1a; 分布式部署支持&#xff0c;轻松应对高并发场景&#xff1b;本地消息存储功能&#xff0c;确…

Python 数据分析(PYDA)第三版(四)

原文&#xff1a;wesmckinney.com/book/ 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 八、数据整理&#xff1a;连接、合并和重塑 原文&#xff1a;wesmckinney.com/book/data-wrangling 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 此开放访问网络版本的…

STM32F1 - 点灯-寄存器模式

点灯 实验概述&#xff1a;Step1> 建立工程Step2> 宏定义 - 寄存器地址 实验概述&#xff1a; 用配置寄存器的方式&#xff0c;开关一个LED灯&#xff0c; 只用标准库中提供的启动文件&#xff0c; Step1> 建立工程 出现错误&#xff1a;导入文件类型错误 keil5编译中…