| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package com.keao.edu.user.service.impl;
- import com.keao.edu.common.dal.BaseDAO;
- import com.keao.edu.common.exception.BizException;
- import com.keao.edu.common.page.PageInfo;
- import com.keao.edu.common.service.impl.BaseServiceImpl;
- import com.keao.edu.user.dao.SubjectDao;
- import com.keao.edu.user.entity.Subject;
- import com.keao.edu.user.enums.YesOrNoEnum;
- import com.keao.edu.user.page.SubjectQueryInfo;
- import com.keao.edu.user.service.SubjectService;
- import com.keao.edu.util.collection.MapUtil;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.*;
- @Service
- public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject> implements SubjectService {
- @Autowired
- private SubjectDao subjectDao;
- @Override
- public BaseDAO<Integer, Subject> getDAO() {
- return subjectDao;
- }
- @Override
- public PageInfo<Subject> queryPageTree(SubjectQueryInfo queryInfo) {
- PageInfo<Subject> pageInfo = queryPage(queryInfo);
- for (Subject subject:pageInfo.getRows()) {
- subject = getTree(subject,queryInfo.getDelFlag(),queryInfo.getTenantId());
- }
- return pageInfo;
- }
- @Override
- public void upSetSubject(Subject subject) {
- if(subject.getDelFlag() != null && subject.getDelFlag() == true){
- Subject subject1 = subjectDao.get(subject.getId());
- if(subject1.getParentSubjectId() == 0){
- //是否有子类
- List<Subject> byParentId = subjectDao.findByParentId(subject.getId(), YesOrNoEnum.NO, subject.getTenantId());
- if(byParentId != null && byParentId.size() > 0){
- throw new BizException("操作失败:有未删除的专业");
- }
- }else {
- //是否在使用
- int num = subjectDao.countExamSubject(subject.getId());
- if(num > 0){
- throw new BizException("操作失败:当前专业正在使用");
- }
- }
- subjectDao.delete(subject.getId());
- return;
- }
- Integer parentId = upset(subject, null);
- List<Subject> subjects = subject.getSubjects();
- if(subjects != null && subjects.size() > 0){
- subjects.forEach(e->{
- upset(e, parentId);
- });
- }
- }
- private Integer upset(Subject subject,Integer parentId){
- if(parentId != null){
- subject.setParentSubjectId(parentId);
- }
- if(subject.getId() != null){
- subject.setUpdateTime(new Date());
- subjectDao.update(subject);
- }else {
- subjectDao.insert(subject);
- }
- return subject.getId();
- }
- private Subject getTree(Subject sub,YesOrNoEnum yesOrNoEnum,String tenantId){
- //得到根节点对象
- //获取子节点list
- List<Subject> subjects = subjectDao.findByParentId(sub.getId(),yesOrNoEnum,tenantId);
- //如果存在子节点
- if(subjects != null && subjects.size() > 0) {
- //将子节点list放入父节点对象
- sub.setSubjects(subjects);
- //遍历子节点....
- for (Subject subject : subjects) {
- getTree(subject,yesOrNoEnum,tenantId);
- }
- }
- return sub;
- }
- @Override
- public List<Subject> findSubSubjects(Integer tenantId) {
- return subjectDao.findSubSubjects(tenantId);
- }
- @Override
- public List<Subject> findBySubjectByIdList(List<Integer> subjectIdList) {
- return subjectDao.findBySubjectByIdList(StringUtils.join(subjectIdList,","));
- }
- @Override
- public List<Subject> findBySubjectByIdList(String subjectIdList) {
- return subjectDao.findBySubjectByIdList(subjectIdList);
- }
- @Override
- public List<String> findBySubIds(String subIds) {
- return subjectDao.findBySubIds(subIds);
- }
- }
|