派生自 projectDept/qhighschool

EricsHu
2023-11-24 3a27392dc23193ae839526efd779f36589bc91cc
src/main/java/com/qxueyou/scc/teach/student/service/impl/StudentService.java
@@ -1,16 +1,15 @@
package com.qxueyou.scc.teach.student.service.impl;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.RandomUtil;
import com.qxueyou.scc.admin.classes.model.ClsClass;
import com.qxueyou.scc.base.dao.CommonDAO;
import com.qxueyou.scc.exam.model.ExamResultV;
import com.qxueyou.scc.exercise.model.ExerciseCompleteInfo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -32,6 +31,7 @@
import com.qxueyou.scc.user.model.QUser;
import com.qxueyou.scc.user.model.User;
import com.qxueyou.scc.user.service.IUserService;
import org.springframework.util.DigestUtils;
@Service
public class StudentService extends CommonAppService implements IStudentService {
@@ -47,6 +47,9 @@
    @Autowired
    StudentDAO dao;
    @Autowired
    CommonDAO commonDAO;
    @Override
    public Result insertStudent(String classId, String name, String studentNo, boolean sex, String phoneNo, String orgId) {
@@ -126,11 +129,11 @@
    public Result updateStudent(String studentId, String name,String password, String studentNo, boolean sex, String phoneNo) {
        //根据学学员ID,获取用户信息
        StuStudent stu = this.read(StuStudent.class, studentId);
        if (!stu.getStudentNo().equals(studentNo) && dao.exists(studentNo,ClientUtils.getOrgId())) {
            return new Result(false, "学号已存在");
        if(stu.getStudentNo() != null){
            if (!stu.getStudentNo().equals(studentNo) && dao.exists(studentNo,ClientUtils.getOrgId())) {
                return new Result(false, "学号已存在");
            }
        }
        stu.setName(name);
        stu.setSex(sex);
        stu.setStudentNo(studentNo);
@@ -142,8 +145,14 @@
        user.setAccount(studentNo);
        user.setSex(sex);
        user.setMobilePhone(phoneNo);
        if(!StringUtils.isEmpty(password)){
            user.setPassword(password);
        //随机字符串
        String salt= UUID.randomUUID().toString();
        //盐值
        user.setSalt(salt);
        //对密码进行加密处理
        String newPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes());
        if(!StringUtils.isEmpty(newPassword)){
            user.setPassword(newPassword);
        }
        user.setName(name);
        save(user);
@@ -157,7 +166,7 @@
        QStuStudent qStuStudent = QStuStudent.stuStudent;
        return this.getQueryFactory()
                .select(qStuStudent.studentId, qStuStudent.name, qStuStudent.studentNo, qStuStudent.sex,
                        qStuStudent.mobilePhone, qStuStudent.status, qStuStudent.studyDuration, qStuStudent.tenantId, qStuStudent.score,
                        qStuStudent.mobilePhone, qStuStudent.status, qStuStudent.studyDuration, qStuStudent.tenantId, qStuStudent.score, qStuStudent.graduationText,
                        qUser.imgPath)
                .from(qUser, qStuStudent)
                .where(qUser.deleteFlag.isFalse().and(qUser.userId.eq(qStuStudent.userId))
@@ -174,7 +183,21 @@
                    map.put("studyDuration", tuple.get(qStuStudent.studyDuration));
                    map.put("tenantId", tuple.get(qStuStudent.tenantId));
                    map.put("score", tuple.get(qStuStudent.score));
                    map.put("graduationText", tuple.get(qStuStudent.graduationText));
                    map.put("imgPath", tuple.get(qUser.imgPath));
                    map.put("photo", tuple.get(qStuStudent.photo));
                    map.put("passporName", tuple.get(qStuStudent.passporName));
                    map.put("nationality", tuple.get(qStuStudent.nationality));
                    map.put("ancestralHome", tuple.get(qStuStudent.ancestralHome));
                    map.put("birthday", tuple.get(qStuStudent.birthday));
                    map.put("birthplace", tuple.get(qStuStudent.birthplace));
                    map.put("chinaStatus", tuple.get(qStuStudent.chinaStatus));
                    map.put("registeredAddress", tuple.get(qStuStudent.registeredAddress));
                    map.put("homeAddress", tuple.get(qStuStudent.homeAddress));
                    map.put("religiousBelief", tuple.get(qStuStudent.religiousBelief));
                    map.put("email", tuple.get(qStuStudent.email));
                    map.put("workUnit", tuple.get(qStuStudent.workUnit));
                    map.put("graduationDestination", tuple.get(qStuStudent.graduationDestination));
                    return map;
                }).collect(Collectors.toList());
    }
@@ -223,6 +246,7 @@
    public Result doActivateStudent(String[] studentIds) {
        for (String studentId : studentIds) {
            activateStudent(studentId, StuStudent.STATUS_ACTIVE);
            ModeUpdate(studentId,StuStudent.STATUS_ACTIVE);
        }
        return new Result(true);
    }
@@ -231,6 +255,28 @@
    public Result doDeActivateStudent(String[] studentIds) {
        for (String studentId : studentIds) {
            activateStudent(studentId, StuStudent.STATUS_DEACTIVE);
            ModeUpdate(studentId,StuStudent.STATUS_DEACTIVE);
        }
        return new Result(true);
    }
    private Result ModeUpdate(String studentId,String status){
        if(status.equals(StuStudent.STATUS_ACTIVE)){
            String   hql = "from ExerciseCompleteInfo where studentId=? and deleteFlag is false";
            List<Object> Params =  CollectionUtils.newList(studentId);
            ExerciseCompleteInfo unique = findUnique(hql, Params, ExerciseCompleteInfo.class);
            if(unique!=null) {
                unique.setDeleteFlag(false);
                commonDAO.update(unique);
            }
        }else {
            String   hql = "from ExerciseCompleteInfo where studentId=? and deleteFlag is false";
            List<Object> Params =  CollectionUtils.newList(studentId);
            ExerciseCompleteInfo unique = findUnique(hql, Params, ExerciseCompleteInfo.class);
            if(unique!=null){
                unique.setDeleteFlag(true);
                commonDAO.update(unique);
            }
        }
        return new Result(true);
    }
@@ -243,13 +289,13 @@
        }
        TraceUtils.setUpdateTrace(student);
        String currentTime = LocalDateTimeUtil.format(LocalDateTime.now(), "yyMMddHHmmssSSS");
        String examCardNo = currentTime.concat(RandomUtil.randomNumbers(1));
        student.setStudentNumber(examCardNo);
//        String currentTime = LocalDateTimeUtil.format(LocalDateTime.now(), "yyMMddHHmmssSSS");
//
//        String examCardNo = currentTime.concat(RandomUtil.randomNumbers(1));
//
//        student.setStudentNumber(examCardNo);
        student.setStatus(status);
        save(student);
        commonDAO.update(student);
        clsService.addStudent(student.getClassId(), StuStudent.STATUS_DEACTIVE.equals(status) ? -1 : 1);