SummerVacationServiceImpl.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. package com.ssj.service.vacation.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.ssj.api.domain.vo.vacation.*;
  5. import com.ssj.bean.vacation.SumPrevMaterial;
  6. import com.ssj.bean.vacation.SumPrevMaterialUnit;
  7. import com.ssj.bean.vacation.SumRevMaterial;
  8. import com.ssj.framework.basic.config.bean.VersionConfig;
  9. import com.ssj.framework.core.util.SystemResourceLocator;
  10. import com.ssj.mapper.vacation.PrevMaterialMapper;
  11. import com.ssj.mapper.vacation.PrevMaterialUnitMapper;
  12. import com.ssj.mapper.vacation.RevMaterialMapper;
  13. import com.ssj.mapper.vacation.SummerVacationMapper;
  14. import com.ssj.service.vacation.ISummerVacationService;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.stereotype.Service;
  18. import javax.annotation.Resource;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.Map;
  22. import java.util.concurrent.atomic.AtomicReference;
  23. /**
  24. * @author sh
  25. * @className SummerVacationServiceImpl
  26. * @description 暑假大作战业务实现
  27. * @date 2022/6/14
  28. */
  29. @Service
  30. @Slf4j
  31. public class SummerVacationServiceImpl implements ISummerVacationService {
  32. @Resource
  33. private SummerVacationMapper summerVacationMapper;
  34. @Resource
  35. private PrevMaterialMapper prevMaterialMapper;
  36. @Resource
  37. private PrevMaterialUnitMapper prevMaterialUnitMapper;
  38. @Resource
  39. private RevMaterialMapper revMaterialMapper;
  40. @Override
  41. public Page<SumPrevMaterialVO> getPrevPage(VersionVo param) {
  42. return summerVacationMapper.getPrevPage(param.toPage(),param);
  43. }
  44. @Override
  45. public List<SumPrevMaterialUnitVO> getUnitList(String id) {
  46. return summerVacationMapper.getUnitList(id);
  47. }
  48. @Override
  49. public void editPreMaterialVersion(VersionVo param) {
  50. if(param.getId()== null || "".equals(param.getId())){
  51. SumPrevMaterial sumPrevMaterial = new SumPrevMaterial();
  52. sumPrevMaterial.setGrade(param.getGrade());
  53. sumPrevMaterial.setSemester(param.getSemester());
  54. sumPrevMaterial.setMaterialLink(param.getMaterialLink());
  55. sumPrevMaterial.setVersionType(param.getVersionType());
  56. sumPrevMaterial.setSubject(param.getSubject());
  57. sumPrevMaterial.setVersionName(getVersionNameByType(param.getVersionType(),param.getSubject()));
  58. sumPrevMaterial.setCreateTime(new Date());
  59. prevMaterialMapper.insert(sumPrevMaterial);
  60. }else{
  61. SumPrevMaterial sumPrevMaterial = prevMaterialMapper.selectById(param.getId());
  62. if(StringUtils.isNotEmpty(param.getGrade())){
  63. sumPrevMaterial.setGrade(param.getGrade());
  64. }
  65. if(param.getSemester()>0) {
  66. sumPrevMaterial.setSemester(param.getSemester());
  67. }
  68. if(StringUtils.isNotEmpty(param.getMaterialLink())) {
  69. sumPrevMaterial.setMaterialLink(param.getMaterialLink());
  70. }
  71. if(StringUtils.isNotEmpty(param.getSubject())) {
  72. sumPrevMaterial.setSubject(param.getSubject());
  73. }
  74. if(param.getVersionType()>0){
  75. sumPrevMaterial.setVersionType(param.getVersionType());
  76. sumPrevMaterial.setVersionName(getVersionNameByType(param.getVersionType(),param.getSubject()));
  77. }
  78. sumPrevMaterial.setCreateTime(new Date());
  79. prevMaterialMapper.updateById(sumPrevMaterial);
  80. }
  81. }
  82. @Override
  83. public void delPreMaterialVersion(VersionVo param) {
  84. if(param.getId()!= null && !"".equals(param.getId())){
  85. prevMaterialMapper.deleteById(param.getId());
  86. //删除子表信息
  87. prevMaterialUnitMapper.delete(new QueryWrapper<SumPrevMaterialUnit>()
  88. .eq("parent_id",param.getId()));
  89. }
  90. }
  91. @Override
  92. public void delPreMaterialUnitVersion(VersionVo param) {
  93. if(param.getId()!= null && !"".equals(param.getId())){
  94. SumPrevMaterialUnit sumPrevMaterial = prevMaterialUnitMapper.selectById(param.getId());
  95. prevMaterialUnitMapper.delete(new QueryWrapper<SumPrevMaterialUnit>()
  96. .eq("parent_id",sumPrevMaterial.getParentId())
  97. .eq("unit_id",sumPrevMaterial.getUnitId()));
  98. }
  99. }
  100. @Override
  101. public void editPreUnitVersion(VersionUnitVo param) {
  102. if(param.getId()!= null && !"".equals(param.getId())){
  103. SumPrevMaterialUnit sumPrevMaterial = prevMaterialUnitMapper.selectById(param.getId());
  104. //修改的话,先删除之前的记录,再插入新的记录
  105. prevMaterialUnitMapper.delete(new QueryWrapper<SumPrevMaterialUnit>()
  106. .eq("parent_id",sumPrevMaterial.getParentId())
  107. .eq("unit_id",sumPrevMaterial.getUnitId()));
  108. }
  109. List<VersionUnitListVo> list = param.getUnitList();
  110. SumPrevMaterial sumPrevMaterial = prevMaterialMapper.selectById(param.getParentId());
  111. int unitShowSort = this.getListSizeByParentId(param.getParentId()).intValue() +1;
  112. if(list!=null && list.size()>0){
  113. for (VersionUnitListVo vo:list){
  114. SumPrevMaterialUnit sumPrevMaterialUnit = new SumPrevMaterialUnit();
  115. sumPrevMaterialUnit.setParentId(param.getParentId());
  116. sumPrevMaterialUnit.setUnitId(param.getUnitId());
  117. sumPrevMaterialUnit.setUnitName(param.getUnitName());
  118. sumPrevMaterialUnit.setVideoLink(vo.getVideoLink());
  119. sumPrevMaterialUnit.setVideoName(vo.getVideoName());
  120. sumPrevMaterialUnit.setCreateTime(new Date());
  121. sumPrevMaterialUnit.setSubject(sumPrevMaterial.getSubject());
  122. sumPrevMaterialUnit.setUnitShowSort(unitShowSort);
  123. prevMaterialUnitMapper.insert(sumPrevMaterialUnit);
  124. }
  125. }else{
  126. SumPrevMaterialUnit sumPrevMaterialUnit = new SumPrevMaterialUnit();
  127. sumPrevMaterialUnit.setParentId(param.getParentId());
  128. sumPrevMaterialUnit.setUnitId(param.getUnitId());
  129. sumPrevMaterialUnit.setUnitName(param.getUnitName());
  130. sumPrevMaterialUnit.setCreateTime(new Date());
  131. sumPrevMaterialUnit.setSubject(sumPrevMaterial.getSubject());
  132. sumPrevMaterialUnit.setUnitShowSort(unitShowSort);
  133. prevMaterialUnitMapper.insert(sumPrevMaterialUnit);
  134. }
  135. }
  136. @Override
  137. public Page<SumRevMaterialVO> vacationRevPage(VersionVo param) {
  138. return summerVacationMapper.vacationRevPage(param.toPage(),param);
  139. }
  140. @Override
  141. public void revMaterialVersion(VersionVo param) {
  142. if(param.getId()== null || "".equals(param.getId())){
  143. SumRevMaterial sumPrevMaterial = new SumRevMaterial();
  144. sumPrevMaterial.setVersionType(param.getVersionType());
  145. sumPrevMaterial.setSubject(param.getSubject());
  146. sumPrevMaterial.setVersionName(getVersionNameByType(param.getVersionType(),param.getSubject()));
  147. sumPrevMaterial.setCreateTime(new Date());
  148. revMaterialMapper.insert(sumPrevMaterial);
  149. }else{
  150. SumRevMaterial revMaterial = revMaterialMapper.selectById(param.getId());
  151. if(StringUtils.isNotEmpty(param.getSubject())) {
  152. revMaterial.setSubject(param.getSubject());
  153. }
  154. if(param.getVersionType()>0){
  155. revMaterial.setVersionType(param.getVersionType());
  156. revMaterial.setVersionName(getVersionNameByType(param.getVersionType(),param.getSubject()));
  157. }
  158. revMaterial.setCreateTime(new Date());
  159. revMaterialMapper.updateById(revMaterial);
  160. }
  161. }
  162. @Override
  163. public void delRevMaterialVersion(VersionVo param) {
  164. if(param.getId()!= null && !"".equals(param.getId())){
  165. revMaterialMapper.deleteById(param.getId());
  166. }
  167. }
  168. @Override
  169. public SumPrevMaterial findPreMaterialByAny(String subject, String versionName, String grade, String semester) {
  170. return prevMaterialMapper.selectOne(new QueryWrapper<SumPrevMaterial>().eq("subject",subject).eq("grade",grade).eq("version_name",versionName).eq("semester",semester.equals("上册")?1:2));
  171. }
  172. @Override
  173. public Integer getListSizeByParentId(String id) {
  174. return prevMaterialUnitMapper.selectCount(new QueryWrapper<SumPrevMaterialUnit>().eq("parent_id",id));
  175. }
  176. private String getVersionNameByType(int type,String subject){
  177. Map<String, List<VersionConfig>> data = SystemResourceLocator.getVersionList(subject);
  178. String reStr = "";
  179. for(String key:data.keySet()) {
  180. List<VersionConfig> list = data.get(key);
  181. for(VersionConfig v:list){
  182. if(v.getVersionType() == type){
  183. reStr = v.getVersionName();
  184. break;
  185. }
  186. }
  187. }
  188. return reStr;
  189. }
  190. }