一、系統(tǒng)介紹
本系統(tǒng)實現(xiàn)了垃圾回收管理系統(tǒng),管理端實現(xiàn)了管理員登錄、垃圾回收管理、添加需要回收的垃圾、垃圾去向管理、申請需要打包運出的垃圾、系統(tǒng)公告管理、個人信息管理、修改密碼
1.環(huán)境配置
JDK版本:1.8
Mysql:5.7
二、系統(tǒng)展示
1. 管理員登錄
賬號:好貴啊 密碼:123456
2.垃圾回收管理
3.添加需要回收的垃圾
4.垃圾去向管理
5.申請需要打包運出的垃圾
6.系統(tǒng)公告管理
7.個人信息管理
8.修改密碼
三、部分代碼
UserMapper.java
package com.laji.demo.mapper;
import com.laji.demo.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 用戶表 Mapper 接口
* </p>
*/
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
UserController.java
package com.laji.demo.controller;
import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.digest.DigestUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.laji.demo.common.Result;
import com.laji.demo.entity.User;
import com.laji.demo.service.IUserService;
import com.laji.demo.utils.PhoneFormatCheckUtils;
import com.laji.demo.utils.StringConst;
import com.laji.demo.utils.VoUtilsTool;
import com.laji.demo.vo.request.*;
import com.laji.demo.vo.response.ResponseUserListVo;
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* <p>
* 用戶表 前端控制器
* </p>
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private Producer producer;
@Autowired
private IUserService userService;
@GetMapping("/captcha.jpg")
public void captcha(HttpServletRequest request, HttpServletResponse response )
throws IOException {
response.setHeader("Cache-Control", "no-store, no-cache");
response.setContentType("image/jpeg");
//生成文字驗證碼
String text = producer.createText();
System.out.println(text);
//生成圖片驗證碼
BufferedImage image = producer.createImage(text);
HttpSession session = request.getSession();
session.setAttribute(Constants.KAPTCHA_SESSION_KEY,text);
session.setMaxInactiveInterval(60);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(image, "jpg", out);
IOUtils.closeQuietly(out);
}
@RequestMapping("/register")
public Result register(@RequestBody RequestRegisterVo registerVo) throws IOException {
//System.out.println(registerVo);
// String avatarUrl = userService.avatarUpload(registerVo.getAvatarFile());
//用戶數(shù)據(jù)的校驗
if(ObjectUtils.isNotEmpty(userService.queryByUsername(registerVo.getUsername()))){
System.out.println(registerVo.getUsername());
return Result.getFailure().setMsg("用戶名已存在?。?!");
}
if(ObjectUtils.isNotEmpty(userService.queryByTel(registerVo.getTel()))){
return Result.getFailure().setMsg("用戶名已存在?。?!");
}
if(VoUtilsTool.checkObjFieldIsNull(registerVo)){
return Result.getFailure().setMsg("輸入數(shù)據(jù)為空!?。?);
}
if(registerVo.getPassword().trim().toCharArray().length < 8){
return Result.getFailure().setMsg("密碼位數(shù)必須大于8?。?!");
}
if(!PhoneFormatCheckUtils.isPhoneLegal(registerVo.getTel())){
return Result.getFailure().setMsg("手機號格式正確?。?!");
}
//用戶數(shù)據(jù)拷貝
User user = new User();
BeanUtils.copyProperties(registerVo,user);
user.setPassword(DigestUtil.md5Hex(registerVo.getPassword()));
user.setId(IdUtil.simpleUUID());
user.setAvatarUrl("\\goodsImg\\avatar.jpg");
//存入數(shù)據(jù)庫中
if(userService.saveOrUpdate(user)){
return Result.getSuccess().setMsg("注冊成功!!!");
}else{
return Result.getFailure().setMsg("注冊失敗!!!");
}
}
@RequestMapping("/login")
public Result login(HttpServletRequest request, @RequestBody RequestLoginVo loginRequestVo){
//System.out.println(loginRequestVo);
HttpSession session = request.getSession();
String trueCaptcha = (String) session.getAttribute(Constants.KAPTCHA_SESSION_KEY);
if(!trueCaptcha.equalsIgnoreCase(loginRequestVo.getCaptcha())){
return Result.getFailure().setMsg(StringConst.CAPTCHA_ERROR);
}
User user;
if(ObjectUtils.isEmpty(userService.queryByUsername(loginRequestVo.getUsernameOrTel()))){
user = userService.queryByTel(loginRequestVo.getUsernameOrTel());
}else{
user = userService.queryByUsername(loginRequestVo.getUsernameOrTel());
}
if(ObjectUtils.isEmpty(user) || !DigestUtil.md5Hex(loginRequestVo.getPassword()).
equals(user.getPassword())){
return Result.getFailure().setMsg(StringConst.LOGIN_ERROR);
}
Map<String,Object> result = new HashMap<>();
result.put("userId",user.getId());
result.put("userType",user.getType());
return Result.getSuccess().setData(result);
}
@GetMapping("/getUserById/{userId}")
public Result getUserById(@PathVariable String userId){
return Result.getSuccess().setData(userService.getUserById(userId));
}
@DeleteMapping("/deleteByIds")
public Result delete(@RequestBody RequestUserDeleteVo deleteVo){
if(VoUtilsTool.checkObjFieldIsNull(deleteVo)){
return Result.getFailure().setMsg(StringConst.DELETE_SELECT_ERROR);
}
if(userService.removeByIds(deleteVo.getStringIds())){
return Result.getSuccess().setMsg(StringConst.DELETE_SUCCESS);
}else{
return Result.getFailure().setMsg(StringConst.DELETE_ERROR);
}
}
@PostMapping("/list/{id}")
public Result list(@RequestBody RequestUserListVo userListVo, @PathVariable String id){
int type = userService.getById(id).getType();
if(type== 0 || (type == 1 && userListVo.getType() == 1)){
return Result.getFailure().setMsg("權限不足!!");
}
IPage<ResponseUserListVo> listVoIPage = userService.userList(userListVo,type);
return Result.getSuccess().setData(listVoIPage);
}
@GetMapping("/updateByType/{userId}")
public Result updateByType(@PathVariable String userId){
if(userService.updateByType(userService.getById(userId))){
return Result.getSuccess().setMsg("操作成功");
}else{
return Result.getFailure().setMsg("操作失敗");
}
}
@PostMapping("/update")
public Result update(@RequestBody RequestUpdateUserVo requestUpdateUserVo){
User user = userService.getById(requestUpdateUserVo.getId());
BeanUtils.copyProperties(requestUpdateUserVo,user);
if(userService.saveOrUpdate(user)){
return Result.getSuccess().setMsg("修改成功");
}else{
return Result.getFailure().setMsg("修改失敗");
}
}
@PostMapping("/changePwd")
public Result changePwd(@RequestBody RequestChangePwdVo requestChangePwdVo){
User user = userService.getById(requestChangePwdVo.getId());
if(!user.getPassword().equals(DigestUtil.md5Hex(requestChangePwdVo.getOldPassword()))){
return Result.getFailure().setMsg("原密碼錯誤");
}
if(requestChangePwdVo.getNewPassword().trim().toCharArray().length < 8){
return Result.getFailure().setMsg("密碼位數(shù)必須大于8!??!");
}
user.setPassword(DigestUtil.md5Hex(requestChangePwdVo.getNewPassword()));
if(userService.saveOrUpdate(user)){
return Result.getSuccess().setMsg("修改成功");
}else{
return Result.getFailure().setMsg("修改失敗");
}
}
/**上傳地址*/
@Value("${file.upload.path}")
private String uploadPath;
/**
* 上傳圖片
* @param file
*/
@RequestMapping("/upload")
public Result upload(@RequestParam(value = "file") MultipartFile file,
@RequestParam(value = "userId") String id) {
// 獲取上傳文件名
String filename = file.getOriginalFilename();
// 定義上傳文件保存路徑
String path = uploadPath+"goodsImg/";
// 新建文件
File filepath = new File(path, filename);
// 判斷路徑是否存在,如果不存在就創(chuàng)建一個
if (!filepath.getParentFile().exists()) {
filepath.getParentFile().mkdirs();
}
try {
file.transferTo(new File(path + File.separator + filename));
} catch (IOException e) {
e.printStackTrace();
}
User user = userService.getById(id);
user.setAvatarUrl("goodsImg/"+filename);
userService.updateById(user);
Map<String,String> img = new HashMap<>();
img.put("src","goodsImg/"+filename);
return Result.getSuccess().setData(img);
}
@GetMapping("/manage/{id}")
public Result manage(@PathVariable String id){
User user = userService.getById(id);
if(user.getType() == 0){
user.setType(1);
}else if(user.getType() == 1){
user.setType(0);
}
userService.updateById(user);
return Result.getSuccess().setMsg("操作成功!??!");
}
@GetMapping("/resetPwd/{id}")
public Result resetPwd(@PathVariable String id){
User user = userService.getById(id);
user.setPassword(DigestUtil.md5Hex("12345678"));
userService.updateById(user);
return Result.getSuccess().setMsg("操作成功?。?!");
}
}
User.java
package com.laji.demo.entity;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 用戶表
* </p>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
/**
* 用戶名
*/
private String username;
/**
* 密碼
*/
private String password;
/**
* 姓名
*/
private String name;
/**
* 性別(0為女,1為男)
*/
private Integer sex;
/**
* 生日
*/
private LocalDate birthday;
/**
* 郵箱
*/
private String email;
/**
* 電話
*/
private String tel;
/**
* 地址
*/
private String address;
/**
* 用戶頭像地址
*/
private String avatarUrl;
/**
* 用戶權限(0為員工,1為管理員,2為高級管理員)
*/
private Integer type;
/**
* 創(chuàng)建時間
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime;
}
四、其他
獲取源碼
點擊以下鏈接獲取源碼。
IDEA+Spring Boot + MyBatis + Layui+Mysql垃圾回收管理系統(tǒng)源碼
IDEA+SpringBoot+mybatis+SSM+layui+Mysql學生就業(yè)信息管理系統(tǒng)源碼
IDEA+springboot+jpa+Layui+Mysql銷售考評系統(tǒng)源碼
IDEA+Spring + Spring MVC + MyBatis+Bootstrap+Mysql酒店管理系統(tǒng)源碼
IDEA+spring boot+mybatis+spring mvc+bootstrap+Mysql停車位管理系統(tǒng)源碼
Java+Swing+Mysql實現(xiàn)學生宿舍管理系統(tǒng)
Java+Swing+Txt實現(xiàn)自助款機系統(tǒng)
Java+Swing+Mysql自助存取款機系統(tǒng)
Java+Swing+mysql5實現(xiàn)學生成績管理系統(tǒng)(帶分頁)
Java+Swing+Mysql實現(xiàn)超市商品管理系統(tǒng)源碼
Java+Swing+Mysql實現(xiàn)通訊錄管理系統(tǒng)源碼文章來源:http://www.zghlxwxcb.cn/news/detail-543238.html
Java+Swing+Mysql實現(xiàn)圖書管理系統(tǒng)源碼文章來源地址http://www.zghlxwxcb.cn/news/detail-543238.html
到了這里,關于IDEA+Spring Boot + MyBatis + Layui+Mysql垃圾回收管理系統(tǒng)源碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!