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/service/impl/ClassesUserServiceImpl.java | 138 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 129 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..909cc65 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,17 @@
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;
@@ -13,9 +22,16 @@
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;
/**
@@ -29,37 +45,137 @@
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());
-
- // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
- 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
*/
@@ -71,6 +187,7 @@
/**
* id鍒犻櫎
+ *
* @param id
* @return
*/
@@ -82,6 +199,7 @@
/**
* 鍒嗛〉鏌ヨ
+ *
* @param query
* @return
*/
@@ -94,6 +212,7 @@
/**
* 鏍规嵁id鏌ユ壘
+ *
* @param id
* @return
*/
@@ -106,6 +225,7 @@
/**
* 鍒楄〃
+ *
* @return
*/
@Override
--
Gitblit v1.8.0