package com.example.demo.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.common.Constants;
import com.example.demo.common.Result;
import com.example.demo.dto.UserDTO;
import com.example.demo.dto.UserPasswordDto;
import com.example.demo.entity.User;
import com.example.demo.service.IUserService;
import com.example.demo.utils.TokenUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
IUserService userService;
// 新增修改
@PostMapping
public Result save(@RequestBody User user){
return Result.success(userService.saveUser(user));
}
// @GetMapping
// public Result<?> findPage(@RequestParam Integer pageNum,@RequestParam Integer pageSize,@RequestParam String search){
// Page<User> userPage=userMapper.selectPage(new Page<>(pageNum,pageSize), Wrappers.<User>lambdaQuery().like(User::getAccount,search));
// return Result.success(userPage);
// }
// 查询
@GetMapping
public Result findAll(){
return Result.success(userService.list()) ;
}
//删除
@DeleteMapping("/{id}")
public Result delete(@PathVariable Integer id){
return Result.success(userService.removeById(id));
}
//批量删除
@PostMapping("/del/batch")
public Result deleteBatch(@RequestBody List<Integer> ids){
return Result.success(userService.removeByIds(ids));
}
//分页查询
// @GetMapping("/page")
// public Map<String, Object> findPage(@RequestParam Integer pageNum,
// @RequestParam Integer pageSize,
// @RequestParam(defaultValue = "") String username){
// pageNum=(pageNum-1)*pageSize;
// List<User> data=userMapper.selectPage(pageNum,pageSize,username);
// Map<String, Object> res = new HashMap<>();
// Integer total = userMapper.selectTotal(username);
// res.put("data",data);
// res.put("total",total);
// return res;
// }
//分页查询
//mybatis-plus 方式
@GetMapping("/page")
public Result findPage(@RequestParam Integer pageNum,
@RequestParam Integer pageSize,
@RequestParam(defaultValue = "") String username,
@RequestParam(defaultValue = "") String territory,
@RequestParam(defaultValue = "") String account){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("id");
if(!"".equals(username)){
queryWrapper.like("username",username);
}
if(!"".equals(territory)){
queryWrapper.like("territory",territory);
}
if(!"".equals(account)){
queryWrapper.like("account",account);
}
User currentUser = TokenUtils.getCurrentUser();
System.out.println("获取当前用户信息:"+currentUser.getAccount());
return Result.success(userService.page(new Page<>(pageNum,pageSize),queryWrapper)) ;
}
/**
* 导出接口
*/
@GetMapping("/export")
public void export(HttpServletResponse response) throws Exception{
//从数据库中查询所有的数据
List<User> list=userService.list();
//在内存操作,写到浏览器
ExcelWriter writer= ExcelUtil.getWriter(true);
//自定义表头标题别名
writer.addHeaderAlias("username","用户名");
writer.addHeaderAlias("password","密码");
writer.addHeaderAlias("account","账号名");
writer.addHeaderAlias("territory","负责区域");
writer.addHeaderAlias("assessTime","创建时间");
writer.addHeaderAlias("phone","手机号");
writer.addHeaderAlias("avatarUrl","头像");
//一次性写出list 对象到excel,使用默认样式,强制输出标题
writer.write(list,true);
//设置浏览器响应的格式
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
String fileName= URLEncoder.encode("用户信息","utf-8");
response.setHeader("Content-Disposition","attachment;filename="+fileName+".xlsx");
ServletOutputStream out=response.getOutputStream();
writer.flush(out, true);
writer.close();
IoUtil.close(out);
}
/**
* 导入接口
*/
@PostMapping("/import")
public Result imp(MultipartFile file) throws Exception{
InputStream inputStream=file.getInputStream();
ExcelReader reader=ExcelUtil.getReader(inputStream);
//通过 javaBean 的方式读取Excel 内对象
// List<User> list=reader.readAll(User.class);
//忽略表头中文
List<List<Object>> list = reader.read(1);
List<User> users = CollUtil.newArrayList();
for(List<Object> row:list){
User user=new User();
user.setUsername(row.get(0).toString());
user.setPassword(row.get(1).toString());
user.setAccount(row.get(2).toString());
user.setTerritory(row.get(3).toString());
user.setPhone(row.get(4).toString());
user.setAvatarUrl(row.get(5).toString());
users.add(user);
}
userService.saveBatch(users);
return Result.success(true);
}
/**
* 登录接口
* @return
*/
@PostMapping("/login")
public Result login(@RequestBody UserDTO userDTO) {
String username = userDTO.getUsername();
String password = userDTO.getPassword();
if (StrUtil.isBlank(username) || StrUtil.isBlank(password)) {
return Result.error(Constants.code_400,"参数错误");
}
UserDTO dto = userService.login(userDTO);
return Result.success(dto);
}
/**
*注册接口
*
*/
@PostMapping("/register")
public Result register(@RequestBody UserDTO userDTO) {
String username = userDTO.getUsername();
String password = userDTO.getPassword();
if (StrUtil.isBlank(username) || StrUtil.isBlank(password)) {
return Result.error(Constants.code_400,"参数错误");
}
return Result.success(userService.register(userDTO));
}
/**
*通过用户名查询用户
*
*/
@GetMapping("/username/{username}")
public Result findOne(@PathVariable String username){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//select * from user where username=#{username}
queryWrapper.eq("username",username);
return Result.success(userService.getOne(queryWrapper));
}
/**
* 修改密码
* @param userPasswordDto
* @return
*/
@PostMapping("/password")
public Result password(@RequestBody UserPasswordDto userPasswordDto) {
userService.updatePassword(userPasswordDto);
return Result.success();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本项目是一个基于Java语言开发的安全生产隐患信息管理系统,包含309个文件,主要文件类型包括Java源代码、JavaScript脚本、Vue组件、XML配置文件、图片、JSON配置文件、CSS样式表和Class文件。系统设计旨在帮助企业和相关部门更有效地管理安全生产隐患信息,提高事故预防和处理效率。系统功能包括隐患信息的收集、分类、上报、处理、跟踪和统计分析等,支持多种数据展示和报表生成,为安全生产管理提供全面的支持。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java的安全生产隐患信息管理系统设计源码 (309个子文件)
.babelrc 208B
version.bat 1019B
clean.bat 1015B
build.bat 1015B
run.bat 1011B
.browserslistrc 30B
build 1KB
UserController.class 9KB
Result.class 3KB
CorsConfig.class 2KB
MybatisPlusConfig.class 1KB
DemoApplication.class 801B
UserMapper.class 674B
DemoApplicationTests.class 531B
clean 1KB
mui.css 95KB
mui.min.css 74KB
style.css 19KB
base.css 10KB
base.ui.css 5KB
index.css 4KB
app.37cc5479.css 567B
global.css 316B
.gitignore 231B
.gitignore 231B
index.html 1KB
index.html 1KB
index.html 611B
favicon.ico 4KB
favicon.ico 4KB
favicon.ico 4KB
springboot.iml 16KB
UserController.java 7KB
ReportController.java 7KB
JwtUtil.java 6KB
VerifyUtil.java 6KB
FileController.java 6KB
VerifyCodeController.java 6KB
UserServiceImpl.java 4KB
RandomValidateCode.java 4KB
DetailController.java 4KB
EchartsController.java 3KB
SwaggerConfig.java 3KB
MenuController.java 3KB
RoleServiceImpl.java 2KB
RoleController.java 2KB
RedisClient.java 2KB
CommentController.java 2KB
ResultGenerator.java 2KB
CodeGenerator.java 2KB
JwtInterceptor.java 2KB
InstructionsHelpController.java 2KB
ImportNoticeController.java 2KB
GuidanceController.java 2KB
FeedbackController.java 2KB
TestDriver.java 2KB
ImageController.java 2KB
TokenUtils.java 2KB
LoginServiceImpl.java 2KB
MenuServiceImpl.java 2KB
FastJsonRedisSerializer.java 2KB
SecurityConfig.java 2KB
CorsConfig.java 1KB
UserMapper.java 1KB
RedisConfig.java 1KB
Comment.java 1KB
Report.java 1KB
LoginController.java 1KB
Feedback.java 1KB
ResponseResult.java 1KB
MD5Utils.java 1KB
Menu.java 1KB
InstructionsHelp.java 1KB
UserService.java 1KB
ImportNotice.java 1KB
RestResult.java 1KB
User.java 1KB
InterceptorConfig.java 1014B
Guidance.java 866B
MybatisPlusConfig.java 824B
Role.java 817B
CommentServiceImpl.java 746B
Result.java 723B
WebUtils.java 716B
RoleMenuMapper.java 678B
CommentMapper.java 646B
InstructionsHelpServiceImpl.java 553B
Detail.java 541B
Constants.java 540B
ImageDto.java 528B
ImportNoticeServiceImpl.java 525B
RoleMapper.java 516B
ReportServiceImpl.java 503B
DetailServiceImpl.java 502B
MenuMapper.java 501B
GuidanceServiceImpl.java 497B
FeedbackServiceImpl.java 497B
Files.java 496B
GlobalException.java 495B
IMenuService.java 459B
共 309 条
- 1
- 2
- 3
- 4
资源评论
沐知全栈开发
- 粉丝: 4866
- 资源: 4984
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功