| | |
| | | package com.ycl.jxkg.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.ycl.jxkg.domain.entity.ClassesUser; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.form.EditClassesUserForm; |
| | | import com.ycl.jxkg.domain.vo.StudentVO; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.mapper.ClassesUserMapper; |
| | | import com.ycl.jxkg.mapper.UserMapper; |
| | | import com.ycl.jxkg.service.AuthenticationService; |
| | | import com.ycl.jxkg.service.ClassesUserService; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | import lombok.RequiredArgsConstructor; |
| | | import com.ycl.jxkg.utils.PageUtil; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.Assert; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.text.DateFormat; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | public class ClassesUserServiceImpl extends ServiceImpl<ClassesUserMapper, ClassesUser> implements ClassesUserService { |
| | | |
| | | private final ClassesUserMapper classesUserMapper; |
| | | private final AuthenticationService authenticationService; |
| | | private final UserMapper userMapper; |
| | | |
| | | private final static String DEFAULT_PASSWORD = "202406"; |
| | | |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result add(ClassesUserForm form) { |
| | | ClassesUser entity = ClassesUserForm.getEntityByForm(form, null); |
| | | baseMapper.insert(entity); |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result add(EditClassesUserForm form) { |
| | | Long count = new LambdaQueryChainWrapper<>(userMapper) |
| | | .eq(User::getUserName, form.getUserName()) |
| | | .count(); |
| | | if (count > 0) { |
| | | throw new RuntimeException("该登录账号已被使用"); |
| | | } |
| | | User user = new User(); |
| | | user.setUserName(form.getUserName()); |
| | | String password = StringUtils.hasText(form.getPassword()) ? form.getPassword() : DEFAULT_PASSWORD; |
| | | user.setPassword(authenticationService.pwdEncode(password)); |
| | | user.setStatus(UserStatusEnum.Enable.getCode()); |
| | | user.setRole(RoleEnum.STUDENT.getCode()); |
| | | user.setAge(form.getAge()); |
| | | user.setPhone(form.getPhone()); |
| | | user.setRealName(form.getRealName()); |
| | | user.setSex(form.getSex()); |
| | | DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd"); |
| | | try { |
| | | user.setBirthDay(fmt.parse(form.getBirthDay())); |
| | | } catch (ParseException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | user.setLastUpdatePasswordTime(new Date()); |
| | | userMapper.insert(user); |
| | | |
| | | ClassesUser classesUser = new ClassesUser(); |
| | | classesUser.setClassesId(form.getClassesId()); |
| | | classesUser.setUserId(user.getId()); |
| | | classesUser.setTeacher(Boolean.FALSE); |
| | | baseMapper.insert(classesUser); |
| | | return Result.ok("添加成功"); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result edit(EditClassesUserForm form) { |
| | | ClassesUser classesUser = baseMapper.selectById(form.getId()); |
| | | if (Objects.isNull(classesUser)) { |
| | | throw new RuntimeException("学员数据不存在"); |
| | | } |
| | | Long count = new LambdaQueryChainWrapper<>(userMapper) |
| | | .eq(User::getUserName, form.getUserName()) |
| | | .ne(User::getId, classesUser.getUserId()) |
| | | .count(); |
| | | if (count > 0) { |
| | | throw new RuntimeException("该登录账号已被使用"); |
| | | } |
| | | User user = userMapper.selectById(classesUser.getUserId()); |
| | | if (Objects.isNull(user)) { |
| | | throw new RuntimeException("该学生账号不存在或被删除"); |
| | | } |
| | | BeanUtils.copyProperties(form, classesUser); |
| | | baseMapper.updateById(classesUser); |
| | | |
| | | // BeanUtils.copyProperties(classesUser, user); |
| | | // userMapper.updateById(user); |
| | | user.setUserName(form.getUserName()); |
| | | user.setPassword(form.getPassword()); |
| | | user.setPhone(form.getPhone()); |
| | | user.setRealName(form.getRealName()); |
| | | user.setSex(form.getSex()); |
| | | user.setAge(form.getAge()); |
| | | DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd"); |
| | | try { |
| | | user.setBirthDay(fmt.parse(form.getBirthDay())); |
| | | } catch (ParseException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | userMapper.updateById(user); |
| | | return Result.ok("修改成功"); |
| | | } |
| | | |
| | | @Override |
| | | public List<StudentVO> getTeacherListByClassesId(Integer id) { |
| | | return baseMapper.getTeacherListByClassesId(id); |
| | | } |
| | | |
| | | /** |
| | | * 根据用户id获取用户班级信息 |
| | | * |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Integer> getByUserId(Integer userId) { |
| | | return classesUserMapper.getClassesByUserId(userId); |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result update(ClassesUserForm form) { |
| | | ClassesUser entity = baseMapper.selectById(form.getId()); |
| | | |
| | | // 为空抛IllegalArgumentException,做全局异常处理 |
| | | Assert.notNull(entity, "记录不存在"); |
| | | BeanUtils.copyProperties(form, entity); |
| | | baseMapper.updateById(entity); |
| | | // 先删除之前的 |
| | | new LambdaUpdateChainWrapper<>(baseMapper) |
| | | .eq(ClassesUser::getClassesId, form.getId()) |
| | | .eq(ClassesUser::getTeacher, Boolean.FALSE) |
| | | .remove(); |
| | | // 再新增 |
| | | List<ClassesUser> classesUserList = form.getStudentList().stream().map(item -> { |
| | | ClassesUser classesUser = new ClassesUser(); |
| | | classesUser.setClassesId(form.getId()); |
| | | classesUser.setUserId(item); |
| | | classesUser.setTeacher(Boolean.FALSE); |
| | | return classesUser; |
| | | }).collect(Collectors.toList()); |
| | | this.saveBatch(classesUserList); |
| | | return Result.ok("修改成功"); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据id查找 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 列表 |
| | | * |
| | | * @return |
| | | */ |
| | | @Override |