| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package com.xjrsoft.module.activity.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.github.yulichang.base.MPJBaseServiceImpl;
- import com.xjrsoft.module.activity.dto.ActivityInfoPageDto;
- import com.xjrsoft.module.activity.dto.AddActivityInfoDto;
- import com.xjrsoft.module.activity.entity.ActivityEnroll;
- import com.xjrsoft.module.activity.entity.ActivityEnrollRange;
- import com.xjrsoft.module.activity.entity.ActivityInfo;
- import com.xjrsoft.module.activity.mapper.ActivityEnrollMapper;
- import com.xjrsoft.module.activity.mapper.ActivityEnrollRangeMapper;
- import com.xjrsoft.module.activity.mapper.ActivityInfoMapper;
- import com.xjrsoft.module.activity.service.IActivityInfoService;
- import com.xjrsoft.module.activity.vo.ActivityInfoPageVo;
- 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;
- /**
- * @title: 活动信息
- * @Author dzx
- * @Date: 2024-07-19
- * @Version 1.0
- */
- @Service
- @AllArgsConstructor
- public class ActivityInfoServiceImpl extends MPJBaseServiceImpl<ActivityInfoMapper, ActivityInfo> implements IActivityInfoService {
- private final ActivityInfoMapper activityInfoActivityInfoMapper;
- private final ActivityEnrollRangeMapper activityInfoActivityEnrollRangeMapper;
- private final ActivityEnrollMapper activityInfoActivityEnrollMapper;
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean add(AddActivityInfoDto dto) {
- ActivityInfo activityInfo = BeanUtil.toBean(dto, ActivityInfo.class);
- if(activityInfo.getActivityEnrollRangeList() != null){
- for (ActivityEnrollRange activityEnrollRange : activityInfo.getActivityEnrollRangeList()) {
- activityEnrollRange.setActivityInfoId(activityInfo.getId());
- activityInfoActivityEnrollRangeMapper.insert(activityEnrollRange);
- }
- activityInfo.setEnrollRange(activityInfo.getActivityEnrollRangeList().toString());
- }
- activityInfoActivityInfoMapper.insert(activityInfo);
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean update(ActivityInfo activityInfo) {
- activityInfoActivityInfoMapper.updateById(activityInfo);
- //********************************* ActivityEnrollRange 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<ActivityEnrollRange> activityEnrollRangeList = activityInfoActivityEnrollRangeMapper.selectList(Wrappers.lambdaQuery(ActivityEnrollRange.class).eq(ActivityEnrollRange::getActivityInfoId, activityInfo.getId()).select(ActivityEnrollRange::getId));
- List<Long> activityEnrollRangeIds = activityEnrollRangeList.stream().map(ActivityEnrollRange::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> activityEnrollRangeOldIds = activityInfo.getActivityEnrollRangeList().stream().map(ActivityEnrollRange::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> activityEnrollRangeRemoveIds = activityEnrollRangeIds.stream().filter(item -> !activityEnrollRangeOldIds.contains(item)).collect(Collectors.toList());
- for (ActivityEnrollRange activityEnrollRange : activityInfo.getActivityEnrollRangeList()) {
- //如果不等于空则修改
- if (activityEnrollRange.getId() != null) {
- activityInfoActivityEnrollRangeMapper.updateById(activityEnrollRange);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- activityEnrollRange.setActivityInfoId(activityInfo.getId());
- activityInfoActivityEnrollRangeMapper.insert(activityEnrollRange);
- }
- }
- //已经不存在的id 删除
- if(activityEnrollRangeRemoveIds.size() > 0){
- activityInfoActivityEnrollRangeMapper.deleteBatchIds(activityEnrollRangeRemoveIds);
- }
- }
- //********************************* ActivityEnrollRange 增删改 结束 *******************************************/
- //********************************* ActivityEnroll 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<ActivityEnroll> activityEnrollList = activityInfoActivityEnrollMapper.selectList(Wrappers.lambdaQuery(ActivityEnroll.class).eq(ActivityEnroll::getActivityInfoId, activityInfo.getId()).select(ActivityEnroll::getId));
- List<Long> activityEnrollIds = activityEnrollList.stream().map(ActivityEnroll::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> activityEnrollOldIds = activityInfo.getActivityEnrollList().stream().map(ActivityEnroll::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> activityEnrollRemoveIds = activityEnrollIds.stream().filter(item -> !activityEnrollOldIds.contains(item)).collect(Collectors.toList());
- for (ActivityEnroll activityEnroll : activityInfo.getActivityEnrollList()) {
- //如果不等于空则修改
- if (activityEnroll.getId() != null) {
- activityInfoActivityEnrollMapper.updateById(activityEnroll);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- activityEnroll.setActivityInfoId(activityInfo.getId());
- activityInfoActivityEnrollMapper.insert(activityEnroll);
- }
- }
- //已经不存在的id 删除
- if(activityEnrollRemoveIds.size() > 0){
- activityInfoActivityEnrollMapper.deleteBatchIds(activityEnrollRemoveIds);
- }
- }
- //********************************* ActivityEnroll 增删改 结束 *******************************************/
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean delete(List<Long> ids) {
- activityInfoActivityInfoMapper.deleteBatchIds(ids);
- activityInfoActivityEnrollRangeMapper.delete(Wrappers.lambdaQuery(ActivityEnrollRange.class).in(ActivityEnrollRange::getActivityInfoId, ids));
- activityInfoActivityEnrollMapper.delete(Wrappers.lambdaQuery(ActivityEnroll.class).in(ActivityEnroll::getActivityInfoId, ids));
- return true;
- }
- @Override
- public Page<ActivityInfoPageVo> getPage(Page<ActivityInfoPageVo> page, ActivityInfoPageDto dto) {
- return this.baseMapper.getPage(page, dto);
- }
- @Override
- public Page<ActivityInfoPageVo> getMyPage(Page<ActivityInfoPageVo> page, ActivityInfoPageDto dto) {
- return this.baseMapper.getMyPage(page, dto);
- }
- }
|