123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package com.sundata.internalevaluation.configuration.service;
- import com.sundata.common.exception.BusinessException;
- import com.sundata.internalevaluation.configuration.mapper.SysReqRuleMapper;
- import com.sundata.internalevaluation.configuration.mapper.SysReqRulesMapper;
- import com.sundata.internalevaluation.configuration.model.SysReqRule;
- import com.sundata.internalevaluation.configuration.model.SysRuleIndex;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.dao.DuplicateKeyException;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.List;
- import java.util.stream.Collectors;
- @Service
- public class SysReqRuleService {
- private static final Logger log = LoggerFactory.getLogger(SysReqRuleService.class);
- @Autowired
- private SysReqRuleMapper sysReqRuleMapper;
- @Autowired
- private SysReqRulesMapper sysReqRulesMapper;
- /**
- * 查询所有记录
- *
- * @return 返回集合,没有返回空List
- */
- public List<SysReqRule> listAll(SysReqRule sysReqRule) {
- return sysReqRuleMapper.listAll(sysReqRule);
- }
- /**
- * 根据主键查询
- *
- * @param ruleNo 主键
- * @return 返回记录,没有返回null
- */
- @Transactional
- public SysReqRule getById(String ruleNo) {
- List<String> indexNoList = sysReqRuleMapper.selectIndexByRuleNo(ruleNo);
- SysReqRule resEntity = sysReqRuleMapper.getById(ruleNo);
- resEntity.setIndexNoList(indexNoList);
- return resEntity;
- }
-
- /**
- * 新增,忽略null字段
- *
- * @param sysReqRule 新增的记录
- * @return 返回影响行数
- */
- public int insertIgnoreNull(SysReqRule sysReqRule) {
- try {
- sysReqRuleMapper.deleteIndexByRuleNo(sysReqRule.getRuleNo());
- List<SysRuleIndex> list = sysReqRule.getIndexNoList().stream().map(indexNo -> new SysRuleIndex(sysReqRule.getRuleNo(), indexNo)).collect(Collectors.toList());
- sysReqRuleMapper.insertIndexList(list);
- return sysReqRuleMapper.insertIgnoreNull(sysReqRule);
- } catch (DuplicateKeyException e) {
- throw new BusinessException("规则编码已存在,请重新输入.");
- }
- }
-
- /**
- * 修改,忽略null字段
- *
- * @param sysReqRule 修改的记录
- * @return 返回影响行数
- */
- @Transactional
- public int updateIgnoreNull(SysReqRule sysReqRule) {
- sysReqRuleMapper.deleteIndexByRuleNo(sysReqRule.getRuleNo());
- List<SysRuleIndex> list = sysReqRule.getIndexNoList().stream().map(indexNo -> new SysRuleIndex(sysReqRule.getRuleNo(), indexNo)).collect(Collectors.toList());
- sysReqRuleMapper.insertIndexList(list);
- return sysReqRuleMapper.updateIgnoreNull(sysReqRule);
- }
-
- /**
- * 删除记录
- *
- * @param sysReqRule 待删除的记录
- * @return 返回影响行数
- */
- public int delete(SysReqRule sysReqRule) {
- // 查询是否再其他规则集中引用
- List<String> rulesNo = sysReqRulesMapper.selectRulesByRuleNo(sysReqRule.getRuleNo());
- if (rulesNo == null || rulesNo.isEmpty()) {
- sysReqRuleMapper.deleteIndexByRuleNo(sysReqRule.getRuleNo());
- return sysReqRuleMapper.delete(sysReqRule);
- } else {
- throw new BusinessException("该规则已被引用,不能删除");
- }
- }
- public List<SysReqRule> selectRuleListByRulesNo(String rulesNo) {
- return sysReqRuleMapper.selectRuleListByRulesNo(rulesNo);
- }
-
- }
|