From b005f8a8669cdea0f1738172d7c13da57a1237e2 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期二, 29 十月 2024 17:06:23 +0800 Subject: [PATCH] 增加了重置密码的功能 --- src/main/java/com/ycl/jxkg/controller/admin/UserController.java | 102 +++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 90 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/admin/UserController.java b/src/main/java/com/ycl/jxkg/controller/admin/UserController.java index cb2c5c0..866107f 100644 --- a/src/main/java/com/ycl/jxkg/controller/admin/UserController.java +++ b/src/main/java/com/ycl/jxkg/controller/admin/UserController.java @@ -1,28 +1,35 @@ package com.ycl.jxkg.controller.admin; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.github.pagehelper.PageInfo; import com.ycl.jxkg.base.BaseApiController; import com.ycl.jxkg.base.Result; -import com.ycl.jxkg.domain.other.KeyValue; +import com.ycl.jxkg.base.SystemCode; +import com.ycl.jxkg.context.WebContext; +import com.ycl.jxkg.domain.entity.Classes; +import com.ycl.jxkg.domain.entity.SysConfig; import com.ycl.jxkg.domain.entity.User; import com.ycl.jxkg.domain.entity.UserEventLog; -import com.ycl.jxkg.domain.enums.UserStatusEnum; -import com.ycl.jxkg.service.AuthenticationService; -import com.ycl.jxkg.service.UserEventLogService; -import com.ycl.jxkg.service.UserService; -import com.ycl.jxkg.utils.DateTimeUtil; +import com.ycl.jxkg.domain.other.KeyValue; +import com.ycl.jxkg.domain.vo.StudentVO; import com.ycl.jxkg.domain.vo.admin.user.*; +import com.ycl.jxkg.enums.RoleEnum; +import com.ycl.jxkg.enums.UserStatusEnum; +import com.ycl.jxkg.service.*; +import com.ycl.jxkg.utils.DateTimeUtil; import com.ycl.jxkg.utils.PageInfoHelper; -import com.github.pagehelper.PageInfo; - import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Date; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; @RequiredArgsConstructor @RestController("AdminUserController") @@ -32,14 +39,69 @@ private final UserService userService; private final UserEventLogService userEventLogService; private final AuthenticationService authenticationService; + private final WebContext webContext; + private final ClassesUserService classesUserService; + private final ClassesService classesService; + private final Integer teacher = 2; + private final Integer student = 1; @RequestMapping(value = "/page/list", method = RequestMethod.POST) public Result<PageInfo<UserResponseVO>> pageList(@RequestBody UserPageRequestVO model) { + if(!student.equals(model.getRole())) { + User currentUser = webContext.getCurrentUser(); + if (teacher.equals(currentUser.getRole())) { + return Result.fail(SystemCode.InnerError.getCode(), "鎮ㄦ病鏈夎闂潈闄�"); + } + } PageInfo<User> pageInfo = userService.userPage(model); PageInfo<UserResponseVO> page = PageInfoHelper.copyMap(pageInfo, d -> UserResponseVO.from(d)); + // 鎵惧埌姣忎釜鐢ㄦ埛瀵瑰簲鐨勭彮绾� + List<UserResponseVO> list = page.getList(); + list.stream().peek(item -> { + List<Integer> classesIds = classesUserService.getByUserId(item.getId()); + List<String> classNames = classesIds.stream().map(classesId -> { + Classes classes = classesService.getById(classesId); + return classes.getClassName(); + }).collect(Collectors.toList()); + item.setClassName(classNames); + }).collect(Collectors.toList()); + page.setList(list); return Result.ok(page); } + @RequestMapping(value = "/student/list", method = RequestMethod.GET) + public Result<com.ycl.jxkg.domain.vo.student.user.UserResponseVO> studentList() { + List<User> studentList = new LambdaQueryChainWrapper<>(userService.getBaseMapper()) + .eq(User::getRole, RoleEnum.STUDENT.getCode()) + .orderByDesc(User::getCreateTime) + .list(); + List<StudentVO> studentVOS = studentList.stream().map(item -> { + StudentVO student = new StudentVO(); + BeanUtils.copyProperties(item, student); + return student; + }).collect(Collectors.toList()); + return Result.ok().data(studentVOS); + } + + @RequestMapping(value = "/teacher/list", method = RequestMethod.GET) + public Result<?> teacherList() { + List<User> teacherList = new LambdaQueryChainWrapper<>(userService.getBaseMapper()) + .eq(User::getRole, RoleEnum.TEACHER.getCode()) + .orderByDesc(User::getCreateTime) + .list(); + List<StudentVO> teachers = teacherList.stream().map(item -> { + StudentVO student = new StudentVO(); + BeanUtils.copyProperties(item, student); + return student; + }).collect(Collectors.toList()); + return Result.ok().data(teachers); + } + + @RequestMapping(value = "/classes/students", method = RequestMethod.GET) + public Result<com.ycl.jxkg.domain.vo.student.user.UserResponseVO> classesStudent(@RequestParam Integer classesId) { + List<StudentVO> studentList = userService.classesStudent(classesId); + return Result.ok().data(studentList); + } @RequestMapping(value = "/event/page/list", method = RequestMethod.POST) public Result<PageInfo<UserEventLogVO>> eventPageList(@RequestBody UserEventPageRequestVO model) { @@ -80,11 +142,9 @@ return new Result<>(3, "瀵嗙爜涓嶈兘涓虹┖"); } } - if (StringUtils.isBlank(model.getBirthDay())) { - model.setBirthDay(null); - } User user = new User(); BeanUtils.copyProperties(model, user); + user.setAge(model.getAge()); if (model.getId() == null) { String encodePwd = authenticationService.pwdEncode(model.getPassword()); @@ -130,7 +190,7 @@ @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST) public Result delete(@PathVariable Integer id) { User user = userService.getUserById(id); - userService.updateById(user); + userService.removeById(user.getId()); return Result.ok(); } @@ -141,4 +201,22 @@ return Result.ok(keyValues); } + @GetMapping("importTemplate") + public void importTemplate(HttpServletResponse response) { + userService.importTemplate(response); + } + + @PostMapping("import") + public Result<String> importExcel(MultipartFile file) { + return Result.ok(userService.importExcel(file)); + } + + @PostMapping("/reset/password/{id}") + public Result<String> resetPassword(@PathVariable Integer id) { + User user = userService.getUserById(id); + String encodePwd = authenticationService.pwdEncode(new SysConfig().getPasswordDefault()); + user.setPassword(encodePwd); + userService.updateById(user); + return Result.ok(); + } } -- Gitblit v1.8.0