package com.zjgm.serviceedu.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zjgm.common.exception.AuthException;
import com.zjgm.common.utils.RespBean;
import com.zjgm.serviceedu.entity.EduUser;
import com.zjgm.serviceedu.entity.vo.UserVo;
import com.zjgm.serviceedu.service.EduUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
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 java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
/**
* <p>
* 前端控制器
* </p>
*
* @author luke
* @since 2024-05-20
*/
@RestController
@RequestMapping("/serviceedu/edu-user")
@Api(tags = "用户模块")
public class EduUserController {
// 取出文件上传地址
@Value("${file.path}")
private String uploadPath;
// 头像文件类型(图片)
public static final List<String> AVATAR_TYPES = new ArrayList<String>();
static {
AVATAR_TYPES.add("image/jpeg");
AVATAR_TYPES.add("image/png");
AVATAR_TYPES.add("image/gif");
}
@Autowired
private EduUserService eduUserService;
@ApiOperation("查询所有用户数据")
// 解决跨域的第一种方式
// @CrossOrigin
@GetMapping("get-all-list")
public RespBean findAllList(){
List<EduUser> data = eduUserService.list(null);
return RespBean.success().data("data",data).msg("查询成功");
}
@ApiOperation("上传头像")
@PostMapping("upload-avatar")
public RespBean uploadAvatar(MultipartFile file) {
// 1、判断上传的文件是否为空
if(file.isEmpty()) {
throw new AuthException("上传头像不能为空");
}
// 2、判断上传文件的大小是否超出限制(最大10MB)
if(file.getSize() > 10 * 1024 * 1024) {
throw new AuthException("文件上传大小不能超出10MB");
}
// 3、判断文件类型是否符合要求(png\jpg\gif)
if(!AVATAR_TYPES.contains(file.getContentType())) {
throw new AuthException("上传头像类型必须是png|jpg|gif");
}
// 4、保存图片到后台服务器的images目录中
// 4.1 定义上传文件地址
File dir = new File(uploadPath);
if(!dir.exists()) { // 上传文件地址是否存在
dir.mkdirs(); // 不存在则自动创建
}
// 4.2 随机生成文名称 (避免保存图片名称冲突)
String randomFileName = UUID.randomUUID().toString();
// 4.3 取出传递文件的后缀名
// 获取整个传递过来的文件名 test.png
String fileName = file.getOriginalFilename();
// 取出 . 的索引值
int index = fileName.lastIndexOf(".");
// 截取字符串 .png
String suffix = fileName.substring(index);
// 4.4 拼接随机名称 + 取出传递文件的后缀名;
String overName = randomFileName + suffix;
// 4.5 保存在服务器地址
File dest = new File(dir, overName);
try {
// 执行文件保存
file.transferTo(dest);
} catch (IOException e) {
throw new AuthException(e.getMessage());
}
// 5、返回头像地址给前端,保存、更新时填充到数据库
// 拼接地址
String avatar = "/images/" + overName;
// 返回头像地址给前端
return RespBean.success().data("url", avatar).msg("上传头像成功");
}
@ApiOperation("添加用户")
@PostMapping("add-user")
public RespBean addUser(EduUser eduUser){
boolean result = eduUserService.saveUser(eduUser);
if(!result){
throw new AuthException("添加用户失败,请连系管理员");
}
return RespBean.success().msg("添加用户成功");
}
@ApiOperation("修改用户")
@PutMapping("update-user")
public RespBean updateUser(EduUser eduUser){
boolean result = eduUserService.updateUserById(eduUser);
if(!result){
throw new AuthException("修改用户失败,请连系管理员");
}
return RespBean.success().msg("修改用户成功");
}
@ApiOperation("修改查询指定用户")
@GetMapping("get-by-id/{id}")
public RespBean getById(@PathVariable("id") Long id){
EduUser eduUser = eduUserService.searchById(id);
if(eduUser == null){
throw new AuthException("没有找到该用户数据");
}
return RespBean.success().data("data", eduUser).msg("查询用户数据成功");
}
@ApiOperation("删除用户")
@DeleteMapping("del-user/{id}")
public RespBean delUser(@PathVariable("id") Long id) {
boolean result = eduUserService.removeById(id);
if(!result) {
throw new AuthException("删除用户失败,请联系管理员!");
}
return RespBean.success().msg("删除用户数据成功");
}
@ApiOperation("批量删除用户")
@DeleteMapping("del-more-user")
public RespBean delMoreUser(String[] ids) {
boolean result = eduUserService.removeByIds(Arrays.asList(ids));
if(!result) {
throw new AuthException("删除用户失败,请联系管理员!");
}
return RespBean.success().msg("删除用户数据成功");
}
@ApiOperation("分页条件查询")
@GetMapping("get-page-batchs")
public RespBean getPageBatchs(UserVo userVo) {
// 创建分页对象
Page<EduUser> page = new Page<>(userVo.getPage(), userVo.getSize());
// 创建QueryWrapper查询条件对象
QueryWrapper<EduUser> queryWrapper = new QueryWrapper<>();
if(!StringUtils.isEmpty(userVo.getUsername())) {
queryWrapper.like("username", userVo.getUsername());
}
if(!StringUtils.isEmpty(userVo.getNickName())) {
queryWrapper.like("nick_name", userVo.getNickName());
}
if(!StringUtils.isEmpty(userVo.getStartDate())) {
queryWrapper.ge("created_time", userVo.getStartDate());
}
if(!StringUtils.isEmpty(userVo.getEndDate())) {
queryWrapper.le("created_time", userVo.getEndDate());
}
queryWrapper.orderByDesc("id");
// 调用分页查询方法
eduUserService.page(page, queryWrapper);
// 判断异常
if(page == null) {
throw new AuthException("分页条件查询失败,请联系管理员!");
}
// 取出记录数据、总记录数
List<EduUser> list = page.getRecords();
Long total = page.getTotal();
// 返回数据给客户端
return RespBean.success().data("list", list).data("total", total).msg("查询数据成功");
}
@ApiOperation("登录")
@PostMapping("login")
public RespBean login(String username, String password) {
EduUser eduUser = eduUserService.login(username, password);
return RespBean.success().data("userInfo", eduUser).msg("登录成功");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java、Vue、TypeScript、HTML、CSS、JavaScript的Java全栈学习资源分享
共362个文件
java:93个
vue:67个
png:38个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 53 浏览量
2024-10-01
18:10:51
上传
评论
收藏 36.16MB ZIP 举报
温馨提示
本项目为Java全栈开发学习资源集,涵盖Java、Vue、TypeScript、HTML、CSS、JavaScript等多种语言,包含364个文件,具体包括92个Java文件、67个Vue文件、38个PNG图片文件、35个TypeScript文件、26个JSON文件、21个HTML文件、20个XML文件、10个CSS文件、9个JavaScript文件和8个Git忽略文件。资源包旨在为初学者提供全面的学习体验,助力掌握全栈开发技能。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java、Vue、TypeScript、HTML、CSS、JavaScript的Java全栈学习资源分享 (362个子文件)
base.css 2KB
base.css 2KB
base.css 2KB
base.css 2KB
base.css 2KB
main.css 108B
main.css 58B
main.css 58B
main.css 21B
main.css 21B
.env 55B
.env 55B
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 317B
.gitignore 317B
.gitignore 317B
.gitignore 317B
.gitignore 176B
08事件修饰符.html 2KB
12v-for.html 2KB
10简易计算机练习.html 2KB
14key属性.html 2KB
07跑马灯效果.html 2KB
13练习.html 2KB
01初识vue.html 2KB
11v-if、v-show.html 2KB
04在Vue中使用样式.html 2KB
09v-model.html 2KB
京东效果练习.html 1KB
02v-text、v-html.html 1KB
05v-on指令.html 1KB
03v-bind指令.html 1KB
01index.html 855B
index.html 331B
index.html 331B
index.html 331B
index.html 331B
index.html 103B
index.html 79B
favicon.ico 4KB
favicon.ico 4KB
favicon.ico 4KB
favicon.ico 4KB
java.iml 336B
EduUserController.java 7KB
UserMapperTest.java 6KB
EduUserServiceImpl.java 6KB
EduSubjectServiceImpl.java 4KB
EduCourseController.java 4KB
EduTeacherController.java 4KB
EduSubjectController.java 4KB
SubjectExcelListener.java 3KB
EduRoleController.java 3KB
UserController.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
EduChapterServiceImpl.java 3KB
NewsController.java 3KB
EduChapterController.java 2KB
OssService.java 2KB
EduVideoController.java 2KB
HelloController.java 2KB
EduCourse.java 2KB
EduUser.java 2KB
News.java 1KB
Swagger2Config.java 1KB
Swagger2Config.java 1KB
Swagger2Config.java 1KB
SwaggerController.java 1KB
WebMvcHandler.java 1KB
EduVideo.java 1KB
EduTeacher.java 1KB
RespBean.java 1KB
MybatisPlusConfig.java 1KB
MybatisPlusConfig.java 1KB
BaseEntity.java 1KB
GlobalExceptionAdvice.java 1KB
EduSubject.java 1KB
EduChapter.java 1KB
CorsConfig.java 1KB
EduRole.java 1KB
MetaHandler.java 1KB
UserController.java 1008B
EduSubjectService.java 1007B
UserMapperTest.java 998B
CourseVo.java 983B
OssController.java 943B
ReadOssProperties.java 908B
RespBean.java 882B
User.java 878B
UserServiceTest.java 869B
MetaHandler.java 868B
EduUserService.java 821B
UserService.java 754B
GlobalExceptionHandler.java 745B
User.java 738B
EduApplication.java 715B
UserVo.java 651B
共 362 条
- 1
- 2
- 3
- 4
资源评论
lly202406
- 粉丝: 2873
- 资源: 5461
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java的语音识别系统设计源码
- 基于Java和HTML的yang_home766个人主页设计源码
- 基于Java与前端技术的全国实时疫情信息网站设计源码
- 基于鸿蒙系统的HarmonyHttpClient设计源码,纯Java实现类似OkHttp的HttpNet框架与优雅的Retrofit注解解析
- 基于HTML和JavaScript的廖振宇图书馆前端设计源码
- 基于Java的Android开发工具集合源码
- 通过 DirectX 12 Hook (kiero) 实现通用 ImGui.zip
- 基于Java开发的YY网盘个人网盘设计源码
- 通过 DirectX 11 基于 GPU 调整图像大小.zip
- 通用 DirectX.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功