perf: 自动创建用户设置(xpack)

This commit is contained in:
fit2cloud-chenyw
2023-11-27 09:05:34 +08:00
parent 9a21b85f60
commit 4b9038f4f1
11 changed files with 181 additions and 159 deletions

View File

@@ -2,16 +2,21 @@ package io.dataease.system.manage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.dataease.api.system.vo.SettingItemVO;
import io.dataease.license.config.XpackInteract;
import io.dataease.system.dao.auto.entity.CoreSysSetting;
import io.dataease.system.dao.auto.mapper.CoreSysSettingMapper;
import io.dataease.system.dao.ext.mapper.ExtCoreSysSettingMapper;
import io.dataease.utils.BeanUtils;
import io.dataease.utils.CommonBeanFactory;
import io.dataease.utils.IDUtils;
import io.dataease.utils.SystemSettingUtils;
import jakarta.annotation.Resource;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -71,26 +76,41 @@ public class SysParameterManage {
return null;
}
public List<SettingItemVO> groupList(String groupKey) {
public List<CoreSysSetting> groupList(String groupKey) {
QueryWrapper<CoreSysSetting> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("pkey", groupKey);
queryWrapper.orderByAsc("sort");
List<CoreSysSetting> sysSettings = coreSysSettingMapper.selectList(queryWrapper);
if (!CollectionUtils.isEmpty(sysSettings)) {
return sysSettings.stream().map(item -> BeanUtils.copyBean(new SettingItemVO(), item)).toList();
}
return null;
return coreSysSettingMapper.selectList(queryWrapper);
}
@XpackInteract(value = "perSetting")
public List<SettingItemVO> convert(List<CoreSysSetting> sysSettings) {
return sysSettings.stream().sorted(Comparator.comparing(CoreSysSetting::getSort)).map(item -> BeanUtils.copyBean(new SettingItemVO(), item)).toList();
}
@Transactional
public void saveGroup(List<SettingItemVO> vos, String groupKey) {
QueryWrapper<CoreSysSetting> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("pkey", groupKey);
coreSysSettingMapper.delete(queryWrapper);
List<CoreSysSetting> sysSettings = vos.stream().map(item -> {
List<CoreSysSetting> sysSettings = vos.stream().filter(vo -> !SystemSettingUtils.xpackSetting(vo.getPkey())).map(item -> {
CoreSysSetting sysSetting = BeanUtils.copyBean(new CoreSysSetting(), item);
sysSetting.setId(IDUtils.snowID());
return sysSetting;
}).collect(Collectors.toList());
extCoreSysSettingMapper.saveBatch(sysSettings);
}
@XpackInteract(value = "perSetting", before = false)
@Transactional
public void saveBasic(List<SettingItemVO> vos) {
String key = "basic.";
proxy().saveGroup(vos, key);
}
private SysParameterManage proxy() {
return CommonBeanFactory.getBean(SysParameterManage.class);
}
}

View File

@@ -3,6 +3,7 @@ package io.dataease.system.server;
import io.dataease.api.system.SysParameterApi;
import io.dataease.api.system.request.OnlineMapEditor;
import io.dataease.api.system.vo.SettingItemVO;
import io.dataease.system.dao.auto.entity.CoreSysSetting;
import io.dataease.system.manage.SysParameterManage;
import jakarta.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
@@ -36,11 +37,12 @@ public class SysParameterServer implements SysParameterApi {
@Override
public List<SettingItemVO> queryBasicSetting() {
String key = "basic.";
return sysParameterManage.groupList(key);
List<CoreSysSetting> coreSysSettings = sysParameterManage.groupList(key);
return sysParameterManage.convert(coreSysSettings);
}
@Override
public void saveBasicSetting(List<SettingItemVO> settingItemVOS) {
sysParameterManage.saveGroup(settingItemVOS, "basic.");
sysParameterManage.saveBasic(settingItemVOS);
}
}