ActivityInfoServiceImpl.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package com.xjrsoft.module.activity.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.github.yulichang.base.MPJBaseServiceImpl;
  6. import com.xjrsoft.module.activity.dto.ActivityInfoPageDto;
  7. import com.xjrsoft.module.activity.dto.AddActivityInfoDto;
  8. import com.xjrsoft.module.activity.entity.ActivityEnroll;
  9. import com.xjrsoft.module.activity.entity.ActivityEnrollRange;
  10. import com.xjrsoft.module.activity.entity.ActivityInfo;
  11. import com.xjrsoft.module.activity.mapper.ActivityEnrollMapper;
  12. import com.xjrsoft.module.activity.mapper.ActivityEnrollRangeMapper;
  13. import com.xjrsoft.module.activity.mapper.ActivityInfoMapper;
  14. import com.xjrsoft.module.activity.service.IActivityInfoService;
  15. import com.xjrsoft.module.activity.vo.ActivityInfoPageVo;
  16. import lombok.AllArgsConstructor;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.util.List;
  20. import java.util.Objects;
  21. import java.util.stream.Collectors;
  22. /**
  23. * @title: 活动信息
  24. * @Author dzx
  25. * @Date: 2024-07-19
  26. * @Version 1.0
  27. */
  28. @Service
  29. @AllArgsConstructor
  30. public class ActivityInfoServiceImpl extends MPJBaseServiceImpl<ActivityInfoMapper, ActivityInfo> implements IActivityInfoService {
  31. private final ActivityInfoMapper activityInfoActivityInfoMapper;
  32. private final ActivityEnrollRangeMapper activityInfoActivityEnrollRangeMapper;
  33. private final ActivityEnrollMapper activityInfoActivityEnrollMapper;
  34. @Override
  35. @Transactional(rollbackFor = Exception.class)
  36. public Boolean add(AddActivityInfoDto dto) {
  37. ActivityInfo activityInfo = BeanUtil.toBean(dto, ActivityInfo.class);
  38. if(activityInfo.getActivityEnrollRangeList() != null){
  39. for (ActivityEnrollRange activityEnrollRange : activityInfo.getActivityEnrollRangeList()) {
  40. activityEnrollRange.setActivityInfoId(activityInfo.getId());
  41. activityInfoActivityEnrollRangeMapper.insert(activityEnrollRange);
  42. }
  43. activityInfo.setEnrollRange(activityInfo.getActivityEnrollRangeList().toString());
  44. }
  45. activityInfoActivityInfoMapper.insert(activityInfo);
  46. return true;
  47. }
  48. @Override
  49. @Transactional(rollbackFor = Exception.class)
  50. public Boolean update(ActivityInfo activityInfo) {
  51. activityInfoActivityInfoMapper.updateById(activityInfo);
  52. //********************************* ActivityEnrollRange 增删改 开始 *******************************************/
  53. {
  54. // 查出所有子级的id
  55. List<ActivityEnrollRange> activityEnrollRangeList = activityInfoActivityEnrollRangeMapper.selectList(Wrappers.lambdaQuery(ActivityEnrollRange.class).eq(ActivityEnrollRange::getActivityInfoId, activityInfo.getId()).select(ActivityEnrollRange::getId));
  56. List<Long> activityEnrollRangeIds = activityEnrollRangeList.stream().map(ActivityEnrollRange::getId).collect(Collectors.toList());
  57. //原有子表单 没有被删除的主键
  58. List<Long> activityEnrollRangeOldIds = activityInfo.getActivityEnrollRangeList().stream().map(ActivityEnrollRange::getId).filter(Objects::nonNull).collect(Collectors.toList());
  59. //找到需要删除的id
  60. List<Long> activityEnrollRangeRemoveIds = activityEnrollRangeIds.stream().filter(item -> !activityEnrollRangeOldIds.contains(item)).collect(Collectors.toList());
  61. for (ActivityEnrollRange activityEnrollRange : activityInfo.getActivityEnrollRangeList()) {
  62. //如果不等于空则修改
  63. if (activityEnrollRange.getId() != null) {
  64. activityInfoActivityEnrollRangeMapper.updateById(activityEnrollRange);
  65. }
  66. //如果等于空 则新增
  67. else {
  68. //已经不存在的id 删除
  69. activityEnrollRange.setActivityInfoId(activityInfo.getId());
  70. activityInfoActivityEnrollRangeMapper.insert(activityEnrollRange);
  71. }
  72. }
  73. //已经不存在的id 删除
  74. if(activityEnrollRangeRemoveIds.size() > 0){
  75. activityInfoActivityEnrollRangeMapper.deleteBatchIds(activityEnrollRangeRemoveIds);
  76. }
  77. }
  78. //********************************* ActivityEnrollRange 增删改 结束 *******************************************/
  79. //********************************* ActivityEnroll 增删改 开始 *******************************************/
  80. {
  81. // 查出所有子级的id
  82. List<ActivityEnroll> activityEnrollList = activityInfoActivityEnrollMapper.selectList(Wrappers.lambdaQuery(ActivityEnroll.class).eq(ActivityEnroll::getActivityInfoId, activityInfo.getId()).select(ActivityEnroll::getId));
  83. List<Long> activityEnrollIds = activityEnrollList.stream().map(ActivityEnroll::getId).collect(Collectors.toList());
  84. //原有子表单 没有被删除的主键
  85. List<Long> activityEnrollOldIds = activityInfo.getActivityEnrollList().stream().map(ActivityEnroll::getId).filter(Objects::nonNull).collect(Collectors.toList());
  86. //找到需要删除的id
  87. List<Long> activityEnrollRemoveIds = activityEnrollIds.stream().filter(item -> !activityEnrollOldIds.contains(item)).collect(Collectors.toList());
  88. for (ActivityEnroll activityEnroll : activityInfo.getActivityEnrollList()) {
  89. //如果不等于空则修改
  90. if (activityEnroll.getId() != null) {
  91. activityInfoActivityEnrollMapper.updateById(activityEnroll);
  92. }
  93. //如果等于空 则新增
  94. else {
  95. //已经不存在的id 删除
  96. activityEnroll.setActivityInfoId(activityInfo.getId());
  97. activityInfoActivityEnrollMapper.insert(activityEnroll);
  98. }
  99. }
  100. //已经不存在的id 删除
  101. if(activityEnrollRemoveIds.size() > 0){
  102. activityInfoActivityEnrollMapper.deleteBatchIds(activityEnrollRemoveIds);
  103. }
  104. }
  105. //********************************* ActivityEnroll 增删改 结束 *******************************************/
  106. return true;
  107. }
  108. @Override
  109. @Transactional(rollbackFor = Exception.class)
  110. public Boolean delete(List<Long> ids) {
  111. activityInfoActivityInfoMapper.deleteBatchIds(ids);
  112. activityInfoActivityEnrollRangeMapper.delete(Wrappers.lambdaQuery(ActivityEnrollRange.class).in(ActivityEnrollRange::getActivityInfoId, ids));
  113. activityInfoActivityEnrollMapper.delete(Wrappers.lambdaQuery(ActivityEnroll.class).in(ActivityEnroll::getActivityInfoId, ids));
  114. return true;
  115. }
  116. @Override
  117. public Page<ActivityInfoPageVo> getPage(Page<ActivityInfoPageVo> page, ActivityInfoPageDto dto) {
  118. return this.baseMapper.getPage(page, dto);
  119. }
  120. @Override
  121. public Page<ActivityInfoPageVo> getMyPage(Page<ActivityInfoPageVo> page, ActivityInfoPageDto dto) {
  122. return this.baseMapper.getMyPage(page, dto);
  123. }
  124. }