| | |
| | | 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.enums.RoleEnum; |
| | | 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.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.vo.StudentVO; |
| | | 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.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; |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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) |
| | |
| | | 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()); |
| | |
| | | @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(); |
| | | } |
| | | |
| | |
| | | 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(); |
| | | } |
| | | |
| | | @PostMapping("/edit/password") |
| | | public Result<String> editPassword(@RequestBody UserEditPasswordVO model) { |
| | | User user = userService.getUserById(model.getId()); |
| | | String newPassword = authenticationService.pwdEncode(model.getNewPassword()); |
| | | user.setPassword(newPassword); |
| | | userService.updateById(user); |
| | | return Result.ok(); |
| | | } |
| | | } |