package com.ruoyi.system.service.impl;
|
|
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.system.domain.SysProtocolConfig;
|
import com.ruoyi.system.dto.SysProtocolConfigDetailRequest;
|
import com.ruoyi.system.dto.SysProtocolConfigSaveRequest;
|
import com.ruoyi.system.mapper.SysProtocolConfigMapper;
|
import com.ruoyi.system.service.ISysProtocolConfigService;
|
import com.ruoyi.system.utils.ProtocolHtmlSanitizer;
|
import com.ruoyi.system.vo.SysProtocolConfigVO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* 协议配置服务实现
|
*
|
* @author ruoyi
|
*/
|
@Service
|
public class SysProtocolConfigServiceImpl implements ISysProtocolConfigService
|
{
|
public static final String DEFAULT_PROTOCOL_TYPE = "ENTRY_COMMITMENT";
|
|
@Autowired
|
private SysProtocolConfigMapper protocolConfigMapper;
|
|
@Override
|
public SysProtocolConfigVO selectConfig(SysProtocolConfigDetailRequest request)
|
{
|
String protocolType = resolveProtocolType(request == null ? null : request.getProtocolType());
|
SysProtocolConfig config = protocolConfigMapper.selectByProtocolType(protocolType);
|
return toVO(config == null ? buildDefaultConfig(protocolType) : config);
|
}
|
|
@Override
|
public SysProtocolConfigVO saveConfig(SysProtocolConfigSaveRequest request, String username)
|
{
|
if (request == null)
|
{
|
throw new ServiceException("协议配置不能为空");
|
}
|
String protocolType = resolveProtocolType(request.getProtocolType());
|
String protocolName = StringUtils.trim(request.getProtocolName());
|
if (StringUtils.isEmpty(protocolName))
|
{
|
throw new ServiceException("协议名称不能为空");
|
}
|
String protocolContent = StringUtils.trim(ProtocolHtmlSanitizer.clean(request.getProtocolContent()));
|
if (StringUtils.isEmpty(protocolContent))
|
{
|
throw new ServiceException("协议内容不能为空");
|
}
|
|
SysProtocolConfig config = protocolConfigMapper.selectByProtocolType(protocolType);
|
boolean insert = config == null;
|
if (insert)
|
{
|
config = new SysProtocolConfig();
|
config.setProtocolType(protocolType);
|
config.setCreateBy(username);
|
}
|
else
|
{
|
config.setUpdateBy(username);
|
}
|
config.setProtocolName(protocolName);
|
config.setProtocolContent(protocolContent);
|
config.setEnabled(request.getEnabled() == null ? Boolean.TRUE : request.getEnabled());
|
|
if (insert)
|
{
|
protocolConfigMapper.insertConfig(config);
|
}
|
else
|
{
|
protocolConfigMapper.updateConfig(config);
|
}
|
return toVO(config);
|
}
|
|
private String resolveProtocolType(String protocolType)
|
{
|
String value = StringUtils.trim(protocolType);
|
return StringUtils.isEmpty(value) ? DEFAULT_PROTOCOL_TYPE : value;
|
}
|
|
private SysProtocolConfig buildDefaultConfig(String protocolType)
|
{
|
SysProtocolConfig config = new SysProtocolConfig();
|
config.setProtocolType(protocolType);
|
config.setProtocolName("入园承诺");
|
config.setProtocolContent("");
|
config.setEnabled(true);
|
return config;
|
}
|
|
private SysProtocolConfigVO toVO(SysProtocolConfig config)
|
{
|
SysProtocolConfigVO vo = new SysProtocolConfigVO();
|
vo.setProtocolId(config.getProtocolId());
|
vo.setProtocolType(config.getProtocolType());
|
vo.setProtocolName(config.getProtocolName());
|
vo.setProtocolContent(config.getProtocolContent());
|
vo.setEnabled(config.getEnabled());
|
return vo;
|
}
|
}
|