SubjectServiceImpl.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package com.keao.edu.user.service.impl;
  2. import com.keao.edu.common.dal.BaseDAO;
  3. import com.keao.edu.common.exception.BizException;
  4. import com.keao.edu.common.page.PageInfo;
  5. import com.keao.edu.common.service.impl.BaseServiceImpl;
  6. import com.keao.edu.user.dao.SubjectDao;
  7. import com.keao.edu.user.entity.Subject;
  8. import com.keao.edu.user.enums.YesOrNoEnum;
  9. import com.keao.edu.user.page.SubjectQueryInfo;
  10. import com.keao.edu.user.service.SubjectService;
  11. import com.keao.edu.util.collection.MapUtil;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import java.util.*;
  16. @Service
  17. public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject> implements SubjectService {
  18. @Autowired
  19. private SubjectDao subjectDao;
  20. @Override
  21. public BaseDAO<Integer, Subject> getDAO() {
  22. return subjectDao;
  23. }
  24. @Override
  25. public PageInfo<Subject> queryPageTree(SubjectQueryInfo queryInfo) {
  26. PageInfo<Subject> pageInfo = queryPage(queryInfo);
  27. for (Subject subject:pageInfo.getRows()) {
  28. subject = getTree(subject,queryInfo.getDelFlag(),queryInfo.getTenantId());
  29. }
  30. return pageInfo;
  31. }
  32. @Override
  33. public void upSetSubject(Subject subject) {
  34. if(subject.getDelFlag() != null && subject.getDelFlag() == true){
  35. Subject subject1 = subjectDao.get(subject.getId());
  36. if(subject1.getParentSubjectId() == 0){
  37. //是否有子类
  38. List<Subject> byParentId = subjectDao.findByParentId(subject.getId(), YesOrNoEnum.NO, subject.getTenantId());
  39. if(byParentId != null && byParentId.size() > 0){
  40. throw new BizException("操作失败:有未删除的专业");
  41. }
  42. }else {
  43. //是否在使用
  44. int num = subjectDao.countExamSubject(subject.getId());
  45. if(num > 0){
  46. throw new BizException("操作失败:当前专业正在使用");
  47. }
  48. }
  49. subjectDao.delete(subject.getId());
  50. return;
  51. }
  52. Integer parentId = upset(subject, null);
  53. List<Subject> subjects = subject.getSubjects();
  54. if(subjects != null && subjects.size() > 0){
  55. subjects.forEach(e->{
  56. upset(e, parentId);
  57. });
  58. }
  59. }
  60. private Integer upset(Subject subject,Integer parentId){
  61. if(parentId != null){
  62. subject.setParentSubjectId(parentId);
  63. }
  64. if(subject.getId() != null){
  65. subject.setUpdateTime(new Date());
  66. subjectDao.update(subject);
  67. }else {
  68. subjectDao.insert(subject);
  69. }
  70. return subject.getId();
  71. }
  72. private Subject getTree(Subject sub,YesOrNoEnum yesOrNoEnum,String tenantId){
  73. //得到根节点对象
  74. //获取子节点list
  75. List<Subject> subjects = subjectDao.findByParentId(sub.getId(),yesOrNoEnum,tenantId);
  76. //如果存在子节点
  77. if(subjects != null && subjects.size() > 0) {
  78. //将子节点list放入父节点对象
  79. sub.setSubjects(subjects);
  80. //遍历子节点....
  81. for (Subject subject : subjects) {
  82. getTree(subject,yesOrNoEnum,tenantId);
  83. }
  84. }
  85. return sub;
  86. }
  87. @Override
  88. public List<Subject> findSubSubjects(Integer tenantId) {
  89. return subjectDao.findSubSubjects(tenantId);
  90. }
  91. @Override
  92. public List<Subject> findBySubjectByIdList(List<Integer> subjectIdList) {
  93. return subjectDao.findBySubjectByIdList(StringUtils.join(subjectIdList,","));
  94. }
  95. @Override
  96. public List<Subject> findBySubjectByIdList(String subjectIdList) {
  97. return subjectDao.findBySubjectByIdList(subjectIdList);
  98. }
  99. @Override
  100. public List<String> findBySubIds(String subIds) {
  101. return subjectDao.findBySubIds(subIds);
  102. }
  103. }