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 implements IRulesService { private final IRulesConditionService rulesConditionService; @Override public IPage selectRulesPage(IPage 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); rulesVO.getRulesConditionList().forEach(condition->{ //有id,更新 if (ObjectUtil.isNotEmpty(condition.getId())){ rulesConditionService.updateById(condition); }else { //没id,赋rulesId 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 list = rulesConditionService.list(Condition.getQueryWrapper(rulesCondition)); rulesVO.setRulesConditionList(list); return rulesVO; } }