package cn.gistack.sm.resDataCheck.service.impl;
|
|
import cn.gistack.sm.resDataCheck.entity.Rules;
|
import cn.gistack.sm.resDataCheck.entity.RulesCondition;
|
import cn.gistack.sm.resDataCheck.mapper.RulesMapper;
|
import cn.gistack.sm.resDataCheck.service.IRulesConditionService;
|
import cn.gistack.sm.resDataCheck.service.IRulesService;
|
import cn.gistack.sm.resDataCheck.vo.RulesVO;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.tool.utils.ObjectUtil;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
|
/**
|
* 数据校验规则
|
*/
|
@Service
|
@AllArgsConstructor
|
public class RulesServiceImpl extends BaseServiceImpl<RulesMapper, Rules> implements IRulesService {
|
private final IRulesConditionService rulesConditionService;
|
|
|
@Override
|
public IPage<Rules> selectRulesPage(IPage<Rules> page, Rules rules) {
|
return page.setRecords(baseMapper.selectRulesPage(page,rules));
|
}
|
|
@Override
|
@Transactional
|
public Boolean customizeAdd(RulesVO rulesVO) {
|
//保存rules
|
boolean saveRules = save(rulesVO);
|
|
//condition保存规则id
|
rulesVO.getRulesConditionList().forEach(condition->{
|
condition.setRuleId(rulesVO.getId().toString());
|
});
|
|
//批量保存condition
|
boolean saveCondition = rulesConditionService.saveBatch(rulesVO.getRulesConditionList());
|
return saveRules&&saveCondition;
|
}
|
|
@Override
|
@Transactional
|
public Boolean customizeEdit(RulesVO rulesVO) {
|
//更新rules
|
boolean updateRules = updateById(rulesVO);
|
|
RulesCondition rulesCondition = new RulesCondition();
|
rulesCondition.setRuleId(rulesVO.getId().toString());
|
List<RulesCondition> list = rulesConditionService.list(Condition.getQueryWrapper(rulesCondition));
|
list.forEach(e->{
|
rulesConditionService.physicDelete(e.getId());
|
});
|
|
rulesVO.getRulesConditionList().forEach(condition->{
|
condition.setRuleId(rulesVO.getId().toString());
|
rulesConditionService.save(condition);
|
});
|
return updateRules;
|
}
|
|
@Override
|
public RulesVO getDetail(String id) {
|
RulesVO rulesVO = baseMapper.getDetail(id);
|
RulesCondition rulesCondition = new RulesCondition();
|
rulesCondition.setRuleId(id);
|
|
List<RulesCondition> list = rulesConditionService.list(Condition.getQueryWrapper(rulesCondition).orderByDesc("RELATION"));
|
rulesVO.setRulesConditionList(list);
|
|
return rulesVO;
|
}
|
|
@Override
|
@Transactional
|
public Boolean customizeRemove(String id) {
|
boolean removeRule = removeById(id);
|
RulesCondition rulesCondition = new RulesCondition();
|
rulesCondition.setRuleId(id);
|
List<RulesCondition> list = rulesConditionService.list(Condition.getQueryWrapper(rulesCondition));
|
boolean removeCondition = removeByIds(list);
|
return removeRule&&removeCondition;
|
}
|
}
|