package com.ruoyi.system.service.impl; import java.util.ArrayList; import java.util.List; import com.ruoyi.common.core.domain.entity.*; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.domain.*; import com.ruoyi.system.mapper.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.service.IZhxyShyjService; import org.springframework.transaction.annotation.Transactional; /** * 智慧校园_审核意见Service业务层处理 * * @author ruoyi * @date 2023-05-30 */ @Service public class ZhxyShyjServiceImpl implements IZhxyShyjService { @Autowired private ZhxyShyjMapper zhxyShyjMapper; @Autowired private RegisterSchoolMapper registerSchoolMapper; @Autowired private RegisterSchoolFileMapper registerSchoolFileMapper; @Autowired private RegisterTeacherMapper registerTeacherMapper; @Autowired private RegisterTeacherClassMapper registerTeacherClassMapper; @Autowired private RegisterParentsMapper registerParentsMapper; @Autowired private RegisterParentsStudentMapper registerParentsStudentMapper; @Autowired private SysUserMapper userMapper; @Autowired private SysDeptMapper deptMapper; @Autowired private SysUserDeptMapper sysUserDeptMapper; @Autowired private SysUserRoleMapper sysUserRoleMapper; @Autowired private SysUserServiceImpl sysUserServiceImpl; @Autowired private FormalParentsStudentMapper formalParentsStudentMapper; @Autowired private FormalTeacherClassMapper formalTeacherClassMapper; @Autowired private SysDictDataMapper dictDataMapper; @Autowired private SysUserRoleMapper userRoleMapper; /** * 查询智慧校园_审核意见 * * @param id 智慧校园_审核意见主键 * @return 智慧校园_审核意见 */ @Override public ZhxyShyj selectZhxyShyjById(Long id) { return zhxyShyjMapper.selectZhxyShyjById(id); } /** * 查询智慧校园_审核意见列表 * * @param zhxyShyj 智慧校园_审核意见 * @return 智慧校园_审核意见 */ @Override public List selectZhxyShyjList(ZhxyShyj zhxyShyj) { return zhxyShyjMapper.selectZhxyShyjList(zhxyShyj); } /** * 新增智慧校园_审核意见 * * @param zhxyShyj 智慧校园_审核意见 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) public int insertZhxyShyj(ZhxyShyj zhxyShyj) { SysUser user = SecurityUtils.getLoginUser().getUser(); zhxyShyj.setAuditId(user.getUserId()); zhxyShyj.setAuditUser(user.getNickName()); zhxyShyj.setShsj(DateUtils.getNowDate()); zhxyShyj.setCreateTime(DateUtils.getNowDate()); zhxyShyj.setCreateTime(DateUtils.getNowDate()); int index = zhxyShyjMapper.insertZhxyShyj(zhxyShyj); //审核类型(1:学校注册,2:老师注册,3:家长注册,4:调课) //审核结果(是否通过 1:待审核,2:通过 3:不通过) if("1".equals(zhxyShyj.getType())){ //学校注册 if("2".equals(zhxyShyj.getShjg())){ //通过 修改注册表审核结果,生成账号,部门表生成学校, 新增用户与角色管理 //查询数据信息 RegisterSchool registerSchool = registerSchoolMapper.selectRegisterSchoolById(zhxyShyj.getDataId()); //修改注册表审核结果 registerSchool.setAuditId(user.getUserId()); registerSchool.setAuditUser(user.getNickName()); registerSchool.setOpinion(zhxyShyj.getShyj()); registerSchool.setIsPass(zhxyShyj.getShjg()); registerSchool.setUpdateTime(DateUtils.getNowDate()); registerSchoolMapper.updateRegisterSchool(registerSchool); //部门表生成学校 SysDept dept = new SysDept(); dept.setParentId(0L); dept.setAncestors("0"); dept.setDeptName(registerSchool.getSchoolName()); //查询最新的ParentId为100的数据 SysDept sysDept = deptMapper.selectDeptByParentId(0L); dept.setOrderNum(sysDept.getOrderNum()+1); dept.setLeader(registerSchool.getUserName()); dept.setPhone(registerSchool.getUserPhone()); dept.setCreateTime(DateUtils.getNowDate()); deptMapper.insertDept(dept); //判断是否存在账号 SysUser use = userMapper.getByPhone(registerSchool.getUserPhone()); if(use==null){ use = new SysUser(); //生成账号 use.setOpenId(registerSchool.getOpenId()); use.setDeptId(dept.getDeptId()); use.setUserName(registerSchool.getUserPhone()); use.setNickName(registerSchool.getSchoolName()); use.setPhonenumber(registerSchool.getUserPhone()); use.setPassword(SecurityUtils.encryptPassword("1qaz!QAZ")); use.setCreateTime(DateUtils.getNowDate()); userMapper.insertUser(use); }else{ use.setDeptId(dept.getDeptId()); userMapper.updateUser(use); } //新增用户与角色管理 Long[] roleIds = {4L}; sysUserServiceImpl.insertUserRole(use.getUserId(), roleIds); }else{ //不通过 修改注册表审核结果 //修改注册表审核结果 RegisterSchool registerSchool = new RegisterSchool(); registerSchool.setId(zhxyShyj.getDataId()); registerSchool.setAuditId(user.getUserId()); registerSchool.setAuditUser(user.getNickName()); registerSchool.setOpinion(zhxyShyj.getShyj()); registerSchool.setIsPass(zhxyShyj.getShjg()); registerSchool.setUpdateTime(DateUtils.getNowDate()); registerSchoolMapper.updateRegisterSchool(registerSchool); } }else if("2".equals(zhxyShyj.getType())){ //老师注册 if("2".equals(zhxyShyj.getShjg())){ //通过 修改注册表审核结果,生成账号, 新增用户与角色管理,老师-班级(学科)数据 //查询数据信息 RegisterTeacher registerTeacher = registerTeacherMapper.selectRegisterTeacherById(zhxyShyj.getDataId()); RegisterTeacherClass registerTeacherClass = new RegisterTeacherClass(); registerTeacherClass.setTeacherId(registerTeacher.getId()); List registerTeacherClassList = registerTeacherClassMapper.selectRegisterTeacherClassList(registerTeacherClass); //修改注册表审核结果 registerTeacher.setAuditId(user.getUserId()); registerTeacher.setAuditUser(user.getNickName()); registerTeacher.setOpinion(zhxyShyj.getShyj()); registerTeacher.setIsPass(zhxyShyj.getShjg()); registerTeacher.setUpdateTime(DateUtils.getNowDate()); registerTeacherMapper.updateRegisterTeacher(registerTeacher); //生成账号 //判断是否存在账号 SysUser use = userMapper.getByPhone(registerTeacher.getUserPhone()); if(use==null){ use = new SysUser(); use.setOpenId(registerTeacher.getOpenId()); use.setDeptId(registerTeacher.getSchoolId()); use.setUserName(registerTeacher.getUserPhone()); use.setNickName(registerTeacher.getUserName()); use.setPhonenumber(registerTeacher.getUserPhone()); use.setPassword(SecurityUtils.encryptPassword("1qaz!QAZ")); use.setCreateTime(DateUtils.getNowDate()); userMapper.insertUser(use); }else{ use.setDeptId(registerTeacher.getSchoolId()); userMapper.updateUser(use); } //新增用户与角色管理 Long[] roleIds = {3L}; sysUserServiceImpl.insertUserRole(use.getUserId(), roleIds); //老师-班级(学科)数据 for (RegisterTeacherClass teacherClass : registerTeacherClassList) { FormalTeacherClass formalTeacherClass = new FormalTeacherClass(); formalTeacherClass.setTeacherId(use.getUserId()); formalTeacherClass.setTeacherName(use.getNickName()); formalTeacherClass.setSchoolId(registerTeacher.getSchoolId()); formalTeacherClass.setSchoolName(registerTeacher.getSchoolName()); formalTeacherClass.setClassId(teacherClass.getClassId()); formalTeacherClass.setClassName(teacherClass.getClassName()); formalTeacherClass.setDiscipline(teacherClass.getDiscipline()); formalTeacherClass.setCreateTime(DateUtils.getNowDate()); formalTeacherClassMapper.insertFormalTeacherClass(formalTeacherClass); } }else{ //不通过 修改注册表审核结果 //修改注册表审核结果 RegisterTeacher registerTeacher = new RegisterTeacher(); registerTeacher.setId(zhxyShyj.getDataId()); registerTeacher.setAuditId(user.getUserId()); registerTeacher.setAuditUser(user.getNickName()); registerTeacher.setOpinion(zhxyShyj.getShyj()); registerTeacher.setIsPass(zhxyShyj.getShjg()); registerTeacher.setUpdateTime(DateUtils.getNowDate()); registerTeacherMapper.updateRegisterTeacher(registerTeacher); } }else if("3".equals(zhxyShyj.getType())){ //审核类型(1:学校注册,2:老师注册,3:家长注册,4:调课) //家长注册 //查询数据信息 RegisterParentsStudent registerParentsStudent = registerParentsStudentMapper.selectRegisterParentsStudentById(zhxyShyj.getDataId()); RegisterParents registerParents = registerParentsMapper.selectRegisterParentsById(registerParentsStudent.getParentsId()); if("2".equals(zhxyShyj.getShjg())){ //通过 修改注册表审核结果,生成账号, 新增用户与角色管理,家长-学生(审核通过之后数据) //查询是否存在账号 SysUser sysUser = userMapper.getByPhone(registerParents.getUserPhone()); //修改注册表审核结果 registerParentsStudent.setAuditId(user.getUserId()); registerParentsStudent.setAuditUser(user.getNickName()); registerParentsStudent.setOpinion(zhxyShyj.getShyj()); registerParentsStudent.setIsPass(zhxyShyj.getShjg()); registerParentsStudent.setUpdateTime(DateUtils.getNowDate()); registerParentsStudentMapper.updateRegisterParentsStudent(registerParentsStudent); if(sysUser==null){ //账号不存在 registerParents.setIsPass(zhxyShyj.getShjg()); registerParentsMapper.updateRegisterParents(registerParents); //生成账号 sysUser = new SysUser(); sysUser.setOpenId(registerParents.getOpenId()); //use.setDeptId(dept.getDeptId()); sysUser.setUserName(registerParents.getUserPhone()); sysUser.setNickName(registerParents.getUserName()); sysUser.setPhonenumber(registerParents.getUserPhone()); sysUser.setPassword(SecurityUtils.encryptPassword("1qaz!QAZ")); sysUser.setCreateTime(DateUtils.getNowDate()); userMapper.insertUser(sysUser); //新增用户与角色管理 Long[] roleIds = {5L}; sysUserServiceImpl.insertUserRole(sysUser.getUserId(), roleIds); }else{ FormalParentsStudent parentsStudent = new FormalParentsStudent(); parentsStudent.setParentsId(sysUser.getUserId()); List parentsStudentList = formalParentsStudentMapper.selectFormalParentsStudentList(parentsStudent); if(parentsStudentList==null || parentsStudentList.size()<=0){ //新增用户与角色管理 Long[] roleIds = {5L}; sysUserServiceImpl.insertUserRole(sysUser.getUserId(), roleIds); } } //新增家长-学生(审核通过之后数据) FormalParentsStudent formalParentsStudent = new FormalParentsStudent(); formalParentsStudent.setParentsId(sysUser.getUserId()); formalParentsStudent.setSchoolId(registerParentsStudent.getSchoolId()); formalParentsStudent.setSchoolName(registerParentsStudent.getSchoolName()); formalParentsStudent.setClassId(registerParentsStudent.getClassId()); formalParentsStudent.setClassName(registerParentsStudent.getClassName()); formalParentsStudent.setStudentName(registerParentsStudent.getStudentName()); formalParentsStudent.setStudentNumber(registerParentsStudent.getStudentNumber()); formalParentsStudent.setCreateTime(DateUtils.getNowDate()); formalParentsStudent.setCreateBy(user.getNickName()); formalParentsStudentMapper.insertFormalParentsStudent(formalParentsStudent); }else{ //不通过 修改注册表审核结果 //修改注册表审核结果 RegisterParentsStudent registerParentsStudentNo = new RegisterParentsStudent(); registerParentsStudentNo.setId(zhxyShyj.getDataId()); registerParentsStudentNo.setAuditId(user.getUserId()); registerParentsStudentNo.setAuditUser(user.getNickName()); registerParentsStudentNo.setOpinion(zhxyShyj.getShyj()); registerParentsStudentNo.setIsPass(zhxyShyj.getShjg()); registerParentsStudentNo.setUpdateTime(DateUtils.getNowDate()); registerParentsStudentMapper.updateRegisterParentsStudent(registerParentsStudentNo); //判断是否所有的都不通过(查询是否存在待审核和审核通过的数据) RegisterParentsStudent parentsStudent = new RegisterParentsStudent(); parentsStudent.setParentsId(registerParents.getId()); List registerParentsStudentList = registerParentsStudentMapper.selectRegisterParentsStudentList(parentsStudent); Boolean bl = true; for (RegisterParentsStudent student : registerParentsStudentList) { if(!"3".equals(student.getIsPass())){ bl = false; break; } } //全部都不通过才改家长表状态 if(bl){ registerParents.setIsPass(zhxyShyj.getShjg()); registerParentsMapper.updateRegisterParents(registerParents); } } } return index; } /*** * 生成班级 * @param sysDept * @return */ private List createClassList(SysDept sysDept) { SysDictData dictData = new SysDictData(); dictData.setDictType("sys_class"); List sysDictDataList = dictDataMapper.selectDictDataList(dictData); List sysDeptList = new ArrayList<>(); String ancestors = "0"+","+String.valueOf(sysDept.getDeptId()); int index = 1; for (SysDictData sysDictData : sysDictDataList) { SysDept dept = new SysDept(); dept.setParentId(sysDept.getDeptId()); dept.setAncestors(ancestors); dept.setDeptName(sysDictData.getDictLabel()); dept.setOrderNum(index); dept.setStatus("1"); dept.setCreateTime(DateUtils.getNowDate()); sysDeptList.add(dept); index = index+5; } return sysDeptList; } /** * 修改智慧校园_审核意见 * * @param zhxyShyj 智慧校园_审核意见 * @return 结果 */ @Override public int updateZhxyShyj(ZhxyShyj zhxyShyj) { zhxyShyj.setUpdateTime(DateUtils.getNowDate()); return zhxyShyjMapper.updateZhxyShyj(zhxyShyj); } /** * 批量删除智慧校园_审核意见 * * @param ids 需要删除的智慧校园_审核意见主键 * @return 结果 */ @Override public int deleteZhxyShyjByIds(Long[] ids) { return zhxyShyjMapper.deleteZhxyShyjByIds(ids); } /** * 删除智慧校园_审核意见信息 * * @param id 智慧校园_审核意见主键 * @return 结果 */ @Override public int deleteZhxyShyjById(Long id) { return zhxyShyjMapper.deleteZhxyShyjById(id); } }