文章目录
一、项目演示
项目演示地址: 视频地址
二、项目介绍
项目描述:这是一个基于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);
}