package org.springblade.system.service.impl;

import org.springblade.common.core.domain.AjaxResult;
import org.springblade.common.core.domain.entity.SystemConfig;
import org.springblade.common.core.domain.entity.SystemConfigVo;
import org.springblade.system.mapper.ISystemConfigMapper;
import org.springblade.system.service.ISystemConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author：liang.chao
 * @Date：2025/9/25 - 16:15
 */
@Service
public class SystemConfigServiceImpl implements ISystemConfigService {
    @Autowired
    private ISystemConfigMapper systemConfigMapper;

    @Override
    public List<SystemConfigVo> listConfig() {
        return systemConfigMapper.listConfig();
    }

    @Override
    public List<SystemConfig> list(SystemConfig config) {
        return systemConfigMapper.list(config);
    }

    @Override
    public AjaxResult add(SystemConfig config) {
        try {
            Integer add = systemConfigMapper.add(config);
            if (add > 0) {
                return AjaxResult.success("添加成功");
            } else {
                return AjaxResult.error("添加失败");
            }
        } catch (Exception e) {
            return AjaxResult.error("配置编码不可重复");
        }
    }

    @Override
    public AjaxResult update(SystemConfig config) {
        Integer update = systemConfigMapper.update(config);
        if (update > 0) {
            return AjaxResult.success("修改成功");
        } else {
            return AjaxResult.error("修改失败");
        }
    }

    @Override
    public AjaxResult del(SystemConfig config) {
        if (config.getId() <= 4) {
            return AjaxResult.error("该配置不可删除");
        }
        Integer del = systemConfigMapper.del(config);
        if (del > 0) {
            return AjaxResult.success("删除成功");
        } else {
            return AjaxResult.error("删除失败");
        }
    }

}
