| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 |
- package com.xjrsoft.module.student.service.impl;
- import cn.dev33.satoken.secure.BCrypt;
- import cn.hutool.core.bean.BeanUtil;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.github.yulichang.base.MPJBaseServiceImpl;
- import com.github.yulichang.wrapper.MPJLambdaWrapper;
- import com.xjrsoft.common.enums.RoleEnum;
- import com.xjrsoft.common.page.ConventPage;
- import com.xjrsoft.module.base.entity.BaseClass;
- import com.xjrsoft.module.base.mapper.BaseClassMapper;
- import com.xjrsoft.module.organization.entity.UserRoleRelation;
- import com.xjrsoft.module.organization.mapper.UserRoleRelationMapper;
- import com.xjrsoft.module.student.dto.BaseStudentUserPageDto;
- import com.xjrsoft.module.student.entity.BaseStudent;
- import com.xjrsoft.module.student.entity.BaseStudentContact;
- import com.xjrsoft.module.student.entity.BaseStudentFamily;
- import com.xjrsoft.module.student.entity.BaseStudentFamilyMember;
- import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
- import com.xjrsoft.module.student.entity.BaseStudentSubsidize;
- import com.xjrsoft.module.student.entity.BaseStudentUser;
- import com.xjrsoft.module.student.mapper.BaseStudentContactMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentFamilyMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentFamilyMemberMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentSubsidizeMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentUserMapper;
- import com.xjrsoft.module.student.service.IStudentManagerService;
- import com.xjrsoft.module.student.vo.BaseStudentClassVo;
- import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
- import lombok.AllArgsConstructor;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.List;
- import java.util.Objects;
- import java.util.stream.Collectors;
- @Service
- @AllArgsConstructor
- public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUserMapper, BaseStudentUser> implements IStudentManagerService {
- private final com.xjrsoft.module.student.mapper.BaseStudentUserMapper studentbaseManagerBaseStudentUserMapper;
- private final BaseStudentMapper studentbaseManagerBaseStudentMapper;
- private final BaseClassMapper baseClassMapper;
- private final BaseStudentContactMapper studentbaseManagerBaseStudentContactMapper;
- private final BaseStudentFamilyMapper studentbaseManagerBaseStudentFamilyMapper;
- private final BaseStudentFamilyMemberMapper studentbaseManagerBaseStudentFamilyMemberMapper;
- private final BaseStudentSchoolRollMapper studentbaseManagerBaseStudentSchoolRollMapper;
- private final BaseStudentSubsidizeMapper studentbaseManagerBaseStudentSubsidizeMapper;
- private final UserRoleRelationMapper userRoleRelationMapper;
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean add(BaseStudentUser baseStudentUser) {
- // 用户身份证后6位作为默认密码
- if (baseStudentUser.getCredentialNumber() != null && baseStudentUser.getCredentialNumber().length() > 6) {
- String str = baseStudentUser.getCredentialNumber();
- String lastSix = str.substring(str.length() - 6);
- baseStudentUser.setPassword(BCrypt.hashpw(lastSix, BCrypt.gensalt()));
- }
- studentbaseManagerBaseStudentUserMapper.insert(baseStudentUser);
- for (BaseStudent baseStudent : baseStudentUser.getBaseStudentList()) {
- baseStudent.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentMapper.insert(baseStudent);
- }
- for (BaseStudentContact baseStudentContact : baseStudentUser.getBaseStudentContactList()) {
- baseStudentContact.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentContactMapper.insert(baseStudentContact);
- }
- for (BaseStudentFamily BaseStudentFamily : baseStudentUser.getBaseStudentFamilyList()) {
- BaseStudentFamily.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentFamilyMapper.insert(BaseStudentFamily);
- }
- for (BaseStudentFamilyMember BaseStudentFamilyMember : baseStudentUser.getBaseStudentFamilyMemberList()) {
- BaseStudentFamilyMember.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentFamilyMemberMapper.insert(BaseStudentFamilyMember);
- }
- for (BaseStudentSchoolRoll baseStudentSchoolRoll : baseStudentUser.getBaseStudentSchoolRollList()) {
- baseStudentSchoolRoll.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentSchoolRollMapper.insert(baseStudentSchoolRoll);
- }
- for (BaseStudentSubsidize baseStudentSubsidize : baseStudentUser.getBaseStudentSubsidizeList()) {
- baseStudentSubsidize.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentSubsidizeMapper.insert(baseStudentSubsidize);
- }
- // 添加角色
- UserRoleRelation userRoleRelation = new UserRoleRelation();
- userRoleRelation.setUserId(baseStudentUser.getId());
- userRoleRelation.setRoleId(RoleEnum.STUDENT.getCode());
- userRoleRelationMapper.insert(userRoleRelation);
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean update(BaseStudentUser baseStudentUser) {
- studentbaseManagerBaseStudentUserMapper.updateById(baseStudentUser);
- //********************************* BaseStudent 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<BaseStudent> baseStudentList = studentbaseManagerBaseStudentMapper.selectList(Wrappers.lambdaQuery(BaseStudent.class).eq(BaseStudent::getUserId, baseStudentUser.getId()).select(BaseStudent::getId));
- List<Long> baseStudentIds = baseStudentList.stream().map(BaseStudent::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> baseStudentOldIds = baseStudentUser.getBaseStudentList().stream().map(BaseStudent::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> baseStudentRemoveIds = baseStudentIds.stream().filter(item -> !baseStudentOldIds.contains(item)).collect(Collectors.toList());
- for (BaseStudent baseStudent : baseStudentUser.getBaseStudentList()) {
- //如果不等于空则修改
- if (baseStudent.getId() != null) {
- studentbaseManagerBaseStudentMapper.updateById(baseStudent);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- baseStudent.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentMapper.insert(baseStudent);
- }
- }
- //已经不存在的id 删除
- if (baseStudentRemoveIds.size() > 0) {
- studentbaseManagerBaseStudentMapper.deleteBatchIds(baseStudentRemoveIds);
- }
- }
- //********************************* BaseStudent 增删改 结束 *******************************************/
- //********************************* BaseStudentContact 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<BaseStudentContact> baseStudentContactList = studentbaseManagerBaseStudentContactMapper.selectList(Wrappers.lambdaQuery(BaseStudentContact.class).eq(BaseStudentContact::getUserId, baseStudentUser.getId()).select(BaseStudentContact::getId));
- List<Long> baseStudentContactIds = baseStudentContactList.stream().map(BaseStudentContact::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> baseStudentContactOldIds = baseStudentUser.getBaseStudentContactList().stream().map(BaseStudentContact::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> baseStudentContactRemoveIds = baseStudentContactIds.stream().filter(item -> !baseStudentContactOldIds.contains(item)).collect(Collectors.toList());
- for (BaseStudentContact baseStudentContact : baseStudentUser.getBaseStudentContactList()) {
- //如果不等于空则修改
- if (baseStudentContact.getId() != null) {
- studentbaseManagerBaseStudentContactMapper.updateById(baseStudentContact);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- baseStudentContact.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentContactMapper.insert(baseStudentContact);
- }
- }
- //已经不存在的id 删除
- if (baseStudentContactRemoveIds.size() > 0) {
- studentbaseManagerBaseStudentContactMapper.deleteBatchIds(baseStudentContactRemoveIds);
- }
- }
- //********************************* BaseStudentContact 增删改 结束 *******************************************/
- //********************************* BaseStudentFamily 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<BaseStudentFamily> BaseStudentFamilyList = studentbaseManagerBaseStudentFamilyMapper.selectList(Wrappers.lambdaQuery(BaseStudentFamily.class).eq(BaseStudentFamily::getUserId, baseStudentUser.getId()).select(BaseStudentFamily::getId));
- List<Long> BaseStudentFamilyIds = BaseStudentFamilyList.stream().map(BaseStudentFamily::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> BaseStudentFamilyOldIds = baseStudentUser.getBaseStudentFamilyList().stream().map(BaseStudentFamily::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> BaseStudentFamilyRemoveIds = BaseStudentFamilyIds.stream().filter(item -> !BaseStudentFamilyOldIds.contains(item)).collect(Collectors.toList());
- for (BaseStudentFamily BaseStudentFamily : baseStudentUser.getBaseStudentFamilyList()) {
- //如果不等于空则修改
- if (BaseStudentFamily.getId() != null) {
- studentbaseManagerBaseStudentFamilyMapper.updateById(BaseStudentFamily);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- BaseStudentFamily.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentFamilyMapper.insert(BaseStudentFamily);
- }
- }
- //已经不存在的id 删除
- if (BaseStudentFamilyRemoveIds.size() > 0) {
- studentbaseManagerBaseStudentFamilyMapper.deleteBatchIds(BaseStudentFamilyRemoveIds);
- }
- }
- //********************************* BaseStudentFamily 增删改 结束 *******************************************/
- //********************************* BaseStudentFamilyMember 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<BaseStudentFamilyMember> BaseStudentFamilyMemberList = studentbaseManagerBaseStudentFamilyMemberMapper.selectList(Wrappers.lambdaQuery(BaseStudentFamilyMember.class).eq(BaseStudentFamilyMember::getUserId, baseStudentUser.getId()).select(BaseStudentFamilyMember::getId));
- List<Long> BaseStudentFamilyMemberIds = BaseStudentFamilyMemberList.stream().map(BaseStudentFamilyMember::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> BaseStudentFamilyMemberOldIds = baseStudentUser.getBaseStudentFamilyMemberList().stream().map(BaseStudentFamilyMember::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> BaseStudentFamilyMemberRemoveIds = BaseStudentFamilyMemberIds.stream().filter(item -> !BaseStudentFamilyMemberOldIds.contains(item)).collect(Collectors.toList());
- for (BaseStudentFamilyMember BaseStudentFamilyMember : baseStudentUser.getBaseStudentFamilyMemberList()) {
- //如果不等于空则修改
- if (BaseStudentFamilyMember.getId() != null) {
- studentbaseManagerBaseStudentFamilyMemberMapper.updateById(BaseStudentFamilyMember);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- BaseStudentFamilyMember.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentFamilyMemberMapper.insert(BaseStudentFamilyMember);
- }
- }
- //已经不存在的id 删除
- if (BaseStudentFamilyMemberRemoveIds.size() > 0) {
- studentbaseManagerBaseStudentFamilyMemberMapper.deleteBatchIds(BaseStudentFamilyMemberRemoveIds);
- }
- }
- //********************************* BaseStudentFamilyMember 增删改 结束 *******************************************/
- //********************************* StudentSchoolRoll 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<BaseStudentSchoolRoll> baseStudentSchoolRollList = studentbaseManagerBaseStudentSchoolRollMapper.selectList(Wrappers.lambdaQuery(BaseStudentSchoolRoll.class).eq(BaseStudentSchoolRoll::getUserId, baseStudentUser.getId()).select(BaseStudentSchoolRoll::getId));
- List<Long> baseStudentSchoolRollIds = baseStudentSchoolRollList.stream().map(BaseStudentSchoolRoll::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> baseStudentSchoolRollOldIds = baseStudentUser.getBaseStudentSchoolRollList().stream().map(BaseStudentSchoolRoll::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> baseStudentSchoolRollRemoveIds = baseStudentSchoolRollIds.stream().filter(item -> !baseStudentSchoolRollOldIds.contains(item)).collect(Collectors.toList());
- for (BaseStudentSchoolRoll baseStudentSchoolRoll : baseStudentUser.getBaseStudentSchoolRollList()) {
- //如果不等于空则修改
- if (baseStudentSchoolRoll.getId() != null) {
- studentbaseManagerBaseStudentSchoolRollMapper.updateById(baseStudentSchoolRoll);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- baseStudentSchoolRoll.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentSchoolRollMapper.insert(baseStudentSchoolRoll);
- }
- }
- //已经不存在的id 删除
- if (baseStudentSchoolRollRemoveIds.size() > 0) {
- studentbaseManagerBaseStudentSchoolRollMapper.deleteBatchIds(baseStudentSchoolRollRemoveIds);
- }
- }
- //********************************* StudentSchoolRoll 增删改 结束 *******************************************/
- //********************************* BaseStudentSubsidize 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<BaseStudentSubsidize> baseStudentSubsidizeList = studentbaseManagerBaseStudentSubsidizeMapper.selectList(Wrappers.lambdaQuery(BaseStudentSubsidize.class).eq(BaseStudentSubsidize::getUserId, baseStudentUser.getId()).select(BaseStudentSubsidize::getId));
- List<Long> baseStudentSubsidizeIds = baseStudentSubsidizeList.stream().map(BaseStudentSubsidize::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> baseStudentSubsidizeOldIds = baseStudentUser.getBaseStudentSubsidizeList().stream().map(BaseStudentSubsidize::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> baseStudentSubsidizeRemoveIds = baseStudentSubsidizeIds.stream().filter(item -> !baseStudentSubsidizeOldIds.contains(item)).collect(Collectors.toList());
- for (BaseStudentSubsidize BaseStudentEducation : baseStudentUser.getBaseStudentSubsidizeList()) {
- //如果不等于空则修改
- if (BaseStudentEducation.getId() != null) {
- studentbaseManagerBaseStudentSubsidizeMapper.updateById(BaseStudentEducation);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- BaseStudentEducation.setUserId(baseStudentUser.getId());
- studentbaseManagerBaseStudentSubsidizeMapper.insert(BaseStudentEducation);
- }
- }
- //已经不存在的id 删除
- if (baseStudentSubsidizeRemoveIds.size() > 0) {
- studentbaseManagerBaseStudentSubsidizeMapper.deleteBatchIds(baseStudentSubsidizeRemoveIds);
- }
- }
- //********************************* BaseStudentEducation 增删改 结束 *******************************************/
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean delete(List<Long> ids) {
- studentbaseManagerBaseStudentUserMapper.deleteBatchIds(ids);
- studentbaseManagerBaseStudentMapper.delete(Wrappers.lambdaQuery(BaseStudent.class).in(BaseStudent::getUserId, ids));
- studentbaseManagerBaseStudentContactMapper.delete(Wrappers.lambdaQuery(BaseStudentContact.class).in(BaseStudentContact::getUserId, ids));
- studentbaseManagerBaseStudentFamilyMapper.delete(Wrappers.lambdaQuery(BaseStudentFamily.class).in(BaseStudentFamily::getUserId, ids));
- studentbaseManagerBaseStudentFamilyMemberMapper.delete(Wrappers.lambdaQuery(BaseStudentFamilyMember.class).in(BaseStudentFamilyMember::getUserId, ids));
- studentbaseManagerBaseStudentSchoolRollMapper.delete(Wrappers.lambdaQuery(BaseStudentSchoolRoll.class).in(BaseStudentSchoolRoll::getUserId, ids));
- studentbaseManagerBaseStudentSubsidizeMapper.delete(Wrappers.lambdaQuery(BaseStudentSubsidize.class).in(BaseStudentSubsidize::getUserId, ids));
- return true;
- }
- @Override
- public BaseStudentClassVo getStudentClass(Long userId) {
- MPJLambdaWrapper<BaseClass> queryWrapper = new MPJLambdaWrapper<>();
- queryWrapper
- .disableSubLogicDel()
- .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getClassId, BaseStudent::getId)
- .eq(BaseStudentSchoolRoll::getUserId, userId)
- .selectAsClass(BaseClass.class, BaseStudentClassVo.class);
- BaseClass baseClass = baseClassMapper.selectOne(queryWrapper);
- return BeanUtil.toBean(baseClass, BaseStudentClassVo.class);
- }
- }
|