package com.admin.service.impl;
import com.admin.entity.ViteConfig;
import com.admin.mapper.ViteConfigMapper;
import com.admin.service.ViteConfigService;
import com.admin.common.lang.R;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* 网站配置服务实现类
*
*
* @author QAQ
* @since 2025-07-24
*/
@Service
public class ViteConfigServiceImpl extends ServiceImpl implements ViteConfigService {
@Override
public R getConfigs() {
List configList = this.list();
Map configMap = new HashMap<>();
for (ViteConfig config : configList) {
configMap.put(config.getName(), config.getValue());
}
return R.ok(configMap);
}
@Override
public R getConfigByName(String name) {
if (!StringUtils.hasText(name)) return R.err("配置名称不能为空");
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", name);
ViteConfig config = this.getOne(queryWrapper);
if (config == null) return R.err("配置不存在");
return R.ok(config);
}
@Override
public R updateConfigs(Map configMap) {
if (configMap == null || configMap.isEmpty()) return R.err("配置数据不能为空");
for (Map.Entry entry : configMap.entrySet()) {
String name = entry.getKey();
String value = entry.getValue();
if (!StringUtils.hasText(name)) {
continue;
}
updateOrCreateConfig(name, value);
}
return R.ok();
}
@Override
public R updateConfig(String name, String value) {
if (!StringUtils.hasText(name)) return R.err("配置名称不能为空");
if (!StringUtils.hasText(value)) return R.err("配置值不能为空");
updateOrCreateConfig(name, value);
return R.ok();
}
private void updateOrCreateConfig(String name, String value) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", name);
ViteConfig existingConfig = this.getOne(queryWrapper);
if (existingConfig != null) {
// 更新现有配置
existingConfig.setValue(value);
existingConfig.setTime(System.currentTimeMillis());
this.updateById(existingConfig);
} else {
// 创建新配置
ViteConfig newConfig = new ViteConfig();
newConfig.setName(name);
newConfig.setValue(value);
newConfig.setTime(System.currentTimeMillis());
this.save(newConfig);
}
}
}