Merge remote-tracking branch 'origin/main' into feature/20260713/task-module

# Conflicts:
#	nl-gateway/src/main/resources/application-dev.yaml
#	nl-module-infra/nl-module-infra-server/src/main/resources/application-dev.yaml
#	nl-module-lms/nl-module-lms-server/src/main/resources/application-dev.yaml
#	nl-module-lms/nl-module-lms-server/src/main/resources/application-local.yaml
#	nl-module-system/nl-module-system-server/src/main/resources/application-dev.yaml
#	nl-server/src/main/resources/application-dev.yaml
This commit is contained in:
2026-07-15 16:40:23 +08:00
67 changed files with 11830 additions and 15 deletions

View File

@@ -46,6 +46,14 @@ public class DictDataController {
return success(dictDataId);
}
@PostMapping("/create-list")
@Operation(summary = "批量新增字典数据")
@PreAuthorize("@ss.hasPermission('system:dict:create')")
public CommonResult<List<Long>> createDictDataList(@Valid @RequestBody List<DictDataSaveReqVO> createReqVOList) {
List<Long> dictDataIds = dictDataService.createDictDataList(createReqVOList);
return success(dictDataIds);
}
@PutMapping("/update")
@Operation(summary = "修改字典数据")
@PreAuthorize("@ss.hasPermission('system:dict:update')")

View File

@@ -24,6 +24,14 @@ public interface DictDataService {
*/
Long createDictData(DictDataSaveReqVO createReqVO);
/**
* 批量创建字典数据
*
* @param createReqVOList 字典数据信息列表
* @return 字典数据编号列表
*/
List<Long> createDictDataList(List<DictDataSaveReqVO> createReqVOList);
/**
* 更新字典数据
*

View File

@@ -14,11 +14,14 @@ import com.google.common.annotations.VisibleForTesting;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static cn.code.nl.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.code.nl.module.system.enums.ErrorCodeConstants.*;
@@ -75,6 +78,27 @@ public class DictDataServiceImpl implements DictDataService {
return dictData.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<Long> createDictDataList(List<DictDataSaveReqVO> createReqVOList) {
Set<String> valueSet = new HashSet<>();
createReqVOList.forEach(createReqVO -> {
// 校验字典类型有效
validateDictTypeExists(createReqVO.getDictType());
String valueKey = createReqVO.getDictType() + ":" + createReqVO.getValue();
if (!valueSet.add(valueKey)) {
throw exception(DICT_DATA_VALUE_DUPLICATE);
}
// 校验字典数据的值的唯一性
validateDictDataValueUnique(null, createReqVO.getDictType(), createReqVO.getValue());
});
// 批量插入字典数据
List<DictDataDO> dictDataList = BeanUtils.toBean(createReqVOList, DictDataDO.class);
dictDataMapper.insertBatch(dictDataList);
return CollectionUtils.convertList(dictDataList, DictDataDO::getId);
}
@Override
public void updateDictData(DictDataSaveReqVO updateReqVO) {
// 校验自己存在

View File

@@ -95,9 +95,9 @@ spring:
xxl:
job:
admin:
addresses: http://192.168.10.2:8080/xxl-job-admin # 调度中心部署跟地址
addresses: http://192.168.81.193:8080/xxl-job-admin # 调度中心部署跟地址
executor:
ip: 192.168.10.2
ip: 192.168.81.193
port: 9992
--- #################### 服务保障相关配置 ####################