package com.ruoyi.system.service.impl;
|
|
import java.util.List;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.ruoyi.common.core.exception.ServiceException;
|
import com.ruoyi.system.domain.SysAgreement;
|
import com.ruoyi.system.mapper.SysAgreementMapper;
|
import com.ruoyi.system.service.ISysAgreementService;
|
|
/**
|
* 协议版本 服务层实现
|
*
|
* @author ruoyi
|
*/
|
@Service
|
public class SysAgreementServiceImpl implements ISysAgreementService
|
{
|
@Autowired
|
private SysAgreementMapper agreementMapper;
|
|
/**
|
* 查询协议版本信息
|
*
|
* @param agreementId 协议编号
|
* @return 协议版本信息
|
*/
|
@Override
|
public SysAgreement selectAgreementById(Long agreementId)
|
{
|
return agreementMapper.selectAgreementById(agreementId);
|
}
|
|
/**
|
* 查询协议版本列表
|
*
|
* @param agreement 协议版本信息
|
* @return 协议版本集合
|
*/
|
@Override
|
public List<SysAgreement> selectAgreementList(SysAgreement agreement)
|
{
|
return agreementMapper.selectAgreementList(agreement);
|
}
|
|
/**
|
* 发布一个协议版本
|
*
|
* 没有 @Transactional:全程只有一条 INSERT,没有第二处写入要与它保持一致
|
* (旧版本的「历史版本」身份是查出来的,不需要在发布时改写任何行)。
|
* 这里刻意不做「自动失效旧版本」那种维护动作,那样反而要引入事务和可被遗忘的补偿逻辑。
|
*
|
* 同类型下版本号重复由这里拦:交给数据库唯一键只会返回 500 与一句英文异常,
|
* 而 ServiceException 的 message 会被 RuoYi 的全局异常处理原样吐给前端。
|
*
|
* @param agreement 协议版本信息
|
* @return 结果
|
*/
|
@Override
|
public int publishAgreement(SysAgreement agreement)
|
{
|
if (agreementMapper.countByTypeAndVersion(agreement.getAgreementType(), agreement.getVersion()) > 0)
|
{
|
throw new ServiceException("该协议类型下已存在版本号 " + agreement.getVersion() + ",请更换版本号后再发布");
|
}
|
return agreementMapper.insertAgreement(agreement);
|
}
|
}
|