|
|
|
@ -2,16 +2,17 @@ package com.baiye.modules.system.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import com.baiye.constant.DefaultNumberConstants;
|
|
|
|
|
import com.baiye.modules.system.domain.LabelOrganize;
|
|
|
|
|
import com.baiye.exception.BadRequestException;
|
|
|
|
|
import com.baiye.modules.system.domain.Company;
|
|
|
|
|
import com.baiye.modules.system.domain.PayFatherTemplate;
|
|
|
|
|
import com.baiye.modules.system.domain.PayTemplate;
|
|
|
|
|
import com.baiye.modules.system.domain.PayCombo;
|
|
|
|
|
import com.baiye.modules.system.repository.CompanyRepository;
|
|
|
|
|
import com.baiye.modules.system.repository.PayFatherTemplateRepository;
|
|
|
|
|
import com.baiye.modules.system.repository.PayTemplateRepository;
|
|
|
|
|
import com.baiye.modules.system.repository.PayComboRepository;
|
|
|
|
|
import com.baiye.modules.system.service.PayFatherTemplateService;
|
|
|
|
|
import com.baiye.modules.system.service.dto.PayFatherTemplateQueryCriteria;
|
|
|
|
|
import com.baiye.util.PageUtil;
|
|
|
|
|
import com.baiye.util.QueryHelp;
|
|
|
|
|
import com.baiye.util.SecurityUtils;
|
|
|
|
|
import com.baiye.util.StringUtils;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@ -23,7 +24,6 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Set;
|
|
|
|
@ -39,7 +39,8 @@ import java.util.stream.Collectors;
|
|
|
|
|
public class PayFatherTemplateServiceImpl implements PayFatherTemplateService {
|
|
|
|
|
|
|
|
|
|
private final PayFatherTemplateRepository payFatherTemplateRepository;
|
|
|
|
|
private final PayTemplateRepository payTemplateRepository;
|
|
|
|
|
private final PayComboRepository payComboRepository;
|
|
|
|
|
private final CompanyRepository companyRepository;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@ -78,17 +79,11 @@ public class PayFatherTemplateServiceImpl implements PayFatherTemplateService {
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void del(Set<Long> ids) {
|
|
|
|
|
Set<PayTemplate> payTemplateSet = payTemplateRepository.findByFatherTemplateIdInAndStatus(ids, DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
if (CollUtil.isNotEmpty(payTemplateSet)){
|
|
|
|
|
payTemplateSet.forEach(ps -> ps.setStatus(DefaultNumberConstants.ONE_NUMBER));
|
|
|
|
|
payTemplateRepository.saveAll(payTemplateSet);
|
|
|
|
|
List<Company> companies = companyRepository.findByTemplateIdIn(ids);
|
|
|
|
|
if (CollUtil.isNotEmpty(companies)){
|
|
|
|
|
throw new BadRequestException("模板已绑定用户,请操作替换后然后删除");
|
|
|
|
|
}
|
|
|
|
|
List<PayFatherTemplate> payFatherTemplateList = payFatherTemplateRepository.findAllById(ids);
|
|
|
|
|
if (CollUtil.isNotEmpty(payFatherTemplateList)){
|
|
|
|
|
payFatherTemplateList.forEach(pt -> pt.setStatus(DefaultNumberConstants.ONE_NUMBER));
|
|
|
|
|
payFatherTemplateRepository.saveAll(payFatherTemplateList);
|
|
|
|
|
}
|
|
|
|
|
//删除逻辑下面套餐全部更新删除,TODO:公司绑定ID重新修改?强制一个新的???
|
|
|
|
|
payFatherTemplateRepository.deleteByIdIn(ids);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -98,15 +93,35 @@ public class PayFatherTemplateServiceImpl implements PayFatherTemplateService {
|
|
|
|
|
Page<PayFatherTemplate> all = payFatherTemplateRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, payFatherTemplateQueryCriteria, criteriaBuilder), pageRequest);
|
|
|
|
|
if (CollUtil.isNotEmpty(all)){
|
|
|
|
|
Set<Long> templateIds = all.stream().map(PayFatherTemplate::getId).collect(Collectors.toSet());
|
|
|
|
|
Set<PayTemplate> payTemplates = payTemplateRepository.findByFatherTemplateIdInAndStatus(templateIds, DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
Map<Long, List<PayTemplate>> fatherGroupMap = payTemplates.stream().collect(Collectors.groupingBy(PayTemplate::getFatherTemplateId));
|
|
|
|
|
Set<PayCombo> payCombos = payComboRepository.findByFatherTemplateIdInAndStatus(templateIds, DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
Map<Long, List<PayCombo>> fatherGroupMap = payCombos.stream().collect(Collectors.groupingBy(PayCombo::getFatherTemplateId));
|
|
|
|
|
for (PayFatherTemplate payFatherTemplate : all) {
|
|
|
|
|
Long id = payFatherTemplate.getId();
|
|
|
|
|
if (fatherGroupMap.containsKey(id)){
|
|
|
|
|
payFatherTemplate.setPayTemplateList(fatherGroupMap.get(id));
|
|
|
|
|
payFatherTemplate.setPayComboList(fatherGroupMap.get(id));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return PageUtil.toPage(all);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Object list() {
|
|
|
|
|
return payFatherTemplateRepository.findAll();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void replace(Long replaceId, Long templateId) {
|
|
|
|
|
Set<PayCombo> payComboSet = payComboRepository.findByFatherTemplateId(templateId);
|
|
|
|
|
if (CollUtil.isNotEmpty(payComboSet)){
|
|
|
|
|
payComboSet.forEach(ps -> ps.setFatherTemplateId(replaceId));
|
|
|
|
|
payComboRepository.saveAll(payComboSet);
|
|
|
|
|
}
|
|
|
|
|
List<Company> companyList = companyRepository.findByTemplateId(templateId);
|
|
|
|
|
if (CollUtil.isNotEmpty(companyList)){
|
|
|
|
|
companyList.forEach(ct -> ct.setTemplateId(replaceId));
|
|
|
|
|
companyRepository.saveAll(companyList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|