SSM仓库物品管理系统 附带详细运行指导视频

文章目录

一、项目演示

项目演示地址: 视频地址

二、项目介绍

项目描述:这是一个基于SSM框架开发的仓库物品管理系统。首先,这项目代码简洁规范,注释说明详细,易于理解和学习。其次,这项目功能丰富,具有一个仓库物品管理系统该有的所有功能。

项目功能:此项目分为两个角色:普通管理员超级管理员普通管理员超级管理员都有登录、修改个人信息、管理仓库信息、管理物品信息、管理物品分类信息、管理物品出入库信息和查看公告信息等等功能。除此之外,超级管理员还有管理所有用户信息、管理操作日志信息、删除出入库信息和管理公告信息等等功能。

应用技术:SSM + JSP + MySQL + Bootstrap

运行环境:IntelliJ IDEA2019.3.5 + MySQL5.7(项目压缩包中自带) + JDK1.8 + Maven3.6.3(项目压缩包中自带)+ Tomcat8.5(项目压缩包中自带)

三、运行截图













四、主要代码

1.用户登录代码:

java 复制代码
	 /**
     * 登录操作
     * @param userDTO
     * @param request
     * @return
     */
    @Override
    public ResponseDTO<Boolean> login(UserDTO userDTO, HttpServletRequest request) {
        if(userDTO == null) {
            return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR);
        }
        if(CommonUtil.isEmpty(userDTO.getPhone())) {
            return ResponseDTO.errorByMsg(CodeMsg.PHONE_EMPTY);
        }
        if(CommonUtil.isEmpty(userDTO.getPassword())) {
            return ResponseDTO.errorByMsg(CodeMsg.PASSWORD_EMPTY);
        }
        // 判断验证码是否过期
        String correctCaptcha = (String) request.getSession().getAttribute(RuntimeConstant.CAPTCHA);
        if(CommonUtil.isEmpty(correctCaptcha)) {
            return ResponseDTO.errorByMsg(CodeMsg.CAPTCHA_EXPIRED);
        }
        // 比对验证码是否正确
        if(!correctCaptcha.toLowerCase().equals(userDTO.getCaptcha().toLowerCase())) {
            return ResponseDTO.errorByMsg(CodeMsg.CAPTCHA_ERROR);
        }
        UserExample userExample = new UserExample();
        userExample.createCriteria().andPhoneEqualTo(userDTO.getPhone()).andPasswordEqualTo(userDTO.getPassword());
        List<User> userList = userMapper.selectByExample(userExample);
        if(userList.size() != 1) {
            return ResponseDTO.errorByMsg(CodeMsg.PHONE_PASSWORD_ERROR);
        }
        request.getSession().setAttribute(RuntimeConstant.USER, userList.get(0));
        return ResponseDTO.successByMsg(true, "登录成功!");
    }

2.保存物品信息代码:

java 复制代码
/**
 * 保存物品数据
 * @param goodsDTO
 * @return
 */
@Override
public ResponseDTO<Boolean> save(GoodsDTO goodsDTO) {
    if(goodsDTO == null){
        return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR);
    }
    // 进行统一表单验证
    CodeMsg validate = ValidateEntityUtil.validate(goodsDTO);
    if (!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {
        return ResponseDTO.errorByMsg(validate);
    }
    // 判断是添加还是修改
    if(CommonUtil.isEmpty(goodsDTO.getId())) {
        // 添加
        Goods goods = CopyUtil.copy(goodsDTO, Goods.class);
        goods.setId(UuidUtil.getShortUuid());
        // 添加数据库数据
        if(goodsMapper.insertSelective(goods) == 0) {
            return ResponseDTO.errorByMsg(CodeMsg.GOODS_ADD_ERROR);
        }
    } else {
        // 修改
        Goods goods = CopyUtil.copy(goodsDTO, Goods.class);
        // 修改数据库数据
        if(goodsMapper.updateByPrimaryKeySelective(goods) == 0) {
            return ResponseDTO.errorByMsg(CodeMsg.GOODS_EDIT_ERROR);
        }
    }
    return ResponseDTO.success(true);
}

3.删除仓库信息代码:

java 复制代码
 	/**
     * 删除仓库数据
     * @param id
     * @return
     */
    @Override
    public ResponseDTO<Boolean> delete(String id) {
        if(CommonUtil.isEmpty(id)) {
            return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR);
        }
        if(warehouseMapper.deleteByPrimaryKey(id) == 0) {
            return ResponseDTO.errorByMsg(CodeMsg.WAREHOUSE_DELETE_ERROR);
        }
        return ResponseDTO.success(true);
    }
相关推荐
程序员JerrySUN17 分钟前
[特殊字符] 深入理解 Linux 内核进程管理:架构、核心函数与调度机制
java·linux·架构
2302_8097983220 分钟前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
网安INF44 分钟前
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
java·web安全·网络安全·flink·漏洞
一叶知秋哈44 分钟前
Java应用Flink CDC监听MySQL数据变动内容输出到控制台
java·mysql·flink
jackson凌1 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
sclibingqing1 小时前
SpringBoot项目接口集中测试方法及实现
java·spring boot·后端
程序员JerrySUN1 小时前
全面理解 Linux 内核性能问题:分类、实战与调优策略
java·linux·运维·服务器·单片机
糯米导航1 小时前
Java毕业设计:办公自动化系统的设计与实现
java·开发语言·课程设计
糯米导航1 小时前
Java毕业设计:WML信息查询与后端信息发布系统开发
java·开发语言·课程设计
米粉03051 小时前
深入剖析Nginx:从入门到高并发架构实战
java·运维·nginx·架构