liujie
2026-07-24 7a201eec2a4284743386cc0c2d03eefa9e7cd1d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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.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(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;
    }
}