From c2dc62c3d40be033cdb65fa54473f7f355e67e88 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 06 六月 2024 15:52:02 +0800 Subject: [PATCH] 班级学员新增、修改 --- src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java | 94 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 85 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java index 639af0f..c13dc99 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java @@ -1,8 +1,16 @@ 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.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; @@ -13,9 +21,12 @@ 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.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -29,37 +40,98 @@ 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.getAccount()) + .count(); + if (count > 0) { + throw new RuntimeException("璇ョ櫥褰曡处鍙峰凡琚娇鐢�"); + } + User user = new User(); + user.setUserName(form.getPhone()); + 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()); + userMapper.insert(user); + + ClassesUser classesUser = new ClassesUser(); + classesUser.setClassesId(form.getClassesId()); + classesUser.setUserId(user.getId()); + 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.getAccount()) + .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); + return Result.ok("淇敼鎴愬姛"); } /** * 淇敼 + * * @param form * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result update(ClassesUserForm form) { - ClassesUser entity = baseMapper.selectById(form.getId()); - - // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 - Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); - BeanUtils.copyProperties(form, entity); - baseMapper.updateById(entity); + // 鍏堝垹闄や箣鍓嶇殑 + new LambdaUpdateChainWrapper<>(baseMapper) + .eq(ClassesUser::getClassesId, form.getId()) + .remove(); + // 鍐嶆柊澧� + List<ClassesUser> classesUserList = form.getStudentList().stream().map(item -> { + ClassesUser classesUser = new ClassesUser(); + classesUser.setClassesId(form.getId()); + classesUser.setUserId(item); + return classesUser; + }).collect(Collectors.toList()); + this.saveBatch(classesUserList); return Result.ok("淇敼鎴愬姛"); } /** * 鎵归噺鍒犻櫎 + * * @param ids * @return */ @@ -71,6 +143,7 @@ /** * id鍒犻櫎 + * * @param id * @return */ @@ -82,6 +155,7 @@ /** * 鍒嗛〉鏌ヨ + * * @param query * @return */ @@ -94,6 +168,7 @@ /** * 鏍规嵁id鏌ユ壘 + * * @param id * @return */ @@ -106,6 +181,7 @@ /** * 鍒楄〃 + * * @return */ @Override -- Gitblit v1.8.0