package com.smartor.service.impl;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import com.ruoyi.common.exception.base.BaseException;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DtoConversionUtils;
|
import com.smartor.domain.*;
|
import com.smartor.mapper.HeLibraryAssortMapper;
|
import com.smartor.service.IHeLibraryAssortService;
|
import io.jsonwebtoken.lang.Collections;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* 宣教分类Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2023-12-24
|
*/
|
@Service
|
public class HeLibraryAssortServiceImpl implements IHeLibraryAssortService {
|
@Autowired
|
private HeLibraryAssortMapper heLibraryAssortMapper;
|
|
/**
|
* 查询宣教分类
|
*
|
* @param id 宣教分类主键
|
* @return 宣教分类
|
*/
|
@Override
|
public HeLibraryAssort selectHeLibraryAssortById(Long id) {
|
return heLibraryAssortMapper.selectHeLibraryAssortById(id);
|
}
|
|
/**
|
* 查询宣教分类列表
|
*
|
* @param heLibraryAssort 宣教分类
|
* @return 宣教分类
|
*/
|
@Override
|
public List<HeLibraryAssortVO> selectHeLibraryAssortList(HeLibraryAssort heLibraryAssort) {
|
List<HeLibraryAssort> heLibraryAssorts = heLibraryAssortMapper.selectHeLibraryAssortList(heLibraryAssort);
|
//将pid为空的,过滤掉
|
heLibraryAssorts = heLibraryAssorts.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList());
|
|
List<HeLibraryAssortVO> heLibraryAssortVOS = DtoConversionUtils.sourceToTarget(heLibraryAssorts, HeLibraryAssortVO.class);
|
//遍历查出来的数据,通过 id=pid 获取他们的子数据
|
for (HeLibraryAssortVO heLibraryAssortVO : heLibraryAssortVOS) {
|
if (heLibraryAssortVO.getPid() != null) {
|
continue;
|
}
|
HeLibraryAssort heLibraryAssort1 = new HeLibraryAssort();
|
heLibraryAssort1.setPid(heLibraryAssortVO.getId());
|
List<HeLibraryAssort> heLibraryAssortList = heLibraryAssortMapper.selectHeLibraryAssortList(heLibraryAssort1);
|
|
if (!Collections.isEmpty(heLibraryAssortList)) {
|
heLibraryAssortVO.setHeLibraryAssortList(heLibraryAssortList);
|
}
|
}
|
return heLibraryAssortVOS;
|
}
|
|
/**
|
* 新增宣教分类
|
*
|
* @param heLibraryAssort 宣教分类
|
* @return 结果
|
*/
|
@Override
|
public int insertHeLibraryAssort(HeLibraryAssort heLibraryAssort) {
|
heLibraryAssort.setCreateTime(DateUtils.getNowDate());
|
return heLibraryAssortMapper.insertHeLibraryAssort(heLibraryAssort);
|
}
|
|
/**
|
* 新增宣教分类树
|
*
|
* @param heLibraryAssortVO 宣教分类
|
* @return 结果
|
*/
|
@Override
|
public int insertHeLibraryAssortTree(HeLibraryAssortVO heLibraryAssortVO) {
|
Integer i = null;
|
if (ObjectUtils.isEmpty(heLibraryAssortVO)) {
|
throw new BaseException("入参为空,请检查后,再新增");
|
}
|
|
HeLibraryAssort heLibraryAssort = DtoConversionUtils.sourceToTarget(heLibraryAssortVO, HeLibraryAssort.class);
|
Integer integer = heLibraryAssortMapper.selectSeqMax();
|
if (integer != null) {
|
heLibraryAssort.setSeqno(integer.longValue() + 1);
|
} else {
|
heLibraryAssort.setSeqno(1L);
|
}
|
|
if (heLibraryAssort.getId() == null) {
|
i = heLibraryAssortMapper.insertHeLibraryAssort(heLibraryAssort);
|
}
|
|
//新增二级树
|
if (CollectionUtils.isNotEmpty(heLibraryAssortVO.getHeLibraryAssortList())) {
|
for (HeLibraryAssort heLibraryAssort1 : heLibraryAssortVO.getHeLibraryAssortList()) {
|
heLibraryAssort1.setPid(heLibraryAssort.getId());
|
Integer seqMax = heLibraryAssortMapper.selectSeqMax();
|
if (seqMax != null) {
|
heLibraryAssort1.setSeqno(seqMax.longValue() + 1);
|
} else {
|
heLibraryAssort1.setSeqno(1L);
|
}
|
heLibraryAssortMapper.insertHeLibraryAssort(heLibraryAssort1);
|
}
|
}
|
|
return i;
|
}
|
|
/**
|
* 修改宣教分类
|
*
|
* @param heLibraryAssort 宣教分类
|
* @return 结果
|
*/
|
@Override
|
public int updateHeLibraryAssort(HeLibraryAssort heLibraryAssort) {
|
heLibraryAssort.setUpdateTime(DateUtils.getNowDate());
|
return heLibraryAssortMapper.updateHeLibraryAssort(heLibraryAssort);
|
}
|
|
/**
|
* 批量删除宣教分类
|
*
|
* @param ids 需要删除的宣教分类主键
|
* @return 结果
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public Integer deleteHeLibraryAssortByIds(Long[] ids) {
|
Integer i = null;
|
|
for (Long id : ids) {
|
i = heLibraryAssortMapper.deleteHeLibraryAssortById(id);
|
//删除成功后,如果该删除的ID下有子数据,则将子数据放到未分配下面
|
HeLibraryAssort heLibraryAssort = new HeLibraryAssort();
|
heLibraryAssort.setPid(id);
|
List<HeLibraryAssort> heLibraryAssortList1 = heLibraryAssortMapper.selectHeLibraryAssortList(heLibraryAssort);
|
if (CollectionUtils.isNotEmpty(heLibraryAssortList1)) {
|
for (HeLibraryAssort heLibraryAssort1 : heLibraryAssortList1) {
|
//设置未分配ID
|
heLibraryAssort1.setPid(999999999L);
|
heLibraryAssortMapper.updateHeLibraryAssort(heLibraryAssort1);
|
}
|
}
|
}
|
return i;
|
}
|
|
/**
|
* 删除宣教分类信息
|
*
|
* @param id 宣教分类主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteHeLibraryAssortById(Long id) {
|
return heLibraryAssortMapper.deleteHeLibraryAssortById(id);
|
}
|
}
|